mirror of
https://github.com/discordeno/discordeno.git
synced 2026-05-21 02:40:08 +00:00
51 lines
1.3 KiB
JavaScript
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
|