【发布时间】:2021-03-21 14:42:14
【问题描述】:
嘿,我有这个问题,我不能使用 ctx 属性作者。所以我的问题是,是否有另一种方法可以在 discord.py 中创建与 on_reaction_add 一起使用的频道。
我的错误是: 忽略 on_raw_reaction_add 中的异常 Traceback(最近一次调用最后一次):
文件“C:\dev\Python\Einführung\venv\lib\site-packages\discord\client.py”,第 333 行,在 _run_event 等待 coro(*args, **kwargs)
文件“C:/Users/bmichs/Desktop/Ticketbot_Simon_2.py”,第 501 行,在 on_raw_reaction_add async def Vorgefertigtenachricht(ctx):
文件“C:/Users/bmichs/Desktop/Ticketbot_Simon_2.py”,第 439 行,在 berechtigung ticket_number = int(data["ticket-counter"])
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)
【问题讨论】:
标签: discord.py