这似乎微不足道,但是我有一个奇怪的问题。
我在on_message中检查了这种情况(只是一个片段,我在那里有更多条件,它们可以正常工作):
elif message.content.startswith("?ranklist "):
await rankLister(cls, message)
这是我用来列出用户在消息中提供的角色的所有成员的功能。
async def rankLister(cls, message):
rankToAnalizeStr = message.content[10:]
logging.info("Asked for %s role members", rankToAnalizeStr)
for role in message.guild.roles:
if role.name == rankToAnalizeStr:
rankToAnalize = role
break
rankToAnalize = ""
if rankToAnalize:
memberNames = "\n".join(i.name for i in rankToAnalize.members)
embed=discord.Embed(title="", description="", color=0xff0000)
embed.set_author(name="", url="https://tieronetact.com")
embed.set_thumbnail(url="https://cdn.discordapp.com/emojis/734014025834430525.png")
embed.add_field(name="Lista osób z rangą {}".format(rankToAnalizeStr), value=memberNames, inline=True)
await message.channel.send(embed=embed)
消息的格式如下:
?ranklist roleNameHere
从头开始切割字符串。现在发生的是,当启动BOT时,我仅使成员连接到语音(而不是在调用函数时),这确实很奇怪,因为我没有以任何方式引用语音通道。我想让所有成员(包括未与语音连接的成员,在线和离线)。