【问题标题】:Discord python bot can't kickDiscord python bot不能踢
【发布时间】:2022-01-04 16:26:47
【问题描述】:

所以这是我尝试使用的踢成员的代码,但它不起作用,这里出了什么问题?

@client.command(pass_context = True)
@commands.has_permissions(kick_members = True)
async def kick(ctx, member = discord.Member, *, reason = None):
    await member.kick(reason = reason)
    await ctx.message.add_reaction("✅")
    await ctx.send("{} was kicked for the reason: {} by {}".format(member,reason,ctx.author.name))
    await member.send()

@kick.error
async def kick_error(ctx, error):
    if isinstance(error, MissingPermissions):
        x = ""
        for i in MissingPermissions:
            x = x + i + "\n"
        await ctx.send("You don't have the following permissions: {}".format(x))

【问题讨论】:

  • 你能发布完整的回溯吗?
  • 这是另一个问题 - 我没有回溯
  • 它绝对没有错误,所以我什至无法识别问题
  • 尝试用member: discord.Member替换member = discord.Member并删除await member.send()

标签: python discord discord.py bots


【解决方案1】:
  1. 您不必再使用pass_context = True,只需留空() (changelog in documentation)。
  2. member = discord.Member 替换为member : discord.Member
  3. 删除await member.send() - 反正你没有使用它。

更正的代码

@client.command()
@commands.has_permissions(kick_members = True)
async def kick(ctx, member : discord.Member, *, reason = None):
    await member.kick(reason = reason)
    await ctx.message.add_reaction("✅")
    await ctx.send(f"{member.mention} was kicked for the reason: {reason} by {ctx.author.name.mention}")

@kick.error
async def kick_error(ctx, error):
    if isinstance(error, discord.ext.commands.errors.MissingPermissions):
        x = ""
        for i in discord.ext.commands.errors.MissingPermissions:
            x = x + i + "\n"
        await ctx.send(f"You don't have the following permissions: {x}")
    elif isinstance(error, discord.ext.commands.errors.MissingRequiredArgument):
        await ctx.send(str(error))

我更正了您的代码并添加了您可能想要的最新字符串格式化方法 (f"{something}")read about it. 我还添加了提到成员的 .mention 并添加了另一个检查 kick_error()

【讨论】:

  • 谢谢!它现在可以工作了,我知道 f 字符串,但我喜欢使用 .format。但是非常感谢我现在明白了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 2021-09-20
  • 2021-09-17
  • 1970-01-01
  • 2021-09-30
  • 2021-07-18
  • 2021-08-30
相关资源
最近更新 更多