Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Discord.py如何获取忽略参数的命令_Python_Arguments_Discord_Bots - Fatal编程技术网

Python Discord.py如何获取忽略参数的命令

Python Discord.py如何获取忽略参数的命令,python,arguments,discord,bots,Python,Arguments,Discord,Bots,所以我想发出一个命令,可以回复.invests或.invests@user 当我以.invests的形式运行这个命令时,我的错误处理程序会启动并说我需要一个@user 我试图删除我的错误处理程序,但命令没有执行任何操作 如何使此命令双向工作 @commands.command() async def invites(self, ctx, user: discord.Member): global last1 global invites1

所以我想发出一个命令,可以回复.invests或.invests@user

当我以.invests的形式运行这个命令时,我的错误处理程序会启动并说我需要一个@user

我试图删除我的错误处理程序,但命令没有执行任何操作

如何使此命令双向工作

@commands.command()
    async def invites(self, ctx, user: discord.Member):
        global last1
        global invites1
        try:
            userinvitecount = 0
            gld = self.bot.get_guild(int(guild_id))
            while True:
                invs = await gld.invites()
                tmp = []
                for i in invs:
                    if user.id == i.inviter.id:
                        top = i.uses
                        userinvitecount += int(top)

                    tmp.append(tuple((i.inviter.id, i.code, i.uses)))
                invites1 = tmp
                break
            usr = gld.get_member(int(user.id))
            eme = discord.Embed(description=f"{usr.mention} has {userinvitecount} invite's", color=0x03d692, title=" ")
            await ctx.send(embed=eme)
        except commands.MissingRequiredArgument:
            user = ctx.message.author.id
            userinvitecount = 0
            gld = self.bot.get_guild(int(guild_id))
            while True:
                invs = await gld.invites()
                tmp = []
                for i in invs:
                    if user.id == i.inviter.id:
                        top = i.uses
                        userinvitecount += int(top)

                    tmp.append(tuple((i.inviter.id, i.code, i.uses)))
                invites1 = tmp
                break
            usr = gld.get_member(int(user.id))
            eme = discord.Embed(description=f"{usr.mention} has {userinvitecount} invite's", color=0x03d692, title=" ")
            await ctx.send(embed=eme)

您可以通过使用默认值来实现这一点。
在命令中,您只需检查用户是否为None

可以使用默认值,例如将用户设置为
None
,如下所示

@commands.command()
异步def邀请(self、ctx、user:discord.Member=None):
``@commands.command()异步def邀请(self,ctx,user:discord.Member=None):如果user为None:user=ctx.message.author``工作得很好谢谢
if isinstance(error, commands.MissingRequiredArgument):
        # generic error handler for commands entered wrong
        embed = discord.Embed(
            title="Failed",
            description="Failed to use command properly \n Please try again.",
            colour=discord.Colour.blurple(),
        )
        await ctx.send(embed=embed)