カテゴリー: Discordボット開発
Discordボット開発#2スラッシュコマンドにオプション(Arguments)を追加しよう!
この記事は韓国語の原文から翻訳したものです。
目次4項目
こんにちは!Mojangcamです 🙌
前回は基本的なスラッシュコマンド /hello を作りましたよね?
今回はユーザーの入力値を受け取って動くスラッシュコマンドを作ってみます。
たとえば /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")🧪 実際の使用例
Discordのチャット欄に下のように入力すると?
/say message:안녕 나는 봇이야👇 ボットがこう返してくれます:
あなたが言ったこと: 안녕 나는 봇이야 (韓国語で「こんにちは、僕はボットだよ」)
📌 いろいろな型のオプションも使えます!
型 説明 例
| str | 文字列 | message:こんにちは |
|---|---|---|
| int | 数値 | count:3 |
| bool | true/false の選択 | is_public:true |
| discord.User | ユーザーを選択 | user:@山田太郎 |
| discord.TextChannel | テキストチャンネルを選択 | channel:#一般 |
🧠 まとめ
オプションを受け取るスラッシュコマンドを使えば、ボットの機能をぐっと幅広くできます! 次回は選択肢を制限するEnumスタイルのオプションや、 サブコマンドの分類(Command Groups)についても見ていきます!
わからないことがあれば、コメントかゲストブックに残してください 🙌 最後まで読んでいただき、ありがとうございました!
連載 · 全32回中2回目
Discordボット開発
- #1Discordボット開発 - スラッシュコマンド(Slash Command)完全攻略!
- #2スラッシュコマンドにオプション(Arguments)を追加しよう!現在の記事
- #3スラッシュコマンドにサブコマンド(Subcommand)を追加しよう!
- #4スラッシュコマンドで埋め込み(Embed)を送信しよう!
- #5ボタン(Button)のインタラクションを実装しよう!
- #6ドロップダウン(Select Menu)メニューを実装しよう!
- #7モーダル(Modal)で入力を受け取る方法 (Pythonサンプル付き)
- #8埋め込み(Embed)を画像・フィールドで飾る (Pythonサンプル付き)
- #9AI(Claude・ChatGPT API)と連携する! (Pythonサンプル付き)
- #10多言語(i18n)に対応する! (Pythonサンプル付き)
- #11FlaskでWebダッシュボードを作る! (Pythonサンプル付き)
- #12コマンドのクールダウン(Cooldown)・権限(Permission)を管理しよう! (Pythonサンプル付き)
- #13ロール・チャンネルの自動化でサーバーを管理しよう! (Pythonサンプル付き)
- #14データを保存しよう!JSON vs SQLite (Pythonサンプル付き)
- #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)ボットを作ろう!ネイティブ投票+ボタンでリアルタイム集計まで(Pythonサンプル) 🗳️
- #32サーバーログ・監査ログ(Audit Log)チャンネルを作ろう!メッセージの削除・編集・入退室・キックまで自動記録(Pythonサンプル) 🕵️
- #33임시 음성방 확장, 파티방 만들기! 방장 위임·강퇴·초대 전용(비공개) 방 + 전용 채팅방 자동 생성 (파이썬 예제) 🎉 (韓国語)
