为了账号安全,请及时绑定邮箱和手机立即绑定

谁能帮我解决这个错误?不和谐.py

谁能帮我解决这个错误?不和谐.py

MMMHUHU 2023-06-27 13:08:46
这样做的目的是查看用户是否没有管理消息权限,然后根据他们所说的内容发送一条消息,这可以工作,但它会用这个错误填充我的控制台。这是我收到的错误:Traceback (most recent call last):  File "C:\Python38\lib\site-packages\discord\client.py", line 312, in _run_event    await coro(*args, **kwargs)  File "C:\Users\cuzto\Desktop\DiscordBot.-py\cogs\events.py", line 106, in on_message    if not message.author.permissions_in(message.channel).manage_messages:  File "C:\Python38\lib\site-packages\discord\user.py", line 232, in permissions_in    return channel.permissions_for(self)  File "C:\Python38\lib\site-packages\discord\channel.py", line 146, in permissions_for    base = super().permissions_for(member)  File "C:\Python38\lib\site-packages\discord\abc.py", line 475, in permissions_for    roles = member.rolesAttributeError: 'User' object has no attribute 'roles'这是代码:    @commands.Cog.listener()    async def on_message(self, message):        if not message.author.permissions_in(message.channel).manage_messages:            if "discord.gg" in message.content.lower():                await message.delete()                await message.channel.send(f"temp, <@{message.author.id}>")有人会告诉我如何解决这个问题吗?我尝试了很多事情,但我不知道还能做什么
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

消息在 DM 中发送,而不是在服务器中发送。


当 DM 发送时,message.author将是一个 User 对象,正如您所知,在 DM 中没有角色,所以它是一个错误。


当消息在服务器中发送时,message.author将是一个Member对象,Guild中的User成为Member,因为服务器中有角色,Member.roles将有效。


检查消息是否没有公会属性,然后返回


@commands.Cog.listener()

async def on_message(self, message):

    if not message.guild: return

    if not message.author.permissions_in(message.channel).manage_messages:

        if "discord.gg" in message.content.lower():

            await message.delete()

            await message.channel.send(f"temp, <@{message.author.id}>")


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信