メインコンテンツまでスキップ

診断コード一覧

メニューの読み込みや /menu reload のとき、設定に問題があると、サーバーコンソールに次の形式でログが出力されます。

[shop] menu-items[0].material (diamond) unknown or non-item material: DIMAOND [unknown-material]

行末の [ ] の中が診断コードです。コードは安定した識別子で、メッセージの文言が変わっても同じです。 ログの読み方は リロードと設定検証 を参照してください。

重大度​

重大度意味
ERRORリロード候補(またはメニュー)が拒否されます。以前の設定がそのまま使われます。修正が必要です。
WARNING問題のある部分だけを取り除く、または既定値を使って続行します。diagnostics.log-warnings-on-load: false で出力を止められます。

同じコードでも、原因によってERRORになる場合とWARNINGになる場合があります。下の表の「重大度」を確認してください。


共通の入力ミス​

コード重大度原因修正方法
invalid-typeERRORキーの値の型が違います。menu-items がリストでない、文字列であるべき値が数値やリストになっている、など。メッセージの must be a list / must be text / must be a number / must be true or false / must be a section に合わせて、YAMLの書き方を直します。
invalid-valueERROR値が許される範囲や選択肢にありません。click-policy の綴り、executor が player / console でない、delay の duration が0以下、title のtickが負、body の type が不明、type: input の command に {変数名} がない、など。メッセージの内容に従って値を直します。type: input の command には、{input}(variable を指定した場合はその名前)を含めます。
missing-fieldERROR必須のキーがありません。アイテムに command / action / actions がない、アクションの type / menu / message / sound / prompt / world / x / y / z / effect がない、open-command.name がない、input の id がない、cooldown の duration がない、material がない、など。足りないキーを書き足します。装飾専用のアイテムにしたい場合は actions: [] と書きます。

アイテム・配置​

コード重大度原因修正方法
unknown-materialERROR / WARNINGアイテムの material が存在しない、またはアイテムでない素材です(ERROR)。menu-background-item の素材が不明です(WARNING。既定の GRAY_STAINED_GLASS_PANE を使って続行)。素材名を直します(例: DIAMOND)。背景を使わないなら none を指定します。
invalid-slotERRORslot が 0〜menu-size - 1 の範囲外、または location が 列,行 の形式でない・数値でない・範囲外です。slot を範囲内にします。location は "列,行"(列 1〜9、行 1〜menu-size ÷ 9)で書きます。
duplicate-slotERROR複数のアイテムが同じスロットを使っています。どちらかのスロットを変えます。
duplicate-element-idERROR複数のアイテムが同じ id を持っています(省略時の自動 id も含む)。id を一意にします。
slot-overrides-locationWARNING1つのアイテムに slot と location の両方があります。slot が優先されます。どちらか一方にします。
invalid-sizeERRORmenu-size(または presentation.inventory.size)が、9の倍数で 9〜54 の範囲にありません。9, 18, 27, 36, 45, 54 のいずれかにします。
unknown-componentWARNINGcomponents に未知のキーがあります。そのキーは無視されます。使えるキー(unbreakable, max-stack-size, damage, max-damage, repair-cost, rarity, item-model, hide-tooltip, enchantment-glint-override)にします。

アクション​

コード重大度原因修正方法
ambiguous-actionERRORaction と actions を同時に書いています。どちらか一方にします。
action-overrides-commandWARNINGcommand と action / actions を両方書いています。command は無視されます。不要な方を削除します。
unknown-action-typeERRORアクションの type が未知です。使える種別は command, player-command, console-command, open-menu, close-menu, message, sound, title, teleport, delay, potion-effect, input です。
empty-commandERRORコマンドが空です(空白だけ、/ だけを含む)。コマンドを書きます。
no-usable-actionERRORaction または actions を書いたのに、有効なアクションが1つも残りませんでした。個別のエラーを先に直します。
unknown-soundWARNINGサウンド名が存在しません。その sound だけが取り除かれ、メニューは開きます。サウンド名を直します(例: ENTITY_PLAYER_LEVELUP)。
unknown-menu-referenceERRORopen-menu(または sub_<id>)の遷移先に、存在しないメニューIDを指定しています。バリアントや type: input の完了後アクション内も検査されます。メニューIDを直すか、対応する sub/<id>.yml を作成します。

条件・バリアント​

コード重大度原因修正方法
invalid-conditionERROR条件の書き方が不正です。未知のキー、空の権限、world に in / not-in がない、gamemode が空、placeholder に value / operator / compare が揃っていない、未知の operator、all / any がリストでない、など。条件 と Condition 一覧 を参照して直します。
invalid-variantERRORバリアントに override セクションがありません。override: を追加します。

表示・入力・クールダウン・コマンド​

コード重大度原因修正方法
invalid-presentationERROR / WARNING表示モードの名前が不明です(ERROR。presentation.mode または runtime.default-presentation)。native.columns / native.button-width が 1 未満です(WARNING。既定値を使って続行)。モードは inventory, native-preferred, native-required, rich-preferred, rich-required, auto から選びます。
dialog-key-ignoredWARNINGdialog と presentation を両方書いています。dialog は無視されます。どちらか一方にします。
invalid-cooldownERRORクールダウンの時間が不正(0以下、数値でない)、またはセクションでも時間でもありません。5s のように正の時間を書きます。
invalid-inputERROR / WARNINGinputs の定義に問題があります。未知の type、min が max を超える、max-length や timeout-seconds が0以下、option に選択肢がない・id が重複している、initial が入力の条件を満たさない、など(ERROR)。min / max を数値以外の型に書いた、options を option 以外に書いた、type: input アクションに入力後の処理がない(WARNING)。メッセージの内容に従って直します。
duplicate-input-idERROR同じメニュー内で inputs の id が重複しています。id を一意にします。
unknown-input-referenceERRORアイテムの input-refs が、宣言されていない入力 id を指しています。inputs に宣言するか、input-refs を直します。
invalid-open-commandERRORopen-command の name または aliases に使えない文字が含まれる、または32文字を超えています。英数字・_・- のみ、32文字以内にします。

コマンド衝突などのメニュー以外のエラー​

次のエラーは診断コードを持たず、リロードのログに別の形式で出力されます。

メッセージ原因修正方法
Command '/xxx' is requested by both 'a' and 'b'複数のメニューの open-command が同じコマンド名を使っています。名前や aliases を変えます。
Command '/xxx' is already owned by <プラグイン名>他のプラグインが同名のコマンドをすでに持っています。open-command.name または aliases を変えます。
Duplicate menu ID: xxx異なるフォルダに同名のYAMLがあります。メニューIDはファイル名で決まるため重複できません。ファイル名を変えます。
Menu file not found / Configuration file is emptymain.yml が無い、または空です。ファイルを復元します。
Candidate config.yml is invalidconfig.yml のYAMLが読めません。インデントや引用符などの文法を直します。