我有一个命令!出勤通道,其中channel是要读取的语音通道。然后,该漫游器会不一致地打印该频道中的成员列表。
我的问题是,是否有一种方法可以列出频道列表,并使机器人仅用1条命令就可以遍历每个通道。例如,执行!attendanceall并让漫游器将列表中的3个不同通道分配给!attendance命令。
我曾尝试过执行另一个命令并调用出勤命令,但这不起作用。
@bot.command(pass_context = True)
async def attendanceall(ctx):
voice_list = ['channel1', 'channel2']
for item in voice_list:
attendance(item)
# the start of the attendance command if the variables matter
bot.command(pass_context = True)
async def attendance(ctx, channel : str = None, useDiscordID : bool = False):
# the code that creates a list of all members goes here that isnt important
# eventually I tell the bot to send the list of members
await ctx.send(attendancelist)
我想有一个名为voice_list的固定列表,当使用!attendanceall命令ping到!attendance命令并为每个列表项运行该列表时。
答案 0 :(得分:0)
最好将执行的逻辑与命令分开。因此,如果您有命令要在特定频道或所有频道上执行某些操作,则可能类似于:
@bot.command()
async def do_to_all(ctx):
for channel in ctx.guild.channels:
await do_thing(channel)
@bot.command()
async def do_for_channel(ctx, channel: discord.GuildChannel):
await do_thing(channel)
async def do_thing(channel):
...