因此,我创建了一个 discord.py 机器人,并且我正在为该机器人添加一个功能,以便它可以禁止和踢人。然而,有一个问题。每当我输入 !!kick @user_account 或 !!ban @user_account 时,它什么都不做。我也尝试将工作“ctx”更改为“message”,但发生了同样的事情。非常感谢您的帮助,谢谢。
@client.command()
async def kick(ctx, member: discord.Member, *, reason=None):
await member.kick(reason=reason)
@client.command()
async def ban(ctx, member: discord.Member, *, reason=None):
await member.ban(reason=reason)
答案 0 :(得分:0)
@client.command()
async def kick(ctx, member: discord.Member):
reason = ""
await member.kick(reason=reason)
@client.command()
async def ban(ctx, member: discord.Member):
reason=""
await member.ban(reason=reason)
答案 1 :(得分:0)
这里是ban kick unban code discord py,命令下的错误是没有权限的人无法执行
<块引用>#--- kick 命令 --- @client.command() @commands.guild_only() @commands.has_permissions(kick_members=True) async def kick(ctx, user:
discord.Member, *, reason=None): await user.kick(reason=reason)
await ctx.send(f"{user} 被踢了!")
@kick.error async def kick(ctx, error): if isinstance(error, 命令。缺少权限): await ctx.send("您没有权限运行此命令")
#--- 禁止命令 --- @client.command() @commands.guild_only() @commands.has_permissions(ban_members=True) async def ban(ctx, user: 不和谐。成员,*,原因=无): 等待 user.ban(reason=reason) await ctx.send(f"{user} 已被禁止!")
@ban.error async def ban(ctx, error): if isinstance(error, 命令。缺少权限): await ctx.send("您没有权限运行此命令")
#--- unban 命令 --- @client.command() @commands.guild_only() @commands.has_permissions(ban_members=True) async def unban(ctx, id: 内部): user_id = await client.fetch_user(id) 等待 ctx.guild.unban(user_id) await ctx.send(f"{user_id} 已被解禁!")
@unban.error async def ban(ctx, error): if isinstance(error, 命令。缺少权限): await ctx.send("您没有权限运行此命令")
答案 2 :(得分:0)
我有自己的机器人,它似乎对我有用。由于您说没有打印错误,您必须通过执行以下操作来打印出错误是什么:
@client.event
async def on_command_error(ctx, error):
if isinstance(error, commands.CommandError): # if a command fails
print(error) # print the error
或者,如果您想为每个单独的命令执行此操作:
@kick.error
async def kick_error(ctx, error):
if isinstance(error, commands.CommandError): # if a command fails
print(error) # print the error
@ban.error
async def ban_error(ctx, error):
if isinstance(error, commands.CommandError): # if a command fails
print(error) # print the error
一旦发现错误,请尝试解决它。