[discord.py] 0. Hello world

chaejm55·2021년 3월 2일
2

디스코드봇

목록 보기
1/18
post-thumbnail

0. 잡설

3월의 첫 포스팅을 하는 날이다. 사실 소개글로 부터 UNIX 시간에 200,000쯤 더해진 매번 같은 의미 없는 날이지만 태양력의 농간으로 뭔가 새롭고 제대로 살아야 할 것 같이 느껴지는 날이다. 하여튼 첫 포스팅을 시작해보자.

1. 개발환경 및 설치

개발환경

  • OS: Windows 10 Education
  • python 3.8.x (3.9 버전은 wheels 문제로 3.8이 낫다고 한다.)
  • IDE: pycharm community (선택)
  • discord.py 1.0.0 이상

설치

python, pycharm은 링크를 클릭하여 다운 받으면 된다. discord.py는 현재 1.6.0이 최신 버전이고 설치는 터미널에 아래의 명령어를 입력하면 된다.

pip install discord.py

만약 다른 버전을 받고 싶다면 pip install discord.py==1.x.x(원하는 버전 입력)를 입력해보자

봇 생성

코드를 작성할 준비를 끝냈다면, 봇을 생성하여 토큰을 얻어야 한다. 링크를 클릭하여 로그인을 하고 아래와 같은 창이 뜨는지 확인하자.

그럼 우측 상단에 New Application을 클릭하자.

NAME칸에 봇 이름을 입력하고 Create 버튼을 누르자.

그럼 위의 화면이 보일 것이다. 이제 좌측 settings에서 Bot을 클릭하자.

그럼 우측의 Add Bot 버튼을 누르고 새로 뜬 창에서 Yes, do it 버튼을 누르면 봇이 생성된다.

copy 버튼을 눌러 토큰을 복사하여 기록해둔다.(외부로 절대 노출되면 안 된다)
실수로 github에 올렸다가 바로 디스코드 경고 dm을 받았다...

2. 봇을 채널로 초대

다시 discord 개발자 포털로 가서 좌측 settings에서 OAuth2를 선택한다.

Scopes에서 bot을 선택하고

Bot Permissions에서 권한을 주면(테스트용이라서 저렇게 줬다) Scopes에 생기는 링크를 Copy해서 주소창에 복붙한다.

관리 권한이 있는 서버를 선택하고 계속하기를 누른 뒤

승인을 누르면 추가가 완료된다.

3. 코드 작성하기

import discord
from discord.ext import commands

token = '토큰 붙여넣기'
bot = commands.Bot(command_prefix='!')  # 봇의 접두사 설정


@bot.event
async def on_ready():  # 봇 준비 시 1회 동작하는 부분
    # 봇 이름 하단에 나오는 상태 메시지 및 상태 설정
    await bot.change_presence(status=discord.Status.online, activity=discord.Game("반갑습니다 :D"))
    print("Bot is ready")


@bot.command()  # 봇 명령어
async def hello(ctx):  # !hello라고 사용자가 입력하면
    await ctx.send("Hello world")  # 봇이 Hello world라고 대답함

bot.run(token)

기본적인 코드로 봇 상태와 상태 메시지를 지정하고 !hello라는 사용자 입력에 Hello world라고 대답하는 코드이다.

  • 봇 상태
  • 봇 명령어

4. 결론

일단 간단한 명령어에 단순한 텍스트 메시지를 보내는 봇을 만들어 봤다. 겨우 명령어 하나 만드는 작업에도 오래 걸렸다고 낙담하지는 말자. python을 비롯해 여러 프로그램을 설치하고 영어로 된 사이트에 들어가 봇도 만들고 처음 보는 코드를 친것도 굉장히 대단한 일이다.
앞으로 discord.py의 기능과 내가 만들었던 명령어를 포스팅하겠다.

time.sleep(259200)

5. 참고링크

profile
여러가지를 시도하는 학생입니다

0개의 댓글