rps and welcomer

main
suhas 2 years ago
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…
Cancel
Save