diff options
Diffstat (limited to 'bot.py')
-rw-r--r-- | bot.py | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -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__': |