add vcinfo command, change vc to listvc, fix newlines
This commit is contained in:
parent
472b5b0e46
commit
0c542bb12a
|
@ -2,8 +2,9 @@ import discord
|
||||||
|
|
||||||
def register_all_commands(bot):
|
def register_all_commands(bot):
|
||||||
bot.register_command("guilds", cmd_guilds)
|
bot.register_command("guilds", cmd_guilds)
|
||||||
bot.register_command("vc", cmd_vc)
|
bot.register_command("listvc", cmd_listvc)
|
||||||
bot.register_command("activevc", cmd_activevc)
|
bot.register_command("activevc", cmd_activevc)
|
||||||
|
bot.register_command("vcinfo", cmd_vcinfo)
|
||||||
|
|
||||||
def cmd_guilds(bot, text, user, arg, argv):
|
def cmd_guilds(bot, text, user, arg, argv):
|
||||||
"""
|
"""
|
||||||
|
@ -11,11 +12,11 @@ def cmd_guilds(bot, text, user, arg, argv):
|
||||||
"""
|
"""
|
||||||
response = ""
|
response = ""
|
||||||
for guild in bot.discord.guilds:
|
for guild in bot.discord.guilds:
|
||||||
response += f"{guild.id}: {guild.name}\n"
|
response += f"{guild.id}: {guild.name}<br />\n"
|
||||||
|
|
||||||
user.send_text_message(response)
|
user.send_text_message(response)
|
||||||
|
|
||||||
def cmd_vc(bot, text, user, arg, argv):
|
def cmd_listvc(bot, text, user, arg, argv):
|
||||||
"""
|
"""
|
||||||
Show voice channels in all guilds,
|
Show voice channels in all guilds,
|
||||||
or in a specific guild if the ID or name of guild has been given
|
or in a specific guild if the ID or name of guild has been given
|
||||||
|
@ -23,9 +24,9 @@ def cmd_vc(bot, text, user, arg, argv):
|
||||||
if not argv:
|
if not argv:
|
||||||
response = ""
|
response = ""
|
||||||
for guild in bot.discord.guilds:
|
for guild in bot.discord.guilds:
|
||||||
response += f"{guild.id}: {guild.name}\n"
|
response += f"{guild.id}: {guild.name}<br />\n"
|
||||||
for vc in guild.voice_channels:
|
for vc in guild.voice_channels:
|
||||||
response += f">{vc.id}: {vc.name}\n"
|
response += f">{vc.id}: {vc.name}<br />\n"
|
||||||
else:
|
else:
|
||||||
guild = None
|
guild = None
|
||||||
try:
|
try:
|
||||||
|
@ -38,9 +39,9 @@ def cmd_vc(bot, text, user, arg, argv):
|
||||||
user.send_text_message("no guild found")
|
user.send_text_message("no guild found")
|
||||||
return
|
return
|
||||||
|
|
||||||
response = f"{guild.name}: \n"
|
response = f"{guild.name}: <br />\n"
|
||||||
for vc in guild.voice_channels:
|
for vc in guild.voice_channels:
|
||||||
response += f">{vc.id}: {vc.name}\n"
|
response += f">{vc.id}: {vc.name}<br />\n"
|
||||||
|
|
||||||
user.send_text_message(response)
|
user.send_text_message(response)
|
||||||
|
|
||||||
|
@ -56,9 +57,57 @@ def cmd_activevc(bot, text, user, arg, argv):
|
||||||
if len(vc.members) > 0:
|
if len(vc.members) > 0:
|
||||||
vcs_with_active_members.append(vc)
|
vcs_with_active_members.append(vc)
|
||||||
if len(vcs_with_active_members) > 0:
|
if len(vcs_with_active_members) > 0:
|
||||||
response += f"{guild.id}: {guild.name}\n"
|
response += f"{guild.id}: {guild.name}<br />\n"
|
||||||
for vc in vcs_with_active_members:
|
for vc in vcs_with_active_members:
|
||||||
response += f">{vc.id}: {vc.name} ({len(vc.members)})\n"
|
response += f">{vc.id}: {vc.name} ({len(vc.members)})<br />\n"
|
||||||
user.send_text_message(response)
|
user.send_text_message(response)
|
||||||
else:
|
else:
|
||||||
user.send_text_message("no active voice channels found")
|
user.send_text_message("no active voice channels found")
|
||||||
|
|
||||||
|
def cmd_vcinfo(bot, text, user, arg, argv):
|
||||||
|
try:
|
||||||
|
if len(argv) >= 1:
|
||||||
|
vc_id = int(argv[0])
|
||||||
|
if len(argv) == 2:
|
||||||
|
guild_id = int(argv[1])
|
||||||
|
except TypeError:
|
||||||
|
user.send_text_message("strings are not allowed: please use the ID and not the name")
|
||||||
|
|
||||||
|
if len(argv) == 1:
|
||||||
|
guild_id = None
|
||||||
|
|
||||||
|
vc = get_vc(bot.discord, guild_id, vc_id)
|
||||||
|
|
||||||
|
if not vc:
|
||||||
|
user.send_text_message("no vc found")
|
||||||
|
|
||||||
|
response = f"""Name: {vc.name}<br />\n
|
||||||
|
Guild: {vc.guild.name}<br />\n
|
||||||
|
Members: {len(vc.members)}<br />\n
|
||||||
|
"""
|
||||||
|
|
||||||
|
if len(vc.members) > 0:
|
||||||
|
response += "<br />\n"
|
||||||
|
|
||||||
|
for member in vc.members:
|
||||||
|
response += f"{member.name}<br />\n"
|
||||||
|
|
||||||
|
user.send_text_message(response)
|
||||||
|
|
||||||
|
def get_vc(ctx, guild, identifier):
|
||||||
|
"""
|
||||||
|
Try to get a Discord voice channel by ID
|
||||||
|
ctx: discord.py context
|
||||||
|
identifier: int: ID of the guild
|
||||||
|
"""
|
||||||
|
if not guild:
|
||||||
|
for g in ctx.guilds:
|
||||||
|
vc = discord.utils.find(lambda vc: vc.id == identifier, g.voice_channels)
|
||||||
|
if vc is not None:
|
||||||
|
return vc
|
||||||
|
else:
|
||||||
|
g = discord.utils.find(lambda g: g.id == identifier, ctx.guilds)
|
||||||
|
if not g:
|
||||||
|
return None
|
||||||
|
vc = discord.utils.find(lambda vc: vc.id == identifier, g.voice_channels)
|
||||||
|
return vc
|
||||||
|
|
Loading…
Reference in New Issue