【发布时间】:2021-01-06 01:49:10
【问题描述】:
我正在关注 Anson 开发人员教程 (here's a link),并且我的代码与他完全一样,除了警告 Parameter 'payload' value is not used 之外,我没有收到任何错误,并且我已确保:
- 机器人具有分配角色的适当权限
- 机器人在线
- 表情符号和角色名称相同
以下代码供参考:
import discord
client = discord.Client()
@client.event
async def on_message(message):
if message.author == client.user:
return
@client.event
async 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')
我已经尝试了很多故障排除,我们将不胜感激!
【问题讨论】:
-
我在运行你的代码时没有出错,但它也没有工作。为了让它工作,虽然我刚刚删除了
if message_id == '(message id)'的'',所以它只是if message_id == (message id) -
换句话说,错误是 message_id 是一个 int 但 OP 正在根据他们的消息 ID 的字符串版本检查它。
标签: python discord bots discord.py