尝试使用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
,但遇到相同的错误。
我在做什么错了?
答案 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}")