class Responses { constructor(data) { this.manager = data.manager; this.args = this._validateArguments(data.args); this.replied = false; } async reply(content) { // When just a string is passed, we assume it's the content -> transform to correct formatted payload if (typeof content === "string") content = { content }; if (this.interaction) { if (this.replied) return this.followUp(content); const reply = await this.interaction.reply(content); this.replied = true; return {}; } if (this.message) { if (this.replied) return this.followUp(content); const msg = await this.message.channel.send(content); // Assign properties to the response const response = this.client.messages.forge(msg); this.replied = true; return response; } } async followUp(content) { if (this.interaction) { const reply = await this.interaction.followUp(content); return {}; } if (this.message) { const msg = await this.message.channel.send(content); const response = this.client.messages.forge(msg); return response; } } onError(error) { return this.reply({ content: `A unknown Error happend: \n> ${error}` }); } _validateArguments(args) { this.args = args; return args; } } module.exports = Responses;