Discord.py 我如何才能使所有员工角色都能胜任?

Discord.py 我如何才能使所有员工角色都能胜任?,discord.py,Discord.py,正在尝试创建一个on_消息事件,其中多个角色可以使用该命令。当我把其中一个单独的角色,如FO、GM、HC、AC放进去时,它就起作用了,但当我把所有的角色都放进去作为“员工角色”时,它就没有反应了 如果在message.content中“登录”: signer=message.author 签名者=消息。提及[0]。提及 signeeid=消息。提及[0]。id 服务器=bot.get_公会(78269056115083551) teamsidslist=[782730424093769748、7

正在尝试创建一个on_消息事件,其中多个角色可以使用该命令。当我把其中一个单独的角色,如FO、GM、HC、AC放进去时,它就起作用了,但当我把所有的角色都放进去作为“员工角色”时,它就没有反应了

如果在message.content中“登录”:
signer=message.author
签名者=消息。提及[0]。提及
signeeid=消息。提及[0]。id
服务器=bot.get_公会(78269056115083551)
teamsidslist=[782730424093769748、788549127499153459、787889904465215519、786747382905176074、78349517217171102654、788872681184952360、782997813947531315、782750341850333245、800268209420369951、7885799961847697、788902115849666621、799668683398812734、788724795422、7831513474705]
球队名称=[‘底特律狮子队’、‘洛杉矶公羊队’、‘西雅图海鹰队’、‘克利夫兰布朗队’、‘匹兹堡钢人队’、‘水牛比尔队’、‘亚特兰大猎鹰队’、‘旧金山49人队’、‘亚利桑那红衣主教队’、‘绿湾包装工队’、‘印第安纳波利斯小马队’、‘新奥尔良圣徒队’、‘田纳西泰坦队’、‘杰克逊维尔美洲虎队’]
团队表情=[“底特律狮子队”、“洛杉矶公羊队”、“西雅图海鹰队”、“克利夫兰布朗队”、“匹兹堡钢人队”、“水牛比尔队”、“亚特兰大猎鹰队”、“绿湾打包队”、“印第安纳波利斯小马队”、“新奥尔良圣徒队”、“田纳西泰坦队”、“杰克逊维尔美洲虎队”]
FO=discord.utils.get(message.author.guild.roles,id=782730552037081128)
GM=discord.utils.get(message.author.guild.roles,id=80216955480692275)
HC=discord.utils.get(message.author.guild.roles,id=802169838205796352)
AC=discord.utils.get(message.author.guild.roles,id=801699883088984094)
员工角色=[FO、GM、HC、AC]
FA=discord.utils.get(message.author.guild.roles,id=782711892577615883)
Suspended=discord.utils.get(message.author.guild.roles,id=804363507842940948)
名册=[]
代理机构=[]
团队=[]
对于message.author.roles中的角色ID:
如果teamsidslist中的rolesids.id:
teams.append(rolesids.id)
步骤2=str(团队)
步骤3=步骤2.替换(“[”,“”)
步骤4=步骤3.替换(“]”,“”)
打印(步骤4)
步骤5=团队列表索引(int(步骤4))
打印(步骤5)
emote=discord.utils.get(server.emojis,name=teamemojis[step5])
团队名称=团队名称[步骤5]
team=discord.utils.get(message.author.guild.roles,id=int(步骤4))
对于server.members中的代理:
如果FA在agents.roles中:
agents.append(agents.id)
如果signeeid不在代理机构:
embedno=discord.Embed(title=“Transaction Failed!”,description=None,color=discord.color.red())
embedno.add_字段(name=“此交易无法完成。”,value=“此玩家已签名!让他们向其团队提出要求或获得释放。”)
等待message.channel.send(embed=embedno)
message.author.roles中的elif staffroles:
对于server.members中的家伙:
如果guys.id==signeeid:
等待各位。添加_角色(团队)
等着伙计们。移除角色(FA)
如果在guys.roles中暂停:
wait message.channel.send(“此播放器可签名,但因暂停而不合格。”)
花名册。附加(男生)
排班人数=str(列名(排班))
SignEmbed=discord.Embed(title=“VFFL事务”,description=None,color=discord.color.green())
SignEmbed.add_字段(name='Successful Transaction',value=signee+“已被签名到“+str(emote)+”“+teamname+!”)中)
SignEmbed.add_字段(name=“花名册大小为现在”,value=花名册大小+'/24',inline=True)
等待message.channel.send(嵌入=SignEmbed)
等待bot.process_命令(消息)
在这行中:

elif staffroles在message.author.roles中:
您正在检查
message.author.roles
中是否存在完整的staffroles列表,我想您想测试消息作者的角色是否在staffroles中

为此,您可以使用如下内置函数(如中所示):

any(工作人员角色中的角色对于message.author.roles中的角色)

此行检查作者的任何角色是否在staffroles列表中。如果至少有一个这样的角色,它将返回
true

,这样我就可以执行
elif any(message.author.roles中角色的staffroles)
?是的,应该可以!