728x90
반응형

송금 기능을 만들기 위해 명령어로 대상을 특정하는 코드를 짜야한다

보통 @을 이용한 멘션으로 대상을 지정하기에 이 방법으로 시도해보려고 한다

 

먼저 디스코드 명령어 함수에서 파라미터를 받으려면 아래와 같이 사용한다

@bot.command()
async def mention(ctx, target):
	if target == "a":
    	await ctx.send("a")

테스트를 위해 !mention a 라고 보내면 a를 답하도록 만들었다

 

다음은 파라미터가 멘션인지 확인한다.

이를 위해 @nickname이 어떻게 인식되는지 확인할 필요가 있다

숫자는 일단 가려봤다

뭔가 이상한게 나왔다...

 

아니다 다를까 stackoverflow에 나와있었다

https://stackoverflow.com/questions/53026087/how-to-get-id-of-a-mentioned-user-discord-py

저번에 회원가입때 많이 봤던 id가 나오는걸 확인할 수 있었다.

참고로 @bot.command(name="")을 이용해 함수이름과 다르게 명령어를 설정할 수 있다. 귀찮아서 안쓰지만...

 

 

이제 멘션된 유저가 userDB에 있는지 확인하자

저번에 user.py에서 만들어둔 함수가 있으니 어렵지 않을 것이다.

@bot.command()
async def mention(ctx, user: discord.User):
	if checkName(user.name, user.id):
    	await ctx.send("등록되지 않는 사용자입니다.")
    else:
    	await ctx.send("송금하기")

DB에 등록된 사용자라면 송금하기 라고 나오고

등록되지 않았다면 알려준다

 

이제 다음 글에서 송금하는 것을 해보자...