본문 바로가기
파이썬

파이썬 Discord.py 인수를 무시하는 명령을 얻는 방법

by º기록 2020. 9. 14.
반응형

그래서 .invites 또는 .invites @user에 응답 할 수있는 명령을 만들고 싶습니다.

이 명령을 .invites로 실행하면 오류 처리기가 시작되고 @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)
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)

 

해결 방법

 

기본값 값을 사용하면됩니다.
명령에서 사용자가 없음 인지 여부를 간단히 확인할 수 있습니다.

기본값을 사용할 수 있습니다. 아래와 같이 사용자를 없음 으로 설정합니다.

@commands.command()
async def invites(self, ctx, user: discord.Member = None):

 

참조 페이지 https://stackoverflow.com/questions/63756949

 

 

반응형

댓글