【初心者向け】Pythonで作る!自分だけのDiscord Bot開発入門|コマンド対応・おみくじ機能も簡単実装


【初心者歓迎】PythonとDiscord.pyを使って、コマンド応答・おみくじ機能つきのDiscord Botを開発する方法を徹底解説。サンプルコードと丁寧な解説で、今日からBot開発ができる!


プログラミング初心者でも、自分のDiscord Botを作りたい!
おうむ返しBotから、もっと面白い機能に進化させたい!

そんなあなたに向けて、Pythonで作るDiscord Botの作り方を、コード付き・超丁寧に解説します。

この記事では、

  • 特定のコマンド(!helloなど)に反応するBot
  • ランダムに運勢を返す「おみくじ機能」

を中心に、遊べて便利なBotの作り方を学べます。



目次

  1. 開発準備:必要なものはこれだけ
  2. Botにコマンド応答を実装しよう
  3. メンション付きで名前を呼ぶ方法
  4. おみくじ機能の追加でBotを面白く
  5. 最終コード:このまま動く完成版!
  6. 次のステップ:さらに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の作り方を解説予定!
気になる方はブックマークやシェアをお願いします📌


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です