#python #discord.py
#python #discord.py
Вопрос:
Что это должно сделать, так это посмотреть, нет ли у пользователя разрешения управлять сообщениями, затем отправить сообщение на основе того, что они сказали, и это работает, но оно заполняет мою консоль этой ошибкой. Это ошибка, которую я получаю:
Traceback (most recent call last):
File "C:Python38libsite-packagesdiscordclient.py", line 312, in _run_event
await coro(*args, **kwargs)
File "C:UserscuztoDesktopDiscordBot.-pycogsevents.py", line 106, in on_message
if not message.author.permissions_in(message.channel).manage_messages:
File "C:Python38libsite-packagesdiscorduser.py", line 232, in permissions_in
return channel.permissions_for(self)
File "C:Python38libsite-packagesdiscordchannel.py", line 146, in permissions_for
base = super().permissions_for(member)
File "C:Python38libsite-packagesdiscordabc.py", line 475, in permissions_for
roles = member.roles
AttributeError: '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:
Сообщение отправляется в DM, а не на сервер.
Когда DM отправляется, message.author
это будет объект пользователя, и, как вы знаете, в DM нет ролей, поэтому это ошибка.
Когда сообщение отправляется на сервер, message.author
будет объектом-участником, пользователь в гильдии становится участником, поскольку на сервере есть роли, 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}>")
Комментарии:
1. Спасибо, чувак, это то, что я искал, Ты бог, посылающий
2. Ошибка все еще сохраняется, добавьте меня в discord, чтобы мы могли обсудить это проще Motzumoto #9773