forked from gooberinc/goober
do NOT clone this ✌️😭
This commit is contained in:
parent
a92439b352
commit
2e4576ba4b
4 changed files with 48 additions and 22 deletions
|
@ -7,30 +7,30 @@ import asyncio
|
|||
from modules.globalvars import bot
|
||||
from modules.volta.main import _
|
||||
|
||||
@bot.hybrid_command(description=_('guess_the_number'))
|
||||
@bot.hybrid_command(description=_('minigames_guess_the_number'))
|
||||
async def guessthenumber(ctx: commands.Context):
|
||||
number = random.randint(1, 10)
|
||||
class GuessModal(ui.Modal, title=_('guess_the_number')):
|
||||
guess = ui.TextInput(label=_('your_guess'), style=TextStyle.short)
|
||||
class GuessModal(ui.Modal, title=_('minigames_guess_the_number')):
|
||||
guess = ui.TextInput(label=_('minigames_your_guess'), style=TextStyle.short)
|
||||
async def on_submit(self, interaction: Interaction):
|
||||
try:
|
||||
user_guess = int(self.guess.value)
|
||||
except:
|
||||
await interaction.response.send_message("Invalid number!", ephemeral=True)
|
||||
await interaction.response.send_message(_('minigames_invalid_number'), ephemeral=True)
|
||||
return
|
||||
if user_guess == number:
|
||||
await interaction.response.send_message("Correct!", ephemeral=True)
|
||||
await interaction.response.send_message(_('minigames_correct'), ephemeral=True)
|
||||
else:
|
||||
await interaction.response.send_message(f"Wrong! The number was {number}.", ephemeral=True)
|
||||
await interaction.response.send_message(f"{_('minigames_wrong_number')} {number}.", ephemeral=True)
|
||||
async def button_callback(interaction: Interaction):
|
||||
await interaction.response.send_modal(GuessModal())
|
||||
button = ui.Button(label="Guess", style=discord.ButtonStyle.primary)
|
||||
button = ui.Button(label=_('minigames_guess_button'), style=discord.ButtonStyle.primary)
|
||||
button.callback = button_callback
|
||||
view = ui.View()
|
||||
view.add_item(button)
|
||||
await ctx.send("Click to guess a number from 1 to 10", view=view)
|
||||
await ctx.send(_('minigames_click_to_guess'), view=view)
|
||||
|
||||
@bot.hybrid_command(description="Play Hangman with a random word")
|
||||
@bot.hybrid_command(description=_('minigames_hangman'))
|
||||
async def hangman(ctx: commands.Context):
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get("https://random-word-api.herokuapp.com/word?number=1") as resp:
|
||||
|
@ -45,23 +45,23 @@ async def hangman(ctx: commands.Context):
|
|||
max_wrong = 6
|
||||
def display_word():
|
||||
return " ".join([c if c in guessed_letters else "_" for c in word])
|
||||
class GuessModal(ui.Modal, title="Guess a Letter"):
|
||||
letter = ui.TextInput(label="Your letter guess", style=TextStyle.short, max_length=1)
|
||||
class GuessModal(ui.Modal, title=_('minigames_hangman_guess')):
|
||||
letter = ui.TextInput(label=_('minigames_hangman_user_letter_guess'), style=TextStyle.short, max_length=1)
|
||||
async def on_submit(self, interaction: Interaction):
|
||||
nonlocal guessed_letters, wrong_guesses
|
||||
guess = self.letter.value.lower()
|
||||
if guess in guessed_letters:
|
||||
await interaction.response.send_message(f"You already guessed '{guess}'!", ephemeral=True)
|
||||
await interaction.response.send_message(f"{_('minigames_hangman_already_guessed')}'{guess}'!", ephemeral=True)
|
||||
return
|
||||
guessed_letters.add(guess)
|
||||
if guess not in word:
|
||||
wrong_guesses += 1
|
||||
if all(c in guessed_letters for c in word):
|
||||
await interaction.response.edit_message(content=f"You won! The word was: **{word}**", view=None)
|
||||
await interaction.response.edit_message(content=f"{_('minigames_hangman_won')} **{word}**", view=None)
|
||||
elif wrong_guesses >= max_wrong:
|
||||
await interaction.response.edit_message(content=f"You lost! The word was: **{word}**", view=None)
|
||||
await interaction.response.edit_message(content=f"{_('minigames_hangman_lost')} **{word}**", view=None)
|
||||
else:
|
||||
await interaction.response.edit_message(content=f"Word: {display_word()}\nWrong guesses: {wrong_guesses}/{max_wrong}", view=view)
|
||||
await interaction.response.edit_message(content=_('minigames_hangman_game').format(display_word=display_word,wrong_guesses=wrong_guesses,max_wrong=max_wrong), view=view)
|
||||
async def button_callback(interaction: Interaction):
|
||||
await interaction.response.send_modal(GuessModal())
|
||||
button = ui.Button(label="Guess a letter", style=discord.ButtonStyle.primary)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue