A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

SpongeForge Serverの建て方(1.11)

自分でも忘れそうなので、メモがてらSpongeForge Serverのセットアップ方法を書いておきます。

OSはLinux7系、マイクラは1.11系で記載しています。

Firewall/iptablesの設定などの基本的な設定や、各種ファイルのDL方法、その他OSの基本的な使い方などは書いていませんので、ご自分で調べて下さい。

そもそもSpongeForgeとは何か?

forge modとspongeプラグインで拡張できるマインクラフトサーバのことです。bukkit/spigot系プラグインは動きません。(強引に動かすプラグインはあります)
なお、forge modに対応していないSpongeVanillaというのもあります。

簡単にメリット/デメリットを書くと以下の様な感じでしょうか?

メリット

  • forge modが動く。
  • プラグインでの機能拡張ができる。
    ※bukkit/spigot系プラグイン+forge modが1.7.10までなのに対し、Spongeプラグイン+forge modは最新版のマイクラにも対応してる.
  • 最近は安定してきた。特にバージョン違いに伴い動かないというのが少ない気がする。
  • サーバの構築が簡単。
  • 構成がシンプル。設定ファイルが最小限に留めて有るし、mod/プラグインを格納するディレクトリ構成も統一されてる。
  • 比較的最新のマイクラバージョンへの対応が早い。よって、それに対応したmodを動かすこともできる。
  • SpongeAPIがよくできてる。経済系/DB/ページネーション(メニューを表示させてクリックでコマンド実行など)が標準搭載されてたりするので、要するにプレイする側としては見栄えの統一化や高機能なプラグインが早く提供されやすいみたいなメリットがあります。

デメリット

  • bukkit/spigot系プラグインが動かない。
  • 日本ではまだまだ知名度が低い。
  • やはりforge modは古いマイクラバージョンにしか対応してない物が多い。
  • まだ未完成(な部分がAPIにある)
  • プラグインと言っても中身はforge modに近いところもあり、プラグインならではの取り扱いの容易さは、若干bukkit/spigot系プラグインより劣る(サーバを止めずにプラグインの追加とかは無理)

サーバ構築の公式ドキュメントは以下のURLです。管理者用のコマンドなどもここに書いてあるので参考にしましょう。

https://docs.spongepowered.org/master/ja/server/index.html

以下、もう少し詳細な説明です。サーバ構築とは直接関係ないので、読み飛ばしてもいいです。

マインクラフトサーバには、大きく分けてmod系とプラグイン系があります。mod系はforge modが代表と言っても差し支えは無いと思います。プラグイン系は、bukkitやspigotでしょう。これら、forgeやbukkit、spigotでサーバを構築することでそれぞれに対応したmodやプラグインが使えます。

昨今ではforgeとspigotが最新版のマイクラに対応していますが、forge modとspigotプラグインを同時に使えるサーバは最新版に対応できていません。私もあまり調べていませんが、Thermosがマイクラ1.7.10に対応してるくらいでしょうか?
spongeの開発は、bukkitの開発停止の時期から始まってます。bukkitがマイクラのソフトウェアの使用許諾(EULA)に関わる問題で開発停止になったことで、EULAに抵触しない様々なサーバプログラムが開発され始めました。spigotの利用が盛んになったのもその頃です。
一方、spongeはそれらを統べて動かすことができるプラットフォームとして開発が始まった流れになってます。

現在は、spigotと同じプラグイン系サーバであるSpongeVanillaと、そのプラグインとforge modの両方が使えるSpongeForgeサーバがダウンロードできるようになってます。

ちなみにspongeにはバージョンがあって、spongeプラグインはそのバージョンの影響を受けるようです。現在、マイクラ1.10系がspongeAPI 5、マイクラ1.11系がspongeAPI 6のようですが、この間の互換性は高いようなので、spongeAPI 5で作られたプラグインは難なくspongeAPI 6の環境でも動くようですね。
※残念ながらマイクラ1.12系向けのspongeAPI 7は構造が大分変わっており、プラグインの旧バージョンとの互換性は低い。

構築するバージョンを決める

forge modはforge serverのバージョンに依存しますが、それはsponge serverも同様です。特にsponge serverはforgeのバージョンと完全一致しておいた方が無難なので、sponge serverのバージョンも確認しておきましょう。

今回使用したファイルは以下の通りです。

気にしておくべきは赤字の部分です。
1.11はMinecraftのバージョンです。2195はforgeのバージョンですね。6.0.0はspongeのバージョンでsponge pluginの動作に影響します。

インストール

forgeのインストール

forgeインストーラを起動し、必要なファイルのダウンロードを済ませます。

$ java -jar ./forge-1.11-13.19.1.2195-installer.jar nogui --installServer
~略~
These libraries failed to download, try again.
net.minecraftforge:MercuriusUpdater:1.11
There was an error during server installation

なにやらエラーは沢山出ますが、librariesディレクトリとminecraft_server.1.11.jarファイルができていることを確認します。

次に同じディレクトリでforgeを起動します。(spongeはまだ置かない)

$ java -jar forge-1.11-13.19.1.2195-universal.jar
~略~
[13:16:15] [Server thread/WARN]: Failed to load eula.txt
[13:16:15] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

事前にダウンロードしたファイルが不足などしてればこの手前でエラーになると思うので、その場合はinstallerで再ダウンロードなどして下さい。とりあえずこのメッセージまで来ればこの場はOKです。CTRL+Cを押下するなど、プログラムを強制停止して下さい。

