我无法解决问题。如何为调用!role命令的用户添加角色。请帮忙。
import discord
from discord.ext import commands
from apex_legends import ApexLegends
intents = discord.Intents.default()
intents.members = True
client = commands.Bot(command_prefix='!', intents = intents)
@client.command()
async def rank(ctx, user_name,):
rank = get_apex_rank(user_name) #return str role name
await ctx.send(f"{rank}")# successfully receiving a response from the bot
member = ctx.author
role = discord.utils.get(member.guild.roles, name=rank)
await member.add_roles(role)
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'User' object has no attribute 'guild'
def get_apex_rank(name):
try:
player = apex.player(name)
a = player.__dict__
return a['_data']['metadata']["rankName"]
except:
return "Wrong name"
@client.command():
async def role(ctx):
role = discord.utils.get(ctx.guild.roles, name="enter role name") #enter role name here
user = ctx.message.author
await user.add_roles(role)
尽管这段代码可以解决问题,但包括解释如何以及为什么解决该问题的说明,确实可以帮助提高您的帖子质量,并可能导致更多的投票。请记住,您将来会为读者回答问题,而不仅仅是现在问的人。请编辑您的答案以添加说明,并指出适用的限制和假设。来自评论