純規の暇人趣味ブログ

手を突っ込んで足を洗う

[Bukkit/Spigot]ウィザー/エンドラの召喚を制限するプラグイン作った

      2016/08/05    HimaJyun

どうも、AMiTサーバのナカノヒトです。
ご存知無いでしょうが、Bukkitプラグイン作れるタイプの人です。

前まで使っていたプラグインが1.8になってからエラーを吐くようになり、代替になるプラグインを自作したため公開します。

ByeByeWither

今回公開するプラグインは「ByeByeWither(バイバイウィザー)」です。
名前の通りのプラグインで、「ウィザーの召喚を無効化する」プラグインです。

WorldGuardでブロックの破壊を阻止しても、MOBに対する攻撃はしっかりと効いてしまいます。
つまり、主ワールドで公共牧場の近くなどで召喚されると大惨事です。
と言うか、ブロック破壊を阻止するとハメゲーになっちゃう……

WorldGuardで爆発すら無効に出来ますが、やはり召喚される事に変わりはありません
と言うか、爆発のないウィザーとかただのサンドバッグ……

かと言って、ソウルサンド/MOB頭を一切置けない様にしてしまうのは建築の幅を狭める……

と言う、わがまま王/姫にはぜひこのプラグインを使ってほしいです。

1.9~の機能としてエンドラにも対応しています。
無差別にエンドラを召喚する行為はある種の荒らしにも近い火力を誇るので阻止してしまうと言う手もありです。

共通の特徴

  1. ワールド単位で制限可能
  2. ウィザーの召喚を無効化

ワールド単位で制限可能

当然ですね、もはや説明するまでもありません

ウィザーの召喚を無効化

このプラグインはウィザーの召喚を無効化します。
つまり、召喚条件を満たしても何も起きない様にしてしまうのです。

ある有名なプラグインではMOB頭の設置を制限すると言う機能でした
ByeByeWitherではウィザーの召喚を無効化するだけなので、「ソウルサンドの上にウィザー頭骨を置く」と言う行為そのものは阻害しません!!

そのため、建築の幅を狭めることなく安全性を確保する事が可能です。

For 1.9

追記(2016/03/07):
1.9になってエンドラの再召喚が可能になったのでエンドラにも対応してみました

エンドラ対応したら同じ名前の別のプラグイン状態になってしまったので1.8と分けてご紹介します。

特徴

1.9~は上記の「共通の特徴」に加えて、以下の特徴が加わっています。

  1. エンドクリスタルの設置を拒否
  2. ウィザー/エンドラの機能の有効無効を個別で切り替え
  3. 権限での許可も可能

エンドクリスタルの設置を拒否

ウィザーの無効化と同じ手法でエンダードラゴンを無効化したら、ボスが出ていないのに体力が表示されると言う事態に陥ったため、エンドクリスタルの設置を阻止する様にしています。

しかし、エンドクリスタルの設置であれば無条件で拒否する訳ではありません。
ワールドタイプがジ・エンドかつ、設置しようとしたブロックが岩盤、つまりほぼイコールでエンドのポータルに設置しようとした時のみ、設置を拒否します。

機能の有効無効切り替え

ウィザー/エンドラのどちらかの機能だけを使いたい?
ご安心を、config.ymlのEnableをfalseにするだけで機能をoffにする事が可能です。

権限での許可

もし、設置しようとしたプレイヤーが「byebyewither.allowdragon」権限を保有していた場合には、制限しているワールドであっても設置する事が可能です。

イベントなどでもそのまま使えますね!!

使い方

  1. ByeByeWitherをダウンロード
  2. pluginsに入れて起動
  3. 設定を変更して再起動

Spigot1.10.2での動作を確認しています。(1.9でも動作すると思われます。)

1.8以前のサーバをご利用の方は「For 1.8」をご利用下さい。
1.9用のプラグインを1.8で使うと多分バグります。

設定

デフォルト設定では以下の様になっています。

Wither:
  Enable: true
  Allow:
  - world_nether
  - world_the_end

EnderDragon:
  Enable: true
  Allow:
  - world_the_end

見りゃ分かるとは思いますが、一応説明しておくと

「Wither」はウィザーの関する設定項目です。
「EnderDragon」はエンダードラゴンに関する設定

「Enable」が「true」だと機能を有効に、「false」だと無効にします。
(それ以外の値を設定した場合はfalseとして扱われます。)

「Allow」は召喚を許可するワールドです。

参考までに、AMiTサーバでの設定例です。

Wither:
 Enable: true
 Allow:
 - Resource
 - Resource_Sub
 - Resource_Nether
 - Resource_End

EnderDragon:
 Enable: true
 Allow:
 - Resource_End

両機能とも有効にしており、ウィザーは資源(Resource)系のワールド
エンドラは資源エンド(Resource_End)でしか召喚できない様にしています。

コマンド/パーミッション

コマンドはリロードのみとなっています、権限にエンダードラゴンを許可する権限があります。

コマンド パーミッション 説明 デフォルト
/bbw reload byebyewither.reload 設定ファイルをリロードします。 OP
N/A byebyewither.allowdragon 設定に関わらずエンドラを召喚出来ます。 OP
N/A byebyewither.* 上記全ての権限を含みます。 なし

For 1.8

こちらは1.8以前のサーバ用です。
エンドラの召喚拒否機能はありませんのでご注意を

使い方

  1. ByeByeWither(1.0)をダウンロード(MD5:35235bd17b4ef31041b3102f0a965c6a)
  2. pluginsに入れて起動
  3. 設定を変更して再起動

Spigot1.8.8での動作を確認しています。
大した機能では無いので、それ以前のバージョンでも動くとは思います。

設定

デフォルト設定は以下の様になっています。

# This plugin disabled worlds
Worlds:
 - world_nether
 - world_the_end

見りゃ分かるのですが、「Worlds」は召喚を許可するワールドです。

参考までに、AMiTサーバでの実際の設定例です。

Worlds:
 - Resource
 - Resource_Sub
 - Resource_Nether

Resource(資源)系のマップは破壊されても問題ないため、許可する様にしています。

コマンド/パーミッション

シンプルなプラグインなのでコマンドはリロードのみとなっています。

コマンド パーミッション 説明 デフォルト
/bbw reload byebyewither.reload 設定ファイルをリロードします。 OP

特別凄い機能を持つ訳ではありませんが、シンプルイズベストな機能のプラグインに仕上がっています。
ボスモンスターは一歩間違えば多大な被害を引き起こすため、対策として入れておくと良いでしょう。

あって困るものでは無いと思うのでぜひ使ってみて下さい。

 - サーバ運営 ,