我试图让我的机器人为使用该命令的人提供一个角色,但它说“AttributeError:'tuple'对象没有属性'id'”

时间:2021-03-01 21:50:27

标签: discord discord.py

我是一个完整的初学者,所以有人可以向我解释这里有什么问题以及如何解决吗?谢谢

from discord.ext import commands
from discord.utils import get


@client.command()
async def reserve(message, *, stand):
        channel = message.channel,
        author = message.author,
        guild = message.guild,
        the_world = get(message.guild.roles,name="The World"),
        if stand == 'The World':
            await message.author.add_roles(the_world)


The error:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'tuple' object has no attribute 'id'

1 个答案:

答案 0 :(得分:0)

假设在您的机器人的其余部分运行时,您提供的代码会导致此错误,因为您使用的是 get(ctx.guild.roles,name="The World"),请确保在您的参数中使用 discord.utils

discord.utils.get(ctx.guild.roles,name="The World")

此外,我还修改了您的更多代码,作为命令,您不需要传递 message 作为参数,使用 ctx 及其属性。

@client.command()
async def reserve(ctx, *, stand):
        if stand == 'The World':
            the_world = discord.utils.get(ctx.guild.roles,name = "The World"),
            await ctx.author.add_roles(the_world)