이전글보기
[정보/Discord Bot] - [discord.py 2.0] 01. 사전 준비
[정보/Discord Bot] - [discord.py 2.0] 02. Discord Bot 계정 만들기
[정보/Discord Bot] - [discord.py 2.0] 03. PyCharm 세팅하기
[정보/Discord Bot] - [discord.py 2.0] 04. discord.py 라이브러리 설치하기
[정보/Discord Bot] - [discord.py 2.0] 05. 봇 기본설정하기
이번엔 봇에 명령어를 추가해봅시다.
명령어를 추가할때는 아래와 같이 decorator와 함께 command 를 호출합니다.
@봇객체.command()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import asyncio
import discord
from discord.ext import commands
intents = discord.Intents.all()
app = commands.Bot(command_prefix='!', intents=intents)
async def main():
async with app:
file = open("discord_token.txt")
bot_token = file.readline()
file.close()
await app.start(bot_token)
asyncio.run(main())
|
cs |
이전에 만들어놨던 main문에 테스트용 명령어를 넣어봅시다.
추가할 명령어는 다음과 같습니다
1
2
3
4
5
6
7
8
|
@app.command()
async def ping(ctx):
await ctx.send('pong')
@app.command(name="핑")
async def ping(ctx):
await ctx.send('퐁')
|
cs |
1: decorator에서 사용되는 "app"은 소스코드의
app = commands.Bot(command_prefix='!', intents=intents)
항목에서 Bot의 객체를 app에다가 저장하였으므로 @app.command() 로 입력합니다.
2: 함수명이 ping인데, 1번 line 에서 명령어 이름을 따로 할당하지 않았으므로 함수이름인 ping이 명령어가 됩니다. 이때 ctx에는 명령어가 호출된 서버의 정보를 포함하고 있습니다.
3: 명령어가 호출된 서버(ctx)에 pong 메세지를 보냅니다.
6: 1번 line 과 유사하나 명령어의 이름을 name="핑" 으로 할당하여 함수를 만듭니다
7: 6번 line에서 명령어의 이름을 이미 할당하였으므로, 함수명은 명령어의 동작을 호출하는것에 영향을 주지 않습니다.
8: 명령어가 호출된 서버(ctx)에 "퐁" 메세지를 보냅니다.
추가한 코드는 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import asyncio
import discord
from discord.ext import commands
intents = discord.Intents.all()
app = commands.Bot(command_prefix='!', intents=intents)
async def main():
async with app:
file = open("discord_token.txt")
bot_token = file.readline()
file.close()
await app.start(bot_token)
@app.command()
async def ping(ctx):
await ctx.send('pong')
@app.command(name="핑")
async def ping(ctx):
await ctx.send('퐁')
asyncio.run(main())
|
cs |
소스코드를 완성하고, 봇을 실행시켜 명령어를 확인해봅시다.
포스팅에 사용된 모든 소스코드는 아래 Github에서 확인하실 수 있습니다.
https://github.com/aochfl/ChoRi_TestBot
참고자료
'정보 > Discord Bot' 카테고리의 다른 글
[discord.py 2.0] 08. Embed 꾸미기 (0) | 2022.09.07 |
---|---|
[discord.py 2.0] 07. 대화에 Embed 추가하기 (0) | 2022.09.07 |
[discord.py 2.0] 코딩 중 발생한 error 모음 (0) | 2022.09.04 |
[discord.py 2.0] 05. 봇 기본설정하기 (0) | 2022.09.04 |
[discord.py 2.0] 04. discord.py 라이브러리 설치하기 (0) | 2022.09.03 |