首页 > 解决方案 > discord.py 赋予角色问题

问题描述

我正计划发出静音命令,但我有一个大问题,我不知道该怎么做。代码:

@client.command()
@commands.has_role("Mod")
async def mute(ctx, user : discord.Member):
    role = 730016083871793163
    #h = 3600 #seconds
    #m = 60 #seconds
    await user.add_roles(role)

错误:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'int' object has no attribute 'id'

标签: pythondiscord

解决方案


您收到此错误的原因是您提供的是int对象而不是role对象。您的int对象没有属性id,但是role有。

要获取角色对象,您可以使用discord.utils.get.

roleobject = discord.utils.get(ctx.message.guild.roles, id=role)
await user.add_roles(roleobject)

推荐阅读