[Spigot 1.12.2] ItemCommands+ Ver.3.0 アイテムクリックでコマンド実行!

サーバーMODやBUKKITのプラグインなどの公開/紹介を専門に行うフォーラムです。クライアントMODと組み合わせ必須の物はMOD公開/紹介フォーラムで公開してください。
フォーラムルール
クライアントMODと対にして使用する物は極力 MOD 公開/紹介 フォーラムにて公開するようお願いします。
本フォーラムではサーバーへの適用をメインとするサーバーMOD、プラグインを取り扱います。
不明な点は管理人ecolightまでお問い合わせ下さい。
  • (PostNo.310560)

[Spigot 1.12.2] ItemCommands+ Ver.3.0 アイテムクリックでコマンド実行!

投稿記事by amata1219 » 2017年11月20日(月) 20:46

画像

Ver.3.0 データ編集強化 Update!

ダウンロード

Spigot 1.12.2 ItemCommands+ Ver.3.0.zip
Spigot 1.12.2 ItemCommands+ Ver.3.0
(24.71 KiB) ダウンロード数: 56 回


・/ic+ add [name] がアイテムにカスタムネームを設定していた場合に登録名を指定する必要が無くなりました。
・コンフィグファイルリロードコマンドを、/ic+ reload [config/data] に変更しました。
・登録名やメッセージに装飾コードを使用可能になりました。&記号を用いて指定出来ます。
・プレースホルダ [direction:x], [direction:y], [direction:z] を追加しました。
・アイテム情報2分割保存を廃止し、全てのアイテム情報をdata.ymlに保存する形になりました。
・それに伴いdata.ymlを直接編集する事でアイテム情報を簡単に書き換える事が出来ます。
・本プラグインの機能を快適に使用頂ける様、その他細かい変更を行いました。

・Ver.3.0を導入しますと、Ver.2.0以前に登録されたアイテム情報は全てdata.ymlに移動され、Dataフォルダ及び.binファイルは全て削除されます。


概要

特定のアイテムクリック時にコマンドを実行させるシステムを追加するプラグインです。
パーミッション判定無しにコマンドを実行させる事も出来ます。

特徴

・実質無限にコマンド埋め込みアイテムを追加可能。
・クールダウンや消費の指定可能。
・左右判定、空中判定、エンティティ判定などクリック入力に対する条件指定可能。
・埋め込んだコマンドにプレースホルダを用いる事で使用時の情報に置換可能。

コマンド一覧

アイテム名やメッセージ等には装飾コードを使用出来ます。装飾コードは&記号を用いて入力出来ます。

使用例:/ic+ add &0TEST → 黒文字のTESTとして扱われる。複数指定可能。

/ic+

・本プラグインの詳細を表示します。

/ic+ commands

・本プラグインのコマンド一覧を表示します。

/ic+ add [name]

・メインハンドに持っているアイテムを指定した名前で登録します。
・アイテムにカスタムネームを設定している場合は、登録名を指定せず登録する事が可能です。

/ic+ remove [name]

・指定アイテムの登録情報を削除します。

/ic+ give [name]

・指定した名前で登録されているアイテムを入手します。

/ic+ edit [name] [permission/cooldownMessage/remove/actions/commands]

・指定アイテムの登録情報を編集します。
・詳しい使用方法は下記の「アイテムの登録方法及び情報編集について」をご参照下さい。

/ic+ list

・全アイテム名を表示します。

/ic+ backup [config/data]

・指定ファイルをバックアップします。
・詳細は下記の「Backupフォルダについて」をご覧下さい。

/ic+ reload [config/data]

・指定したコンフィグファイルをリロードします。/ic+ edit コマンドを使用して値を書き換えた場合は実行する必要はありません。

アイテムの登録方法及び情報編集について

1.アイテムの登録方法

