[英]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.