디스코드 봇 만들기#2Slash Command에 옵션(Arguments) 추가하기!
목차4개 항목
안녕하세요! Mojangcam입니다 🙌
지난 시간에는 기본적인 슬래시 커맨드 /hello 를 만들어봤죠?
이번에는 사용자 입력값을 받아서 동작하는 Slash Command 를 만들어볼게요.
예를 들면 /say message:안녕 처럼 말이죠!
📦 준비된 코드
이번에도 Python과 discord.py 를 기반으로 합니다.
먼저 아래 코드를 참고해주세요👇
import discord
from discord.ext import commands
from discord import app_commands
intents = discord.Intents.default()
bot = commands.Bot(command_prefix="/", intents=intents)
@bot.event
async def on_ready():
await bot.tree.sync()
print(f"✅ {bot.user} 봇이 준비되었습니다!")
@bot.tree.command(name="hello", description="간단한 인사 명령어")
async def hello(interaction: discord.Interaction):
await interaction.response.send_message("안녕하세요!")
@bot.tree.command(name="say", description="입력한 메시지를 따라 말해요!")
@app_commands.describe(message="반복할 메시지를 입력해주세요.")
async def say(interaction: discord.Interaction, message: str):
await interaction.response.send_message(f"당신이 한 말: {message}")
bot.run("YOUR_TOKEN")🧪 실제 사용 모습
디스코드 채팅창에 아래처럼 입력하면?
/say message:안녕 나는 봇이야👇 봇이 이렇게 대답합니다:
당신이 한 말: 안녕 나는 봇이야
📌 다양한 타입의 옵션도 가능해요!
타입설명예시
| str | 문자열 | message:안녕하세요 |
|---|---|---|
| int | 숫자 | count:3 |
| bool | true/false 선택 | is_public:true |
| discord.User | 유저 선택 | user:@홍길동 |
| discord.TextChannel | 텍스트 채널 선택 | channel:#일반 |
🧠 마무리
옵션을 받는 슬래시 커맨드는 봇의 기능을 한층 더 다양하게 만들어줍니다! 다음 시간에는 선택지를 제한하는 Enum 스타일 옵션, 또는 서브 커맨드 분류(Command Groups) 에 대해서도 알아볼게요!
궁금한 점은 댓글이나 방명록에 남겨주세요 🙌 읽어주셔서 감사합니다!
연재 · 32편 중 2번째
디스코드 봇 만들기
- #1디스코드 봇 만들기 - Slash Command 완전 정복!
- #2Slash Command에 옵션(Arguments) 추가하기!지금 읽는 글
- #3Slash Command에 서브 커맨드(Subcommand) 넣기!
- #4Slash Command로 임베드 전송하기!
- #5버튼(Button) 상호작용 구현하기!
- #6드롭다운(Select Menu) 메뉴 구현하기!
- #7모달(Modal)로 입력 받기 구현하기 (파이썬 예제)
- #8임베드(Embed) 이미지·필드로 꾸미기 (파이썬 예제)
- #9AI(Claude·ChatGPT API) 연동하기! (파이썬 예제)
- #10다국어(i18n) 지원하기! (파이썬 예제)
- #11플라스크(Flask)로 웹 대시보드 만들기! (파이썬 예제)
- #12명령어 쿨다운(Cooldown)·권한(Permission) 관리하기! (파이썬 예제)
- #13역할·채널 자동화로 서버 관리하기! (파이썬 예제)
- #14데이터 저장하기! JSON vs SQLite (파이썬 예제)
- #15슬래시 명령어 그룹(Group)으로 명령어 정리하기! (파이썬 예제)
- #16리마인더·알림 기능 만들기! 봇이 먼저 말 걸게 하기 (파이썬 예제)
- #17RAG로 문서 기반 답변봇 만들기! 우리 서버 전용 FAQ 봇 (파이썬 예제)
- #18투표(Poll) 기능 만들기! 다수결로 정하는 서버 규칙 (파이썬 예제)
- #19Cog로 코드 쪼개기! 1000줄 봇도 안 더러워지는 구조 (파이썬 예제)
- #20자동 환영 메시지·온보딩 만들기! 규칙 동의 버튼으로 자동 역할 부여 (파이썬 예제)
- #21키워드 자동응답·금지어 필터 만들기! 경고 누적으로 자동 제재까지 (파이썬 예제)
- #22슬래시 명령어 자동완성(Autocomplete) 만들기! 금지어를 골라서 추가·삭제 (파이썬 예제)
- #23aiosqlite로 비동기 DB 제대로 설계하기! JSON 탈출 (파이썬 예제)
- #24채널 난독화(Channel Obfuscation) 대응하기! 11/16부터 안 보이는 채널이 생겨요 (파이썬 예제)
- #25봇이 죽지 않게! 에러 핸들링·로깅 체계 잡기 (파이썬 예제)
- #26티켓(Ticket) 문의 시스템 만들기! 버튼 하나로 1:1 상담 채널 자동 생성 (파이썬 예제)
- #27티켓 담당자 배정·우선순위 만들기! 스태프가 여러 명이어도 안 꼬이게 (파이썬 예제)
- #28레벨·경험치(XP) 시스템 만들기! 채팅할수록 레벨업, 랭킹판까지 (파이썬 예제)
- #29화폐·상점(Economy) 시스템 만들기! 코인 벌어서 아이템 사기 (파이썬 예제)
- #30투표·설문(Poll) 봇 만들기! 네이티브 투표 + 버튼으로 실시간 집계까지 (파이썬 예제) 🗳️
- #32서버 로그·감사(Audit Log) 채널 만들기! 메시지 삭제·수정·입퇴장·추방까지 자동 기록 (파이썬 예제) 🕵️
- #33임시 음성방 확장, 파티방 만들기! 방장 위임·강퇴·초대 전용(비공개) 방 + 전용 채팅방 자동 생성 (파이썬 예제) 🎉
