【问题标题】:Discord bot kick function problemsDiscord bot踢功能问题
【发布时间】:2021-05-23 23:35:29
【问题描述】:

我正在制作一个不和谐功能,我希望实现的功能之一是 kick,它会在您不是管理员或试图踢管理员时做出响应,我编写的代码适用于踢人,但它当我尝试输入回复时,完全停止工作。

这是目前的代码-

@bot.command(name='kick')
async def kick(ctx, user: discord.Member, *, reason="No reason provided"):
    if user.guild_permissions.administrator:
        await ctx.send(f'{user.mention} is an admin')
    else:
        await user.kick(reason=reason)
        kick = discord.Embed(title=f"Kicked {user.name}!", description=f"Reason: {reason}\nBy: {ctx.author.mention}")
        await ctx.channel.send(embed=kick)
        await user.send(embed=kick)

【问题讨论】:

  • 它会引发任何错误吗?
  • 您能否更具体地说明您的问题以及您尝试了什么?我已经测试过你的代码并且它可以工作。

标签: python discord discord.py


【解决方案1】:

您的 if else 语句与问题不匹配,要踢人,它应该具有管理员权限,如果它具有管理员权限但根据您的代码没有踢出原因,只有没有管理员权限的人才能踢出用户.. .

正确的代码应该是

@bot.command(name='kick')
async def kick(ctx, user: discord.Member, *, reason="No reason provided"):
    if user.guild_permissions.administrator:
        await user.kick(reason=reason)
        kick = discord.Embed(title=f"Kicked {user.name}!", description=f"Reason: {reason}\nBy: {ctx.author.mention}")
        await ctx.channel.send(embed=kick)
        await user.send(embed=kick)
    else:
        await ctx.send(f'{user.mention} is not an admin')

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2020-12-20
    • 2020-01-22
    • 1970-01-01
    • 2021-09-17
    相关资源
    最近更新 更多