Discord.py 质量管理

Discord.py Massdm

我需要这个群发给除作者以外的所有人发消息 但是我真的不知道该怎么做...

@bot.command()
    async def massdm(self, ctx, *, args=None):
        if args != None:
            members = ctx.guild.members
            for member in members:
                try:
                    await member.send(args)
                    print("'" + args + "' sent to: " + member.name)

                except:
                    print("Couldn't send '" + args + "' to: " + member.name)

        else:
            await ctx.channel.send("A message was not provided.")

在discord.py(1.5.x)的新版本中,Intents有一些变化。意图就像权限,你需要定义它才能使用一些东西,比如发送私人消息。您必须在 bot = discord.Bot().

之前定义它
import discord

intents = discord.Intents().all()
bot = discord.Bot(prefix='', intents=intents)

如果你只想启用发送私人消息,你可以intents = discord.Intents().dm_messages但我建议你使用discord.Intents().all()

更多信息,您可以查看API references

这是完整的代码。

@client.command(pass_context=True)
async def massdm(ctx):
    await ctx.message.delete()
    for member in list(client.get_all_members()):
        try:
            embed = discord.Embed(title="Test",
                                  description="Test!",
                                  color=discord.Colour.blurple())
            embed.set_thumbnail(
                url="test")
            embed.set_footer(
                text=
                "test"
            )
            await asyncio.sleep(30)
            await member.send(embed=embed)
        except:
            pass
        #await ctx.send(f"Messaged: {member.name}")
        print(f"Messaged: {member.name}")