From f4b479a9ca9cd9bf0238491b75e069fd68df53dc Mon Sep 17 00:00:00 2001 From: Siwoo Jeon Date: Sat, 28 Sep 2024 16:48:08 +0900 Subject: [PATCH] feat(experimental): Testing slash command feature --- package.json | 2 +- src/Commands/information.ts | 98 +++++++++++++++++++++---------------- 2 files changed, 57 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index 51ab30d..d5e008c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "muffinbot", - "version": "4.0.0-pudding.d240928c", + "version": "4.0.0-pudding.experimental_slash_test.1", "main": "dist/index.js", "private": true, "dependencies": { diff --git a/src/Commands/information.ts b/src/Commands/information.ts index 5fce6f7..c602ce3 100644 --- a/src/Commands/information.ts +++ b/src/Commands/information.ts @@ -1,6 +1,6 @@ -import { ApplyOptions } from '@sapphire/decorators' +import { type ChatInputCommandInteraction, APIEmbed, Message } from 'discord.js' import { Command, container } from '@sapphire/framework' -import { Message } from 'discord.js' +import { ApplyOptions } from '@sapphire/decorators' import { platform, arch } from 'os' @ApplyOptions({ @@ -11,49 +11,63 @@ import { platform, arch } from 'os' }, }) class InformationCommand extends Command { - public async messageRun(msg: Message) { - await msg.reply({ - embeds: [ + public registerApplicationCommands(registry: Command.Registry) { + registry.registerChatInputCommand(builder => + builder.setName(this.name).setDescription(this.description), + ) + } + + private async _embed(): Promise { + return { + title: `${this.container.client.user?.username}의 정ㅂ보`, + fields: [ { - title: `${this.container.client.user?.username}의 정ㅂ보`, - fields: [ - { - name: '구동ㅎ환경', - value: `${platform()} ${arch()}`, - inline: false, - }, - { - name: '버ㅈ전', - value: this.container.version, - inline: true, - }, - { - name: '채ㄴ널', - value: this.container.channel.toLowerCase(), - inline: true, - }, - { - name: '최근 업ㄷ데이트 날짜', - value: this.container.lastUpdated.toLocaleDateString('ko', { - dateStyle: 'long', - }), - inline: true, - }, - { - name: '개ㅂ발자', - value: ( - await this.container.client.users.fetch( - this.container.config.bot.owner_ID, - ) - ).username, - inline: false, - }, - ], - thumbnail: { - url: this.container.client.user!.displayAvatarURL()!, - }, + name: '구동ㅎ환경', + value: `${platform()} ${arch()}`, + inline: false, + }, + { + name: '버ㅈ전', + value: this.container.version, + inline: true, + }, + { + name: '채ㄴ널', + value: this.container.channel.toLowerCase(), + inline: true, + }, + { + name: '최근 업ㄷ데이트 날짜', + value: this.container.lastUpdated.toLocaleDateString('ko', { + dateStyle: 'long', + }), + inline: true, + }, + { + name: '개ㅂ발자', + value: ( + await this.container.client.users.fetch( + this.container.config.bot.owner_ID, + ) + ).username, + inline: false, }, ], + thumbnail: { + url: this.container.client.user!.displayAvatarURL()!, + }, + } + } + + public async messageRun(msg: Message) { + await msg.reply({ + embeds: [await this._embed()], + }) + } + + public async chatInputRun(interaction: ChatInputCommandInteraction) { + await interaction.reply({ + embeds: [await this._embed()], }) } }