我完全按照他的方式进行编码,除了警告之外没有任何错误,Parameter 'payload' value is not used 并且我已确保:机器人具有分配角色的适当权限机器人已上线表情符号和角色具有相同的名称这是供参考的代码:import discordclient = discord.Client()@client.eventasync def on_message(message): if message.author == client.user: return@client.eventasync def on_raw_reaction_add(payload): message_id = payload.message_id if message_id == '756794977148993597': guild_id = payload.guild_id guild = discord.utils.find(lambda g: g.id == guild_id, client.guilds) role = discord.utils.get(guild.roles, name=payload.emoji.name) if role is not None: member = discord.utils.find(lambda m: m.id == payload.user_id, guild.members) if member is not None: await member.add_roles(role) print("done") else: print("member not found") else: print("role not found") client.run('REDACTED') 我已经尝试了很多故障排除,任何帮助将不胜感激!
1 回答

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
你不应该utils.find
在你的情况下使用。
client.get_guild通过 id 获取公会。
guild.get_member通过 id 获取成员。
guild.get_member_named
如果您想使用名称,也可以使用。
@client.event
async def on_raw_reaction_add(payload):
if payload.message_id == 756794977148993597:
guild = client.get_guild(payload.guild_id)
role = discord.utils.get(guild.roles, name=payload.emoji.name)
if role is not None:
member = guild.get_member(payload.user_id)
if member is not None:
await member.add_roles(role)
print("done")
else:
print("member not found")
else:
print("role not found")
添加回答
举报
0/150
提交
取消