不和谐公会的直接消息成员返回错误

时间:2020-11-03 03:56:50

标签: python discord.py discord.py-rewrite

尝试使用python命令创建一个命令,向不和谐的公会的所有成员发送消息。
我遇到的错误是这样的: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'ClientUser' object has no attribute 'dm_channel'
这是我的代码:

@bot.command()
async def dmall(ctx, *, msg):
    for member in ctx.guild.members:
        if member.dm_channel is not None:
            await member.dm_channel.send(msg)
        else:
            await member.create_dm()
            await member.dm_channel.send(msg)
    print("sent message to all guild members.")

这对我来说很奇怪,因为该命令几个月前就可以使用,并且文档中还提到了“ member.create_dm()”的属性。我还有另一个项目,使用的dm特定用户的selfbot与member.create_dm部分一起使用。
另外,我尝试了以下代码:

@bot.command()
async def dmall(ctx, *, msg):
    for member in ctx.guild.members:
        dm_channel = await member.create_dm()
        await dm_channel.send(msg)

但是我遇到了同样的错误,discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'ClientUser' object has no attribute 'create_dm'
另外,我尝试使用ctx.guild.fetch_members,但遇到相同的错误。
我在做什么错了?

1 个答案:

答案 0 :(得分:0)

请记住不要滥用此行为,因为根据Discord's TOS

滥用行为是可禁止的犯罪

下面是可以使用的代码,应该很简单。

@bot.command()
async def dmall(ctx, arg):
    for m in bot.get_all_members():
        await m.send(f"{ctx.message.author} : {arg}")