SaidBySolo 8b58f951b6404b78ae3ba92d55d431f7
저번 강좌에서는 봇을 생성후 초대까지 해보았는데요
오늘은 봇을 온라인,명령어에 응답 까지해보겠습니다
파이썬에 대한 기본 상식이 있다고 가정하며,
해당강좌는 클라이언트가 아닌 봇 익스텐선을 사용합니다.
일단은 봇을 온라인 해봅시다.
봇을 온라인하기위해 토큰이 필요한데요
토큰은 2강에서 봇을 생성했던 페이지에서 가져올수있습니다.
이페이지에서 Copy를 눌러주시면 토큰이 복사됩니다.
이제 코딩 을 하러갑시다.
경고:토큰은 봇의소유권입니다. 만약 토큰이 유출됬다면 토큰을 재생성 하시기 바랍니다.
토큰 유출로 인한 피해는 책임지지 않습니다.
코드 설명은 주석을 참고하세요
이제 토큰까지 집어넣었으면 실행 해봅시다!
VSCode 기준 이렇게 실행 되면 정상입니다 이제 초대한 그룹에서 온라인이 됬는지 봅시다!
봇이 온라인이 되었네요!
근데 아직 부족한 점이많습니다.
켜져있는지도 모르고... 기능도없고...
이제 추가해보도록하죠!
다시 코드로 돌아가봅시다
discord.py의 기본은 이벤트에 의해 기능이 트리거 되는건데요.
많은 이벤트가 있지만 지금은 몇가지만 다룰껍니다.
on_ready
봇이 온라인 상태이고 Discord 서버와 통신 할 준비가되면 이벤트가 트리거됩니다.
보통 간단하게 "모든게 준비됬어요 주인님!" 과같이 무슨 일이 일어나고 있는지 알 수 있습니다.
코드를 보충 설명하자면...
discord.py는 비동기 방식이라서 여러 기능을 서로 중단하지 않고 동시에 실행할 수 있습니다
2019-09-05 수정 sleepylapis님 감사합니다!
파이썬의 비동기는 event-loop라 부르는 단일 스레드 위에서, 코루틴 및 awaitable 한 객체들이 서로 주도권을 주고받으면서
동시에 실행(Concurrent)되는것처럼 보이는 방식입니다.
자 이제 실행 시켜봅시다.
콘솔창에 출력이 되면서 봇이 온라인이 되는 것을 확인 하실수있습니다.
하지만 아직 남은게 있죠?
다시 코딩하러 가봅시다.
실행합시다.
코드 보충설명 하자면 ctx
도 여러 인수가있습니다.(ctx.message.guild
, ctx.message.channel
, ctx.message.author
)
하지만 뭐 지정 한게 없으니 자동으로 첫 번째 인수로 쓰기 모든 명령에 전달, 메시지 / 명령을 하게됩니다.
ctx.send
는 메시지에 직접 회신 할 수있는 방법입니다.
.send
이외에도 채널과 사용자를 포함하여 많은 속성을 가지고 있지만,
그냥 ctx.send
하면 명령이 호출 된 곳과 동일한 채널로 응답 할 수 있습니다.
자 이제 되나 볼까요?
잘되네요! 안녕,세상!
오늘은 콘솔창에 봇이 온라인된걸 확인하고
명령어를 칠시 응답 까지 해보았습니다.
다음 강좌는 핑(ping)기능,응답(심화)입니다.
저도 강좌를 적으면서 처음부터의 개념을 차근차근 알아가네요
수고하셨습니다!
다음강좌에서 뵙죠
DDang_
2020.02.12좋은 강의 감사합니다. 봇이름이 눈에 띄네요
아이스틴
2020.02.12나중에 한번 만들어보고 싶네요
DRDTF
2020.02.27강좌감사합니다 저도 만들수있겠네요
sleepylapis
2020.08.31> discord.py는 비동기 방식이라서 여러 기능을 서로 중단하지 않고 동시에 실행할 수 있습니다
> 대충 어... 명령어1 명령어2 명령어3 명령어 4가 내려지면
> 4쓰레드 인 cpu가 1쓰레드는 멍령어1 2쓰레드는 명령어2 ... 이런식으로 생각하시면됩니다.
이 부분의 설명이 잘못되었네요. 파이썬의 비동기는 event-loop라 부르는 단일 스레드 위에서, 코루틴 및 awaitable 한 객체들이 서로 주도권을 주고받으면서 동시에 실행되는것처럼 보이는 (동시성, Conccurent 입니다. 병렬성이 아닙니다.) 방식입니다.
라고솔로가말했습니다
2020.09.05지적 감사합니다!
잊고있었던 게시물인데 잘못된 정보를 이제야 수정하네요 ;-;
파이썬 배우면서 끄젹여놓은거라 나중에 한번 갈아엎긴 해야겠네요
감사합니다!