【发布时间】:2021-03-26 11:03:48
【问题描述】:
我无法解决问题。如何为调用 !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"
【问题讨论】:
-
能否也请添加
get_apex_range函数。 -
另外,你是在调用dm的命令吗?
-
请编辑问题,不要发布在 cmets 中,无法阅读
-
你也没有回答我的第二个问题,你是用dm的命令吗?你启用
intents.members了吗? -
我在不和谐中调用命令,我可以看到我得到 str "rank" = Bronze 4。你启用了 intents.members 吗? - 没有
标签: discord.py roles member