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