diff options
author | latex <latex@disroot.org> | 2023-03-31 02:05:25 +0200 |
---|---|---|
committer | latex <latex@disroot.org> | 2023-03-31 02:05:25 +0200 |
commit | 472b5b0e46dcadbc769b8b415aa6807297467e59 (patch) | |
tree | 37e5c0967ac7811867837ff6ffb829452b651184 /src/commands.py | |
parent | 9ed06f53fd8db5bf920a315f480e923eb2c6620f (diff) | |
download | mumblecord-472b5b0e46dcadbc769b8b415aa6807297467e59.tar.gz |
add commands: guilds, vc, activevc
Diffstat (limited to 'src/commands.py')
-rw-r--r-- | src/commands.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/commands.py b/src/commands.py new file mode 100644 index 0000000..8a49e73 --- /dev/null +++ b/src/commands.py @@ -0,0 +1,64 @@ +import discord + +def register_all_commands(bot): + bot.register_command("guilds", cmd_guilds) + bot.register_command("vc", cmd_vc) + bot.register_command("activevc", cmd_activevc) + +def cmd_guilds(bot, text, user, arg, argv): + """ + Show all guilds + """ + response = "" + for guild in bot.discord.guilds: + response += f"{guild.id}: {guild.name}\n" + + user.send_text_message(response) + +def cmd_vc(bot, text, user, arg, argv): + """ + Show voice channels in all guilds, + or in a specific guild if the ID or name of guild has been given + """ + if not argv: + response = "" + for guild in bot.discord.guilds: + response += f"{guild.id}: {guild.name}\n" + for vc in guild.voice_channels: + response += f">{vc.id}: {vc.name}\n" + else: + guild = None + try: + guild = discord.utils.find(lambda g: g.id == int(argv[0]), bot.discord.guilds) + except ValueError: + pass + if not guild: + guild = discord.utils.find(lambda g: g.name == arg, bot.discord.guilds) + if not guild: + user.send_text_message("no guild found") + return + + response = f"{guild.name}: \n" + for vc in guild.voice_channels: + response += f">{vc.id}: {vc.name}\n" + + user.send_text_message(response) + +def cmd_activevc(bot, text, user, arg, argv): + """ + Show all voice channels with users inside + """ + if not argv: + response = "" + for guild in bot.discord.guilds: + vcs_with_active_members = [] + for vc in guild.voice_channels: + if len(vc.members) > 0: + vcs_with_active_members.append(vc) + if len(vcs_with_active_members) > 0: + response += f"{guild.id}: {guild.name}\n" + for vc in vcs_with_active_members: + response += f">{vc.id}: {vc.name} ({len(vc.members)})\n" + user.send_text_message(response) + else: + user.send_text_message("no active voice channels found") |