@SenaK

Как сделать рассылку сообщений дискорд ботом?

Есть очень серьезные проблемы. Я хочу, чтобы бот автоматически отправил сообщение в лс человеку, которого разбанили с сообщением, что он снова может вернуться на сервер. Если я пишу ctx.user.send выдается ошибка что это подкласс и тп и тд(я знаю, что это подкласс вроде authorа)

Вот сам код:
#unban
@commands.has_permissions(administrator = True)
@client.command(pass_context = True)
async def unban(ctx, *, member):
    await ctx.channel.purge(limit = 1)
 
    banned_users = await ctx.guild.bans()
 
    for ban_entry in banned_users:
 
        user = ban_entry.user
        
        
        await ctx.guild.unban(user)
        await ctx.send(F"Добро пожаловать. Снова. {user.mention}")
        await ctx.user.send("Божество услышало твой зов, теперь снова можешь вернуться :3")        #https://discord.gg/
        return
  • Вопрос задан
  • 1837 просмотров
Решения вопроса 1
Просто используйте метод "send" на пользователе

@commands.has_permissions(administrator = True)
@client.command()
async def unban(ctx, *):
    await ctx.message.delete() # Для удаления сообщения с командой, если в оригинале подразумевалось это
 
    banned_users = await ctx.guild.bans()
 
    for ban_entry in banned_users:
        user = ban_entry.user
        await ctx.guild.unban(user)
        await ctx.send(f"Добро пожаловать. Снова. {user.mention}")
        await user.send("Божество услышало твой зов, теперь снова можешь вернуться :3")


Примечание: Бот сможет отправить сообщение пользователю только если с пользователем у бота есть общий сервер
Примечание: "pass_context=True" - устаревший кусок кода, на текущей версии Discord.py такого аргумента у конструктора команд нет, Context передаётся в команду всегда
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы