rps and welcomer
							parent
							
								
									6837f27118
								
							
						
					
					
						commit
						e1b7f4722f
					
				| @ -0,0 +1,41 @@ | |||||||
|  | import { CommandContext, CommandOptionType, SlashCommand, SlashCreator } from 'slash-create' | ||||||
|  | 
 | ||||||
|  | export default class RPSCommand extends SlashCommand { | ||||||
|  |   constructor(creator: SlashCreator) { | ||||||
|  |     super(creator, { | ||||||
|  |       name: 'rps', | ||||||
|  |       description: 'play rock paper scissors', | ||||||
|  |       options: [ | ||||||
|  |         { | ||||||
|  |           name: 'choice', | ||||||
|  |           description: 'what you want to play', | ||||||
|  |           type: CommandOptionType.STRING, | ||||||
|  |           choices: [ | ||||||
|  |             { name: 'rock', value: 'rock' }, | ||||||
|  |             { name: 'paper', value: 'paper' }, | ||||||
|  |             { name: 'scissors', value: 'scissors' } | ||||||
|  |           ], | ||||||
|  |           required: true | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   async run(ctx: CommandContext) { | ||||||
|  |     const uc = ctx.options.choice | ||||||
|  |     const cc = ['rock', 'paper', 'scissors'][Math.floor(Math.random() * 3)] | ||||||
|  |     let winner = '' | ||||||
|  |     if (uc == cc) { | ||||||
|  |       winner = "it's a tie!" | ||||||
|  |     } else if ( | ||||||
|  |       (uc == 'rock' && cc == 'scissors') || | ||||||
|  |       (uc == 'paper' && cc == 'rock') || | ||||||
|  |       (uc == 'scissors' && cc == 'paper') | ||||||
|  |     ) { | ||||||
|  |       winner = 'you win!' | ||||||
|  |     } else { | ||||||
|  |       winner = 'computer wins!' | ||||||
|  |     } | ||||||
|  |     return `you chose ${uc} and the computer chose ${cc}. ${winner}` | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -0,0 +1,42 @@ | |||||||
|  | import { PrismaClient } from "@prisma/client"; | ||||||
|  | import { ChannelType, CommandContext, CommandOptionType, SlashCommand, SlashCreator } from "slash-create"; | ||||||
|  | 
 | ||||||
|  | export default class SetWelcomeChannelCommand extends SlashCommand { | ||||||
|  |   constructor(creator: SlashCreator) { | ||||||
|  |     super(creator, { | ||||||
|  |       name: 'set_welcome_channel', | ||||||
|  |       description: 'setwelcomechannel', | ||||||
|  |       options: [ | ||||||
|  |         { | ||||||
|  |           name: 'channel', | ||||||
|  |           description: 'channel - blank to see current', | ||||||
|  |           type: CommandOptionType.CHANNEL, | ||||||
|  |           channel_types: [ChannelType.GUILD_TEXT] | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   async run(ctx: CommandContext) { | ||||||
|  |     const prisma = new PrismaClient() | ||||||
|  |     if (ctx.options.channel == null) { | ||||||
|  |       const gc = await prisma.guildConfig.findFirst({ | ||||||
|  |         where: { | ||||||
|  |           id: ctx.guildID | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |       return `current welcomechannel is ${ | ||||||
|  |         '<#' + gc.welcome_channel + '>' ?? 'none (use /set_welcome_channel #CHANNEL)' | ||||||
|  |       }` | ||||||
|  |     } | ||||||
|  |     await prisma.guildConfig.update({ | ||||||
|  |       where: { | ||||||
|  |         id: ctx.guildID | ||||||
|  |       }, | ||||||
|  |       data: { | ||||||
|  |         welcome_channel: ctx.options.channel | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|  |     return `set the welcomechannel to <#${ctx.options.channel}>` | ||||||
|  |   } | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in New Issue