AIチームでマイクラサーバーを作る #5Discordボットで開発チームを運営!決定フォーラム・コマンド一覧・リソースパックチャンネル 🤝
AI開発チームと人間がDiscordで決定をやり取りする方法です。チャンネルごとに役割を1つ、決定フォーラムのタグとチェックのルール、モジュール別コマンドフォーラム、最新版だけを残すリソースパックチャンネル、そして「メッセージは消さずに直す」原則まで。

開発ブログ Mojangcam の日本語訳です。原文は韓国語で書いています。
AI開発チームと人間がDiscordで決定をやり取りする方法です。チャンネルごとに役割を1つ、決定フォーラムのタグとチェックのルール、モジュール別コマンドフォーラム、最新版だけを残すリソースパックチャンネル、そして「メッセージは消さずに直す」原則まで。

マイクラサーバーのGUI・アイコン・武器の絵をChatGPTに任せ、Claudeが規格チェックとリソースパックへの統合を担当する方法と、検品で見つけた事故5つ(テクスチャのパス、入れ替わった弓、表示されない背景、ノイズが走る弓、16ピクセルの3D)をまとめました。

マイクラMMORPGサーバーの体力・ダメージをまとめて10倍にした方法(運営者の設定は守りつつ)、1→30レベル12時間の経験値曲線、そして企画チームAIがクラス6種をシミュレーションして見つけた不均衡の本当の原因まで。
Paperプラグインのjar 1つにcoreとモジュール13個を入れた構造、権限名ひとつでモジュールが丸ごと無効になった事件、モブを倒したときにダメージが1000029と表示されたバグの原因と修正までまとめました。

1人でマインクラフトMMORPGサーバーのプラグイン13個を作るために、Claudeをチームリーダー、予約タスク15個をメンバーにして働く仕組みをまとめました。指示書・報告書・統合ルールと、実際に起きた問題まで。

2026年9月のDiscord開発者チェンジログを、ボット開発者の目線で整理しました。ファイル上限20 MiB、スラッシュコマンドの複数行入力、年齢確認、招待の対象ユーザーエンドポイント、大規模ボットのshard必須まで、discord.py 2.7.1のコードで対応します。
Discordボットでサーバーのログチャンネルを作ってみましょう。削除されたメッセージの内容と削除した人、入退室・ロール変更・キック・BANまで埋め込みで自動記録するログボットを、discord.py 2.xのサンプルでゼロから作ります。

Claude Opus 5.5が9月22日にリリースされました。Claude Code v2.1.280からデフォルトモデルがOpus 5.5に変わり、価格は20%下がりました。Opus 5からの変更点、settings.json・effortの見直し、APIの互換性変更までまとめました。

7月にClaude Opus 5のリリースをお伝えした際、/model・/effortコマンドを少しだけ紹介しました。その後、ブログの流入検索ワードを見ると「Claude Code モデル変更」「claude effort 違い」といったキーワードで訪れる方がずっといらっしゃいます。ところが…
前回はExcelのデータをGoogleスプレッドシートに自動でアップロードする方法(gspread)を紹介しました。データを集めて、保存して、共有するところまでは、もうPythonが全部やってくれます。
前回は通貨・ショップ(Economy)システムを作って、コインを稼いでアイテムを買えるボットを完成させました。サーバーに「遊び要素」が1つ増えたわけですね!今回は、サーバー運営で本当によく使われる機能、投票・アンケート(Poll)ボットを作ります。2つの方式を両方扱います。
Python 3.15正式版が2026年10月1日にリリースされます。これまでベータ4・rc1・rc2で新機能を紹介してきましたが、今回は「今のコードが3.15で壊れないか」を点検します。
前回の#13では、ロール・チャンネルの自動化でサーバー管理をまるごとボットに任せてみました。でも、ひとつ残念な点がありました。#13のtempchannelsのように変数にだけ入れておいたデータは、ボットを再起動した瞬間にすべて消えてしまうのです。
前回の#12では、コマンドのクールダウンと権限でボットを安全に守る方法を学びました。今回の#13ではさらに一歩進んで、サーバー管理者の繰り返し作業をまるごとボットに任せてみます。今日作る自動化はちょうど3つです。
前回の#11では、Flaskでボットの状態を確認できるWebダッシュボードを作りました。ボットの機能はかなりそろってきましたが、実際にサーバーに入れてみると、必ずこんなことが起きます。
前回の#10では、ボットをグローバルボットにする多言語(i18n)対応を扱いましたね。本来はクールダウン・権限管理を予告していましたが、その前に多くの方が気になっているテーマを先に持ってきました。そう、Webダッシュボード(Web Dashboard)作りです!(クールダウン編ももうすぐ公開するので、お楽しみに)
前回の#9では、ボットにAI(Claude・ChatGPT API)を連携して会話できるボットを作りましたね。今回はボットをグローバルボットにアップグレードします。そう、多言語(i18n)対応です!
前回の#8では埋め込み(Embed)でボットのメッセージをきれいに飾る方法を学びました。今回はいよいよ、多くの方が待っていたボットへのAI連携です!/ai 質問 と入力するとClaudeやChatGPTが答えてくれるボットを作ります。
前回の#7ではモーダル(Modal)でユーザーから入力を受け取りました。今回の#8では、ボットが送るメッセージをぐっと見やすくしてくれる埋め込み(Embed)を扱います!
前回はドロップダウン(Select Menu)で複数の選択肢をすっきりまとめる方法を学びました。でもボタンもドロップダウンも、結局は決められた選択肢から選ぶ方式です。ユーザーに自由にテキストを書いて送ってもらうにはどうすればいいでしょうか?
前回の#5ではボタン(Button)でボットとやり取りする方法を紹介しました。今回はさらに一歩進んで、最大25個の選択肢をまとめられるドロップダウンメニュー(Select Menu)を作ってみます!
前回の#4ではスラッシュコマンドで埋め込みを送信しました。今回はメッセージにクリックできるボタン(Button)を付けて、押すと反応する「インタラクティブなボット」を作ります!
Discordボットでスラッシュコマンドを使うには discord.app_commands を活用します。intents = discord.Intents.default() bot = commands.Bot(command_prefix="/", intents=intents)
たとえば… このように1つのコマンドグループの中に複数の機能を入れるんです! class UserCommandGroup(app_commands.Group) で name="user" のグループを作り、ユーザー関連コマンドをまとめます。
今回はユーザーの入力値を受け取って動くスラッシュコマンドを作ってみます。たとえば /say message:こんにちは のような感じです!今回もPythonとdiscord.pyをベースにしています。まずは下のコードを見てください👇
discord.pyでDiscordのスラッシュコマンド(/コマンド)を作ります。テキストコマンドよりずっとスッキリしていて、オートコンプリートも使えるので、今やほぼ必須の機能です!