Files
discordeno/examples/nodejs/Structures/CommandResponse.js
2023-04-01 02:46:46 +02:00

51 lines
1.3 KiB
JavaScript

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