파이썬으로 디스코드 봇 만들기 3 - 접두사 사용하기
2020. 8. 26. 11:24ㆍdiscord.py
지난번 강좌에서는 간단한 코드를 작성해본 후, 실행을 해보았습니다.
보통 디스코드 봇들을 보면 접두사가 있죠?
MEE6 같은 봇은 "!", 자작 봇인 끝봇은 "^^" 등등...
이번 강좌에서는 이와 같이 봇의 접두사를 설정해 봅시다.
지난시간에 message.content 변수는 입력된 메시지의 내용을 가지고 있다고 했었죠?
message.content 변수는 문자열(str)이기 때문에 문자열에 쓸 수 있는 함수들은 다 사용할 수 있습니다.
인덱싱, 슬라이스 등등...
이번 강좌에서는 그중 startswith와 슬라이싱을 써보려 합니다. startswith 함수로 설정한 접두사를 감지하는 거죠.
# -*- coding:utf-8 -*-
import discord
import asyncio
token = "봇의 토큰"
client = discord.Client()
@client.event
async def on_ready():
await client.change_presence(status=discord.Status.online, activity=discord.Game("ㅎㅇ"))
print("봇 실행됨!")
print(client.user.name)
print(client.user.id)
@client.event
async def on_message(message):
if message.author.bot:
return None
if message.content == "!안녕":
await message.channel.send("안녕하세요!")
지난 시간에 작성한 코드입니다.
이번엔 코드 위쪽에 prefix라는 변수를 설정해 줍시다.
저는 접두사를 ?로 설정하겠습니다.
prefix = "?"
그리고 on_message 부분을 고쳐봅시다.
@client.event
async def on_message(message):
if message.content.startswith(prefix):
msg = message.content[1:]
else:
return None
if msg == "안녕":
await message.channel.send("안녕하세요!")
엄청 효율적이라고 할 순 없지만, 나름 편리한 방법입니다.
접두사를 바꾸고 싶다면 맨 처음 변수 하나만 바꿔주면 되니까요.
이를 활용해서 유저/서버별로 접두사를 커스텀할 수도 있겠죠.
이제 실행해 봅시다!
성공! 설정해 놓은 접두사를 입력했을 때만 인식하는 것을 볼 수 있습니다.
접두사를 * 로 바꿔서 실행해 봅시다.
prefix = "*"
다시 실행해 봅시다!
성공! 또다시 설정한 접두사만 인식하네요.
다른 명령어도 추가해 봅시다.
elif msg == "잘가":
await message.channel.send("안녕히가세요!")
성공!
이상 디스코드 봇 만들기 3편이었습니다.
다음 편도 기대해 주세요!
'discord.py' 카테고리의 다른 글
파이썬으로 디스코드 봇 만들기 4 - 임베드(Embed) 사용하기 (6) | 2020.11.26 |
---|---|
파이썬으로 디스코드 봇 만들기 2 - 간단한 코드 작성해보기 (1) | 2020.08.25 |
파이썬으로 디스코드 봇 만들기 1 - 봇 생성과 셋업 (10) | 2020.08.13 |