やりたかったのはMinecraftのサーバで、複数のワールドを接続して行き来するってこと。
というのも、 Splatoonという配布ワールドが楽しそうだったので、これを今のワールドを壊さずに入れてあげたくてね。
スプラトゥーンの対戦モードをマインクラフト内で再現した猛者が登場、Wii Uがなくてもイカしたバトルが可能に | GIGAZINE
ここで紹介されているデータは、下記からダウンロードができる。
で、複数ワールドを接続して遊ぶにはCraftBukkitというサーバソフトウェアが必要で、今のForgeというサーバソフトじゃ対応できないようだ。
ところがこのCraftBukkit、今はデジタル著作権なんちゃらで公開が停止されているそうで、ソースを持ってきて自分でコンパイルするしかないらしい。 そして、それはSpigotMCという名前で脈々と開発が受け継がれているらしい。
と言うことで、下記を参考に環境構築したのでメモを残す。
書いてある通りに必要な環境を整える。
$ sudo yum install -y git java-1.7.0-openjdk-devel tar
順番にBuildToolの導入も書いてある通りに進める。 まず大元になるファイルをダウンロード。
$ wget -O BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
引き続きコンパイル。
$ git config --global --unset core.autocrlf $ java -jar BuildTools.jar
あれ? 失敗。 こんなエラーが表示された。
unconfigured@null.spigotmc.org Exception in thread "main" java.lang.NullPointerException at java.io.File.(File.java:277) at org.spigotmc.builder.Builder.main(Builder.java:174)
おかしいな。 試しにjavaのバージョンを上げてみよう。
$ sudo yum install -y git java-1.8.0-openjdk-devel tar
これをインストールしても標準だと1.7が動くけど、下記のコマンドで起動するjavaのバージョンを変更することが可能だ。
$ sudo alternatives --config java 2 プログラムがあり 'java' を提供します。 選択 コマンド ----------------------------------------------- * 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java + 2 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.45-28.b13.el6_6.x86_64/jre/bin/java Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
でも、これでもエラーがでる。 ソース読むしか無いのかと思って茫然としたけれど、もしかしてバグだったのか(苦笑
Bug – BuildTools Error #39 | SpigotMC – High Performance Minecraft
改めて最新版を落としてきたら、無事にコンパイル終了!! いやっほー!!
それなりに時間のかかるコンパイルが終わると、下記のディレクトリやファイルが生成されているので、
drwxrwxr-x 5 bukkit bukkit 4096 6月 10 20:51 2015 BuildData -rw-rw-r-- 1 bukkit bukkit 3410610 6月 11 00:22 2015 BuildTools.jar -rw-rw-r-- 1 bukkit bukkit 755279 6月 12 23:17 2015 BuildTools.log.txt drwxrwxr-x 5 bukkit bukkit 4096 6月 12 23:09 2015 Bukkit drwxrwxr-x 6 bukkit bukkit 4096 6月 12 23:15 2015 CraftBukkit drwxrwxr-x 9 bukkit bukkit 4096 6月 12 23:16 2015 Spigot drwxrwxr-x 6 bukkit bukkit 4096 6月 12 23:05 2015 apache-maven-3.2.5 drwxr-xr-x 4 bukkit bukkit 4096 6月 10 20:49 2015 bukkit -rw-rw-r-- 1 bukkit bukkit 18825482 6月 12 23:17 2015 craftbukkit-1.8.7.jar -rw-rw-r-- 1 bukkit bukkit 21553777 6月 12 23:17 2015 spigot-1.8.7.jar drwxrwxr-x 3 bukkit bukkit 4096 6月 12 23:06 2015 work
基本的にはspigotを使えば良いようだ。
では、さっそく起動!
$ java -Xms1024M -Xmx1024M -jar spigot-1.8.7.jar nogui
懐かしいメッセージが出たね(笑
Loading libraries, please wait...
[INFO]: Starting minecraft server version 1.8.7
[INFO]: Loading properties
[INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[INFO]: Stopping server
メッセージ通りeula.txtを直す。
$ vim eula.txt
中身はこうなってる
#By changing the setting below to TRUE you are indicating your agreement to our EULA (//account.mojang.com/documents/minecraft_eula).
#Fri Jun 12 23:35:29 JST 2015
eula=false
このfalseをtureに直す。
eula=true
で、さっきの起動コマンドを実行すると、下記の表示が出て起動する。
[23:40:46 INFO]: Done (16.925s)! For help, type "help" or "?"
よし、これでOKだ。 早速プラグインを導入しよう。
ココを参考にして、公式プラグインサイトからダウンロードしたファイルをpluginディレクトリにコピーする。 それぞれのプラグインのレビューは、改めて記事にアップすることにして、取り急ぎメモだけ残す。
- AsyncWorldEdit : WorldEditの補助らしい
- ChopTree : 斧で木を切ると全部壊れる(きこり)
- 葉っぱも含む、斧以外でもOK等が設定できる
- WorldEdit : コマンドでワールドを編集できるようになる
- WorldGuard : ワールドを保護する設定ができる
- PermissionsEX : 細かく権限を設定できる
- spigotも標準でpermissions.ymlというファイルがあるが必要なのか?
- Essentials : 便利ツールセット
- motd.txt : ログイン画面に表示するメッセージを記入するファイル(日本語OK)
- Multiverse : 複数ワールドを生成してコマンドで移動することができる
- 配布マップをインポートすることも可能
- Multiverse-Portals : 複数ワールドへの転送ポータルを作成する
- LunaChat : チャット機能強化
- ローマ字で打つと平仮名に変換してくれる
巨人プラグインも面白そうだな。
ところが、やりたかった配布マップ(Splatoon)が何故か動かなくて、純正のサーバプログラムでも正常に動作してくれない。
何故だ。
設定なのかな? もう少し時間のあるときに、色々試してみよう。