・メインハンドに任意のアイテムを持ち、/ic+ add [name] を実行します。
・アイテムにカスタムネームを設定している場合は、登録名を指定せず登録する事が可能です。
・[name]はアイテムの登録名になります。任意の名前を指定して下さい。使用中の名前は使用出来ません。
・空気は登録出来ません。また、アイテム情報に個数は含まれません。

2.Editコマンドを使用しアイテム情報を編集します。

・アイテム名やメッセージ等には装飾コードを使用出来ます。装飾コードは&記号を用いて入力出来ます。
・使用例:/ic+ add &0TEST → 黒文字のTESTとして扱われる。複数指定可能。

・/ic+ edit でゲーム内からも簡単な使用方法を確認できます。
・/ic+ edit [name] で指定アイテムの情報を確認出来ます。

☆Permission

・アイテム使用時に権限判定が出来ます。指定された権限を持っていない場合は使用出来ません。
・未指定のままでもアイテムは使用可能です。
・/ic+ edit [name] permission [permission/null] で指定したパーミッションを設定します。
・nullを指定した場合は設定されているパーミッションが削除されます。
・デフォルト値はnullです。つまり未指定の状態です。

☆CooldownTick

・アイテムにクールダウンタイムを設定出来ます。クールダウン中はアイテムを使用出来ません。
・未指定の場合はクールダウンは無効のままです。
・/ic+ edit [name] cooldownTick [tick] で指定したクールダウンタイムを設定します。
・クールダウンタイムはtick単位で設定出来ます。20tick=1秒、1tick=0.05秒となります。
・0を指定した場合はクールダウンが無効になります。
・デフォルト値は0です。つまりクールダウン無効の状態です。

☆CooldownMessage

・クールダウン中にアイテムを使用しようとした場合に警告メッセージを表示出来ます。
・未指定の場合はコンフィグ(config.yml)のDefaultCooldownMessageを参照します。
・/ic+ edit [name] cooldownMessage [message/null] で指定したメッセージを設定します。
・nullを指定した場合は設定されているメッセージが削除されます。
・デフォルト値はnullです。つまりコンフィグの値を参照します。
・メッセージにはプレースホルダを使用出来ます。詳しくは下記の「プレースホルダ一覧と使用方法」をご参照下さい。

☆Remove

・アイテムを消費するか設定出来ます。
・未指定の場合は消費が有効になります。
・/ic+ edit [name] remove [true/false] でtrueを指定すると有効、falseで無効にします。
・デフォルト値はtrueです。つまり消費が有効の状態です。

☆Actions

・左右判定、空中判定、エンティティ判定などクリック入力に対する条件指定が出来ます。
・未指定の場合はアイテムを使用出来ません。
・/ic+ edit [name] actions [add/remove/clear]
[RIGHT_CLICK_AIR/RIGHT_CLICK_BLOCK/LEFT_CLICK_AIR/LEFT_CLICK_BLOCK/RIGHT_CLICK_ENTITY/LEFT_CLICK_ENTITY]で設定出来ます。

・addで指定した条件を追加、removeで指定した条件を削除します。
・clearを指定する事で追加されている条件を全てクリアします。この場合に条件の指定は必要ありません。
・RIGHT_CLICK~…は右クリック、LEFT_CLICK~…は左クリックを指します。
・AIRは空気中、BLOCKはブロック、ENTITYはエンティティをクリックした場合を指します。
・デフォルト値は存在しません。つまりアイテムを使用出来ません。

☆Commands

・本プラグインのメイン機能、アイテム使用時にコマンドを実行させる事が出来ます。
・未指定の場合はアイテム使用時にコマンドは何も実行されません。
・/ic+ edit [name] commands [add/remove/clear] [console/operator/player] [command]で設定出来ます。
・addで指定したコマンドを追加、removeで指定したコマンドを削除します。
・clearを指定する事で追加されているコマンドを全てクリアします。この場合にコマンド及び実行タイプの指定は必要ありません。
・コマンドに対して実行タイプを設定出来ます。consoleはコンソールから実行、operatorは権限判定無視で実行、playerは権限判定有りの実行となります。
・コマンドにはプレースホルダを使用出来ます。詳しくは下記の「プレースホルダ一覧と使用方法」をご参照下さい。

