繁体   English   中英

Discord.py 静音命令错误 AttributeError

[英]Discord.py mute command error AttributeError

我的代码如下:

#Mute Command
@bot.command(pass_context = True)
async def mute(ctx, member: discord.Member):
    if ctx.message.author.server_permissions.administrator or ctx.message.author.id == '585578670207401984':
        role = discord.utils.get(member.server.roles, name='Muted')
        await ctx.add_roles(member, role)
        await ctx.send("User {0} was muted by {1}!")
    else:
        await ctx.send("You do not have permission to mute this member.")

但是,当我使用该命令时,出现此错误:

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

有人可以帮忙吗?

你有几个错误,你的代码中的属性错误。

  • Member对象没有属性server_permissions但它有guild_permissions

  • 您不能将成员 id 与字符串进行比较,您需要与整数进行比较。

  • Member对象没有属性server 您需要将member.server.roles更改为member.guild.roles

  • 你不能用ctx.add_roles添加角色,你需要做member.add_roles

  • await ctx.send("User {0} was muted by {1}!") ,您没有格式化变量,因此它只会发送User {0} was muted by {1}! 到聊天。 您可以通过执行await ctx.send("User {0} was muted by {1}!".format(member.mention, message.author.mention))

您可以将代码更改为:

@bot.command(pass_context = True)
async def mute(ctx, member: discord.Member):
    if ctx.message.author.guild_permissions.administrator or ctx.message.author.id == 585578670207401984:
        role = discord.utils.get(ctx.guild.roles, name='Muted')
        await member.add_roles(role)
        await ctx.send("User {0} was muted by {1}!".format(member.mention, message.author.mention))
    else:
        await ctx.send("You do not have permission to mute this member.")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM