通过用户提及向用户添加角色

时间:2019-04-21 05:52:49

标签: python discord discord.py-rewrite

我正在尝试制作一个能够向用户添加角色的机器人。我也想在命令中传递角色。 因此语法应为:
    !addrole ROLENAME @user
我尝试过:

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

def read_token():
    with open("token.txt", "r") as f:
        lines = f.readlines()
        return lines[0].strip()

token = read_token()

bot = commands.Bot(command_prefix='!')


@bot.command(pass_context=True)
async def addrole(ctx, arg1, member: discord.Member):
    role = get(member.guild.roles, name={arg1})
    await member.add_roles(role)

bot.run(token)

但是它不起作用。我收到错误消息:
AttributeError: 'NoneType' object has no attribute 'id'

1 个答案:

答案 0 :(得分:1)

您已经为member使用了converter,也为role使用了一个:

from discord import Member, Role

@bot.command()
async def addrole(ctx, member: Member, *, role: Role):
    await member.add_roles(role)

, *,允许您提供have multiple words的角色名称。