プレースホルダ一覧と使用方法

・埋め込みコマンドやクールダウンメッセージ、パーミッションメッセージにはプレースホルダを使用出来ます。
・※クールダウンメッセージは [cooldown:t] と [cooldown:s] のみ使用出来ます。
・※パーミッションメッセージは [permission] のみ使用出来ます。

・使用例1:アイテムに次のコマンドを埋め込む /kill [name]
・→ amata1219というプレイヤーがアイテムを使用する。
・→アイテム使用時に [name] が使用者の名前に置換され、/kill amata1219となる。
・→コマンドが実行され、アイテム使用者が殺害される。やったぜ。

・使用例2:アイテムに次のコマンドを埋め込む /say [e_name]のHPは[e_hp]/[e_maxHp]です。
・→ プレイヤーがエンティティ(Type: COW, HP: 2, MaxHP: 10)をクリックしアイテムを使用する。
・→アイテム使用時に [e_name] がエンティティ名、[e_hp] がエンティティのHP、[e_maxHp] がエンティティの最大HPに置換され、/say COWのHPは2/10です。 となる。
・→コマンドが実行され、アイテム使用者が「COWのHPは2/10です。」と発言する。


[name]

・アイテム使用者のユーザー名に置換します。
・※コマンド一覧に記述されている [name] とは別物です。

[customName]

・アイテム使用者に設定されているカスタムネームに置換します。*1

[uuid]

・アイテム使用者のUUIDに置換します。

[loc:x], [loc:y], [loc:z], [loc:w]

・アイテム使用者の座標に置換します。
・xでX座標、yでY座標、zでZ座標、wでワールド名に置換されます。

[bed:x], [bed:y], [bed:z], [bed:w]

・アイテム使用者が最後に寝たベッド座標に置換します。
・xでX座標、yでY座標、zでZ座標、wでワールド名に置換されます。
・※ベッドが存在しない場合はプレースホルダは削除されます。

[direction:x], [direction:y], [direction:z]

・アイテム使用者の見ている方向の座標に置換します。
・xでX座標、yでY座標、zでZ座標に置換されます。

[exp]

・アイテム使用者の経験値量に置換します。

[expLv]

・アイテム使用者の経験値レベルに置換します。

[maxHp]

・アイテム使用者の最大HPに置換します。

[hp]

・アイテム使用者のHPに置換します。

[hunger]

・アイテム使用者の満腹度に置換します。

[b_loc:x], [b_loc:y], [b_loc:z]

・クリックしたブロックの座標に置換します。*2
・xでX座標、yでY座標、zでZ座標に置換されます。

[b_name]

・クリックしたブロック名に置換します。半角英数字の大文字です。*2

[biome]

・クリックしたブロックが存在するバイオーム名に置換します。*2

[e_loc:x], [e_loc:y], [e_loc:z]

・クリックしたエンティティの座標に置換します。*3
・xでX座標、yでY座標、zでZ座標に置換されます。

[e_name]

・クリックしたエンティティ名に置換します。半角英語の大文字です。*3

[e_customName]

・クリックしたエンティティに設定されているカスタムネームに置換します。*1*3

[e_maxHp]

・クリックしたエンティティの最大HPに置換します。*3

[e_hp]

・クリックしたエンティティのHPに置換します。*3

[cooldown:t], [cooldown:s]

・クールダウンメッセージ専用のプレースホルダです。残りのクールダウンタイムに置換します。
・tでTick単位、sで秒単位となります。

[permission]

・パーミッションメッセージ専用のプレースホルダです。アイテムのパーミッションに置換します。

*1 カスタムネームが存在しない場合はプレースホルダのみ削除されます。
*2 ブロックが存在しない場合はプレースホルダは削除されます。
*3 エンティティが存在しない場合はプレースホルダのみ削除されます。

