【问题标题】:TypeError: on_raw_reaction_add() missing 1 required positional argument: 'payload'类型错误:on_raw_reaction_add() 缺少 1 个必需的位置参数:“有效负载”
【发布时间】: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


【解决方案1】:

raw_reaction_add 事件不会同时接收 Context 和 RawReactionActionEvent 对象;仅给出有效负载,因此您的侦听器中应该只有两个参数,即selfpayload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2018-09-12
    • 2021-08-05
    • 2021-07-06
    • 2021-08-05
    • 2017-07-23
    相关资源
    最近更新 更多