misc fixes

This commit is contained in:
Erik 2022-03-02 19:08:31 +02:00
parent e57948051b
commit 88e0ef6825
No known key found for this signature in database
GPG Key ID: FEFF4B220DDF5589
4 changed files with 14 additions and 7 deletions

View File

@ -1,5 +1,5 @@
const { EventEmitter } = require('events');
const { InteractionWrapper } = require('./wrappers');
const { InteractionWrapper, GuildWrapper } = require('./wrappers');
class EventHooker {
@ -35,10 +35,13 @@ class EventHooker {
async _handleEvent(eventName) {
this.target.on(eventName, async (...args) => {
// Should probably move this elsewhere, but testing this out
if (eventName === 'interactionCreate') args[0] = new InteractionWrapper(this.target, args[0], args[0].guild);
for (const arg of args) if (arg?.guild) arg.guildWrapper = new GuildWrapper(this.target, arg.guild);
if (eventName === 'interactionCreate') args[0] = new InteractionWrapper(this.target, args[0]);
// async-await does nothing in a .forEach loop,
// the forEach implementation does not await the results of the function before moving onto the next iteration
// which is a problem if we don't want functionality to be overlapping, i.e. different filters trying to delete the same message
for (const handler of this.events.get(eventName)) {
await handler(...args);
}

View File

@ -197,6 +197,10 @@ class GuildWrapper {
return this.guild.roles;
}
get premiumTier() {
return this.guild.premiumTier;
}
// Primarily used by the API
toJSON() {
const json = this.guild.toJSON();

View File

@ -14,7 +14,7 @@ class InteractionWrapper {
this.client = client;
this.interaction = interaction;
this.command = null;
this.guild = guildWrapper;
this.guild = guildWrapper || interaction.guildWrapper || interaction.guild;
// this.options = [];

View File

@ -132,17 +132,17 @@ class MessageLog extends Setting {
return [
{
name: 'GENERAL_STATUS',
value: guild.format('SETTING_STATE', { bool: Boolean(setting.channel) }, { code: true }),
value: guild.format('GENERAL_STATE', { bool: Boolean(setting.channel) }, { code: true }),
inline: true
},
{
name: 'GENERAL_CHANNEL',
value: `<#${setting.channel}>` || '`N/A`',
value: setting.channel ? `<#${setting.channel}>` : '`N/A`',
inline: true
},
{
name: 'ATTACHMENT_LOGS',
value: guild.format('SETTING_STATE', { bool: Boolean(setting.attachments) }, { code: true }),
value: guild.format('GENERAL_STATE', { bool: Boolean(setting.attachments) }, { code: true }),
inline: true
},
{