コンフィグ(config.yml)について

・一部の処理に使用する値を記述するファイルです。
・値を編集した場合はファイルを上書き保存し、/ic+ reload config を実行して下さい。

☆DefaultCooldownMessage

・クールダウンメッセージ未指定のアイテムをクールダウン中に使用した場合に表示されるメッセージです。*1
・デフォルト値は、§cクールダウン中です(後[cooldown:s]秒)!です。

☆DefaultPermissionMessage

・アイテム使用に必要なパーミッションを持っていない状態でアイテムを使用しようとした場合に表示されるメッセージです。*1
・デフォルト値は、§cパーミッション([permission])が無いため使用出来ません!です。

☆EnableLogging

・アイテム使用時に使用ログをコンソールに流すか選択します。trueで有効、falseで無効になります。
・デフォルト値は、false です。つまり無効の状態です。

*1 §(セクション記号)を用いた装飾コードも使用可能です。

データコンフィグ(data.yml)について

・data.ymlは登録された全アイテムの情報を保存しています。
・config.ymlと同じ要領で情報の書き換えが可能ですが、正しく書き換えないとエラーが発生する可能性があるため予めバックアップして編集する事を推奨します。

・値を編集した場合はファイルを上書き保存し、/ic+ reload data を実行して下さい。

Backupファイルについて

・config.ymlファイル、data.ymlファイル等のコンフィグファイルはSpigotの使用上、何かしらのエラー発生時に白紙になる場合があります。
・本プラグインは登録された全アイテムの情報の保存先にdata.ymlファイルを使用しているためバックアップコマンドを設けています。
・/ic+ backup [config/data] で指定したファイルをBackupフォルダにバックアップします。
・ファイルは、指定ファイル名-現在のミリ秒時間.yml として保存されます。

アイテム使用ロギング機能について

・アイテム使用時にコンソールにログを流す機能です。
・コンフィグ(config.yml)のEnableLoggingを有効にすると利用出来ます。
・ログは、[プレイヤー名(UUID)] used [アイテム名]. となります。

/ic+ コマンドのパーミッション

コード: 全て選択
item.commands.plus.icplus


利用規約

本プラグインの二次配布及び自作発言は禁止します。
また、本プラグインに関連して直接的又は間接的に被った損害につきましては一切責任を負いませんのでご了承下さい。

導入方法

・ページトップダウンロードボタンよりファイルダウンロード後、解凍してサーバーのpluginsフォルダに入れて下さい。
・サーバー起動後、自動で本プラグイン用のフォルダ、Backupフォルダ、config.ymlファイル、data.ymlファイルが生成されます。

バージョン情報

Spigot 1.12.2
ItemCommands+ 3.0

開発環境

Eclipse 4.6 NEON
Java 1.8

更新履歴

2017/11/20 Spigot 1.12.2 ItemCommands+ Ver.1.0 公開!

2017/11/21 Spigot 1.12.2 ItemCommands+ Ver.1.1(不具合修正版) 更新!

2017/12/26 Spigot 1.12.2 ItemCommands+ Ver.2.0 Edit簡略化 Update!

2018/1/7 Spigot 1.12.2 ItemCommands+ Ver.3.0 データ編集強化 Update!

ソースコード

本プラグインのソースコードはGithub-ItemCommands+にて公開しております。

その他

不具合やご不明な点等ありましたら当トピック、若しくはTwitter@amata1219のDMまでお問い合わせ下さい。
ご要望も受け付けております。何かありましたら上に同じくamata1219までお願い致します。
最後に編集したユーザー amata1219 [ 2018年1月07日(日) 18:21 ], 累計 15 回
アバター
amata1219
ID:73846743
大工さん
 
記事: 45
登録日時: 2016年11月18日(金) 16:46
お住まい: 愛知県

  • (PostNo.310584)

