HIPHANEON 자세히보기

디스코드/봇 개발일지

[ 팀 하말 ] #1 가입, 기본 정보

네오니 2021. 9. 20. 09:00
반응형

오늘은 유저들의 가입시스템과

정보를 관리하는 시스템을 만들어 볼것이다

봇들의 상호작용을 위해 유저의 정보를

데이터베이스에다 저장을 해야한다.

 

sqlite3을 사용하려고 했지만 일단

설명을 위해

자주 사용했던 openxlpy 모듈을 사용하여

엑셀에 저장할것이다

나중에 호스팅을 구하면 그땐

sqlite3을 쓸 예정이다

일단 기능부터 구현하고 다만들면 

디자인과 시세를 정할테니 안예뻐도 참고해주시길


명령어를 입력했을때

A열에는 디스코드 아이디

B열에는 디스코드닉네임

C열에는 가입일

D열에는 가입을 받은 봇이름

E열에는 각종 쿨타임 (추후 돈받기 명령어에 사용예정)

F열에는 보유 코인, 가입시 500원 지급을 하게

코드를 짜봤다.

 잘 저장되는것을 알수 있다

 

다음은 가입이 여러번 되는것을 막기위해

if sheet["A" + str(i)].value == str(message.author.id):

만약 명령어를 실행시킨 유저의 아이디가 A시트에 있을때

문을 넣어준다

 

잘 실행이 되는 것을 알수있다

 

다음은 코인을 설정해줄것이다

 

먼저 돈받기이다

돈은 50~100원 사이의 돈을

받을 수있게 짜봤다

시세같은건 나중에 맞출테니 일단

기능만 맞추기로 했다

given_coin_list = [50,60,70,80,90,100]
given_coin = r.choice(given_coin_list)

 random모듈을 이용해

리스트 안의 랜덤값을 주는 것으로 해봤더니

 

 

돈받기는 일정시간의 쿨타임이 필요하기 때문에

아까 e열에 있던것을 사용해줄것이다

 

False = 쿨타임적용 X

True = 쿨타임 적용 O

 

if sheet["E" + str(i)].value == "False":
# 만약 E열이 False일때:

sheet["E" + str(i)].value = str("True")
# E의 열을 True로 바꿈

await asyncio.sleep(3600)
# 한시간을 기다림

sheet["E" + str(i)].value = str("False")
# E의 열을 False로 바꿈

 

이런식으로 해주면

쿨타임이 잘 적용되는 것을 알 수 있다

 

이렇게 얻은 돈을 알수있게 지갑명령어를 만들어야겠다

임베드를 적용하지 않았지만

보유량은 잘 보여주는 것을 확인했다

 

오늘은 이렇게 모든봇에 공통적으로 들어가는 기본 기능들을

만들어보았다. 다음시간에는 마카롱봇부터 개발할것이다.

https://neony.tistory.com/30

반응형

'디스코드 > 봇 개발일지' 카테고리의 다른 글

2022.09.28 진행상황  (0) 2022.09.28
[ 팀 하말 ] #0 계획  (0) 2021.09.19