如何修复“在'message'中找不到引用'channel'”
在写 message.channel.id 的时候,出现了一个错误(找不到 'channel' 的引用),我在网上搜索了很久,也没找到类似的问题和解决办法。
@bot.event
async def on_message_edit(before, after):
if message.channel.id == 1218632975441330266:
pass
else:
chan = bot.get_channel(1203013518408810497)
embed = disnake.Embed(title=f"{before.author} redacted his message",
description=f"Before: {before.content}\nAfter: {after.content}\nAuthor: {before.author.mention}\nWhere: {before.channel.mention}",
timestamp=datetime.now(), color=disnake.Colour.blue())
embed.set_author(name=after.author.name, icon_url=after.author.display_avatar)
await chan.send(embed=embed)
我知道我需要把 message 加到参数里,但加上之后,"after" 这个参数就不管用了,出现了一个错误 TypeError: on_message_edit() 缺少一个必需的位置参数:'after',所以我根本不知道该怎么做……
Disnake 版本是 2.9.1(我确认过了)
1 个回答
0
on_message_edit
这个函数只需要两个参数:before
和 after
,你不能随便再加其他参数。如果你想检查消息的频道 ID,可以用 before.channel.id
,因为 before
和 after
都是 disnake.Message 类型的对象。
if before.channel.id == 1218632975441330266:
return