summaryrefslogtreecommitdiff
path: root/bot.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot.py')
-rw-r--r--bot.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/bot.py b/bot.py
index ced131d..779ef1e 100644
--- a/bot.py
+++ b/bot.py
@@ -4,6 +4,11 @@ from command_utils import command, CommandClient
class Client(CommandClient):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.meta_channel = None
+ self.lobby_channel = None
+
async def on_ready(self):
print(f'the bot {config.NAME} is logged in as "{self.user}"')
@@ -19,12 +24,31 @@ class Client(CommandClient):
await ctx.answer(f'''```
{config.HELP_TEXT}\nThese are all available commands:\n{command_doc}```''')
+ async def create_category(self, ctx):
+ category = await ctx.guild.create_category(config.CATEGORY_CHANNEL_NAME)
+ await ctx.answer(f'info: category created "{category}" ({category.id})')
+ return category
+
+ async def create_lobby(self, ctx):
+ lobby = await ctx.guild.create_voice_channel(config.LOBBY_CHANNEL_NAME, topic=config.LOBBY_CHANNEL_TOPIC, category=self.meta_channel)
+ await ctx.answer(f'info: voice channel created "{lobby}" ({lobby.id})')
+ return lobby
+
@command(
names = ('init', 'create', 'inti', 'craete', 'cretae', 'c', 'i', '+'),
description = 'create a new lobby'
)
async def init(self, ctx):
- await ctx.answer(f'NIY')
+ self.meta_channel = (
+ self.meta_channel
+ or discord.utils.get(ctx.guild.categories, name=config.CATEGORY_CHANNEL_NAME)
+ or await self.create_category(ctx)
+ )
+ self.lobby_channel = (
+ self.lobby_channel
+ or discord.utils.get(ctx.guild.voice_channels, name=config.LOBBY_CHANNEL_NAME, category=self.meta_channel)
+ or await self.create_lobby(ctx)
+ )
if __name__ == '__main__':