반응형
그래서 .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
반응형
'파이썬' 카테고리의 다른 글
파이썬 discord.py가 자동으로 결과를 직접 메시지로 전송 (0) | 2020.09.14 |
---|---|
파이썬 두 개의 데이터 프레임 모두에 NaN 만있는 Timeindex를 얻으려면 어떻게해야합니까? (0) | 2020.09.14 |
파이썬 처리 방법 (Python의 자바 스크립트 변수? (0) | 2020.09.14 |
파이썬 Python3 웹 페이지에서 전체 텍스트를 얻지 못함 (0) | 2020.09.13 |
파이썬 목록이 비어 있어서는 안됩니다. (0) | 2020.09.13 |
댓글