No idea
Python을 이용한 Discord 대화 봇 만들기 (2) 본문
저번 글에 이어서 진행하도록 하겠습니다. 다음으로 Discord 모듈을 설치해야합니다.
디스코드 모듈을 Import해서 디스코드 봇 스크립트를 작성하는 것이기 때문에 필요합니다.
cmd에서 설치를 해야 하는데, 저는 운영체제가 윈도우라서 윈도우 cmd창을 열었습니다.
그 다음으로 명령어를 칩니다.
pip install discord
라고 쳐 주시면 다운로드가 시작 됩니다.
설치가 완료되면 이제 파이참을 열어서 프로젝트 생성 후 파이썬 소스파일을 생성합니다.
저는 firstdiscord.py라고 생성했습니다.
소스코드를 분석해보면
import문을 이용해 아까 설치했던 discord모듈을 불러옵니다.
client객체를 선언해주고
이제 봇이 무언가를 동작하는 효과를 주고 싶기 때문에 효과마다 @client.event로 시작하고
소스코드를 작성하면 됩니다.
비동기 함수인 async를 이용해 처음에는 on_ready()를 사용해
봇이 구동을 시작하느지 확인하기위해 , 온라인이 될 때 특정 효과를 보여줍니다.
저는 print문으로 봇의 ID값과 "botstart"라는 문구를 출력해주려 합니다.
그리고 저번 글에서 봇은 아직 오프라인 상태였는데, 봇이 구동되었을 때
상태 변화를 주기 위해서 awit구문을 사용하는데, 구문 속성값을 보면 .idle 이라 되어있는데,
자기가 원하는대로 바꿔줄 수 있습니다. 참고로 onlie이면 초록불이 들어오고, idle은 노란불, 자리비움이란 상태고
ofline이라하면 불이 꺼져있는 상태가 됩니다.
그 밖에도 다른 용무중인 상태인 빨간 불이 있는데 그거는 잘 모르겠습니다. 검색하면 나오겠죠?
그리고 봇이 게임을 플레이하고 있는 상태로 만들고 싶어 game 값에 저는 "KartRider"라는 문구를 적었고,
activity 값에 game을 줬습니다.
저 코드를 스크린샷했을 때 이미 봇을 작동시킨 상황입니다. 그래서 맨 밑 콘솔 창을 보시면 아까 설정 했듯이
구동되니까 봇의 ID값이랑 문구가 출력되는 걸 보실 수 있습니다.
그리고 봇의 상태도 마찬가지로 제가 아까 KartRider로 설정해서 게임 플레이 중이라 표시가 뜨고
idle로 했기 때문에 노란 불이 들어와 있는 상태이고, 봇이 켜졌다는 걸 알 수 있습니다.
이어서 소스코드를 설명하면
이번엔 On_message라고 해서 특정 메시지에 응답할 수 있게 설정해봅시다.
자신이 원하는 특정 메시지를 if문에 작성하고
await구문에다가 그에 맞는 원하는 대답을 설정합니다.
if, await문을 그대로 여러 개를 복사해서 붙이면 다양한 특정 메시지와 그에 따른 답변을 설정하실 수 있습니다.
마지막으로 Client.run 에다가 저번에 말씀드렸던 봇의 해당 토큰 값을 입력해주시면 됩니다.
그래야지 그 해당 봇이 작동을 하게 됩니다. 최종적으로 테스트해보면
제가 설정해논 메시지인 'Hi' 라고 서버 채팅방에 입력을 하면
그에 맞게 설정되어있는 답변인 '안녕하세요' 가 곧바로 출력되시는 걸 보실 수 있습니다.
이렇게 간단한 Discord 채팅 봇을 만들어봤습니다. 다음 번에는 봇에게 새로운 기능들을 추가해보겠습니다.
'Python' 카테고리의 다른 글
Python을 이용한 Discord 대화 봇 만들기 (0) | 2019.05.22 |
---|