diff --git a/src/commands/borf.ts b/src/commands/borf.ts new file mode 100644 index 0000000..54b896e --- /dev/null +++ b/src/commands/borf.ts @@ -0,0 +1,42 @@ +import { ApplyOptions } from '@sapphire/decorators'; +import { Command } from '@sapphire/framework'; +import { Message } from 'discord.js'; + +@ApplyOptions({ + description: 'Borf! Borf!' +}) +export class UserCommand extends Command { + // Register Chat Input and Context Menu command + public override registerApplicationCommands(registry: Command.Registry) { + // Register Chat Input command + registry.registerChatInputCommand({ + name: this.name, + description: this.description + }); + } + + // Message command + public async messageRun(message: Message) { + return this.sendPing(message); + } + + // Chat Input (slash) command + public async chatInputRun(interaction: Command.ChatInputCommandInteraction) { + return this.sendPing(interaction); + } + + private async sendPing(interactionOrMessage: Message | Command.ChatInputCommandInteraction | Command.ContextMenuCommandInteraction) { + const dogResponse = await fetch('https://dog.ceo/api/breeds/image/random'); + const dogData = await dogResponse.json(); + console.log(dogData); + + interactionOrMessage instanceof Message + ? await interactionOrMessage.channel.send({ + content: dogData.status === 'success' ? dogData.message : 'Error: I had troubles fetching perfect puppies for you... :(' + }) + : await interactionOrMessage.reply({ + content: 'success' ? dogData.message : 'Error: I had troubles fetching perfect puppies for you... :(', + fetchReply: true + }); + } +}