【初心者向け】Pythonで作る!自分だけのDiscord Bot開発入門|コマンド対応・おみくじ機能も簡単実装
【初心者歓迎】PythonとDiscord.pyを使って、コマンド応答・おみくじ機能つきのDiscord Botを開発する方法を徹底解説。サンプルコードと丁寧な解説で、今日からBot開発ができる!
「プログラミング初心者でも、自分のDiscord Botを作りたい!」
「おうむ返しBotから、もっと面白い機能に進化させたい!」
そんなあなたに向けて、Pythonで作るDiscord Botの作り方を、コード付き・超丁寧に解説します。
この記事では、
- 特定のコマンド(
!hello
など)に反応するBot - ランダムに運勢を返す「おみくじ機能」
を中心に、遊べて便利なBotの作り方を学べます。
目次
- 開発準備:必要なものはこれだけ
- Botにコマンド応答を実装しよう
- メンション付きで名前を呼ぶ方法
- おみくじ機能の追加でBotを面白く
- 最終コード:このまま動く完成版!
- 次のステップ:さらにBotを進化させよう
1. 開発準備
前回の「おうむ返しBot」が動作していれば、以下の2点だけ確認しておきましょう。
✅ discord.py
ライブラリがインストールされている
✅ Discord Botのトークンを取得している
ターミナルに以下のコマンドでライブラリをインストールできます:
pip install -U discord.py
2. コマンド応答機能を実装しよう
おうむ返しBotでは、すべての発言に反応してしまいがちでした。今回は、!hello
のようなコマンド形式のみに反応するようにして、Botを賢く制御します。
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content == '!hello':
await message.channel.send('こんにちは!')
✅ 解説
message.author == client.user
→ Bot自身の発言には反応しないようにする重要なおまじない。message.content == '!hello'
→ 「!hello」と完全一致したときだけ応答。await message.channel.send(...)
→ メッセージを送ったチャンネルに返信。
3. メンション付きで返信する
もっと人間らしく振る舞わせるには、メンション機能を使いましょう。
if message.content == '!hello':
await message.channel.send(f'{message.author.mention}さん、こんにちは!')
✅ 解説
message.author.mention
→ その人に通知が届くメンションを作成。f'{...}'
(f-string)
→ 文字列の中に変数を埋め込めるPythonの便利機能。
4. おみくじ機能を追加しよう!
!omikuji
コマンドでランダムに運勢を返す、お楽しみ機能を実装してみましょう。
▶ まずはrandom
をインポート!
import random
▶ コマンド処理を追加
if message.content == '!omikuji':
fortunes = ['大吉', '中吉', '小吉', '吉', '末吉', '凶', '大凶']
result = random.choice(fortunes)
await message.channel.send(f'{message.author.mention}さんの今日の運勢は…… **{result}** です!')
✅ 解説
fortunes = [...]
→ おみくじの選択肢リスト。random.choice(...)
→ リストから1つランダムに選ぶ関数。**{result}**
→ Discordでは**
で囲むと太字になる。
5. 最終コードまとめ:コピペでそのまま動く!
import discord
import random
TOKEN = 'ここにあなたのBotトークンを入れてください'
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f'Botがログインしました: {client.user}')
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content == '!hello':
await message.channel.send(f'{message.author.mention}さん、こんにちは!')
if message.content == '!omikuji':
fortunes = ['大吉', '中吉', '小吉', '吉', '末吉', '凶', '大凶']
result = random.choice(fortunes)
await message.channel.send(f'{message.author.mention}さんの今日の運勢は…… **{result}** です!')
client.run(TOKEN)
6. 次のステップ:Botをさらに進化させよう
Bot開発の世界は広がっています!次に挑戦したい機能はこちら👇
🔹 Embedメッセージ
→ リッチな見た目で情報をわかりやすく表示
🔹 スラッシュコマンド対応(/hello
)
→ 近年主流のインターフェースでBotを使いやすく
🔹 機能の分割(Cogs)
→ 複数機能を持つBotでもコードがぐちゃぐちゃにならない
🔹 オリジナルコマンドの追加
→ 例:!dice
でサイコロ、!color
でラッキーカラー表示
🎯 まとめ
このガイドを参考にすることで、あなたはもう「おうむ返しBot」から卒業した、立派なBot開発者です。
ぜひ、あなたのBotに命を吹き込んで、サーバーのみんなを楽しませてください!
💡次回は、スラッシュコマンド対応Botの作り方を解説予定!
気になる方はブックマークやシェアをお願いします📌