From cb5f9f195fb25543488ab5dfcfc88707bd44e861 Mon Sep 17 00:00:00 2001 From: fanyx Date: Fri, 21 May 2021 19:51:45 +0200 Subject: [PATCH] listen to reactions on announcement --- main.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index ce680e4..446cd0d 100644 --- a/main.py +++ b/main.py @@ -13,17 +13,17 @@ cinemas = dict() async def cinema(ctx): pass + @cinema.command("create") @commands.bot_has_permissions(manage_channels=True) async def cinema_create(ctx, name, link=None): # create permissions overwrites, so noone is allowed to join initially - overwrites = { - ctx.guild.default_role: PermissionOverwrite(connect=False) - } - + overwrites = { ctx.guild.default_role: PermissionOverwrite(connect=False, view_channel=True) } + bot_overwrite = PermissionOverwrite(view_channel=True, manage_channels=True, manage_permissions=True, connect=True) + # create voice channel and register voice_channel = await ctx.guild.create_voice_channel(name, overwrites=overwrites, category=ctx.channel.category) - cinemas[ctx.message.id] = voice_channel + await voice_channel.set_permissions(bot.user, overwrite=bot_overwrite) # create embed for series/movie # not implemented yet. @@ -32,5 +32,17 @@ async def cinema_create(ctx, name, link=None): announcement = await ctx.channel.send("React to this.") await announcement.add_reaction("\U0001F3AB") + # create cinema entry in cache + cinemas[announcement.id] = voice_channel.id + + +@bot.listen('on_reaction_add') +async def on_reaction_registered_messages(reaction, user): + if reaction.message.id in cinemas.keys() and user.id != bot.user.id: + voice_channel = bot.get_channel(cinemas.pop(reaction.message.id)) + await voice_channel.delete(reason="Cinema was closed.") + print(cinemas) + + if __name__ == "__main__": - bot.run('') \ No newline at end of file + bot.run('MzU4NTU5Njc3MDgyMTA3OTA0.Wbz8uA.jCvxjFY6NgWhXikqnZC5DWuQAa8') \ No newline at end of file