純規の暇人趣味ブログ

首を突っ込んで足を洗う

[Bukkit/Spigot]コマンドだけでDynmapからCaveを消す

      2016/03/14    HimaJyun

みなさん、DynmapのCave、消していますか?

これ、ぶっちゃけ、あったってメリットも無いしディスク容量の無駄になる事が多いです。
と言う訳で、消し方をググると「テンプレを編集」と言う面倒な手法がトップでヒットします。

この手法はとても面倒なため、個人的におススメの「コマンドだけで消せる」手法をご紹介致します。

Caveを消す

Dynmapは方角や解像度、種類や昼夜に応じてマップを追加したり削除する事が可能です。
デフォルトでは、Flat、Surface、Caveの3種類となっています。

まぁ、ここをご覧の方であればCaveが何かはご存知だと思いますが、以下の様なマップです。
bukkit-dynmap-remove-cave-001

ただ、このCave、ぶっちゃけ大した利用価値もない上に、洞窟もスケスケになってしまい、色々と要らない娘です。
消し去ってしまいたいです。

テンプレートを編集して消す

と言う訳で、「Dynmap Cave 消し方」とかでググると、「templates」を編集する方法がヒットします。
具体的に、以下の様な手法です。

  1. dynmap/templatesディレクトリ内の「normal」から始まっているファイルを開く
  2. Caveに関する項目をコメントアウト(または、消す)

「normal」から始まっているファイルですが、バージョン2.2の時点で以下の7つがありました

  • normal-hi_boost_vhi.txt
  • normal-hi_boost_xhi.txt
  • normal-hires.txt
  • normal-low_boost_hi.txt
  • normal-lowres.txt
  • normal-vlowres.txt
  • normal.txt

これらのファイルを開くと、以下の様な記載が見つかると思います(ファイルに依って内容は多少変化します)

- class: org.dynmap.hdmap.HDMap
 name: cave
 title: "Cave"
 prefix: ct
 perspective: iso_SE_60_vlowres
 shader: cave
 lighting: default
 # Adjust extra zoom in levels - default is 2
 mapzoomin: 2

これらのCaveに関する設定を、コメントアウト(先頭に「#」を付ける)か、消してしまって下さい。
そうすると、DynmapからCaveを消す事が出来ます。

ただ、この方法はテンプレートを直接操作する(デフォルト設定を変更する)ので、逆にCaveが欲しくなった時に困ります。
また、どの「normal」を消せば良いのか良く分かりませんし、Dynmapのリロードが必要になります。

たかだかCaveを消す如きの操作にしてはイレギュラーが多いですし、個人的はあまりおススメの方法ではありません。
マップからCaveを消すくらいでしたら、操作が簡単で、再起動なども要らないため、コマンドで操作するのがおススメです。

コマンドでCaveを消す

まずは「/dynmap pause all」コマンドでマップのレンダリングを一時停止する必要があります。
一時停止しないと「Cannot edit map data while rendering active」とかって怒られます。

追記:コメントで情報頂きました。
/dynmap purgemap マップ名 cave」で実際のマップデータも削除出来るようです(後述のmapdeleteだけだとデータがディスク上に残ります)

次に「/dmap mapdelete マップ名:cave」コマンドを実行して、Caveを消します。
マップ名はworldとか、world_netherとかって奴ですね。(例:dmap mapdelete world:cave)

消し終わったら「/dynmap pause none」コマンドでレンダリングを再開します。

簡単にまとめると以下の4ステップです。

  1. /dynmap pause all
  2. /dynmap purgemap マップ名 cave
  3. /dmap mapdelete マップ名:cave
  4. /dynmap pause none

もし、複数のマップのCaveを消したい場合は1の後に2と3を繰り返せば良いです。

ね?、たったこれだけです。
4回コマンドを打つだけでCaveが消えていきます。

むしろなぜテンプレを弄り倒すと言うイレギュラーな方法がググって出て来るのかが謎なくらいです。

まとめ

以下の4コマンドで消える。

「/dynmap pause all」->「/dynmap purgemap マップ名 cave」->「/dmap mapdelete マップ名:cave」->「/dynmap pause none」

個人的な意見としては、Caveで洞窟が見えた所で何もメリットはないですし、むしろ洞窟で鉱石を入手される事に依るバランス周りの問題が出て来ます。

「これが無いと僕は死んでしまうんだ!!」みたいな強力な理由でも無い限りは、容量の無駄ですし消してしまった方が良いかと思います。

 - サーバ運営