bot/src/Commands/list.ts

51 lines
1.3 KiB
TypeScript

import { ApplyOptions } from '@sapphire/decorators'
import { Message, codeBlock } from 'discord.js'
import { Command, container } from '@sapphire/framework'
@ApplyOptions<Command.Options>({
name: '리스트',
aliases: ['list', '목록'],
description: '당신이 가ㄹ르쳐준 단어를 나열해요.',
detailedDescription: {
usage: '머핀아 리스트',
},
})
class ListCommand extends Command {
public async messageRun(msg: Message<boolean>) {
const db = this.container.database
const data = await db.learn.findMany({
where: {
user_id: msg.author.id,
},
})
const list: string[] = []
if (!data[0]) {
return await msg.reply('당신ㄴ은 단어를 가르쳐준 기억이 없ㅅ는데요.')
}
for (const listData of data) {
list.push(listData.command)
}
await msg.reply({
embeds: [
{
title: `${msg.author.username}님의 지식`,
description: `총합: ${data.length}\n${codeBlock(
'md',
list.map(item => `- ${item}`).join('\n'),
)}`,
color: 0x0000ff,
timestamp: new Date().toISOString(),
},
],
})
}
}
void container.stores.loadPiece({
piece: ListCommand,
name: 'list',
store: 'commands',
})