diff --git a/test/components.ts b/test/components.ts deleted file mode 100644 index 61208f0..0000000 --- a/test/components.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { - CommandClient, - Command, - CommandContext, - ButtonStyle, - MessageComponentType, - isMessageComponentInteraction, - MessageComponentInteraction, - Message -} from '../mod.ts' -import { TOKEN } from './config.ts' - -const client = new CommandClient({ - prefix: '.', - spacesAfterPrefix: true -}) - -enum Choice { - Rock, - Paper, - Scissor -} - -const games = new Map< - string, - { user: number; bot: number; msg: Message; txt: string } ->() -const components = [ - { - type: MessageComponentType.ActionRow, - components: [ - { - type: MessageComponentType.Button, - style: ButtonStyle.Primary, - label: 'Rock', - customID: 'rps::Rock' - }, - { - type: MessageComponentType.Button, - style: ButtonStyle.Primary, - label: 'Paper', - customID: 'rps::Paper' - }, - { - type: MessageComponentType.Button, - style: ButtonStyle.Primary, - label: 'Scissor', - customID: 'rps::Scissor' - } - ] - } -] - -client.once('ready', () => { - console.log('Ready!') -}) - -client.commands.add( - class extends Command { - name = 'button' - - execute(ctx: CommandContext): void { - ctx.channel.send('Test Buttons', { - components: [ - { - type: MessageComponentType.ActionRow, - components: [ - { - type: MessageComponentType.Button, - label: 'Primary', - style: ButtonStyle.Primary, - customID: '1' - }, - { - type: MessageComponentType.Button, - label: 'Secondary', - style: ButtonStyle.Secondary, - customID: '2' - }, - { - type: MessageComponentType.Button, - label: 'Destructive', - style: ButtonStyle.Destructive, - customID: '3' - }, - { - type: MessageComponentType.Button, - label: 'Success', - style: ButtonStyle.Success, - customID: '4' - }, - { - type: MessageComponentType.Button, - label: 'Link', - style: ButtonStyle.Link, - url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' - } - ] - } - ] - }) - } - } -) - -client.commands.add( - class extends Command { - name = 'play' - - execute(ctx: CommandContext): any { - if (games.has(ctx.author.id)) - return ctx.message.reply('You are already playing!') - ctx.channel - .send('Game starts now!', { - components - }) - .then((msg) => { - games.set(ctx.author.id, { - user: 0, - bot: 0, - msg, - txt: 'Game starts now!' - }) - }) - } - } -) - -// client.on('raw', (e, d) => { -// if (e === 'INTERACTION_CREATE') console.log(e, d) -// }) - -client.on('interactionCreate', (i) => { - if (isMessageComponentInteraction(i) === true) { - const d = i as MessageComponentInteraction - - if (d.customID.startsWith('rps::') === true) { - const game = games.get(d.user.id) - if (game === undefined) return - const choice = d.customID.split('::')[1] - const c: number = Number(Choice[choice as any]) - const rand = Math.floor(Math.random() * 2) - - game.txt += '\n\n' - game.txt += `You: ${choice}, Bot: ${Choice[rand]}` - let msg - if (rand === c) { - msg = 'Both chose ' + Choice[rand] + '!' - } else if ( - (rand === 0 && c === 2) || - (rand === 1 && c === 0) || - (rand === 2 && c === 1) - ) { - msg = 'Bot got one point!' - game.bot++ - } else { - msg = 'You got one point!' - game.user++ - } - game.txt += '\nInfo: ' + msg - - if (game.bot === 5 || game.user === 5) { - const won = game.bot === 5 ? 'Bot' : 'You' - game.msg.edit( - `${won} won!\n\n**Points:** You: ${game.user} | Bot: ${game.bot}`, - { - components: [] - } - ) - games.delete(d.user.id) - } else { - game.msg.edit( - `${game.txt}\n\n**Points:** You: ${game.user} | Bot: ${game.bot}`, - { - components - } - ) - } - } - } -}) - -console.log('Connecting...') -client.connect(TOKEN, ['GUILDS', 'GUILD_MESSAGES', 'DIRECT_MESSAGES'])