From 3ca61de49a532e7114f73e61dfa72b69cbb91269 Mon Sep 17 00:00:00 2001 From: Sin-MacBook Date: Mon, 24 Aug 2020 12:46:18 +0200 Subject: mega cool update ig - fanart, welcome and goodbye values are now deleted from database once a channel with the corresponding id is deleted. - different guildmemberadd and remove existing checking to hopefully fix errors which keep crashing the bot - if a guild member leaves that is a darling for that guild, they are wiped from the database --- .todo | 8 +++---- server/src/listeners/client/channelDelete.ts | 29 ++++++++++++++++++++---- server/src/listeners/client/guildMemberAdd.ts | 5 ++-- server/src/listeners/client/guildMemberRemove.ts | 14 ++++++++---- 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/.todo b/.todo index 1725031..8179209 100644 --- a/.todo +++ b/.todo @@ -1,12 +1,12 @@ Features: - [ ] Implement this; https://github.com/Michael-J-Scofield/discord-anti-spam On second thought, see if this works, because to me it looks like a TypeScript library, if it doesn't work, find another O/S anti-spam module with a config system. - - [ ] Refactor and optimize. - - [ ] Refactor for usage to be able to interact with MongoDB database for a configuration system. - - [ ] Role out to public, *maybe*. + - [ ] Refactor and optimize. + - [ ] Refactor for usage to be able to interact with MongoDB database for a configuration system. + - [ ] Role out to public, *maybe*. Fixes: - [ ] Check TODO list, too lazy to add here. Enhancements: - - [ ] Re-add the missing utilities into `Utils.ts` from the previous version of uwufier. + - [ ] Re-add the missing utilities into `Utils.ts` from the previous version of uwufier. \ No newline at end of file diff --git a/server/src/listeners/client/channelDelete.ts b/server/src/listeners/client/channelDelete.ts index f8c45db..7825096 100644 --- a/server/src/listeners/client/channelDelete.ts +++ b/server/src/listeners/client/channelDelete.ts @@ -10,12 +10,33 @@ export default class ChannelDeleteListener extends Listener { }); } - public exec(channel: GuildChannel): void { + public async exec(channel: GuildChannel): Promise { if (!channel.guild) return; const existing = this.client.settings.cache.reactions.filter(r => r.channelID === channel.id); - if (!existing.size) return; - for (const c of existing.values()) { - this.client.settings.set('reaction', { id: c.id }, { active: false }); + const existingFanart = this.client.settings.cache.guilds.filter(r => r.fanart === channel.id); + const existingWelcome = this.client.settings.cache.guilds.filter(r => r.welcome === channel.id); + const existingGoodbye = this.client.settings.cache.guilds.filter(r => r.goodbye === channel.id); + if (existing.size) { + for (const c of existing.values()) { + await this.client.settings.set('reaction', { id: c.id }, { active: false }); + } } + if (existingFanart.size) { + for (const c of existing.values()) { + await this.client.settings.set('guild', { id: c.id }, { fanart: '' }); + } + } + if (existingWelcome.size) { + for (const c of existing.values()) { + await this.client.settings.set('guild', { id: c.id }, { welcome: '' }); + } + } + if (existingGoodbye.size) { + for (const c of existing.values()) { + await this.client.settings.set('guild', { id: c.id }, { goodbye: '' }); + } + } + + return; } } diff --git a/server/src/listeners/client/guildMemberAdd.ts b/server/src/listeners/client/guildMemberAdd.ts index d37f3a4..9ffdb85 100644 --- a/server/src/listeners/client/guildMemberAdd.ts +++ b/server/src/listeners/client/guildMemberAdd.ts @@ -22,11 +22,12 @@ export default class GuildMemberAddListener extends Listener { const existing = this.client.settings.cache.guilds.get(member.guild.id); let hasWelcome = true; - if (existing === undefined) { + /* if (!existing) { hasWelcome = false; } else { if (existing.welcome.length !== 18) hasWelcome = false; - } + } */ + if (!existing) hasWelcome = false; if (hasWelcome) { const secret = Math.floor(Math.random() * 1000); diff --git a/server/src/listeners/client/guildMemberRemove.ts b/server/src/listeners/client/guildMemberRemove.ts index b740674..76a8b85 100644 --- a/server/src/listeners/client/guildMemberRemove.ts +++ b/server/src/listeners/client/guildMemberRemove.ts @@ -14,14 +14,20 @@ export default class GuildMemberRemoveListener extends Listener { }); } - public exec(member: GuildMember): Promise { - const existing = this.client.settings.cache.guilds.get(member.guild.id); + public async exec(member: GuildMember): Promise { + const existing = this.client.settings.cache.guilds.get(member.guild.id); + const existingDarling = this.client.settings.cache.guilds.filter(m => m.fanart === member.id); + if (existingDarling.size) { + await this.client.settings.set('guild', { id: member.guild.id }, { darling: '' }); + } + let hasGoodbye = true; - if (existing === undefined) { + /* if (existing === undefined) { hasGoodbye = false; } else { if (existing.goodbye.length !== 18) hasGoodbye = false; - } + } */ + if (!existing) hasGoodbye = false; if (hasGoodbye) { const secret = Math.floor(Math.random() * 1000); -- cgit v1.2.3