Discord.py 在“U raw”上,“U add不使用ctx及其属性”;作者;

Discord.py 在“U raw”上,“U add不使用ctx及其属性”;作者;,discord.py,Discord.py,嘿,我有一个问题,我不能使用ctx属性author。所以我的问题是,是否有其他方法可以在discord.py中创建一个与on_reaction_add一起工作的频道 我的简历是: 正在忽略添加时的原始反应中的异常 回溯(最近一次呼叫最后一次): 文件“C:\dev\Python\Einführung\venv\lib\site packages\discord\client.py”,第333行,在运行事件中 等待coro(*args,**kwargs) 文件“C:/Users/bmichs/De

嘿,我有一个问题,我不能使用ctx属性author。所以我的问题是,是否有其他方法可以在discord.py中创建一个与on_reaction_add一起工作的频道

我的简历是: 正在忽略添加时的原始反应中的异常 回溯(最近一次呼叫最后一次):

文件“C:\dev\Python\Einführung\venv\lib\site packages\discord\client.py”,第333行,在运行事件中 等待coro(*args,**kwargs)

文件“C:/Users/bmichs/Desktop/Ticketbot\u Simon\u 2.py”,第501行,在“原始反应”中添加 异步def Vorgefertigtenachricht(ctx):

文件“C:/Users/bmichs/Desktop/Ticketbot_Simon_2.py”,第439行,位于berechtigung 票证号=整数(数据[“票证计数器”])

AttributeError:'RawReactionActionEvent'对象没有属性'author'

@bot.event
async def on_raw_reaction_add(ctx):
    with open("data.json") as f:
        data = json.load(f)
    user = ctx.author
    ticket_number = int(data["ticket-counter"])
    ticket_number += 1

    ticket_channel = await ctx.guild.create_text_channel("ticket-{}".format(ticket_number))
    await ticket_channel.set_permissions(ctx.guild.get_role(ctx.guild.id), send_messages=False,
                                             read_messages=False)
    for role_id in data["valid-roles"]:
        role = ctx.guild.get_role(role_id)

        await ticket_channel.set_permissions(role, send_messages=True, read_messages=True, add_reactions=True,
                                                 embed_links=True, attach_files=True, read_message_history=True,
                                                 external_emojis=True)

    await ticket_channel.set_permissions(user, send_messages=True, read_messages=True, add_reactions=True,
                                             embed_links=True, attach_files=True, read_message_history=True,
                                             external_emojis=True)

    await ticket_channel.set_permissions(user, send_messages=True, read_messages=True, add_reactions=True,
                                             embed_links=True, attach_files=True, read_message_history=True,
                                             external_emojis=True)
    em = discord.Embed(title="Ticket Erstellt von {}#{}".format(ctx.user.name, ctx.user.discriminator),
                           description="{}".format(message_content), color=0xf1c40f)
    em2 = discord.Embed(title="Guten Tag {}".format(ctx.user.name),
                            description="Willkommen im Ticket Support. Wir bitten dich dein Problem so ausführlich wie möglich uns mitzuteilen. Wir bitten dich ein wenig Geduld zu haben. \nWir werden dein Ticket so schnellst wie möglich bearbeiten.",
                            color=0xad1457)

    await ticket_channel.send(embed=em)
    await ticket_channel.send(embed=em2)

    pinged_msg_content = ""
    non_mentionable_roles = []

    if data["pinged-roles"] != []:

        for role_id in data["pinged-roles"]:
            role = ctx.guild.get_role(role_id)

            pinged_msg_content += role.mention
            pinged_msg_content += " "

            if role.mentionable:
                pass
            else:
                await role.edit(mentionable=True)
                non_mentionable_roles.append(role)

        await ticket_channel.send(pinged_msg_content)

        for role in non_mentionable_roles:
            await role.edit(mentionable=False)

    data["ticket-channel-ids"].append(ticket_channel.id)

    data["ticket-counter"] = int(ticket_number)
    with open("data.json", 'w') as f:
        json.dump(data, f)

    created_em = discord.Embed(title="Ticket Support:",
                                   description="Dein Ticket wurde erfolgreich erstellt! **{}**".format(
                                       ticket_channel), color=0xad1457)
    await ctx.send(embed=created_em)
您可以使用,但这需要
有效负载
而不是
ctx

下面是一个示例,其中包含一些要使用的参数

@bot.event
原始反应添加上的异步def(有效负载):
通道=机器人获取通道(有效负载通道id)
#跳过DM消息
如果isinstance(通道,discord.DMChannel):
回来
消息=等待通道。获取消息(有效负载。消息\u id)
帮会=bot.get\u帮会(payload.guild\u id)
user=guild.get_成员(有效负载.user_id)
emoji=payload.emoji.name
reaction=discord.utils.get(message.reactions,emoji=emoji)

这很有帮助,但我现在遇到了这个问题,因为我无法获取反应堆名称来设置频道权限