diff --git a/package.json b/package.json index 2c9ce18..08b0c96 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,6 @@ "tsconfig-paths": "^4.0.0", "typescript": "^4.6.3", "uuid": "^8.3.2", - "winston": "^3.8.0", "winston-daily-rotate-file": "^4.6.1" }, "devDependencies": { diff --git a/src/helpers/dropGuild/index.ts b/src/helpers/dropGuild/index.ts index 6145aa4..0c0e2ab 100644 --- a/src/helpers/dropGuild/index.ts +++ b/src/helpers/dropGuild/index.ts @@ -7,60 +7,66 @@ import timeoutSchema from "../../models/timeout"; import logger from "../../logger"; -import { Snowflake } from "discord.js"; +import { Guild } from "discord.js"; -export default async (id: Snowflake) => { +export default async (guild: Guild) => { await guildSchema - .deleteMany({ guildId: id }) + .deleteMany({ guildId: guild.id }) .then(async () => { - return logger?.silly(`Deleted guild: ${id}`); + return logger?.silly(`Deleted guild: ${guild.id}`); }) .catch(async (error) => { - logger?.error(`Error deleting guild: ${id} - ${error}`); + logger?.error(`Error deleting guild: ${guild.id} - ${error}`); }); await userSchema - .deleteMany({ guildId: id }) + .deleteMany({ guildId: guild.id }) .then(async () => { - logger?.silly(`Deleted users for guild: ${id} from database`); + logger?.silly(`Deleted users for guild: ${guild.id} from database`); }) .catch(async (error) => { - logger?.error(`Error deleting users for guild: ${id} - ${error}`); + logger?.error(`Error deleting users for guild: ${guild.id} - ${error}`); }); await apiSchema - .deleteMany({ guildId: id }) + .deleteMany({ guildId: guild.id }) .then(async () => { - logger?.silly(`Deleted apis for guild: ${id} from database`); + logger?.silly(`Deleted apis for guild: ${guild.id} from database`); }) .catch(async (error) => { - logger?.error(`Error deleting apis for guild: ${id} - ${error}`); + logger?.error(`Error deleting apis for guild: ${guild.id} - ${error}`); }); await counterSchema - .deleteMany({ guildId: id }) + .deleteMany({ guildId: guild.id }) .then(async () => { - logger?.silly(`Deleted counters for guild: ${id} from database`); + logger?.silly(`Deleted counters for guild: ${guild.id} from database`); }) .catch(async (error) => { - logger?.error(`Error deleting counters for guild: ${id} - ${error}`); + logger?.error( + `Error deleting counters for guild: ${guild.id} - ${error}` + ); }); await shopRoleSchema - .deleteMany({ guildId: id }) + .deleteMany({ guildId: guild.id }) .then(async () => { - logger?.silly(`Deleted shop roles for guild: ${id} from database`); + logger?.silly(`Deleted shop roles for guild: ${guild.id} from database`); }) .catch(async (error) => { - logger?.error(`Error deleting shop roles for guild: ${id} - ${error}`); + logger?.error( + `Error deleting shop roles for guild: ${guild.id} - ${error}` + ); }); await timeoutSchema - .deleteMany({ guildId: id }) + .deleteMany({ guildId: guild.id }) .then(async () => { - logger?.silly(`Deleted timeouts for guild: ${id} from database`); + logger?.silly(`Deleted timeouts for guild: ${guild.id} from database`); }) .catch(async (error) => { - logger?.error(`Error deleting timeouts for guild: ${id} - ${error}`); + logger?.error( + `Error deleting timeouts for guild: ${guild.id} - ${error}` + ); }); }; diff --git a/src/helpers/fetchGuild/index.ts b/src/helpers/fetchGuild/index.ts index 264687e..a89e840 100644 --- a/src/helpers/fetchGuild/index.ts +++ b/src/helpers/fetchGuild/index.ts @@ -1,5 +1,5 @@ // Dependencies -import { Snowflake } from "discord.js"; +import { Guild } from "discord.js"; // Models import guildSchema from "../../models/guild"; @@ -8,18 +8,18 @@ import guildSchema from "../../models/guild"; import logger from "../../logger"; // Function -export default async (id: Snowflake) => { - const guildObj = await guildSchema?.findOne({ guildId: id }); +export default async (guild: Guild) => { + const guildObj = await guildSchema?.findOne({ guildId: guild.id }); if (guildObj === null) { - const newGuildObj = new guildSchema({ guildId: id }); + const newGuildObj = new guildSchema({ guildId: guild.id }); await newGuildObj .save() .then(async () => { - logger?.silly(`Created guild: ${id}`); + logger?.silly(`Created guild: ${guild.id}`); }) .catch(async (error) => { - logger?.error(`Error creating guild: ${id} - ${error}`); + logger?.error(`Error creating guild: ${guild.id} - ${error}`); }); return newGuildObj; diff --git a/src/jobs/keepDataUpToDate/index.ts b/src/jobs/keepDataUpToDate/index.ts deleted file mode 100644 index 4e7262a..0000000 --- a/src/jobs/keepDataUpToDate/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Client, Guild } from "discord.js"; -import logger from "../../logger"; -import dropGuild from "../../helpers/dropGuild"; -import fetchGuild from "../../helpers/fetchGuild"; - -import guildSchema from "../../models/guild"; - -export const options = { - schedule: "0 0 1 * *", // https://crontab.guru/ -}; - -export const execute = async (client: Client) => { - const guildsDB = await guildSchema.find(); - const guildsDiscord = client.guilds.cache; - - const shouldNotExist = guildsDB - .filter((x) => !guildsDiscord.some((y) => y.id === x.guildId)) - .map((z) => z.guildId); - - const shouldExist = guildsDiscord - .filter((x) => !guildsDB.some((y) => y.guildId === x.id)) - .map((z) => z.id); - - if (shouldNotExist) { - shouldNotExist.forEach(async (x) => { - await dropGuild(x); - }); - } - - if (shouldExist) { - shouldExist.forEach(async (x) => { - await fetchGuild(x); - }); - } -}; diff --git a/src/plugins/commands/credits/modules/work/index.ts b/src/plugins/commands/credits/modules/work/index.ts index b61d9fe..ef0a550 100644 --- a/src/plugins/commands/credits/modules/work/index.ts +++ b/src/plugins/commands/credits/modules/work/index.ts @@ -43,7 +43,7 @@ export default { return logger?.silly(`Guild is null`); } - const guildDB = await fetchGuild(guild.id); + const guildDB = await fetchGuild(guild); await cooldown.command(interaction, guildDB?.credits?.workTimeout); diff --git a/src/plugins/events/guildCreate/index.ts b/src/plugins/events/guildCreate/index.ts index 0d775de..60d5a3c 100644 --- a/src/plugins/events/guildCreate/index.ts +++ b/src/plugins/events/guildCreate/index.ts @@ -11,13 +11,10 @@ export const options: IEventOptions = { export const execute = async (guild: Guild) => { const { client } = guild; - if (!client.user) - throw new Error("Discord API client user is not available."); + logger?.silly(`Added to guild: ${guild.name} (${guild.id})`); - logger.silly( - `${client.user.username} joined guild: ${guild.name} (${guild.id})` - ); - - await fetchGuild(guild.id); + await fetchGuild(guild); await updatePresence(client); + + logger.silly(`guildCreate: ${guild}`); }; diff --git a/src/plugins/events/guildDelete/index.ts b/src/plugins/events/guildDelete/index.ts index e33d341..146351f 100644 --- a/src/plugins/events/guildDelete/index.ts +++ b/src/plugins/events/guildDelete/index.ts @@ -16,7 +16,7 @@ export const execute = async (guild: Guild) => { logger?.silly(`Deleted from guild: ${guild.name} (${guild.id})`); - await dropGuild(guild.id); + await dropGuild(guild); await updatePresence(client); logger.silly(`guildDelete: ${guild}`); diff --git a/src/plugins/events/messageCreate/modules/credits/index.ts b/src/plugins/events/messageCreate/modules/credits/index.ts index 8f4a54e..24a5ce2 100644 --- a/src/plugins/events/messageCreate/modules/credits/index.ts +++ b/src/plugins/events/messageCreate/modules/credits/index.ts @@ -17,7 +17,7 @@ export default { const { id: guildId } = guild; const { id: userId } = author; - const guildData = await fetchGuild(guild.id); + const guildData = await fetchGuild(guild); const userData = await fetchUser(author, guild); if (content.length < guildData.credits.minimumLength) return; diff --git a/src/plugins/events/messageCreate/modules/points/index.ts b/src/plugins/events/messageCreate/modules/points/index.ts index b73dbf2..ed18003 100644 --- a/src/plugins/events/messageCreate/modules/points/index.ts +++ b/src/plugins/events/messageCreate/modules/points/index.ts @@ -14,7 +14,7 @@ export default { if (author.bot) return; if (channel?.type !== "GUILD_TEXT") return; - const guildData = await fetchGuild(guild.id); + const guildData = await fetchGuild(guild); const userData = await fetchUser(author, guild); if (content.length < guildData.credits.minimumLength) return;