파이썬으로디스코드봇만들기
원레는동영상으로업로드할러했는데너무길어서
글을작성합니다.
1파이썬설치
디스코드 봇을 파이썬으로 작성하기 편하게 제작된 모듈이 있는데 discord.py을 보고 참고하였다.
먼저 라이브러리를 설치해준다.
#Windows
pip install discord
나는 먼저 평소 라이브러리를 설치하듯이 위와 같이 설치했는데 다운로드 되는 것처럼 보이더니 코드에서 import 되지 않아서
discord.py에 나온 방법으로 다시 설치했다.
1 2 3 4 5 |
# Linux/OS X python3 -m pip install -U discord.py # Windows py -3 -m pip install -U discord.py |
라이브러리를 설치하고 Python파일을 만들어 코드를 작성해준다.
기존 자료들을 참고해서 코드를 작성했는데…
Discord 모듈이 달라졌는지 코드가 안 먹혀서 이것저것 찾아보다 해결했다.
https://discordpy.readthedocs.io/en/latest/api.html#
참고한 사이트
메모장을하나만들고.py입력하세요
예jjj.py
cmd에서 설치를 해야 하는데, 저는 운영체제가 윈도우라서 윈도우기즌 cmd창
그 다음으로 명령어를 칩니다.
pip install discord
라고 쳐 주시면 다운로드가 시작 됩니다.
설치가 완료되면 이제 파이참을 열어서 프로젝트 생성 후 파이썬 소스파일을 생성합니다.
Visual Studio Code다운로드한뒤에설치뒤에확장프로그램파이썬를설치를하세요
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 27 28 |
import asyncio import discord client = discord.Client() # 생성된 토큰을 입력해준다. token = "토큰" # 봇이 구동되었을 때 보여지는 코드 @client.event async def on_ready(): print("다음으로 로그인합니다") print(client.user.name) print(client.user.id) print("================") # 봇이 특정 메세지를 받고 인식하는 코드 @client.event async def on_message(message): # 메세지를 보낸 사람이 봇일 경우 무시한다 if message.author.bot: return None if message.content.startswith('!안녕'): channel = message.channel await channel.send('반가워!') client.run(token) |
코드를 작성하고 실행시킨다.
1 2 3 |
다음으로 로그인합니다 TunghsBot [CLIENT ID] |
위와 같이 출력되면 성공!
채팅창에 지정한 !안녕을 입력하면 반가워!라고 동작한다면 성공!!
이로써 간단히 디스코드 봇을 만들었다. 앞으로 Python의 여러 기능을 응용해 다양한 기능이 추가된 봇을 구현하려고 한다.
추가로자동응답추가할러면
if message.content.startswith('q'):
channel = message.channel
await channel.send('반가워!')
파이쎈으로 제작할때아레명령어를입력하세요
입력하기힘들다면cfrl+C하고cfrl+v를하세요
import asyncio
import discord
client = discord.Client()
# 생성된 토큰을 입력해준다.
token = "봇토큰값을입력하세요"
# 봇이 구동되었을 때 보여지는 코드
@client.event
async def on_ready():
print("다음으로 로그인합니다")
print(client.user.name)
print(client.user.id)
print("================")
# 봇이 특정 메세지를 받고 인식하는 코드
@client.event
async def on_message(message):
# 메세지를 보낸 사람이 봇일 경우 무시한다
if message.author.bot:
return None
if message.content.startswith('안녕'):
channel = message.channel
await channel.send('반가워!')
if message.content.startswith('q'):
channel = message.channel
await channel.send('반가워!')
client.run(token)
댓글