我正在尝试制作一个能够向用户添加角色的机器人。我也想在命令中传递角色。
因此语法应为:
!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'
答案 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的角色名称。