Add Tournament cog
parent
eb40dba493
commit
ad7e3c578e
@ -0,0 +1,61 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
import interactions
|
||||||
|
|
||||||
|
from exclamation_mark_charity.constants import GUILD_ID, OWNER_IDS
|
||||||
|
from exclamation_mark_charity.database import Database
|
||||||
|
from exclamation_mark_charity.logger_factory import LoggerFactory
|
||||||
|
|
||||||
|
|
||||||
|
class Tournament(interactions.Extension):
|
||||||
|
def __init__(self, bot: interactions.Client):
|
||||||
|
self.bot: interactions.Client = bot
|
||||||
|
self.logger: logging.Logger = LoggerFactory.get_logger(__name__)
|
||||||
|
|
||||||
|
@interactions.extension_command(
|
||||||
|
name="tournament",
|
||||||
|
description="Tournament Command",
|
||||||
|
scope=GUILD_ID,
|
||||||
|
options=[
|
||||||
|
interactions.Option(
|
||||||
|
name="update",
|
||||||
|
description="Update The Tournament Details",
|
||||||
|
type=interactions.OptionType.SUB_COMMAND,
|
||||||
|
options=[]
|
||||||
|
),
|
||||||
|
interactions.Option(
|
||||||
|
name="create",
|
||||||
|
description="Create A !charity Tournament",
|
||||||
|
type=interactions.OptionType.SUB_COMMAND,
|
||||||
|
options=[
|
||||||
|
interactions.Option(
|
||||||
|
name="name",
|
||||||
|
description="The name of the tournament",
|
||||||
|
type=interactions.OptionType.STRING,
|
||||||
|
required=True,
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
async def tournament_command(self, ctx: interactions.CommandContext, sub_command, name: str = None):
|
||||||
|
# TODO: Remove when interactions.py implement application_command_permissions
|
||||||
|
if int(ctx.author.id) not in OWNER_IDS:
|
||||||
|
await ctx.send("**[ERROR 0069]** -> Not Allowed!")
|
||||||
|
return
|
||||||
|
|
||||||
|
await ctx.defer()
|
||||||
|
|
||||||
|
if sub_command == "create":
|
||||||
|
success, tournament_id = Database.create_tournament(name)
|
||||||
|
if success:
|
||||||
|
await ctx.send(f"Tournament **{name}** Successfully Created!")
|
||||||
|
self.logger.info(f"Tournament '{name}' Created Successfully With ID '{tournament_id}'!")
|
||||||
|
else:
|
||||||
|
await ctx.send(f"Tournament Creation Failed! Check Logs!")
|
||||||
|
elif sub_command == "update":
|
||||||
|
await ctx.send("**[INFO 0069]** Not Implemented Yet!")
|
||||||
|
|
||||||
|
|
||||||
|
def setup(bot):
|
||||||
|
Tournament(bot)
|
Loading…
Reference in New Issue