개인 자료란 (JE)

  서버 커뮤니티

Profile sleepylapis 대표칭호 없음

sleepylapis b50c05ef88e04e8db496ad93cb9ea996

Profile

커뮤니티 소통 개발하기 디스코드

[discord.py] 4강 : 간단한 명령어 만들어보기 (on_message)

2020.05.08 조회 수 635 추천 수 2

제목에 적혀있듯이, 이번 강좌에서는 on_message(msg) 라는 discord.py에서 제공하는 이벤트를 활용해서 명령어를 구현해볼거에요.

이번 강좌에서는 아래의 사전지식들이 필요합니다!

  • 파이썬의 조건문 (if ~ elif ~ else)
  • 파이썬의 데코레이터
  • 3강에서 설명드렸던 discord.py 챗봇의 기본 코드 구조

지난번에 보여드렸던 코드에서 새로운 함수를 추가해줄거에요. 아래 명령어는 !안녕 이라고 채팅을 치면, 봇이 안녕하세요 라고 답변하도록 하는 명령어에요.

import discord

token = "2강에서 생성한 봇 애플리케이션의 BOT 항목에서 token을 복사해 넣어주세요!"
client = discord.Client()

@client.event
async def on_message(message):
    if message.content == "!안녕":
        await message.channel.send("안녕하세요!")

client.run(token)
  • @client.event 는 discord.Client에서 제공하는 데코레이터에요. 이 데코레이터는 아래의 함수를 discord.py의 이벤트를 수신하는 함수로 만들어줘요. 이벤트를 수신하는 함수를 만들기 위해서는 해당 이벤트의 이름으로 함수를 선언해주면 되요.
  • on_message는 discord.py 에서 제공하는 이벤트로, 봇이 볼 수 있는 모든 영역(서버 내 텍스트채널, DM채널 등등)에서 새로운 메세지가 생성되었을때 호출되요. 이 이벤트는 함수의 인자로 메세지(discord.Message 의 객체)를 전달해요.
  • on_message 함수의 인자로 전달되는 message 변수는 discord.Message의 객체에요. 이 객체를 통해서, 메세지의 텍스트(message.content), 메세지에 첨부된 파일 (message.attachments), 메세지의 작성자(message.author) 등에 접근할 수 있어요.

이제 실행해볼게요!

9f34f5fe523674573498241f28fc2b12.png





Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1

/files/thumbnails/932/765/003/262x150.crop.jpg?20240410124459

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

노트블럭전문가

2024-04-10

0

/files/thumbnails/403/765/003/262x150.crop.jpg?20240409190538

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

Sonttukk

2024-04-09

4