Re: [Spigot 1.12.2] ItemCommands+ Ver.1.0 アイテムクリックでコマンド実行!

投稿記事by yuttyann44581 » 2017年11月21日(火) 11:14

ソースコードを見て、気になったところがあったので、言います。

EventListeners の 129行
コード: 全て選択
if (item.isRemove())itemStack.setAmount(itemStack.getAmount() - 1);

の部分ですが0以下の場合 AIR を指定してあげないとアイテムが消えませんよ。
コード: 全て選択
if (item.isRemove()) {
   int result = itemStack.getAmount() - 1;
   if (result > 0) {
     itemStack.setAmount(result);
   } else {
     itemStack.setType(Material.AIR);
   }
}

一応プラグインを起動して確認しました。

確認作業GIF: https://gyazo.com/0c4c7c8e17905896b124292090024834
配布プラグイン一覧: https://file.yuttyann44581.net/
「Kuwaty Server」の運営をしております。
Java、C#で何かを作ってたり....
ScriptBlockPlus
画像
アバター
yuttyann44581
ID:ce21883a
鉄鉱掘り
 
記事: 335
登録日時: 2013年6月27日(木) 00:07
お住まい: 茨城県のどこか

  • (PostNo.310591)

Re: [Spigot 1.12.2] ItemCommands+ Ver.1.0 アイテムクリックでコマンド実行!

投稿記事by amata1219 » 2017年11月21日(火) 19:51

yuttyann44581 さんが書きました:ソースコードを見て、気になったところがあったので、言います。

EventListeners の 129行
コード: 全て選択
if (item.isRemove())itemStack.setAmount(itemStack.getAmount() - 1);

の部分ですが0以下の場合 AIR を指定してあげないとアイテムが消えませんよ。
コード: 全て選択
if (item.isRemove()) {
   int result = itemStack.getAmount() - 1;
   if (result > 0) {
     itemStack.setAmount(result);
   } else {
     itemStack.setType(Material.AIR);
   }
}

一応プラグインを起動して確認しました。

確認作業GIF: https://gyazo.com/0c4c7c8e17905896b124292090024834


yuttyann44581さん、不具合のご指摘ありがとうございます。
こちらでも確認しましたが同様の症状は見受けられませんでした。
環境の違い等何か別の原因があるのでしょうか…?

一応こちらの環境を記載させて頂きます。
Server: Spigot 1.12.2 メモリ割り当て1G
Plugin: ItemCommands+のみ導入
Client: Minecraft 1.12.2
GameMode: Survival
PC: Windows 10 Home 64bit Intel(R) Core(TM) i7-6700HQ @ CPU 2.6GHz RAM 4.00GB

Item: 上位金リンゴ, Permission null, NormalClick true, EntityClick false, Cooldown 0, CancelMessage null, Remove true, NormalClickActions RIGHT_CLICK_AIR, EntityClickActions 未指定, Commands [operator] say hello


念の為、本日中にコード修正版に更新させて頂きます。
ご報告ありがとうございました。
最後に編集したユーザー amata1219 [ 2017年11月26日(日) 14:55 ], 累計 1 回
アバター
amata1219
ID:73846743
大工さん
 
記事: 45
登録日時: 2016年11月18日(金) 16:46
お住まい: 愛知県

  • (PostNo.310592)

Re: [Spigot 1.12.2] ItemCommands+ Ver.1.0 アイテムクリックでコマンド実行!

投稿記事by amata1219 » 2017年11月21日(火) 20:09

Spigot 1.12.2 ItemCommands+ Ver.1.1(不具合修正版) 更新のお知らせ

アイテム数が残り1個の状態でアイテムを使用した場合、消費判定処理が正常に動作しない不具合を報告頂いたため修正しました。
アバター
amata1219
ID:73846743
大工さん
 
記事: 45
登録日時: 2016年11月18日(金) 16:46
お住まい: 愛知県

  • (PostNo.311541)

