Discord.py 如何忽略某些语音频道?不和谐

Discord.py 如何忽略某些语音频道?不和谐,discord.py,Discord.py,代码规定每分钟得1分。问题是,在不同的语音通道中,不应发出点数,例如,afk通道 试图通过guild.afk_频道中的if member执行此操作,但无效:/ @commands.Cog.listener() 异步def on_就绪(自): 尽管如此: 打开(“./data/Points.json”,“r”)作为文件: data=json.load(文件) 对于self.bot.guilds中的帮会: 如果str(guild.id)不在data.keys()中: 数据[str(guild.id)

代码规定每分钟得1分。问题是,在不同的语音通道中,不应发出点数,例如,afk通道

试图通过guild.afk_频道中的if member执行此操作,但无效:/

@commands.Cog.listener()
异步def on_就绪(自):
尽管如此:
打开(“./data/Points.json”,“r”)作为文件:
data=json.load(文件)
对于self.bot.guilds中的帮会:
如果str(guild.id)不在data.keys()中:
数据[str(guild.id)]={}
voices=[公会中频道的频道。voice_频道]
members=[channel.members用于语音频道]
ids=[]
对于lst in成员:
对于lst中的成员:
append(member.id)

如果len(ids)首先,我建议为此使用内置函数,因为它是在设置的时间模式上反复执行的相同函数

回答你的问题:

您可以创建一个要忽略的通道id列表(或实际的
通道
实例),为了简单起见,我将其称为
忽略的\u通道
。然后,您可以从
语音
列表中过滤这些语音,这样您的
for循环
就不会对它们进行迭代,并且它们将被忽略。您可以这样做:

voices = [channel for channel in guild.voice_channels if channel not in ignored_channels]
或者,如果您使用了另一种id方法(我建议使用,因为它更快更容易实现):


这样,将不会检查
忽略的\u频道中的语音频道,这正是您试图实现的。

首先,我建议为此使用内置的,因为它在设定的时间模式中反复执行相同的功能

回答你的问题:

您可以创建一个要忽略的通道id列表(或实际的
通道
实例),为了简单起见,我将其称为
忽略的\u通道
。然后,您可以从
语音
列表中过滤这些语音,这样您的
for循环
就不会对它们进行迭代,并且它们将被忽略。您可以这样做:

voices = [channel for channel in guild.voice_channels if channel not in ignored_channels]
或者,如果您使用了另一种id方法(我建议使用,因为它更快更容易实现):


这样,
ignored\u channels
中的语音频道将不会被检查,这正是您试图实现的。

这是一大块代码。哪个变量保存通道列表,哪个变量保存afk通道列表?哪一行代码对应“问题1点”?如果message.channel不在afk_频道中,您可以在
上添加一些变体:
就在前面?
voices=[guild.voice_频道中的频道对频道]
频道列表和
数据[str(guild.id)][str(member)]+=1
给出1点这是一大块代码。哪个变量保存通道列表,哪个变量保存afk通道列表?哪一行代码对应“问题1点”?如果message.channel不在afk_频道中,您可以在
上添加一些变体:
就在前面?
voices=[guild.voice_频道中的频道对频道]
频道列表和
data[str(guild.id)][str(member)]+=1
得1分