Почему пользователю не приходит сообщение в личные сообщения?
Сначала пишет "Участник username был разбанен." ,а потом "Неправильный формат команды. Используйте: $unban <ID участника>", плюс не приходит сообщение о разбане.
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f'We have logged in as {client.user}')
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$clear'):
if any(role.name in ["Admin", "Moderator"] for role in message.author.roles):
await message.channel.purge(limit=None)
await message.channel.send('Сообщения удалены!')
else:
await message.channel.send('Вы не можете использовать эту команду.')
if message.content.startswith('$ban'):
if any(role.name in ["Owner", "Admin"] for role in message.author.roles):
try:
args = message.content.split()
member_id = int(args[1])
member = await message.guild.fetch_member(member_id)
reason = " ".join(args[2:]) or "No reason provided."
await member.send(f'Вы были забанены на сервере {message.guild.name}. Причина: {reason}')
await member.send("Поддержка: westeyeswie#6607 ")
await member.ban()
await message.channel.send(f'Участник {member.display_name} был забанен. Причина: {reason}')
except:
await message.channel.send('Неправильный формат команды. Используйте: $ban <ID участника> <причина>')
else:
await message.channel.send('Вы не можете использовать эту команду.')
if message.content.startswith('$unban'):
if any(role.name in ["Owner", "Admin"] for role in message.author.roles):
try:
args = message.content.split()
member_id = int(args[1])
member = await client.fetch_user(member_id)
await message.guild.unban(member)
await message.channel.send(f'Участник {member.display_name} был разбанен.')
user = client.get_user(member_id)
await user.send('Вы были разбанены на сервере ChatGPT Bot')
except:
await message.channel.send('Неправильный формат команды. Используйте: $unban <ID участника>')
else:
await message.channel.send('Вы не можете использовать эту команду.')
Источник: Stack Overflow на русском