さくらのVPSにSpigot(CraftBukkit)を導入する

やりたかったのはMinecraftのサーバで、複数のワールドを接続して行き来するってこと。

というのも、 Splatoonという配布ワールドが楽しそうだったので、これを今のワールドを壊さずに入れてあげたくてね。

スプラトゥーンの対戦モードをマインクラフト内で再現した猛者が登場、Wii Uがなくてもイカしたバトルが可能に | GIGAZINE

ここで紹介されているデータは、下記からダウンロードができる。

Splatoon | SethBling: Minecraft on YouTube

で、複数ワールドを接続して遊ぶにはCraftBukkitというサーバソフトウェアが必要で、今のForgeというサーバソフトじゃ対応できないようだ。

ところがこのCraftBukkit、今はデジタル著作権なんちゃらで公開が停止されているそうで、ソースを持ってきて自分でコンパイルするしかないらしい。 そして、それはSpigotMCという名前で脈々と開発が受け継がれているらしい。

と言うことで、下記を参考に環境構築したのでメモを残す。

BuildTools | SpigotMC – High Performance Minecraft

書いてある通りに必要な環境を整える。

$ 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)が何故か動かなくて、純正のサーバプログラムでも正常に動作してくれない。

何故だ。

設定なのかな? もう少し時間のあるときに、色々試してみよう。

『さくらのVPSにSpigot(CraftBukkit)を導入する』へのコメント

  1. 名前:onp 投稿日:2015/08/22(Sat) 00:18:38 ID:65ce698a3 Reply

    わかりやすかったです!
    探していたので感謝です~

    • 名前:管理人 投稿日:2015/08/26(Wed) 21:14:02 ID:cb0c6b38d Reply

      お役に立てて何よりです!
      楽しいサーバを作ったら教えてください!