調べることはありますか?
マインクラフトサーバの話4(まずは基本のSpigotで作ってみました)
1.Javaを動作させるための、openjdkのインストールと利用バージョンの選択
マインクラフトサーバのJavaの種類などによって、JDKのバージョンが違うものを要求される場合があります。そのため、まず以下のコマンドで、openjdkのどのバージョンがインストールできるかを確認しておきます。
$ sudo apt search openjdk-.*-jdk$
このコマンドの結果は以下のような形式で出てきます。
openjdk-8-jdk/xenial-updates,xenial-security 8u252-b09-1~16.04 amd64
OpenJDK Development Kit (JDK)
・・・・
実際にマインクラフトサーバ本体を動かしたときに、Javaのバージョンエラーが出る場合は、必要なopen-jdkをインストールして、切り替えて使えばよいです。
今回の場合は必要だったopen-jdkのバージョンは17であったので、以下のコマンドを使ってインストールしました。
$ sudo apt install openjdk-17-jdk
ほかのバージョンが必要になった場合には、さきほど確認したときの結果を見て、同じようにopen-jdkをインストールします。そして、以下のコマンドで動作すべきバージョンを選択することができます。
(※実際に動かすだけならjreでいいです。)
$ sudo update-alternatives –config java
2.マインクラフトサーバspigotのビルドによる取得
マインクラフトサーバにspigotを選びました。たどり着くまでいろいろ試しました。あとでMiutiverse coreなどのPluginを入れます。craftbukkitは重いらしいとの噂があります。mohistはModとPlugin使えると聞いていますが、最新になるのに時間がかかるので開発版になってしまい。Pluginでエラーを起こしました。
2.1 spigotのビルド
適当なフォルダ(build.spigot156)などを作ります。私は自分のホームフォルダ上に作りました
フォルダ(ディレクトリ)を操作するなら、デスクトップでファイラを使いましょう。リモートデスクトップがもう出来るようになっているならサーバのフタを閉じていいんですし、そんなに便利なところにそれを置いておく必要はありませんので、それなりの場所に置いておけばいいのです。自分のメインのパソコンからmRemoteNGを使って楽に操作して下さい。
以下のJenkinsのサイト(Webページ)から、firefox等を使って、最新ビルドのBuildTools.jarをダウンロードします。
https://hub.spigotmc.org/jenkins/job/BuildTools/
先ほど作った「build.spigot156」フォルダに、端末のカレントディレクトリ(つまりコマンド実行時に、参照する現在のディレクトリ)を指定して、BuildTools.jarを動かします。例えば私は、自分のホームディレクトリ上にbuild.spigot156ディレクトリを作って、
$ cd ~/build.spigot156
$ java -jar BuildTools.jar –rev 1.19.3
このコマンドでspigot-1.9.3.jar がビルド(生成)されます。
3.サーバの起動と、プラグインの設置
次に、実際にサーバを動かすディレクトリを作って下さい。私は自分のホームディレクトリに「minecraft」という名前のディレクトリを作り、更にその上に「spigot-1.19.3」というディレクトリを作りました。
そうしたら、spigot-1.19.3.jarをこのディレクトリにコピーしてください。Modやplugin を置く前に、一度このサーバプログラムを動かして初期状態のファイルやディレクトリ等を作らせます。私はホームディレクトリの上の「minecraft/spigot-1.19.3」ディレクトリにこのサーバを置いて動かすので、以下のようにコマンドを打てばいい事(つまりspigot-1.19.3.jarを実行する事)になります。
$ cd ~/minecraft/spigot-1.19.3
$ java -Xms1G -Xmx4G -jar spigot-1.19.3.jar
これで、端末上にはこのspigotサーバのログが表示されます。さらにデイスプレイ上にgui画面(つまり以下のようなサーバのウインドウ画面)が表示されます。このサーバは一通りのworldの生成等をおこなったあとに、クライアント(つまり、マインクラフトのゲーム側)を待機します。サーバが全ての初期動作を完了した後にクライアント待に入ったら、「stop」コマンドをサーバの端末に打ち込んで終了させます。
3.1. 「You need to agree to the EULA …」と表示され、spigotが終了する際の措置
デスクトップ上で、ファイラを開きspigot-1.19.3.jarが置いてあるディレクトリを開いて見てください。eula.txtがありますので、ダブルクリックしてください。エディタが起動します。そこで、「eula=false」を、「eula=true」に書き換えてください。利用規約に同意したことになります。詳しく利用規約を読みたい人は「EULA(利用規約)」を見てください。
3.2 spigotサーバのためのファイアウォール設定
spigotサーバのためのファイアウォール設定をします(許可)。ポート番号は25565です。以下のようにコマンドを打ち込みます。
$ sudo ufw allow 25565
$ sudo ufw reload
4.プラグインの導入
4.1 worldedit-bukkitの設置
まず、以下のウェブページからspigotのバージョンに対応している。worldedit-bukkit をダウンロードします。執筆時点(May、2023)ではバージョンが1.19.3でしたので、「worldedit-bukkit-7.2.13.jar」をダウンロードしました。このファイルをspigot-1.19.3.jarの入っているディレクトリ上の「plugins」ディレクトリにコピーします。ここで本来であれば一度、spigotサーバを起動してworldedit-bukkitの初期的なディレクトリやファイル等の用意をさせるといいとも思いました。しかし、他のプラグインも入れてからでも問題がなさそうなので、次に進みたいと思います。
4.2 Multiverse-Core,Multiverse-Potalsの設置
Multivirse-Coreは以下のウェブからダウンロードします。
https://www.curseforge.com/minecraft/bukkit-plugins/multiverse-core/download
執筆現在のファイルは「Multiverse-Core-4.3.1.jar」でした。このファイルもspigot-1.19.3.jarの入っているディレクトリ上の「plugins」ディレクトリにコピーします。
Multiverse-Potalsは以下のウェブページからダウンロードします。
Download Multiverse-Potals from the following web page.
https://www.curseforge.com/minecraft/bukkit-plugins/multiverse-portals
今現在のファイルは「Multiverse-Potals-4.2.1.jar」です。これも他のプラグインと同じように、spigot-1.19.3.jarの入っているディレクトリ上の「plugins」ディレクトリにコピーします。
4.3 CrackShotの設置(※MGS4.0導入時に消しました)
このプラグインは、銃を追加するためにあります。プレイスタイルの問題だと思うので、あなたがいらないと思うなら入れる必要はありません。単に私の息子が銃の使えるマルチサーバがいいと言ったので入れただけです。CrackShotプラグインは以下のwebページからダウンロードします。
https://dev.bukkit.org/projects/crackshot
ダウンロード出来るファイルは「CrackShot.jar」です。他のプラグインと同じ様に、spigot-1.19.3.jarの入っているディレクトリ上の「plugins」ディレクトリにコピーします。
どうやらCrackShotは、古くて新しいプラグインのようです。マインクラフトクライアント側でforgeを使って、Optifineをいれ、更に銃の表示用のリソースを入れます。その際、手づくりのリソースとサーバ側の設定ファイルを合わせることによってカスタマイズできるという、なかなか濃い趣味のようです。今回1.19.1用のリソースパックに、ほぼサーバ側のファイルも付いているようなものを見つけたので、とりあえず導入しました。
ただし、名前は似ているCrackShotPlusの導入を考えているなら、利用は止めるべきだと考えます。それには後方互換性が無いとネットで調べがついています。
参考:Why can’t crackshot /shot config reload
4.3 今まで入れたプラグインの初期化と調整
ここで、いったんspigotを実行させて、プラグインを初期化(初期的なディレクトリやファイルなどをつくってもらい)しましょう。私はホームディレクトリの上の「minecraft/spigot-1.19.3」ディレクトリにこのサーバを置いて動かすので、以下のようにコマンドを打てばいい事(つまりspigot-1.19.3.jarを実行する事)になります。
$ cd ~/minecraft/spigot-1.19.3
$ java -Xms1G -Xmx4G -jar spigot-1.19.3.jar
つぎに、「CrackShot」のサーバ側の武器を作ります。以下のWebページから、「BASICCONFIG」ボタンを押して、「BASE CONFIG.txt」をダウンロードします。
CrackShot Plugin Resource Pack 1.19.1
この「BASE CONFIG.txt」を、ファイラを使って「ダウンロード」ディレクトリでコピーをします。そして、「spigot-1.19.3.jar」を置いたディレクトリの中の「plugins/CrackShot/weapons/」ディレクトリの中にペーストしてください。そのディレクトリにはもともと「defaultWeapons.yml」があります。この「defaultWeapons.yml」をゴミ箱に入れましょう。そして「BASE CONFIG.txt」を名前を変更で「defaultWeapons.yml」に名前を変えてください。つまりは、「BASE CONFIG.txt」で「defaultWeapons.yml」を置き換えてくださいということです。
次に、「defaultWeapons.yml」をダブルクリックしてエディタで中身を見ましょう。1,2行目はこのファイルの説明文ですので、ymlとしては正しくありません。ですから、行の先頭に「#」をいれてください。
これで、CrackShotのサーバ側の設定は終わりです。ここで、クライアント側の説明もしておきます。以下のWebページをブラウザで見て「DOWNLOAD TEXTURE PACK」ボタンを押して、ダウンロードしてください。今現在は「crackshot-resources-1-19-1-finished.zip」がダウンロードできました。このファイルは、クライアントのリソースフォルダに入れて、適用してください。1.19.1用なので「本当に適用してよいか」の質問のウインドウが出ますが続けて適用しても問題はありませんでしたし、きちんと銃の表示もできました。
CrackShot Plugin Resource Pack 1.19.1
このプラグインのコマンドについては、以下のWebページを参考にしてください。
spigot1.19.3-crackshot-crackshot-texture1.19.1での、PVP自宅サーバめも
4.4 MGS4.0データパックの入れ方
サーバ上で、MGS4.0のデータパックを入れます。以下のYOUTUBEページの概要欄の「Datapack (1.19.3):」からダウンロードしてください。今現在は、「MGS_4.1.2_datapack.zip」が手に入りました。
https://www.youtube.com/watch?v=Ia5Mlkn6ipM
ファイラ上でダブルクリックし展開します。展開後のフォルダを、「spigot-1.19.3.jar」のあるディレクトリ(私の場合は、~/minecraft/spigot-1.19.3/です。)の中にある、「world」ディレクトリの中の「datapacks」の中にコピーします。
Multivirse-coreを使った場合、最初にキャラクタがスポーンする「world」というディレクトリがデータパック設定の基本になっています。ですから、データパックはそこに置くことで、全世界に効き目があることになります。
Multivirse-coreのコマンドは以下のWebページに書いてありますので参考にしてください。
プラグイン解説:Multiverse-Core
また、Multivirse-coreで作った世界を行き来できるポータルを作れる、Multivirse-Potalsのコマンドについては、こちらのWebページが参考になるでしょう。
MGS4.0のYOUTUBE説明ページ:
https://www.youtube.com/watch?v=Ia5Mlkn6ipM