特定の人がミュートの役割を持っているかどうかを確認する必要があります
@bot.command(pass_context=True)
@commands.has_role("Admin")
async def unmute(ctx, user: discord.Member):
role = discord.utils.find(lambda r: r.name == 'Member',
ctx.message.server.roles)
if user.has_role(role):
await bot.say("{} is not muted".format(user))
else:
await bot.add_roles(user, role)
このエラーがスローされます
コマンドで例外が発生しました:AttributeError: 'Member' object has no attribute 'has_role'
どうすればいいのかわからないので、できる限りのサポートをお願いします
メンバーには.has_role()
メソッドがありませんが、.roles
を使用してすべてのロールのリストを取得できます。
ユーザーに特定の役割があるかどうかを確認するには、role in user.roles
を使用できます。
@bot.command(pass_context=True)
@commands.has_role("Admin")
async def unmute(ctx, user: discord.Member):
role = discord.utils.find(lambda r: r.name == 'Member', ctx.message.server.roles)
if role in user.roles:
await bot.say("{} is not muted".format(user))
else:
await bot.add_roles(user, role)
参考資料: https://discordpy.readthedocs.io/en/latest/api.html#member