我想提高我在discord.py中的踢球命中率 [英] I want to improve my kick command in discord.py

查看:29
本文介绍了我想提高我在discord.py中的踢球命中率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在discord.py中制作了一个机器人,它有一个Kick命令。但是我想让机器人告诉我,当有人使用命令时,请告诉我应该踢谁,而不是说要踢谁。我的意思是,如果有人使用Kick命令而没有提到要踢谁,机器人会说&请告诉我要踢谁。 我正在努力做一个好的机器人,所以请帮帮我。

async def kick(ctx, member : discord.Member, *, reason=None):
    if (ctx.message.author.permissions_in(ctx.message.channel).kick_members):
        await member.kick(reason=reason)
        await ctx.send(f"{member.mention} has successfully been kickded for {reason}")
    if not (ctx.message.author.permissions_in(ctx.message.channel).kick_members):
        await ctx.send("You don't perms to play football with Araforce and kick them. Sed")
    if not user:
        await ctx.message.delete()
        msg = await ctx.send("You are a bit idiot, don't you know I can't kick anyone if you don't tell whom to kick? Tell me whom to kick and the go away.")
        await sleep(4.7)
        await msg.delete()
        return
    if not reason:
        await ctx.message.delete()
        msg2 = await ctx.send("Hmm.. Why I will kick him? Specify a reason please.")
        await sleep(4.7)
        await msg2.delete()
        return```

推荐答案

我将ifs更改为错误处理程序,这是必需的,因为如果您不传递其中一个参数(User或Reason),您将收到错误。

完整代码:

@client.command()
async def kick(ctx, member: discord.Member, *, reason): #if you will change "member" and "reason" to something else remember to also change it in error handler
    await member.kick(reason=reason)
    await ctx.send(f"{member.mention} has successfully been kicked for {reason}")

@kick.error #cool mini error handler
async def kick_error(ctx, error):
    if isinstance(error, discord.ext.commands.errors.MissingRequiredArgument):
        if str(error) == "member is a required argument that is missing.": #change this if you changed "member"
            await ctx.message.delete()
            await ctx.send("You are a bit idiot, don't you know I can't kick anyone if you don't tell whom to kick? Tell me whom to kick and then go away.", delete_after=4.7) #you don't have to use "await sleep" you can use "delete_after" parameter
        elif str(error) == "reason is a required argument that is missing.": #change this if you changed "reason"
            await ctx.message.delete()
            await ctx.send("Hmm.. Why I will kick him? Specify a reason please.", delete_after=4.7)
    elif isinstance(error, discord.ext.commands.errors.MissingPermissions):
        await ctx.send("You don't have perms to play football with Araforce and kick them. Sed")

Discord error handling example

这篇关于我想提高我在discord.py中的踢球命中率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