Re: [Spigot 1.12.2] ItemCommands+ Ver.1.1 アイテムクリックでコマンド実行!

投稿記事by ぬち0301 » 2017年12月18日(月) 20:24

まだバグが直って無いような気がするのですが
https://gyazo.com/e5cb89bf5fa699f66a5b922f4aeb02ae

追加してほしい機能
・アイテムを消費しするとコンソールが
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
という感じになっているのでそれをオン・オフ出来る機能を追加お願いします。
ぬち0301
ID:02272dbb
木を殴ってる
 
記事: 23
登録日時: 2017年2月27日(月) 00:42

  • (PostNo.311665)

Re: [Spigot 1.12.2] ItemCommands+ Ver.1.1 アイテムクリックでコマンド実行!

投稿記事by amata1219 » 2017年12月21日(木) 21:14

ぬち0301 さんが書きました:まだバグが直って無いような気がするのですが
https://gyazo.com/e5cb89bf5fa699f66a5b922f4aeb02ae

追加してほしい機能
・アイテムを消費しするとコンソールが
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
[ItemCoomandsPlus]
という感じになっているのでそれをオン・オフ出来る機能を追加お願いします。


ぬち0301さん、不具合のご指摘とご要望ありがとうございます。
アイテム消費機能に関しましてはどうやらSpigotAPI側の処理が不安定の様ですので代替案で対応致します。
ログ出力の非表示も合わせて追加しますのでお待ち頂ければと思います。
アバター
amata1219
ID:edd44330
大工さん
 
記事: 45
登録日時: 2016年11月18日(金) 16:46
お住まい: 愛知県

  • (PostNo.311836)

Re: [Spigot 1.12.2] ItemCommands+ Ver.2.0 アイテムクリックでコマンド実行!

投稿記事by amata1219 » 2017年12月25日(月) 20:48

Ver.2.0 Edit簡略化 Update!

・アイテムが消費されてない不具合を修正しました。

・アイテム情報を簡略化しました。

・コマンドを追加しました。

・プレースホルダを追加しました。

・ロギング機能を追加しました。

・その他本プラグインの機能を快適にご使用頂ける様、細かな改善を行いました。

トピックの記事をアップデートに合わせて編集しましたので、詳細はそちらをご覧下さい。
最後に編集したユーザー amata1219 [ 2018年1月07日(日) 18:25 ], 累計 1 回
アバター
amata1219
ID:326468fb
大工さん
 
記事: 45
登録日時: 2016年11月18日(金) 16:46
お住まい: 愛知県

  • (PostNo.312403)

Re: [Spigot 1.12.2] ItemCommands+ Ver.3.0 アイテムクリックでコマンド実行!

投稿記事by amata1219 » 2018年1月07日(日) 18:25

Ver.3.0 データ編集強化 Update!

・/ic+ add [name] がアイテムにカスタムネームを設定していた場合に登録名を指定する必要が無くなりました。

・コンフィグファイルリロードコマンドを、/ic+ reload [config/data] に変更しました。

・登録名やメッセージに装飾コードを使用可能になりました。&記号を用いて指定出来ます。

・プレースホルダ [direction:x], [direction:y], [direction:z] を追加しました。

・アイテム情報2分割保存を廃止し、全てのアイテム情報をdata.ymlに保存する形になりました。

・それに伴いdata.ymlを直接編集する事でアイテム情報を簡単に書き換える事が出来ます。

・本プラグインの機能を快適に使用頂ける様、その他細かい変更を行いました。

・Ver.3.0を導入しますと、Ver.2.0以前に登録されたアイテム情報は全てdata.ymlに移動され、Dataフォルダ及び.binファイルは全て削除されます。
アバター
amata1219
ID:e1aff9c0
大工さん
 
記事: 45
登録日時: 2016年11月18日(金) 16:46
お住まい: 愛知県


Return to サーバーMOD,プラグイン 公開/紹介

x