Ubuntuでminecraft server java edition構築備忘録

驚くほど簡単だったのでメモ

# javaの確認

おそらくデフォルトで入っていると思うんですが、一応確認。入っていない場合は`sudo apt search openjdk-11-jre`とかで検索して新しめのを入れておきましょう。

```bash
which java
# /usr/bin/java

jave --version
# openjdk 11.0.5 2019-10-15
# OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.118.04)
# OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.118.04, mixed mode, sharing)
```

# minecraft-serverをダウンロードする

[MINECRAFT: JAVA EDITIONのサーバーをダウンロードします](https://www.minecraft.net/ja-jp/download/server/)
上から最新版の`jar`を貰ってくる。今後のバージョン管理のため、リネームして`version`を明記しておくと吉

```bash
cd /tmp
curl -LOS https://...
chmod 700 server.jar
mv server.jar minecraft_server_1_15_1.jar
```

## とりあえず1回実行したろ

```bash
java -Xmx1024M -Xms1024M -jar minecraft_server_1_15_1.jar nogui
```

エラーで落ちるけど、`eura.txt`と`server.properties`が生成される。要は`EURA`に同意しないとダメだよっていうエラーなので、同意しましょう。

## eura.txt

```bash:eura.txt
.
..
...
eura=false # trueに変更
```

## server.properties

サーバーの設定ファイル。`ip`とか`port`とか変更出来る。デフォルトの`port`はなんとなく怖いので変更してます。各々の環境に合わせて変更しましょう。

```bash:server.properties
 #Minecraft server properties     
 #Fri Jan 10 14:08:05 JST 2020
 broadcast-rcon-to-ops=true
 view-distance=10
 max-build-height=256
 server-ip=192.168.1.254 # default=
 level-seed=
 rcon.port=55575 # default=22275
 gamemode=survival
 server-port=55565 # default=22265
 allow-nether=true
 enable-command-block=false
 enable-rcon=false
 enable-query=false
 op-permission-level=4
 prevent-proxy-connections=false
 generator-settings=
 resource-pack=
 level-name=world
 rcon.password=
 player-idle-timeout=0
 motd=A Minecraft Server
 query.port=55565 # default=22265
 force-gamemode=false
 hardcore=false
 white-list=false
 broadcast-console-to-ops=true
 pvp=true
 spawn-npcs=true
 generate-structures=true
 spawn-animals=true
 snooper-enabled=true
 difficulty=normal # default=easy
 function-permission-level=2
 network-compression-threshold=256
 level-type=default
 spawn-monsters=true
 max-tick-time=60000
 enforce-whitelist=false
 use-native-transport=true
 max-players=2 # default=20
 resource-pack-sha1=
 spawn-protection=16
 online-mode=true
 allow-flight=false
 max-world-size=29999984
```

### port開放

最後に、`port`を開けます。`Ubuntu`は`ufw`という超絶便利なツールがあるのでそれを使いましょう。

```bash
sudo ufw allow from 192.168.1.0/24 to any port 55565
sudo ufw allow from 192.168.1.0/24 to any port 55575
```

# 再度実行

なんか`warn`が流れてきますが、とりあえず動きます(解消法求む)
実際に運用する場合はもっと詰めて色々**セキュア**にしましょうね。

```bash
java -Xmx1024M -Xms1024M -jar minecraft_server_1_15_1.jar nogui

#　以下log

[15:15:42] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[15:15:42] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[15:15:42] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
[15:15:42] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
[15:15:42] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[15:15:42] [Server thread/INFO]: Starting minecraft server version 1.15.1
[15:15:42] [Server thread/INFO]: Loading properties
[15:15:42] [Server thread/INFO]: Default game type: SURVIVAL
[15:15:42] [Server thread/INFO]: Generating keypair
[15:15:43] [Server thread/INFO]: Starting Minecraft server on 192.168.1.254:55565
[15:15:43] [Server thread/INFO]: Using epoll channel type
[15:15:43] [Server thread/INFO]: Preparing level "world"
[15:15:43] [Server thread/INFO]: Reloading ResourceManager: Default
[15:16:48] [Server thread/INFO]: Loaded 6 recipes
[15:16:48] [Server thread/INFO]: Loaded 825 advancements
[15:16:49] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[15:16:51] [Server thread/INFO]: Preparing spawn area: 0%
...
[15:17:06] [Server thread/INFO]: Preparing spawn area: 97%
[15:17:06] [Server thread/INFO]: Time elapsed: 16974 ms
[15:17:06] [Server thread/INFO]: Done (82.928s)! For help, type "help"

```

やったぜ。サーバー側の操作は終わり。
ただ、このやり方だと`console`を閉じたり`ctrl-c`押したりすると`server`も落ちるので、**バックグラウンド**で動かしたり、`systemctld`で管理させたほうが良いですね。

```bash
nohup java -Xmx1024M -Xms1024M -jar minecraft_server_1_15_1.jar nogui &
```

とりあえず動かすだけなら、上記のように`nohup ... &`で実行すると、バックグラウンドで動かせます。

##

# ゲームから接続

実際にサーバーが動いたのを確認したら、マルチプレイヤーをやってみましょう。

1. マルチプレイヤーを押す
1. サーバーを追加
1. ipアドレス:ポートを入力
1. 接続！

![20200110153028_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246065/c62ca264-7809-a4e8-f3fc-006cf28bcc8a.jpeg)

![20200110153038_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246065/367625de-9394-3a6c-61e9-bb53ca5f30a8.jpeg)

![20200110153123_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246065/82b33a68-e5e0-d2d3-e4ac-8f3098b996ad.jpeg)

![20200110153139_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246065/c946af75-af7c-1e30-abcd-d257266e2c19.jpeg)

![20200110153154_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246065/5deb1a38-f8c3-311e-eaee-e698ff178285.jpeg)

# 終わり

お疲れさまでした。ところで、どなたか`minecraft`を一緒にプレイして頂ける**フレンズ**はいらっしゃいませんでしょうか？？
私には**バグで未実装**なようですので、よろしくお願いいたします。

# 参考・引用・出典

- [Ubuntu18.04 LTS でマインクラフトマルチプレイサーバーを立てる](https://qiita.com/hatayan1126/items/500dc025d41142bd6f84)
- [Download server for Minecraft](https://www.minecraft.net/ja-jp/download/server/)