29 lines
831 B
TypeScript
29 lines
831 B
TypeScript
import type {ChatInputCommandInteraction} from 'discord.js';
|
|
import {SlashCommandBuilder} from 'discord.js';
|
|
import {BasePlugin, type Settings } from '../../plugin';
|
|
import {quotes} from './quotes.json';
|
|
|
|
export class QuotePlugin extends BasePlugin {
|
|
constructor(settings: Settings) {
|
|
super(settings);
|
|
this.commands = [
|
|
{
|
|
data: new SlashCommandBuilder()
|
|
.setName('quote')
|
|
.setDescription('Print a quote from League of Legends.'),
|
|
|
|
execute: async (interaction: ChatInputCommandInteraction) => {
|
|
try {
|
|
const index = Math.floor(Math.random() * quotes.length);
|
|
await interaction.reply?.({
|
|
content: `> *${quotes[index].quote}*
|
|
> — ${quotes[index].author}`,
|
|
});
|
|
} catch (error) {
|
|
console.error(`Problem sending to channel: ${error}`);
|
|
}
|
|
},
|
|
},
|
|
];
|
|
}
|
|
} |