Archived
generated from imcompiling/discord-bot-template
Add module that will support open raid. Add test command.
build_develop / build (push) Successful in 21s
build_develop / build (push) Successful in 21s
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""Commands for testing."""
|
||||
|
||||
import nextcord
|
||||
from nextcord.ext import application_checks, commands
|
||||
|
||||
from off_cooldown_bot.open_raid import OpenRaid
|
||||
from off_cooldown_bot.utils import GUILDS
|
||||
|
||||
ME = 206602713511886849
|
||||
|
||||
|
||||
def is_me(): # noqa: ANN201
|
||||
"""Predicate that makes sure only I can run the test commands."""
|
||||
|
||||
def predicate(interaction: nextcord.Interaction) -> bool:
|
||||
return interaction.user.id == ME
|
||||
|
||||
return application_checks.check(predicate)
|
||||
|
||||
|
||||
class TestCog(commands.Cog, name="Test commands."):
|
||||
"""Class holds commands for testing."""
|
||||
|
||||
def __init__(self, bot: commands.Bot) -> None:
|
||||
self.bot: commands.Bot = bot
|
||||
|
||||
@nextcord.slash_command(guild_ids=GUILDS)
|
||||
async def test(self, interaction: nextcord.Interaction) -> None:
|
||||
"""Parent slash command for help. Never called."""
|
||||
|
||||
@test.subcommand()
|
||||
@is_me()
|
||||
async def election_start(self, interaction: nextcord.Interaction) -> None:
|
||||
"""
|
||||
Force starts election.
|
||||
|
||||
Args:
|
||||
interaction (nextcord.Interaction): Interaction with the message.
|
||||
|
||||
"""
|
||||
await interaction.response.send_message("Starting an open raid.", view=OpenRaid())
|
||||
@@ -0,0 +1,49 @@
|
||||
"""Contains functions for open raid sign-ups."""
|
||||
|
||||
import nextcord
|
||||
|
||||
|
||||
class OpenRaid(nextcord.ui.View):
|
||||
"""Class defines view for buttons on an open raid schedule message."""
|
||||
|
||||
def __init__(self) -> None:
|
||||
super().__init__(timeout=None, auto_defer=True)
|
||||
|
||||
@nextcord.ui.button(label="Tank", style=nextcord.ButtonStyle.blurple)
|
||||
async def tank(self, button: nextcord.ui.Button, interaction: nextcord.Interaction) -> None:
|
||||
"""
|
||||
Signs a user up as a tank.
|
||||
|
||||
Removes them if they are already signed up.
|
||||
|
||||
Args:
|
||||
button (nextcord.ui.Button): Unneeded.
|
||||
interaction (nextcord.Interaction): Interaction with command.
|
||||
|
||||
"""
|
||||
|
||||
@nextcord.ui.button(label="Healer", style=nextcord.ButtonStyle.green)
|
||||
async def healer(self, button: nextcord.ui.Button, interaction: nextcord.Interaction) -> None:
|
||||
"""
|
||||
Signs a user up as a healer.
|
||||
|
||||
Removes them if they are already signed up.
|
||||
|
||||
Args:
|
||||
button (nextcord.ui.Button): Unneeded.
|
||||
interaction (nextcord.Interaction): Interaction with command.
|
||||
|
||||
"""
|
||||
|
||||
@nextcord.ui.button(label="DPS", style=nextcord.ButtonStyle.red)
|
||||
async def dps(self, button: nextcord.ui.Button, interaction: nextcord.Interaction) -> None:
|
||||
"""
|
||||
Signs a user up as dps.
|
||||
|
||||
Removes them if they are already signed up.
|
||||
|
||||
Args:
|
||||
button (nextcord.ui.Button): Unneeded.
|
||||
interaction (nextcord.Interaction): Interaction with command.
|
||||
|
||||
"""
|
||||
Reference in New Issue
Block a user