Как сделать так, чтобы Дискорд бот отправлял личные сообщения всем пользователям канала(группы)?

Картинка 1

Я попытался сделать отправку всем пользователям сервера дискорд, но возникает ошибка при попытке написать *Raid @everyone, эвриван не найдено. Как это исправить?

import discord 
from discord.ext import commands

import credits 


client = discord.Client()
bot = commands.Bot(command_prefix="*")
token = credits.token_bot


#member_list = [] #Список регестраций, пока оставим

@bot.command(name = "Start")
async def start(ctx):
    await ctx.send('''Привет я игровой бот помощник, я нахожусь в разработке, но уже скоро буду функционировать
    я пока знаю одну команду:
    1) *Map - выслать ссылку на сайт показывающий, где какие ресурсы найти''')


@bot.command(name = 'Map')
async def map(ctx):
    await ctx.send("https://www.newworld-map.com/#/")
    
    
    
@bot.command(name = 'Raid')
async def send_m(ctx, member: discord.Member):
    await member.send(f'{ member.name }, Пора на осаду')


bot.run(token)

введите сюда описание изображения


Ответы (1 шт):

Автор решения: HellSai

Как сделать так, чтобы Дискорд бот отправлял личные сообщения всем пользователям канала(группы)?

Ответ очень прост. Просто переберите участников на сервере.

@bot.command(name = 'Raid')
async def send_m(ctx, member: discord.Member = None):
    if member is None:
        for member in ctx.message.guild.members:
            try:
                user = await bot.fetch_user(member.id)
                await user.send('Текст, который будет отправляться')
            except:
                print("ЛС закрыто!")
    else:
         user = await.bot.fetch_user(member.id)
         await user.send('Тест')

Проверьте, должен работать.

→ Ссылка