diff --git a/cmds/moderation/src/createSchedule.js b/cmds/moderation/src/createSchedule.js index f771a2e..4ab46b8 100644 --- a/cmds/moderation/src/createSchedule.js +++ b/cmds/moderation/src/createSchedule.js @@ -21,7 +21,7 @@ async function createSchedule(client, { guildID, userID, type, until }) { else if (type === "ban") path = "./unbanSc.js"; else throw new TypeError("Invalid type: " + type); if (typeof until === "string") until = new Date(until); - const NAME = guildID + "/" + userID + "/" + type, + const NAME = [guildID, userID, type].join("/"), SC = { name: NAME, path: join(__dirname, path), @@ -47,9 +47,11 @@ async function createSchedule(client, { guildID, userID, type, until }) { async function init(client) { const jobs = await col.find({}).toArray(); - console.log(jobs); jobManager = scheduler(client, jobs); jobManager.start(); + jobs.forEach((v) => { + if (v.date.valueOf() < new Date().valueOf()) jobManager.run(v.name); + }); } module.exports = { createSchedule, init } \ No newline at end of file diff --git a/cmds/moderation/src/duration.js b/cmds/moderation/src/duration.js index 5a05afb..6ec062f 100644 --- a/cmds/moderation/src/duration.js +++ b/cmds/moderation/src/duration.js @@ -22,7 +22,7 @@ function intervalToDuration(interval) { if (strings.length > 0) { if (strings.length > 1) strings[strings.length - 2] += " and"; return { object, strings }; - } else console.log(interval, object); + } }; /** diff --git a/resources/scheduler.js b/resources/scheduler.js index 422184c..ef589b3 100644 --- a/resources/scheduler.js +++ b/resources/scheduler.js @@ -17,7 +17,6 @@ function scheduler(client, jobs = []) { jobs: jobs, workerMessageHandler: ({ message }) => { const NAME = message; - console.log(NAME); if (!NAME[0] || !NAME[1] || !NAME[2]) throw new Error("Value undefined!"); return execPunishmentSchedule(client, NAME[0], NAME[1], NAME[2]); }, diff --git a/resources/structures.js b/resources/structures.js index 1a88d8f..c93c6a9 100644 --- a/resources/structures.js +++ b/resources/structures.js @@ -5,6 +5,8 @@ const { Structures, Guild, GuildMember, BanOptions } = require("discord.js"), { errLog, defaultEventLogEmbed, defaultDateFormat, trySend } = require("./functions"); const { createSchedule } = require("../cmds/moderation/src/createSchedule"); const { TimedPunishment } = require("./classes"); +const { database } = require("../database/mongo"); +const col = database.collection("Schedule"); Structures.extend("Guild", u => { return class Guild extends u { @@ -26,10 +28,9 @@ Structures.extend("Guild", u => { } if (r.timedPunishments) for (const U in r.timedPunishments) { - console.log(r.timedPunishments[U]); const tr = new TimedPunishment(r.timedPunishments[U]); tr.setDataDuration(tr.duration.invoked, tr.duration.until); - timedPunishments.set(this.id + "/" + tr.userID + "/" + tr.type); + timedPunishments.set(tr.userID + "/" + tr.type, tr); } r.infractions = infractions; r.timedPunishments = timedPunishments; @@ -98,7 +99,7 @@ Structures.extend("Guild", u => { async setTimedPunishment(Punishment) { console.log("SET TIMED PUNISHMENT"); const ret = this.DB.timedPunishments.set(Punishment.userID + "/" + Punishment.type, Punishment); - console.log(await this.setDb("timedPunishments", this.DB.timedPunishments)); + await this.setDb("timedPunishments", this.DB.timedPunishments); return ret; } @@ -159,7 +160,6 @@ Structures.extend("User", u => { return database.collection("User").updateOne({ document: this.id }, { $set: { [query]: set }, $setOnInsert: { document: this.id } }, { upsert: true }).then((r, e) => { if (e) return errLog(e, null, this.client); - console.log(set); return this.DB[query] = set; }); } @@ -259,6 +259,7 @@ Structures.extend("User", u => { throw new Error("You can't mute someone with higher position than you <:nekokekLife:852865942530949160>"); await MEM.unmute(reason); } + await col.deleteOne({ document: [guild.id, this.id, "mute"].join("/") }).then(() => console.log("DELETED")).catch(e => errLog(e, null, client)); return guild.removeTimedPunishment(this.id, "mute"); } @@ -315,6 +316,7 @@ Structures.extend("User", u => { this.createDM().then(r => trySend(this.client, r, emb)); } + await col.deleteOne({ document: [guild.id, this.id, "ban"].join("/") }).then(() => console.log("DELETED")).catch(e => errLog(e, null, client)); return guild.removeTimedPunishment(this.id, "ban"); } @@ -375,7 +377,6 @@ Structures.extend("GuildMember", u => { async dbLoad() { return database.collection("GuildMember").findOne({ document: this.id }).then((r, e) => { if (e) return errLog(e, null, this.client); - r = r?.DB; if (!r) r = {}; return this.DB = r; }); @@ -385,7 +386,6 @@ Structures.extend("GuildMember", u => { return database.collection("GuildMember").updateOne({ document: this.id }, { $set: { [query]: set }, $setOnInsert: { document: this.id } }, { upsert: true }).then((r, e) => { if (e) return errLog(e, null, this.client); - console.log(set); return this.DB[query] = set; }); } @@ -411,11 +411,14 @@ Structures.extend("GuildMember", u => { this.DB.muted.takenRoles = ROLES; } this.DB.muted.muteRole = this.guild.DB.settings.mute.role; + console.log(this.DB.muted.takenRoles); try { if (ROLES?.length > 0) await this.roles.remove(ROLES, reason); await this.roles.add(this.DB.muted.muteRole, reason); + if (!this.DB.muted.takenRoles) this.DB.muted.takenRoles = []; await this.setDb("muted", this.DB.muted); + console.log(this.DB); return true; } catch (e) { if (this.DB.muted.takenRoles?.length > 0) await this.roles.add(this.DB.muted.takenRoles, reason).catch(() => { }); @@ -430,6 +433,7 @@ Structures.extend("GuildMember", u => { async unmute(reason) { if (!this.DB) await this.dbLoad(); try { + console.log(this.DB); if (this.DB.muted.takenRoles.length > 0) await this.roles.add(this.DB.muted.takenRoles, reason); if (this.DB.muted.muteRole) await this.roles.remove(this.DB.muted.muteRole, reason); console.log("clear takenRoles UM");