Как создать DM для всех пользователей в discord.py

#python #discord #discord.py

Вопрос:

Я не знаю, как я могу настроить команду для DM всех пользователей на сервере. Я уже пытался использовать это:

 @commands.command(aliases=["senddm", "alldm"])
async def all_dm(self, ctx, message):
    await ctx.send(f"DM everyone with `{message}` in `{ctx.guild.name}`? [y/n]")

    def check_data(message):
        return message.author == ctx.message.author

    while True:
        try:
            msg = await self.bot.wait_for('message', check=check_data, timeout=int(timeout))
            if msg.content == "y":
                await ctx.send(waitmsg)
                for user in list(ctx.guild.members):
                    try:
                        await user.send(nick=message)
                    except Exception:
                        pass
                await ctx.send(donemsg)
                return
            if msg.content == "n":
                await ctx.send(no_msg)
                return
        except asyncio.TimeoutError:
            await ctx.send(timeout_msg)
            return
 

Мне нужен другой код для настройки команды

Комментарии:

1. Я считаю, что это противоречит спам-рассылкам Discord. Вероятно, вам следует просто пинговать всех. Вы же не хотите, чтобы скорость вашего бота была ограничена.

Ответ №1:

Если вы не хотите этого делать, для создания частных каналов действуют строгие ограничения скорости, и ваш бот может быть помещен в карантин очень быстро. Вы можете найти другие способы связаться с пользователями сервера, например, упоминания.

Вот статья документа об ограничениях скорости: https://discord.com/developers/docs/topics/rate-limits#rate-limits