"mute" 命令根本不起作用(Discord.py,重写)
"mute" command not working at all (Discord.py, rewrite)
所以我目前正在为我的 Discord 服务器制作一个机器人,我想添加一个 'mute' 命令,但它根本不起作用这是代码(我正在使用 python 3.8.6 )
@client.command()
@commands.has_any_role('Trial Moderator', 'Moderator', 'Administrator', 'Owner')
async def mute(ctx, member : discord.Member, *, reason=None):
muted_role = get(Guild.roles, id='760885845233631233')
for role in member.roles:
if role == muted_role:
await ctx.send(f'{member} is already muted!')
break
member.add_roles(muted_role)
await ctx.send(f'Muted {member}\nReason: {reason}')
当我 运行 命令时没有错误或任何东西,我 100% 确定我有足够的权限,当我 运行 任何其他命令时它们都能完美地工作
你的错误在这一行:
muted_role = get(Guild.roles, id='760885845233631233')
您的 ID 必须是整数,不能是字符串。您还提供了一个空白 Guild
对象,因此它可以找到任何角色:
muted_role = get(ctx.guild.roles, id=760885845233631233)
您还可以进行一些重构:
@client.command()
@commands.has_any_role('Trial Moderator', 'Moderator', 'Administrator', 'Owner')
async def mute(ctx, member : discord.Member, *, reason=None):
muted_role = get(ctx.guild.roles, id=760885845233631233)
if muted_role in member.roles:
await ctx.send(f'{member} is already muted!')
else:
member.add_roles(muted_role)
await ctx.send(f'Muted {member}\nReason: {reason}')
所以我目前正在为我的 Discord 服务器制作一个机器人,我想添加一个 'mute' 命令,但它根本不起作用这是代码(我正在使用 python 3.8.6 )
@client.command()
@commands.has_any_role('Trial Moderator', 'Moderator', 'Administrator', 'Owner')
async def mute(ctx, member : discord.Member, *, reason=None):
muted_role = get(Guild.roles, id='760885845233631233')
for role in member.roles:
if role == muted_role:
await ctx.send(f'{member} is already muted!')
break
member.add_roles(muted_role)
await ctx.send(f'Muted {member}\nReason: {reason}')
当我 运行 命令时没有错误或任何东西,我 100% 确定我有足够的权限,当我 运行 任何其他命令时它们都能完美地工作
你的错误在这一行:
muted_role = get(Guild.roles, id='760885845233631233')
您的 ID 必须是整数,不能是字符串。您还提供了一个空白 Guild
对象,因此它可以找到任何角色:
muted_role = get(ctx.guild.roles, id=760885845233631233)
您还可以进行一些重构:
@client.command()
@commands.has_any_role('Trial Moderator', 'Moderator', 'Administrator', 'Owner')
async def mute(ctx, member : discord.Member, *, reason=None):
muted_role = get(ctx.guild.roles, id=760885845233631233)
if muted_role in member.roles:
await ctx.send(f'{member} is already muted!')
else:
member.add_roles(muted_role)
await ctx.send(f'Muted {member}\nReason: {reason}')