【プラグイン紹介】チェストのようなGUIを自由に作れるプラグイン【Command Panels】
当記事にはアフィリエイト広告が含まれています。
2023年10月1日より施行された景品表示法の指定告示(通称:ステマ規制)によって、広告を掲載しているサイトやメディア、SNS内に、読者が認識できるような表記が必須となりました。
当サイトにおいても景品表示法に則り、冒頭に表記するようにしていますので、ご理解の上、ご覧いただけますと幸いです。
当記事にはアフィリエイト広告が含まれています。
2023年10月1日より施行された景品表示法の指定告示(通称:ステマ規制)によって、広告を掲載しているサイトやメディア、SNS内に、読者が認識できるような表記が必須となりました。
当サイトにおいても景品表示法に則り、冒頭に表記するようにしていますので、ご理解の上、ご覧いただけますと幸いです。
※2024年10月時点
この記事は以下に対応しています。どうもこんにちわ、揚げたてのポテトです。
海外サーバーなどでこんなのは見たことありませんか?
アイテムをクリックすると、インベントリが開いて更にその中のアイテムをクリックするとワールド移動できたり、メッセージが表示されるというものです。
こんなのできたらいいなと思ったことはありませんか?
今回はそういうことを可能にするプラグインをご紹介したいと思います。
Command Panelsとは
海外の方が開発されたプラグインで、バージョンは1.8~最新版まで対応しています。
Command Panelsは、事前に設定したアイテムをクリックするとインベントリを表示させることができ、更にその中でアイテムを表示させてクリックした時に様々なアクションを起こさせることができるプラグインです。
例えば、ワールド移動※1やサーバー移動※2ができたり、特定のアイテムを配布したりメッセージを表示させるなどができるようになります。
※1:ワールド間で移動ができるMultiverse-Coreなどを導入済みの必要あり
※2:サーバー間で移動ができるBungeeCordなどを導入済みの必要あり
要するにアイテムにコマンドを埋め込んでインベントリで表示し、クリックするとそれぞれのコマンドを実行できるよ!ということです。
※埋め込めるのは、バニラコマンドの他にプラグインコマンドなども可能です。
Command Panelsのダウンロード
Command Panelsは、1.8~1.12.2が対応しているCommand Panels Classicと1.13~最新版が対応しているCommand Panelsの2つに分かれています。
この2つはほぼ変わらないので、使い方は問題ないと思います。
今回はCommand Panelsを基準にご紹介します。
Command Panelsのコマンド一覧
Command Panelsのコマンド一覧を開く
コマンド | 許可(Permission) | 説 明 |
---|---|---|
/cp | - | コマンド一覧を表示する |
/cp [panel] | commandpanel.panel.[panel perm] | 指定のパネルを開く |
/cp [panel] [player name] | commandpanel.other | 指定プレイヤーに指定のパネルを開き、同時にホットバーにアイテムを与える |
/cp [panel] item [player name] | commandpanel.item.[panel perm] | 指定のパネルのアイテムを取得する |
/cpl | commandpanel.list | パネル一覧を表示する |
/cpc | commandpanel.close | 現在、開いているパネルを閉じる |
/cpg [rows] | commandpanel.generate | インベントリの行(1〜6)でパネルを生成する 指定が無い場合はチェスト(3×9)からパネルを生成します。 |
/cpr | commandpanel.reload | プラグインの設定を再読み込みする |
/cpv | commandpanel.version | プラグインのバージョンを確認する |
/cpv latest | commandpanel.update | 最新バージョンのCommandPanelsがダウンロードされ、サーバーの再起動時にインストールされます。 |
/cpv [version] | commandpanel.update | サーバーリロード/再起動時に指定したCommandPanelsのバージョンをダウンロードします。 例:/cpv3.14.2.0 |
/cpv cancel | commandpanel.update | 上記のダウンロードをキャンセルします。 |
/cpd | commandpanel.debug | コンソールでバグの詳細を表示する |
/cpe [panel] | commandpanel.edit | エディタを開く パネルを指定した場合は編集するパネルを開く |
/cpb add [panel] | commandpanel.block.add | ブロックを右クリックしたときにパネルを開く |
/cpb remove | commandpanel.block.remove | ブロックからパネルを削除する |
/cpb list | commandpanel.block.list | パネルがアタッチされているブロックの場所を一覧で表示する |
- | commandpanel.* | 全てのコマンドを許可する |
Command Panelsのプレースホルダー一覧
プレースホルダーとは、あらかじめ用意されている値(データ)を取得して置き換えることができます。
後ほど、使い方で説明するパネル設定のときに使うことができます。
詳しい使い方は、下記のCommand Panelsのパネル設定方法をご参照ください。
Command Panelsのプレースホルダー一覧を開く
プレースホルダー | 説 明 |
---|---|
%cp-player-displayname% | プレイヤーの表示名 |
%cp-player-name% | プレイヤー名 |
%cp-player-x% | プレイヤーのX座標 |
%cp-player-y% | プレイヤーのY座標 |
%cp-player-z% | プレイヤーのZ座標 |
%cp-player-input% | プレイヤーは、チャットに入力して、プレースホルダーの変更先を決定するよう求められる このプレースホルダーをアイテムごとに複数回使用すると、アイテムごとに入力が複製する |
%cp-player-world% | プレイヤーがいるワールド名 |
%cp-player-balance% | プレーヤーのバランス(economyとVaultが必要) |
%cp-player-online-1-find% | 番号1を任意の番号に変更できます。サーバースロットをチェックし、そのスロットでプレイヤーを見つける あなたがオンラインで1人だけで、番号1を使用している場合、それは自分自身として表示される 次に2にすると、サーバー上にプレイヤーが1人しかいないため、オフラインで表示される |
Command Panelsのタグ一覧
あらかじめ一部のバニラコマンド等がタグとして設定されています。
詳しい使い方は、下記のCommand Panelsのパネル設定方法をご参照ください。
Command Panelsのタグ一覧
タグ | 説 明 |
---|---|
open= | パネルを開きます。 使用法: open= <panel name> [placeholder:value] これは、パネル変数を処理する場合に役立ちます。詳細については、「パネル変数」ページを参照してください。 現在開いているパネルを開くために使用することはできません。 |
cpc | コマンドセクションでこれを使用すると、パネルが閉じます。 |
refresh | パネルを強制的に更新します。 アイテムがクリックされると同時にパネルが閉じないことを確認してください。 |
server= | BungeeCordを使用してプレイヤーを指定のサーバーにテレポートする。 |
delay= | 特定のコマンドを遅らせます。 使用法: delay = <Ticks> <コマンド> 例: delay= 20 msg= このメッセージを1秒後に表示されました |
sudo= | クリックしたプレイヤーに直接コマンドを実行する。 使用法: sudo= [command] |
console= | コンソールでコマンドを実行します。 |
nopapi= | 次のコマンドタグを使用して、PlaceHolderAPIプレースホルダーの実行を停止できます。 使用法:nopapi= [command] |
event= | メッセージを添付してPanelCommandEventをトリガーします。 例えば、メッセージにスペースを含めることはできません。 使用法: event= <message> |
sequence= | 異なるアイテムに同じコマンドを使用する場合にシーケンスを実行できます。使用法: sequence= [YAML location] |
op= | コマンドの権限を必要とせずにプレイヤーが実行できるようにします(非推奨) |
アイテムを指定するときに設定できます
マテリアルタグ | 説 明 |
---|---|
cps= | 頭ブロック(カスタムヘッド)を指定できます。 |
hdb= | ヘッドデータベースを利用して頭ブロックを追加します。 |
%cp-player-online-1-find% | スロットを確認し、そのスロットでプレイヤーを見つける。 もし、プレイヤーがオンライン上で1人だけで、1を指定していた場合、自分自身として表示される。 次に2と指定すると、サーバー上にプレイヤーが1人しかいないため、オフラインで表示される。 ※1の数値は任意の番号に変更可能 |
アイテムをクリックする時に特定のクリックで実行させるように設定できます
クリックタグ | タグ |
---|---|
right= | コマンドを実行するには右クリックをする必要がある。 |
rightshift= | コマンドを実行するには右クリック+スニークをする必要がある。 |
left= | コマンドを実行するには左クリックをする必要がある。 |
leftshift= | コマンドを実行するには左クリック+スニークをする必要がある。 |
middle= | コマンドを実行するには中クリックをする必要がある。 |
Command Panelsのパネル設定方法
それでは、パネルを作っていきましょう!実際に作成しながら説明していきます。
パネルの作成
下記のコマンドでパネルの大きさを決めましょう。
※最大6行まで指定できます。
※後から行数を変更できます。
/cpg [行]
今回は、3行×9列のパネルを作成するので「/cpg 3」と打ちこみました。
すると、このようにパネルが作成されるのでこの中に設定したいアイテムを入れます。
今回は、ベッドとリンゴとポーションを入れてみました。インベントリを解除すると入れたアイテムがパネルとして保存されます。
赤線で引かれているのが、作成されたパネル名になります。
それでは、作成したパネルにコマンドなどの設定をしていきましょう。
パネルの設定
「plugins」フォルダにある「CommandPanels」フォルダを開きます。
その中の「panels」フォルダを開き、先程作成されたパネルを開きます。
今回は、「panel-1」を開きます。
するとこのように先程、設置したアイテムがアイテムIDとして入っていると思います。こちらをいじっていきます。
行ごとに説明していくので、好きなように変えてください。
1行 | これはパネル設定ファイルのパーミッションです。 ※絶対に変えてはいけません。 |
2行 | パネルの名前です。好きな名前に変えることができます。 ※英数字ハイフン、アンダーバーのみ |
3行 | パーミッションの設定です。権限別に与えたい時に設定します。 ※PermissionsExやLuckPermプラグインを入れてる時のみ可能 |
4行 | パネルの行数を変更できます。 |
5行 | パネルを開いた時に左上に表示させるタイトルを設定します。 ※カラーコードや日本語も使用可能 |
6行 | コマンドを実行した時に表示させるパネルコマンドを設定します。 |
7行 | 設置したアイテム以外のスロットを指定のアイテムで埋めることができます。 ※デフォルトは黒の板ガラスになっています。 |
8行 | ここからアイテムの設定をするというものです。 ※絶対に変えてはいけません。 |
9行 | スロットの値になります。この値でアイテムを格納します。 ※スロットは左上から右に0~26と割り振られています。 |
10行 | アイテムのマテリアルを設定します。基本的にアイテムIDになります。 |
11行 | アイテムの名前を設定できます。 ※カラーコードや日本語も使用可能 |
12行以降 | 上記と同じ |
私は、このように設定してみました!
それでは、上書き保存して「cpr」コマンドでリロードしましょう。
/cpr
そして、先程作成したパネルコマンドを実行させるとパネルが表示されると思います。
これだけだと、アイテムをクリックしても何も起こりません。
次に各アイテムにコマンドを埋め込む設定をする必要があります!
パネルのコマンド設定
ここからはコマンド埋め込みやアイテムを取得する設定をしていきます。
下記に必要な書式を追加しました、追加した書式について説明していきます。
panels:
menu:
perm: default
rows: 3
title: '&8メニュー'
commands:
- menu
sound-on-open: BLOCK_NOTE_BLOCK_CHIME
empty: YELLOW_STAINED_GLASS_PANE
open-with-item:
material: POTATO
name: '&b&lメニュー'
lore:
- '&3クリックでメニューを開きます'
stationary: 4
item:
'10':
material: RED_BED
name: '&eロビー'
lore:
- '&7ロビーに移動します'
commands:
- mvtp Main-lobby
- msg= &cロビー&eに移動しました
'13':
material: APPLE
name: '&c美味しいりんご'
lore:
- '&7新鮮なりんごを手に入れる'
commands:
- give %cp-player-name% minecraft:apple 1
- msg= &c美味しいりんご&eを手に入れました!
'16':
material: POTION
potion: NIGHT_VISION
name: '&b暗視ポーション'
lore:
- '&7暗視を付与する'
commands:
- effect give %cp-player-name% minecraft:night_vision 999999 1 true
7行 | アイテムをクリックした時に鳴らす音を設定します。 ※こちらのサウンドの書式に合わせて入力する必要あり |
9行 | パネルを開くための専用アイテムを設定します。 ※設定方法はアイテム設定と同じ |
14行 | アイテムをホットバーに常時表示させる設定です。 ※0~8の値で設定可能、常時表示させない場合はfalse |
21行 | アイテムにコマンドを埋め込む設定です。 バニラコマンドやプラグインコマンドの埋め込みが可能 |
22行 | ハイフン(-)の後にスペース(空白)を入れて、コマンドを入力します。 ※上記で説明したプレースホルダやタグの指定も可能(30行、39行または23行を参照)。 |
この書式を設定ファイル(panel-1.yml)に置き換えると、
クリックした時に設定したコマンドが実行されるようになります!
最後に
いかがでしょうか。
Command Panelプラグインの他にも同じようなプラグインは沢山ありますが、ここまで自由に設定ができ、設定しやすいのは初めてです!
特に私が気に入ったのは、パネルを開いてアイテムをクリックした時に更にパネルを開ける機能もできる所がとても気に入りました。
これでパネルを開いて、更にワールド一覧のパネルを表示させることも出来て便利です。
それでは、最後まで見ていただきありがとうございました。
このオプションの使い方が分からない!って方はコメントしていただければわかる範囲でお答えします!
ゲーム内で中身を変更できますか?
paper-1.12.2、java18-openj9サーバーで
コンパスを左クリックすると次のパネルが開けるように設定したのですが、
「Nothing to pass through!」と表示されてしまいます。configは以下の通りです
panels:
menu:
perm: default
rows: 3
title: ‘&aカナブン鯖メニュー!’
commands:
– menu
sound-on-open: BLOCK_NOTE_BLOCK_CHIME
empty: AIR
open-with-item: COMMPAS
material: left=
name: ‘&6カナブン鯖メニュー’
lore:
– ‘&3クリックでメニューを開きます’
stationary: 4
item:
‘9’:
material: EYE_OF_ENDER
name: ‘&e開発中!’
lore:
– ‘&7お楽しみ!’
commands:
– msg= &cおっと!見せないよ~
’11’:
material: CAKE
name: ‘&eイベント鯖に行く!
lore:
– ‘&9期間限定’
commands:
– server= event
’13’:
material: GRASS
name: ‘&eサバイバル鯖に行く!’
lore:
– ‘&6[1.19.4-最新]’
commands:
– server= survival
’15’:
material: DIAMOND_SWORD
name: ‘&ePVP鯖に行く!’
lore:
– ‘&c現在休止中’
commands:
– msg= &c今は入れないよー
’17’:
material: BED
name: ‘&ebedwars鯖に行く!’
lore:
– ‘&6[1.8-最新]’
commands:
– tp 2 119 158
あと追加で質問して申し訳ないのですが、
初期状態からパネルを開けるコンパスを所持し、捨てられないように設定することは可能でしょうか?
よろしくお願いいたします。
nameやloreに日本語を使おうとすると?のように文字化けしてしまいます。どうしたらいいですか
パネルを開くアイテムを記事の通りに作成したのですが、
これではインベントリを1マス使用してしまいます。
アイテムを捨てようとしても戻ってきてしまうのですが
アイテムを捨てれるようにする設定方法はありますか?
また、パネルを開くアイテムを手に入れるためのコマンドを設定するためには
別のプラグインを利用しなければならないでしょうか?
公開サーバーの運営のものなのですが運営側の人だけが使えるGUIを作りたいのですが、luckpermsの権限設定でグループを作りpermというところにグループ名を入れたのですがなぜかできません。解決法があればお願いします。