偶に鯖管のつぶやきってことで、どうでもいいネタを書いてるんですがw、今回はこれまでに作ったSpigotプラグインを紹介してみます。ちなみにほとんど公開しておらず、私の管理しているサーバにしか導入してません。なので、読む人にとってはどうでもいいネタですね。要望があれば将来的に公開してもいいですが、まぁこういうアイデアもあるよみたいなのの参考にしていただければと思います。
目次
TacTools
私個人的にあると便利だなと思って作ったものです。プラグイン自体が細かいツールの集まりになってます。特に、そういうのを追加するのに容易なライブラリ[※]などもあるので、あれが欲しいなぁと思ったらサクっと追加できるのが非常に便利なところですね。
※たとえば、1.7~1.10で動くようにバージョンによって動作を変えるなどの機能面や、設定ファイルで特定のワールドだけ除外するとかそのツールでも必要な項目など、プラグインを作るたびに実装するのが面倒なので、それをパッケージ化して効率化を図ってる感じですね。
機能は主に管理用やプレイヤー支援ですが、それ以外にも私のサーバはルールが厳しいこともあり、取り締まりや読む側の負担になってしまってるので、ある程度自動で取り締まり/警告をすることで、お互いに嫌な思いをしないで済むようなツールも追加してます。
これまで作った機能は以下のようなのです。
Always Daylight / Always Night
ワールドを常に昼、あるいは夜にするプラグイン。どの時間にするか指定できるので、そもそも2つも要らないんじゃないかと感じてますが、AllegrettoTellaの1ワールド(闇/Tenebre)で使用してます。
ChatReach
LunaChatプラグインと連動して、話した言葉が誰に届いたかを常時表示してくれるプラグイン。AllegrettoTellaにはグローバルチャットが無く、会話が誰に届いたかわかりづらいので作った。
DetectTT
こっそり作られたモンスタートラップを発見するツール。TTってほとんどのサーバで禁止されている割に、発見するプラグインってほとんど無いんですよね。だから作りました。こっそり作られている物だから発見精度はわかりませんが、それなりに見つけて対処できていますね。
DisableEnderman
エンダーマンは容易に経験値稼ぎができる関係上出現させてませんが、シュルカーは出現させたいので作ったツール。ただ、シュルカーって固定みたいでスポーンする概念が無い?みたいなので、これの意味は無かったので使ってません。
EventLogger
調査用ツールで、内部イベント(たとえば敵を殴った、ブロックを置いたなどのアクション)をログに出すツール。イベントが多発すると負荷の原因にもなるので、それを発見する為に作成した物です。まだちょっとうまくいってないですが、無人で動くレッドストーン回路はルール上禁止しているので、それの発見に使いたいなと思ってます(今でも別のツールでできるけど面倒)
また、プラグイン開発などの調査にも便利なので個人的に重宝してます。
MacroCommands
1回のコマンドで、複数のコマンド(/spawnとか)を順番に実行するプラグイン。ServerSignsプラグインの手動コマンド版みたいな感じ?で、コマンドを10個書いたら上から順番に1秒間隔で実行するような動きをします。
よく使うのが、ワールド間ゲートの作成だとか、保護領域のフラグ設定(私のサーバでは管理者が作る保護領域は10個くらいのフラグを設定してる)に重宝してます。
また、複数のコマンドをランダムに選択して1つを実行したりとか、一定の確率で実行したりとかもできるので、今のサーバで投票によりMobヘッドがランダムで当選するって機能はこれで実現してます。
Mining In Light
暗い場所での採掘をできなくするツール。原案は実は他の鯖にもあったのでパクりですねw
個人的には脇つぶししてないことについてはあまり重要視して無かったんですが、気にする鯖民が多かったのと、坑道をたいまつも使わず鉱石だけ効率的に取っていく人が居て、あまり宜しくないなと思い作りました。
結構、難産なツールで作ったはいいが、ちょっとした日陰でも木が切れないとか、砂利で埋まっても脱出できないとか、不条理なことが起きるので、未だいろいろと調整してます。
MwModoki
ModifyWorld Modoki。プラグインのModifyWorldのほぼそのまま。某mod鯖でModifyWorldがうまく動かなかったので、調査がてら作った物。
Sky2Void / Void2Sky
奈落(y=0以下)へ転落したら別のワールドへ転送したりとか、空高く上がったら別のワールドの奈落近くに転送するとかを実現するツール。Alicorn/Avalonサーバではhome5でVoid2Skyが使われてます。また、AllegrettoTerraでは、Shangri-la⇔Habitat⇔Tenebreがこれで繋がってるので、うまくすれば255×3の高さを持つ建物を作れますw
OpHide
Op(管理者)が完全に消えるコマンド。潜入調査用w
たとえばFlyHackを使ってる人を、後ろから追って証拠用にこっそり撮影したりとかに使います。
Spawn
そのまんま/spawnコマンドで、ワールドスポーンへジャンプする。今ひとつしっくりくるプラグインが無かったのと、これまでHomeSpawnPlusを使ってたけど、機能が複雑過ぎて管理が面倒なので自作しちゃいました。
機能としては単純なワールドスポーンへジャンプの他、クールダウン / ウォームアップ時間を設定できる、コマンド実行からジャンプまでの待ち時間にダメージを受けたらキャンセルされる、、、だけのシンプルな仕様。
WorldNames
こんな感じでワールド移動時にメッセージを表示するツール。わかりやすいってだけ。確か1.8くらいから追加された/titleってコマンドを使ってる。/titleは1.8と1.9以降で指定方法が違うので、その辺もカバーしてる(1.7は対応してないので、左下にメッセージを出すだけ)
StopTrade
村人との取引を停止するツール。某所で使う予定で今のところは未使用。
RandamTp
指定した範囲内のどこかランダムなところへ、なるべく埋まらないようにTPさせる。ServerSignsと組み合わせて有る目的で使う予定だけど、今のところ未使用。
RemoveMoreEntity
サーバのルールで負荷対策として「動物飼育は1チャンク20匹まで」とか「TTは作らないこと」としてるけど、結局守られないことが多いので作られたツール。元々はClearLaggってプラグインを使ってたけど、絵画や額縁なども消えてしまったり、説明が英語でいまいち使い方がわからなかったので結局自作した系。
設定ファイルで指定したEntityしか消さない。
Ginou
UltimaOnlineにあったスキルシステムをパクってマイクラに導入した物wなんだかんだ、作成に3ヶ月位を要した。
AllegrettoTerraで採用してるので、詳しくはこちらを参照のこと。一部の機能が1.9以降で動かないので、今のところ1.8で維持の方針。
TacsPlots / TacsTowns
AvalonやAllegrettoTeraでTownyプラグインを導入してますが、これをもっとシンプルに使いやすくしたいコンセプトで作成してるプラグイン。今後使う予定で、まだ導入しているサーバは無いです。
TacsTownsを先に作ったんですが、それはボツにして作り直したのがTacsPlots。
基本的なコンセプトは、
- 基本的にはワールド全体を「建築禁止」にした上で、建築したい土地だけを取得して、他者からは保護される「荒しからの完全な保護」ができる安全設計。
- WorldGuard(/regionコマンド)や、Townyよりも考え方/コマンドはシンプル。たとえば建築したい土地に立って「/plots claim」コマンド一発でその土地がその人だけ建築可能になる。
※WorldGuardは範囲指定必須だし、Townyは先に「町」を作らないとClaimできない。 - 一緒に建築したい人の追加も容易。権限もある程度制限したい「友達」と、家族レベルくらいに信頼をおける「サブオーナ」の2つだけのシンプル設計。
※WorldGuardは領域毎に設定しなければならない。TacsPlotsは、1領域、あるいは全部のどちらか選択式。Townyはオーナ(町長)が居なくなると非常に困る状態になったけど、TacsPlotsはサブオーナさえ設定しておけば、それも無いです。 - サーバ参加直後に、大量の土地を取得させないように、ある程度、町としての成長が必要。なので、初めにいきなり土地だけをGetしてどこかに居なくなる問題も基本的には起きない(時間経過後に自動的に保護解除も検討中)
また、Townyも同様にお金を支払うことで土地を広げられるけど、TacsPlotsはコマンドなので、ServerSignsと連動すれば、お金以外の方法でも土地を広げられるように管理者次第で柔軟な作り込みができる。
ちなみにこれはソースコードをこちらで公開してますので、コンパイル環境があれば一応使えます。
TacsChestTrade
経済系プラグイン(いわゆるお金の概念)は経済破綻が起きやすいので、あまり使いたく無いという考えの基、AllegrettoTerraへ導入したプラグイン(AllegrettoTerraはお金の概念が無いです)。
ChestShopプラグインのようにチェストボックスに看板を貼るんですが、看板には欲しいアイテム、チェストボックスにはあげたいアイテムを置き、そのまま対象のアイテムをチェストで入れ替える感じでトレードできる。
看板には欲しいアイテムの数も書けるし、チェストの中のアイテムはスタックして置けばその分あげられる。
あげるアイテムの数は何種類でも指定できるし、欲しいアイテムは2つまで書ける。
要するに、トレードチェストを作った人がログインして無くても物々交換できるのがポイント。
StopTrade Ginou
の公開、配布予定はないでしょうか?
配布予定は無いです~。作ってから大分時間が経ってて今から公開はちょっと難しいかなぁ。