@bot.command()
async def dm(ctx, member: discord.Member):
id = member.id
for a in range(5):
await bot.send_message(id, "")
我这样做了我的错误是:
从 exc 提高 CommandInvokeError(exc) discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:'Bot'对象没有属性'message'
答案 0 :(得分:2)
这是你的错误的重要部分,它基本上已经显示了它是关于什么的; bot
没有 message
属性,在您的情况下它没有并且应该是 member.send
。您也不需要获取成员的 id。
AttributeError: 'Bot' object has no attribute 'message'
通过重写您的命令,修复了这些错误
@bot.command()
async def dm(ctx, member: discord.Member):
for a in range(5):
await member.send("text")
您还可以向命令添加更具体的细节,在此示例中,如果您不包含成员,则不会导致错误,或者如果无法访问该成员,则会处理错误。
@bot.command()
async def dm(ctx, member: discord.Member=None):
if member == None:
await ctx.send('Mention a member')
return
try:
for a in range(5):
await member.send("text")
except commands.CommandInvokeError:
await ctx.send("Couldn't send message to user")
答案 1 :(得分:0)
尝试使用 member.send
而不是 bot.send_message
。
答案 2 :(得分:0)
只需添加 user = await bot.fetch_user(id)
,然后执行 await user.send("Hello")
。
@bot.command()
async def dm(ctx, member: discord.Member):
id = member.id
user = await bot.fetch_user(id)
for a in range(5):
await user.send("Hello")