Python 如何运行create discord.py bot命令,该命令将使用不同参数多次运行另一个bot命令?

Python 如何运行create discord.py bot命令,该命令将使用不同参数多次运行另一个bot命令?,python,discord,discord.py,Python,Discord,Discord.py,我有一个命令就是!考勤频道,其中频道是您想要阅读的语音频道。然后,bot以discord格式打印该通道中的成员列表 我的问题是,是否有一种方法可以拥有一个通道列表,并且让bot只需一个命令就可以运行每一个通道。比如做!attendanceall,让机器人在列表中为用户提供3个不同的频道!出勤指挥部 我试着发出另一个命令并调用考勤命令,但它不起作用 @bot.command(pass\u context=True) 异步def attendanceall(ctx): 语音列表=['channel1

我有一个命令就是!考勤频道,其中频道是您想要阅读的语音频道。然后,bot以discord格式打印该通道中的成员列表

我的问题是,是否有一种方法可以拥有一个通道列表,并且让bot只需一个命令就可以运行每一个通道。比如做!attendanceall,让机器人在列表中为用户提供3个不同的频道!出勤指挥部

我试着发出另一个命令并调用考勤命令,但它不起作用

@bot.command(pass\u context=True)
异步def attendanceall(ctx):
语音列表=['channel1','channel2']
对于voice_列表中的项目:
出席人数(项目)
#如果变量重要,则启动考勤命令
命令(pass\u context=True)
异步def考勤(ctx,通道:str=None,useDiscordID:bool=False):
#创建所有成员列表的代码放在这里并不重要
#最后我告诉机器人发送成员列表
等待ctx发送(出席名单)

我想有一个叫做voice_list的固定列表,当使用!attendanceall命令ping该命令!“考勤”命令,并为每个列表项运行它。

最好将您正在执行的任何操作的逻辑与命令分开。因此,如果您有命令在特定通道或所有通道上执行某些操作,这些通道可能看起来像:

@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):
    ...

最好将您正在执行的任何操作的逻辑与命令分开。因此,如果您有命令在特定通道或所有通道上执行某些操作,这些通道可能看起来像:

@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):
    ...

机器人程序看不到其他机器人程序消息。我认为这是为了停止欺骗或欺骗其他机器人。机器人看不到其他机器人的消息。我认为这是为了停止欺骗或欺骗其他机器人。@BlackThunder您的命令中可能有一些阻塞操作,这需要花费大量的时间。你能提出你自己的问题吗,包括命令的代码?我正在使用selenium。我以前从来没有使用过
async/await
,但是在搜索了最新信息之后,我得到了it@BlackThunder您的命令中可能有一些阻塞操作,这需要花费大量的时间。你能提出你自己的问题吗,包括命令的代码?我正在使用selenium。我以前从未使用过
async/await
,但在搜索了最新信息后,我得到了它