コマンド生成の検証方法
MC Commanderでは「入力欄が動くこと」と「Minecraftで受け付けられる構文であること」を分けて検査します。過去に見つかった不具合も含め、どのように再発を防いでいるかを公開します。
検査を4段階に分けています
- ページ検査:入力欄、生成結果、コピー、保存、共有など、ブラウザ上の機能が欠けていないか確認します。
- コード検査:JavaScriptとPHPの構文エラー、内部リンク切れ、読み込みファイルの不足を自動検査します。
- 出力形式の回帰テスト:名前付きGive、Unbreakable、Summon、Tellrawなど、過去に壊れやすかった出力を固定テストします。
- ゲーム内確認:実際にMinecraft本体で確認した場合のみ、対象エディションとバージョンを明示して「ゲーム内確認済み」と扱います。
名前付きGiveの再発防止
Java 1.20.5以降では、名前付きアイテムは単純な[name=...]ではなく、minecraft:custom_nameコンポーネントを使用します。日本語、引用符、アポストロフィ、バックスラッシュを含む名前を回帰テストし、無効な旧形式が出力された場合は表示・コピー前に検出します。
/give @p minecraft:diamond_sword[minecraft:custom_name={"text":"検証の剣"}] 1バージョンごとに構文を分ける理由
| 対象 | 主な扱い |
|---|---|
| Java 1.12.2以前 | 旧NBTと旧ID体系を考慮 |
| Java 1.13~1.20.4 | 名前空間付きIDと従来NBT |
| Java 1.20.5~1.21.4 | Item Stack Componentsへ移行 |
| Java 1.21.5以降 | Text Componentやエンティティデータの変更を考慮 |
| Bedrock Edition | Java版NBTを流用せず、統合版で可能な構文だけを出力 |
Java版と統合版で同じ機能を一対一変換できない場合は、無理に「対応済み」とせずページ上で制限を表示します。
実際に修正した不具合
- GiveページでJavaScriptの読み込み状態によって入力フォームが表示されない問題。
- 名前付きアイテムで無効な
[name=...]形式が再発しないよう回帰テストを追加。 - Java 1.21.5以降のUnbreakable、Summon装備、属性、クリック・ホバーイベントをバージョン別に分離。
- BedrockのTellraw・TitlerawをJava版のテキスト構文と混同しないよう出力を分離。
「構文監査済み」の意味
サイトの「全ジェネレーター構文監査済み」は、公式仕様との照合、コード検査、回帰テストを実施していることを意味します。実際のMinecraft本体で全組み合わせを実行したという意味ではありません。不具合報告は再発防止テストへ反映します。
関連ページ
コンテンツ制作・検証方針 / 運営者情報 / お問い合わせ / 目的別コマンドガイド