[英]Why Does My Discord.py Kick Command have a problem recognizing nicknames?
@client.command( )
async def kick(ctx, user_name: discord.User, reason):
await ctx.guild.kick(user_name)
await ctx.send(f"""{user_name} has been kicked for {reason}""")
出于某种原因,有时我的机器人无法识别某些昵称。 对于没有空格/只有一个词的昵称,机器人踢他们没有问题。 但是对于带有下划线或空格的昵称,它就不起作用了。 我做错了什么吗?
您的命令中有一些错误:
user_name
后面写一个句子, reason
只会取这个句子的第一个单词作为值。 要解决第一个问题: #Change async def kick(ctx, user_name: discord.User, reason): #To async def kick(ctx, user_name: discord.User, *, reason):
user_name
应该是Member
object,而不是User
object。 这样,您的程序将仅在调用命令的服务器中查找指定用户: #Change async def kick(ctx, user_name: discord.User, *, reason): #To async def kick(ctx, user_name: discord.Member, *, reason):
!kick @User You didn't respect the rules
!kick User You didn't respect the rules
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.