Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有人能帮我解决这个错误吗?不和谐_Python_Discord.py - Fatal编程技术网

Python 有人能帮我解决这个错误吗?不和谐

Python 有人能帮我解决这个错误吗?不和谐,python,discord.py,Python,Discord.py,这应该做的是查看用户是否没有管理消息的权限,然后根据他们所说的内容发送消息,这是可行的,但它会用这个错误填充我的控制台。 这是我得到的错误: 回溯(最近一次呼叫最后一次): 文件“C:\Python38\lib\site packages\discord\client.py”,第312行,在运行事件中 等待coro(*args,**kwargs) 文件“C:\Users\cuzto\Desktop\DiscordBot.-py\cogs\events.py”,第106行,在on_消息中 如果不是

这应该做的是查看用户是否没有管理消息的权限,然后根据他们所说的内容发送消息,这是可行的,但它会用这个错误填充我的控制台。 这是我得到的错误:

回溯(最近一次呼叫最后一次):
文件“C:\Python38\lib\site packages\discord\client.py”,第312行,在运行事件中
等待coro(*args,**kwargs)
文件“C:\Users\cuzto\Desktop\DiscordBot.-py\cogs\events.py”,第106行,在on_消息中
如果不是(message.channel)中的message.author.permissions\u,则管理\u消息:
文件“C:\Python38\lib\site packages\discord\user.py”,第232行,在
返回频道。权限\u(自我)
文件“C:\Python38\lib\site packages\discord\channel.py”,第146行,位于
base=super()。对(成员)的权限
文件“C:\Python38\lib\site packages\discord\abc.py”,第475行,位于
角色=成员。角色
AttributeError:“用户”对象没有属性“角色”
代码如下:

    @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}>")
@commands.Cog.listener()
_消息上的异步定义(self,message):
如果不是(message.channel)中的message.author.permissions\u,则管理\u消息:
如果message.content.lower()中的“discord.gg”:
等待消息。删除()
等待消息。通道。发送(f“temp”)

有人能告诉我怎么解决这个问题吗?我尝试了很多方法,但我不确定还能做些什么

消息是用DM发送的,而不是服务器

发送DM时,
message.author
将是一个用户对象,正如您所知,DM中没有角色,因此这是一个错误

在服务器中发送消息时,
message.author
将是成员对象,公会中的用户将成为成员,因为服务器中有角色,所以Member.roles将有效

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

@commands.Cog.listener()
_消息上的异步定义(self,message):
如果不是message.guild:返回
如果不是(message.channel)中的message.author.permissions\u,则管理\u消息:
如果message.content.lower()中的“discord.gg”:
等待消息。删除()
等待消息。通道。发送(f“temp”)

谢谢,伙计,这就是我一直在寻找的,你是上帝派来的。错误仍然存在。请在不和谐中添加我,这样我们就可以讨论更简单的Motzumoto#9773