问题描述
我在制作添加角色"时遇到了麻烦.discord.py 中的命令.我不知道出了什么问题;它只是不起作用.
I have trouble with making an "add role" command in discord.py. I don't know what is wrong; it just doesn't work.
@client.command() @commands.has_role("*****") async def addrole(ctx): user = ctx.message.author role = discord.utils.get(user.server.roles, name="Test") await client.add_roles(user, role)
推荐答案
from discord.ext import commands from discord.utils import get bot = commands.Bot(command_prefix='!') @bot.command(pass_context=True) @commands.has_role("*****") # This must be exactly the name of the appropriate role async def addrole(ctx): member = ctx.message.author role = get(member.server.roles, name="Test") await bot.add_roles(member, role)
我认为您的代码中唯一真正的错误是 @bot.command 装饰器中缺少 pass_context=True.你可能已经看过一些没有这个的代码,但这可能属于 discord.py
I think the only real mistake in your code is the lack of pass_context=True in the @bot.command decorator. You may have seen some code without this, but that likely belongs to the experimental "rewrite" branch of discord.py