diff options
| author | Sin-MacBook <[email protected]> | 2020-08-24 12:46:18 +0200 |
|---|---|---|
| committer | Sin-MacBook <[email protected]> | 2020-08-24 12:46:18 +0200 |
| commit | 3ca61de49a532e7114f73e61dfa72b69cbb91269 (patch) | |
| tree | aba3b8a0df69d23704759612676927c40058de02 /server/src | |
| parent | feat: serverlist and leaveserver (diff) | |
| download | dep-core-3ca61de49a532e7114f73e61dfa72b69cbb91269.tar.xz dep-core-3ca61de49a532e7114f73e61dfa72b69cbb91269.zip | |
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
Diffstat (limited to 'server/src')
| -rw-r--r-- | server/src/listeners/client/channelDelete.ts | 29 | ||||
| -rw-r--r-- | server/src/listeners/client/guildMemberAdd.ts | 5 | ||||
| -rw-r--r-- | server/src/listeners/client/guildMemberRemove.ts | 14 |
3 files changed, 38 insertions, 10 deletions
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<void> { 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<Message | MessageReaction | void> { - const existing = this.client.settings.cache.guilds.get(member.guild.id); + public async exec(member: GuildMember): Promise<Message | MessageReaction | void> { + 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); |