[英]Python Discord Bot - Reaction Role
我将如何制作反应角色事件。 这是我尝试过的代码
@client.event
async def on_raw_reaction_add(payload):
msgID = 05793080854315018
if payload != None:
if payload.message_id == msgID:
if str(payload.emoji) == "✍️":
await add_roles("cool")
我想做的是让我的机器人检查对特定消息的反应,然后如果用户对正确的表情符号做出反应,就给他们一个角色。
假设您使用的是discord.py 1.3.3 ,您可以使用以下代码更新您的代码,以添加基于特定表情符号的角色。
您需要添加对公会的引用才能引用您希望添加的角色。 您还需要将表情符号与payload.emoji
的字符串表示进行比较。 可能值得考虑使用emoji.demojize 。
尝试:
@client.event
async def on_raw_reaction_add(payload=None):
msgID = <your message id: int>
guild = discord.utils.get(client.guilds, name=<your guild name>)
role = discord.utils.get(guild.roles, name='cool')
if payload is not None:
if payload.message_id == msgID:
if str(payload.emoji) == "✍️":
await payload.member.add_roles(role)
我刷新了您的代码,但它仍然无法正常工作,所以如果有人可以帮助我也在寻找解决方案,首先您导入不和谐的库;
import discord
from discord.client import Client
from discord.ext import commands
#如果代码稍后会发展,我还会添加一个前缀:
bot = commands.Bot(command_prefix='!')
#这里我们收到一条消息,告诉机器人在线
@bot.event
async def on_ready():
print("Bot Is entered the building!")
#那么这里是代码;
@bot.event
async def on_raw_reaction_add(payload=None):
msgID = 9454546465646847898,
guild = 7894651646646464898,
role = discord.utils.get(guild.roles, name='lvl 0 Test bot')
if payload is not None:
if payload.message_id == msgID:
if str(payload.emoji) == ":yes:":
await payload.member.add_roles(role)
bot.run("BOT TOKEN ID")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.