ここで止まるのは、installerがMinecraft公式サイトからダウンロードした「minecraft_server.1.11.jar」を起動するのに、EULA(使用許諾契約書)に対する同意が必要な為です。EULAの内容については、この際に作成されるeula.txtの中に書いてあるので、読んでおきましょう。

EULAの中身に問題が無ければ同意します。eula.txtファイルので、eula=falseをeula=trueへ変更し保存し、改めて起動します。

$ java -jar forge-1.11-13.19.1.2195-universal.jar
※javaの起動オプションはここでは限りなく省略しています。環境に応じて記載してください。
[13:34:06] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker
[13:34:06] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker
[13:34:06] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLServerTweaker
[13:34:09] [main/INFO] [FML]: Forge Mod Loader version 13.19.1.2195 for Minecraft 1.11 loading
~略~
[13:34:48] [Server thread/INFO]: Preparing spawn area: 94%
[13:34:49] [Server thread/INFO]: Done (21.691s)! For help, type "help" or "?"

途中でエラーが出る場合もあるので、都度エラーの内容をよく読んで対処しましょう。ちなみに、初回起動時は以下の類いのメッセージは出ます。

[13:34:27] [Server thread/WARN]: Failed to load user banlist:
java.io.FileNotFoundException: banned-players.json (No such file or directory)
 at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_92]

これは、ファイルが無いことを意味しています。無いファイルやディレクトリは基本的に作成してくれるので、気にしないでも大丈夫ですが、気になるならそれぞれファイルを確認して下さい。
ちなみに、1度起動すれば不足ファイルは作成されるので、2度目の起動ではエラーは無くなります。

エラーについて
javaプログラムでは希に以下の様なメッセージが出ます。これはエラーというか例外(Exception)と呼ばれる物です。
基本的には1行目がプログラムが出しているメッセージです。(Failed to load white-list→white-listファイルの読み込みに失敗しました)

2行目以降はスタックトレースと言い、javaの実行環境が自動的に出しているメッセージなのでちょっとわかりづらいですが、よく読むと理解できる場合もあります。
(java.io.FileNotFoundException: whitelist.json (No such file or directory)→java.io.FileNotFoundException(これは例外の名前)より伝達。whitelist.jsonというファイルかディレクトリが無いよ)

例外処理はこのようなファイルの有無、設定ファイルの記載ミス程度であればよく読めば解消できます。逆にプログラム内部の問題だと、解決は困難かなと思います。

[13:34:27] [Server thread/WARN]: Failed to load white-list:
java.io.FileNotFoundException: whitelist.json (No such file or directory)
 at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_92]
 at java.io.FileInputStream.open(FileInputStream.java:195) ~[?:1.8.0_92]
 at java.io.FileInputStream.<init>(FileInputStream.java:138) ~[?:1.8.0_92]
 at com.google.common.io.Files.newReader(Files.java:86) ~[minecraft_server.1.11.jar:?]
 at net.minecraft.server.management.UserList.func_152679_g(SourceFile:136) ~[mx.class:?]
 at net.minecraft.server.dedicated.DedicatedPlayerList.func_72418_v(SourceFile:123) [lg.class:?]
 at net.minecraft.server.dedicated.DedicatedPlayerList.<init>(SourceFile:30) [lg.class:?]
 at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:216) [lh.class:?]
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442) [MinecraftServer.class:?]
 at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92]

SpongeForgeのインストール

forgeを起動すると、forge modを入れる為の「mods」ディレクトリが作成されますが、spongeもそこに入れます。事前にダウンロードした「spongeforge-1.11-2195-6.0.0-BETA-2004.jar」をmodsディレクトリに突っ込んで、forgeを起動します。
spongeはforgeのmodの一部としてFML(forge mod loader)が読み込みますので、その辺でエラーが出ないことを確認します。

[14:09:41] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker
[14:09:41] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker
[14:09:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLServerTweaker
[14:09:44] [main/INFO] [FML]: Forge Mod Loader version 13.19.1.2195 for Minecraft 1.11 loading
[14:09:44] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_92, running on Linux:amd64:3.10.0-327.36.3.el7.x86_64, installed at /usr/java/jdk1.8.0_92/jre
[14:09:44] [main/INFO] [FML]: Loading tweaker org.spongepowered.asm.launch.MixinTweaker from spongeforge-1.11-2195-6.0.0-BETA-2004.jar
~略~

SpongeForgeサーバの運用

forge modとspongeプラグインで拡張をします。
ちなみにspongeプラグインはspongeの公式サイト(https://www.spongepowered.org/)のPluginsに沢山あります。既に非常に多くのプラグインがあります。

forge modの使い方としては過去のそれと大差は無く、ダウンロードしてきたmodをmodsディレクトリ、あるいは設定をconfigディレクトリへ格納すれば大丈夫ですが、spongeプラグインも同じディレクトリ(mods)へ配置することで読み込むことができます。

Spongeプラグインの紹介

私もまだいろいろ調べ中なので、少ないですが紹介しておきます。forge modについては特にspongeだから動く/動かないという制限は無いので、minecraft wikiとかで探せばいいと思います。
ちなみに、以下のサイトから検索/ダウンロードができます。
https://forums.spongepowered.org/c/plugins/plugin-releases

管理者コマンド系

権限系

 

コメントを残す

これらのHTMLタグが利用可能です

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Time limit is exhausted. Please reload CAPTCHA.

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.