mirror of
https://github.com/danbulant/Shasha
synced 2026-06-19 06:11:26 +00:00
scheduler: TESTING
This commit is contained in:
parent
a2d7f8d3f5
commit
19f4be3e9c
4 changed files with 15 additions and 10 deletions
|
|
@ -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 }
|
||||
|
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
Loading…
Reference in a new issue