DTIのVPS、グローバルIPアドレス貰ってるじゃん?
CentOSじゃん?
root権限あるじゃん?
Java入れたらMinecraftのサーバ動くんじゃね?
というわけで動かしてみた。せっかく金払ってるのでフル活用しないとね。
まずJavaを入れる。
$ sudo yum install java-1.6.0-openjdk.i386
# 略
$ java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.10) (rhel-1.21.b17.el5-i386)
OpenJDK Client VM (build 14.0-b16, mixed mode)
入った。
$ wget http://www.minecraft.net/download/minecraft_server.jar?v=1307624913526
$ mv minecraft_server.jar?v=1307624913526 minecraft_server.jar
Chromeで「リンク先URLをコピー」したら最後にいらない数字がついた。キャッシュ避けだろうけど。やりやすいようにリネームしてやる。
とりあえず wikiの通りにコマンドを入れてみる。
$ java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
なんだとこのやろう、1G与えて少ないとか言うのか!?
試行錯誤の結果
$java -jar minecraft_server.jar -nogui
で動いた。やっぱりやるべきはオプション無し起動。
起動したらMAP初期化を待つ。
ちなみにこのときのCPU使用率、100% がんばれXeon、OpenVZだけど。
初期化終わったら入ってみる。
雪国ができた。
ログイン時のサーバログ
$ java -jar minecraft_server.jar nogui
148 recipes
16 achievements
2011-06-11 11:27:43 [INFO] Starting minecraft server version Beta 1.6.6
2011-06-11 11:27:43 [WARNING] **** NOT ENOUGH RAM!
2011-06-11 11:27:43 [WARNING] To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
2011-06-11 11:27:43 [INFO] Loading properties
2011-06-11 11:27:43 [INFO] Starting Minecraft server on *:25565
2011-06-11 11:27:43 [INFO] Preparing level "world"
2011-06-11 11:27:43 [INFO] Preparing start region for level 0
2011-06-11 11:27:44 [INFO] Preparing spawn area: 44%
2011-06-11 11:27:45 [INFO] Preparing start region for level 1
2011-06-11 11:27:45 [INFO] Preparing spawn area: 36%
2011-06-11 11:27:46 [INFO] Done (2808461000ns)! For help, type "help" or "?"
2011-06-11 11:28:27 [INFO] ryomatsu [/**.**.**.**:52997] logged in with entity id 124 at (106.12052715700108, 76.5625, -146.0534447284877)
初回起動じゃないのでマップ初期化はしてないです。が、やっぱりメモリが足りないみたいな警告が出る。。。ちなみにこのときサーバ上では800MBほどメモリ食ってます。VPSなのでメモリほしかったらお金出すしか無いんですけどね。
サーバの設定の変更方法
サーバの設定ファイルはサーバが置いてあるディレクトリ内にある、server.properties に書いてある。
大体名前でどんな設定か想像できるだろうが一応書いておこう。minecraft wikiからコピペし・・・ようとしたが一部項目が違う様なので調べた。
$ cat server.properties
#Minecraft server properties
#Thu Jun 09 22:16:50 JST 2011
level-name=world # マップデータを保存するフォルダの名前
allow-nether=true # ネザーへ行くことを許可するかどうか true=許可
view-distance=10 # サーバがプレイヤーに送信するデータ量 3-15 で指定
spawn-monsters=true # モンスターが沸くかどうか true=沸く
online-mode=true # minecraft のサーバでユーザ認証するかどうか true=認証する
spawn-animals=true # 動物が沸くかどうか true=沸く
max-players=20 # ログインできるプレーヤーの最大値。adminは除く。0-255
server-ip= # ipアドレス複数個持ってた場合はここで指定することもできるが空白をお勧めする。
pvp=true # Friendly Fire を許可するかどうか true=許可
level-seed= # Map生成時のシード値
server-port=25565 # サーバで使用するポート番号
allow-flight=false # 飛行/no-clipを許可するかどうか true=許可
white-list=false # ユーザ認証にホワイトリストを使用するかどうか。 true=使用
ちょっと実験
さて、設定もわかったことだしちょっと実験。
サーバコンソールで help と押すとコマンド一覧が出ます。
Console commands:
help or ? shows this message
kick <player> removes a player from the server
ban <player> bans a player from the server
pardon <player> pardons a banned player so that they can connect again
ban-ip <ip> bans an IP address from the server
pardon-ip <ip> pardons a banned IP address so that they can connect again
op <player> turns a player into an op
deop <player> removes op status from a player
tp <player1> <player2> moves one player to the same location as another player
give <player> <id> [num] gives a player a resource
tell <player> <message> sends a private message to a player
stop gracefully stops the server
save-all forces a server-wide level save
save-off disables terrain saving (useful for backup scripts)
save-on re-enables terrain saving
list lists all currently connected players
say <message> broadcasts a message to all players
time <add|set> <amount> adds to or sets the world time (0-24000)
おもむろに以下のコマンドを連打します。
give ryomatsu 46 64
46 はまいどおなじみTNTですね!
そのへんに適当に置いて・・・
あとはレッドストーンとスイッチを設置して・・・
ドーン!!
友達から「TNT同時爆破させたらサーバがすげー重くなった」って話を聞いたんでためしにやってみたんです。
とりあえず300個ぐらいTNT並べて爆発させてみたけど最大でCPU50%ぐらいですね。ちょっと実用に耐えないかな。。。
というわけでサーバには良いPCを用意しましょう。サーバーを爆破させちゃだめですよ!
コメント