MiniGameMenu(ミニゲームメニュー)― OP・運営ガイド¶
MiniGameMenu の導入・/mgmenu コマンド・config(メニューアイテム / GUI / ゲーム定義 / 連携コマンド)・権限をまとめます。
基本情報¶
| 項目 | 値 |
|---|---|
| プラグイン名 | MiniGameMenu |
| メインコマンド | /mgmenu(エイリアス /menu・/mgm・/ミニゲーム) |
| プレイヤー操作 | 「生活鯖メニュー」の紙を右クリック(mgmenu.use、既定全員) |
| 依存プラグイン | なし(連携先の各ミニゲーム/カジノ等が別途必要) |
| 設定ファイル | plugins/MiniGameMenu/config.yml |
| api-version | 26.1.2(plugin.yml 表記は 1.21) |
仕組み: コマンド代行方式
本プラグインは各ミニゲーム本体を 改修しません。GUIのボタンを押すと、config に書かれた既存ゲームのコマンド(例: kakurenbo join)を プレイヤー本人(executor: player)または コンソール(executor: console)として代理実行します。%player% はクリックしたプレイヤー名に置換されます。
導入手順¶
- ビルドした
MiniGameMenuの jar をplugins/に配置する。 - サーバーを起動すると
plugins/MiniGameMenu/config.ymlが生成される(saveDefaultConfig()による初回生成)。 - 連携先の各ミニゲーム/カジノプラグインが導入され、
join・leave・startなどのコマンドが動作することを確認する。 - 必要に応じて config のゲーム定義・連携コマンド・便利ボタンを編集し、
/mgmenu reloadで反映する。
メニューアイテムは自動で配られます
既定では入室時にメニューアイテムが自動配布されます(後述の settings)。手動で渡したい場合は次のコマンドを使います。
コマンド¶
| コマンド | 権限 | 説明 |
|---|---|---|
/mgmenu(または open) |
mgmenu.use(既定全員) |
メニュー一覧GUIを開く(プレイヤー専用) |
/mgmenu give [プレイヤー] |
mgmenu.admin(既定OP) |
メニューアイテムを配布。引数なしは自分に配布 |
/mgmenu reload |
mgmenu.admin(既定OP) |
config.yml を再読み込み |
/mgmenu help |
なし | 使い方を表示(未知のサブコマンドも help を表示) |
引数なし = open
/mgmenu を引数なしで実行すると open(メニューを開く)として扱われます。open / help は全員、give / reload はタブ補完上も mgmenu.admin 保持者にのみ候補表示されます。
config.yml¶
settings(メニューアイテムの配布・保護)¶
settings:
give-on-first-join: true
give-on-join: true
prevent-drop: true
prevent-move: true
| キー | 既定値 | 説明 |
|---|---|---|
settings.give-on-first-join |
true |
初参加時にメニューアイテムを配布する |
settings.give-on-join |
true |
毎回の入室時 にメニューアイテムを配布する |
settings.prevent-drop |
true |
メニューアイテムのドロップを禁止する |
settings.prevent-move |
true |
メニューアイテムのインベントリ移動を禁止する |
give-on-join が true だと毎回配布されます
配布判定は「初参加 かつ give-on-first-join」または give-on-join です。give-on-join: true の場合は初参加かどうかに関わらず 毎回の入室時 に配布されます(既に所持していれば配布されません)。初回のみ配りたい場合は give-on-join: false にしてください。
menu-item(メニューアイテムの見た目・配置)¶
menu-item:
material: PAPER
name: "&6&l生活鯖メニュー &7(右クリック)"
lore:
- "&7右クリックでミニゲーム一覧を開く"
custom-model-data: 0
slot: 8
| キー | 既定値 | 説明 |
|---|---|---|
menu-item.material |
PAPER |
アイテムの種類(読み込み側の内部既定は WRITTEN_BOOK だが、標準 config.yml は PAPER) |
menu-item.name |
「生活鯖メニュー (右クリック)」 | 表示名(& カラーコード対応) |
menu-item.lore |
(上記) | 説明文 |
menu-item.custom-model-data |
0 |
カスタムモデルデータ |
menu-item.slot |
8 |
配布時に入れるホットバースロット(0〜8。範囲外は自動補正) |
gui(2つの画面のタイトル・サイズ)¶
gui:
list:
title: "&1&lミニゲームメニュー"
rows: 6
filler: GRAY_STAINED_GLASS_PANE
action:
title: "&1%game%"
rows: 3
filler: BLACK_STAINED_GLASS_PANE
| キー | 既定値 | 説明 |
|---|---|---|
gui.list.title |
ミニゲームメニュー |
第1画面(一覧)のタイトル |
gui.list.rows |
6 |
一覧画面の段数(1〜6) |
gui.list.filler |
GRAY_STAINED_GLASS_PANE |
空きスロットを埋める素材 |
gui.action.title |
%game% |
第2画面(操作)のタイトル。%game% はゲーム名に置換 |
gui.action.rows |
3 |
操作画面の段数(1〜6) |
gui.action.filler |
BLACK_STAINED_GLASS_PANE |
操作画面の埋め素材 |
旧キー互換
gui.list が無い場合は旧キー gui.main も読み込まれます。
buttons(操作画面のボタン)¶
buttons:
join: { material: LIME_WOOL, name: "&a&l▶ 参加する", slot: 11 }
leave: { material: RED_WOOL, name: "&c&l◀ 離脱する", slot: 13 }
start: { material: YELLOW_WOOL, name: "&e&l⚑ 開始する", slot: 15 }
back: { material: ARROW, name: "&7« 戻る", slot: 22 }
| キー | 既定 material / slot | 説明 |
|---|---|---|
buttons.join |
LIME_WOOL / 11 |
参加ボタン |
buttons.leave |
RED_WOOL / 13 |
離脱ボタン |
buttons.start |
YELLOW_WOOL / 15 |
開始ボタン |
buttons.back |
ARROW / 22 |
一覧へ戻るボタン |
ボタンは、そのゲームに対応する actions が定義されている場合のみ表示されます(未定義は非表示)。
categories / games / actions(ゲーム定義)¶
カテゴリは 定義順に上から自動整列 されます(slot 指定は不要)。各カテゴリの左端にカテゴリ見出しが置かれ、同じ行の右側にゲームが並びます。
categories:
minigame: # カテゴリID
name: "&bミニゲーム"
icon: NETHER_STAR
games:
kakurenbo: # ゲームID
name: "&aかくれんぼ"
icon: OAK_LEAVES
lore: ["&7隠れて逃げ切れ"]
actions:
join: { executor: player, command: "kakurenbo join" }
leave: { executor: player, command: "kakurenbo leave" }
start: { executor: player, command: "kakurenbo start" }
| キー | 説明 |
|---|---|
categories.<id>.name |
カテゴリ見出しの表示名 |
categories.<id>.icon |
見出しアイコン素材(既定 CHEST) |
categories.<id>.games.<id>.name |
ゲーム名(操作画面タイトルにも使用) |
categories.<id>.games.<id>.icon |
ゲームアイコン素材(既定 PAPER) |
categories.<id>.games.<id>.lore |
説明文 |
…actions.{join,leave,start}.executor |
player=本人実行/console=コンソール実行 |
…actions.{join,leave,start}.command |
実行するコマンド。文字列1つ、または複数行リスト可。%player% 置換対応 |
標準で収録されるゲーム
既定 config は minigame・casino の2カテゴリ 構成です。ミニゲーム20種(LOL/かくれんぼ/スプラ/ドロケイ/残機制PVP/雪合戦/雪鬼/青鬼/色鬼/ベッドウォーズ/PVP/TNTラン/アスレタイマー/バトルロイヤル/ボンバーマン/マリカー/人狼/釣りイベント/雪クラフト/2D宝探し)、カジノ8種(ブラックジャック/ポーカー/スロット/宝くじ/チンチロ/クイズ/競馬/育成競馬)が定義されています。連携コマンドは各ゲーム側の join/leave/start を呼び出します。
command が無いアクションはスキップ
actions 下に command が無いアクションは警告ログを出してスキップされます(ボタンも表示されません)。連携先のコマンド名が変わった場合は、ここを実環境に合わせて修正してください。
extras(一覧画面の便利ボタン)¶
一覧GUIに直接置く 単発コマンド実行ボタン です。ゲームは最下段を除く全段(既定6段なら 0〜4段目=スロット0〜44)に自動配置され、最下段(スロット45〜53) が便利ボタン・閉じるボタン用に確保されます。便利ボタンは config の slot で指定した位置に置かれます(既定では最下段のスロット45〜52)。最下段右端のスロット53には常に BARRIER の「閉じる」ボタンが置かれます。
extras:
spawn-world:
slot: 45
material: RED_BED
name: "&c&l初期スポーン"
lore: ["&7ワールドの初期リスポーン地点へ移動"]
executor: player
command: "spawn"
gs-give:
slot: 51
material: STICK
name: "&6共有倉庫の棒を入手"
executor: console
command: "gs give %player%"
| キー | 説明 |
|---|---|
extras.<id>.slot |
配置スロット(必須。未指定はスキップ) |
extras.<id>.material |
素材(既定 PAPER) |
extras.<id>.name |
表示名 |
extras.<id>.lore |
説明文 |
extras.<id>.executor |
player または console(%player% 置換対応) |
extras.<id>.command |
実行コマンド(必須。文字列/リスト可。未指定はスキップ) |
標準では初期スポーン・スポーン1〜5(/spawn 系)、共有倉庫の棒入手(gs give %player%)、個人倉庫の本入手(ps give %player%)が定義されています。gs give・ps give はOP専用コマンドのため executor: console で実行されます。
権限ノード¶
| 権限 | 既定 | 用途 |
|---|---|---|
mgmenu.use |
全員 | メニューを開ける(/mgmenu open・メニューアイテム右クリック) |
mgmenu.admin |
OP | give / reload などの管理コマンド |
実行されるコマンド側の権限に注意
メニューはあくまでコマンドを 代理実行 するだけです。executor: player の場合、その連携コマンドはプレイヤー本人の権限で実行されます。管理者専用コマンドを呼ぶボタンは executor: console を使ってください(標準の gs give・ps give がこの方式です)。
config 自動生成・再読込について¶
既存サーバーは config が自動追記されません
本プラグインは onEnable で saveDefaultConfig() のみを行います。config.yml が無ければ初回に生成 されますが、既存の config.yml に新キーを自動追記することはありません。新しいゲームや便利ボタンを追加したい場合は 手動で追記、または既存 config を退避して再生成してください。読み込み側にも既定値があるため、キーが欠けていても基本動作はします。
編集後は reload で反映
config を編集したら /mgmenu reload で再読み込みできます(サーバー再起動は不要)。読み込み時、不明な material はログ警告を出して既定素材にフォールバックします。
トラブルシューティング¶
ボタンを押してもゲームに参加できない
連携先プラグインが導入され、対応コマンド(actions.*.command)が実際に動作するか確認してください。コマンド名が異なる場合は config を実環境に合わせて修正します。
あるゲームに「開始」ボタンが出ない
そのゲームの actions に start が定義されていません。定義が無いアクションのボタンは表示されない仕様です。必要なら actions.start を追記してください。
便利ボタンが表示されない
extras.<id>.slot または command が未設定だとスキップされます(警告ログ)。slot は一覧GUIの範囲内(既定6段=0〜53、便利ボタン用の最下段は45〜52、スロット53は閉じるボタンで固定)にしてください。
メニューアイテムが配られない/毎回配られる
settings.give-on-first-join と give-on-join を確認してください。初回のみ配布したい場合は give-on-join: false にします。既に所持している場合は配布されません。