【发布时间】:2021-06-05 22:39:39
【问题描述】:
import discord
from discord.ext import commands
class GetRole(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command(name = '역할')
async def GetRoles(self, ctx):
m = await ctx.send(':one: 을 눌러 <@&817598594009661450> 역할을 얻으세요.\n:two: 를 눌러 <@&817978024700018719> 역할을 얻으세요.\n:three: 를 눌러 <@&817978098531172362> 역할을 얻으세요.')
await m.add_reaction('1️⃣')
@commands.Cog.listener()
async def on_raw_reaction_add(self, ctx, payload: discord.RawReactionActionEvent):
user = self.bot.get_user(payload.id)
if user.bot:
return
if str(payload.reaction.emoji) == "1️⃣":
role = self.bot.get_role(817598594009661450)
await user.add_roles(role)
await user.send('DONE!')
def setup(bot):
bot.add_cog(GetRole(bot))
是的。我试过了,但出现错误
TypeError: on_raw_reaction_add() 缺少 1 个必需的位置参数:'payload'
如何解决这个错误?
【问题讨论】:
-
正如错误日志所说,您正在调用函数
on_raw_reaction_add(),而不是传递payload的值。这是整个代码吗? -
是的。如何传递价值?
标签: discord.py