파이썬에 있는 discord.py를 이용해서 디스코드 봇을 만들고 작동시켜봅시다
https://discord.com/developers/applications
위의 링크에 접속해주세요
만약 로그인이 안 되어 있다면 로그인을 해주세요
봇을 생성하기 위해 New Application을 눌러줍시다
우측 상단 프로필 옆에 버튼이 있어요
원하는 봇 이름을 입력하고 아래 이용약관 동의에 체크해주시고 Create를 누르면 생성됩니다
Build-A-Bot을 보면 TOKEN이라는 게 있어요
봇 인증할 때 필요한 건데 아래 Reset Token 버튼을 눌러주세요
팝업 하나 나올텐데 Yes, do it 눌러주면 됩니다
그러면 문자열로 된 토큰이 생성되는데 Copy를 눌러서 저장해주세요
만약 저 토큰이 유출되거나 더 이상 사용할 수 없게 된 경우 Reset Token으로 재생성하시면 됩니다
토큰이 유출되면 내 봇을 다른 사람이 조종할 수 있게 되므로 유출되지 않도록 조심해주세요
조금 더 아래로 내려서 Privileged Gateway Intents로 이동해주세요
세 가지 모두 체크해주세요
후에 Save Changes를 눌러 저장해줍시다
좌측 내비게이션에 OAuth2의 URL Generator로 이동해주세요
SCOPES는 bot에 체크하시고 BOT PERMISSIONS는 봇 사용 목적에 맞게 알아서 설정해주시면 되는데 저는 나중에 이걸로 뭘 할 지 모르니 Administrator로 체크했습니다
그러면 아래에 URL이 하나 생성되는데 그 URL로 접속해봅시다
원하는 서버에 봇을 추가할 수 있어요
허용되는 권한에 존재의 위기 느끼기 저런 헛소리가 있는데 디스코드가 농담으로 넣어놓은 거니까 굳이 신경 쓸 필요는 없을 것 같습니다
우리는 discord.py를 사용할 거니까 다운을 받아줍시다
cmd를 열어 아래 명령어를 입력해주세요
pip install discord.py
import discord, random
from discord.ext import commands
bot = commands.Bot(command_prefix="$", intents=discord.Intents.all())
TOKEN = "(아까 복사한 토큰 입력)"
# 로그인
@bot.event
async def on_ready():
print(f"{bot.user.name} 로그인 성공")
await bot.change_presence(status=discord.Status.online, activity=discord.Game('테스트')
# 인사
@bot.command(name="안녕", help="인사말", aliases=["인사", "하이"])
async def hello(ctx):
hi = random.randrange(1,4)
if hi == 1:
await ctx.channel.send("안녕하세요")
elif hi == 2:
await ctx.channel.send("안녕")
elif hi == 3:
await ctx.channel.send("네, 안녕하세요")
# 봇 작동
bot.run(TOKEN)
간단하게 위와 같이 파이썬으로 봇 코드를 작성해봤어요
@bot.event
async def on_ready():
print(f"{bot.user.name} 로그인 성공")
await bot.change_presence(status=discord.Status.online, activity=discord.Game('테스트')
어떠한 event가 발생하면 on_ready()함수가 실행됩니다
토큰을 사용해서 봇 로그인에 성공하면 콘솔에 로그인 성공이라는 문구가 나옵니다
봇이 온라인 상태로 전환되게 만들고, 상태는 테스트하는 중 이라고 나오게 됩니다
실행하고 콘솔에 로그인 성공 메세지가 나온다면 이렇게 봇이 디스코드 서버에서 온라인 상태로 전환된 것을 확인할 수 있습니다
@bot.command(name="안녕", help="인사말", aliases=["인사", "하이"])
async def hello(ctx):
hi = random.randrange(1,4)
if hi == 1:
await ctx.channel.send("안녕하세요")
elif hi == 2:
await ctx.channel.send("안녕")
elif hi == 3:
await ctx.channel.send("네, 안녕하세요")
간단한 명령어를 만드는 코드입니다
name에는 명령어가 들어갑니다
예를 들어 위의 코드 같은 경우에는 $안녕을 입력하면 지정된 명령을 수행합니다
help는 $help 안녕을 입력했을 때 명령어 설명을 설정할 수 있습니다
aliases는 같은 명령을 수행하는 명령어들을 여러 개 설정할 수 있게 해주는 건데 위의 코드 같은 경우 $안녕 외에도 $인사, $하이 모두 같은 명령을 수행합니다
뭐 그냥 대충 봇 간단하게 만들어봤는데 더 다양한 기능을 만들 수 있어요
굳이 길게 강좌 끌어가면서 쓰기에는 좀 귀찮기도 하고 의미도 없을 것 같아서 참조 링크만 좀 남길게요
https://discord.com/developers/docs/intro
공식 docs니까 잘 참고해보세용
'Programming' 카테고리의 다른 글
. (0) | 2024.01.17 |
---|---|
Windows에서 Ubuntu Linux 22.04 LTS VM 구축하기 (0) | 2023.12.17 |
카카오톡 급식 알림 채널 만들기 #1 (0) | 2022.07.10 |
[프로그래밍] 저급 언어와 고급 언어의 차이 (0) | 2022.03.13 |
[JAVA] Windows 10 에서 자바 설치하기 (0) | 2021.12.24 |
댓글