我正在制作一个不和谐功能,我希望实现的功能之一是踢,当您不是管理员或您试图踢管理员时,它会做出响应,我编写的代码适用于踢人,但它当我尝试输入回复时完全停止工作。
这是目前的代码-
@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)
答案 0 :(得分:0)
您的 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')