【マイクラ】【Server Starter】マルチサーバーをもっと簡単に立てよう!


作成の発端

「マイクラのサーバーを立てる作業が難しい!面倒くさい!」

筆者はマイクラを始めて1年程度の新参者ですが、熱狂的にハマった結果、友人たちを集めては夜な夜なマルチプレイで遊んでいます。
しかし、サーバーを個人で立てるためには様々な壁を突破しなければなりません。
バージョンが変わるたびにlauncherからserver.jarをダウンロードしたり、server.propertiesを編集したり、…

なので、サーバーを管理するソフトを作っちゃいました!

インストール方法

  1. こちらのリンクを踏むとソフトをインストールするためのインストーラーがダウンロードされます。

  2. ダウンロードが完了したらインストーラー(Setup_ServerStarter.msi)を起動してください。

    • 自作ソフトのため、以下のような制限を受けた場合は、詳細情報をクリックし、実行してください。

  3. 画面の案内に従い、利用規約に同意するとインストール先を選択する画面が表示されるため、特に問題なければそのまま進んでください。

    • マイクラのクライアントが入っていない場合など、インストール先を変更する場合は適宜、変更してもらって問題ありません。
  4. インストールが終わったらインストーラーを閉じ、デスクトップにショートカットが作成されていることを確認してください。

簡単に機能紹介

次回から実装でのポイント・工夫を解説していきますが、それを理解するために搭載している機能を紹介しておきます。

前提条件(環境)

下記の環境で動作確認を行いました。

Index Value
OS Windows 10
CPU Core i7-9700
Port 25565 (TCP)
Git 2.31.1
Java JDK 16.0.1
  • このソフトではポート開放は自動で行われません。そのため、ご自身でセキュリティソフトやルーターのポート開放(ポートマッピング)の設定を行ってください。
  • WPFで開発しているため、OSはWindowsでしか動きません。

いつの日かポート開放をサポートする機能も付けたい…

基本の使い方

写真は英語版ですが、日本語版も現在作成中です。

まず、起動すると以下のような情報を入力する画面が表示されるため、自身のマイクラのプレイヤー名を正確に記入してください。

  • 6>,7>のGitに関する情報は後述のShareWorldを利用する場合は入力してください。必要ない場合はExampleのままで問題ありません。Gitの初期設定のやり方についてはこちらの記事にまとめました。


そして、必要な情報を入力し終わるとメイン画面が表示されます。
導入が必要なバージョンと適当なワールド名を指定し、Runを押すことでサーバーが起動します。


More Settingsを押すと以下のような画面が表示され、データパックや配布ワールド・既存ワールド(Custom Map)の導入、server.propertiesの編集を行うことができます。
また、Spigotサーバーのビルドにも対応しており、この機能を利用すれば、この画面からpluginの導入も可能となっています。
ただし、Spigotを導入する場合はSpigotが対応していないバージョンを選択すると、実行時にエラーを返されます。

ShareWorld

普段、A君がサーバーを立てている状況を考えてみてください

A君がいないときはサーバーを立てられないから、マルチプレイできない!

もちろん、A君がお金持ちで電気代など気にせず、常にサーバーを起動状態にしていても問題ない場合は良いですが、そんなことは稀です。
いちいちA君からサーバーのデータをもらい、あなたがサーバーを立てることもできますが、面倒くさいです。
これを解決するために、ShareWorldというgitを介したサーバーデータ同期システムを構築しました。
使い方や実装の内容は長くなるため、別の記事にまとめたいと思います。
一度設定してしまえば、World NameでShareWorldを選択するだけで同期されます。

実装の解説

基本的に筆者は情報系の学習はすべて独学でやっているため、コードの書き方が未熟な部分が多々あります。
特にGUIの作成は今回が初めてのため、きれいな実装でない部分も少なからずあります。
それでも、初心者なりに一つのシステムを完成させるまでの軌跡を公開し、参考にしてもらえればうれしく思います。
また、公開することにより、「ここはこう書いた方がよい」などのアドバイスももらえればとても助かります。

コードはこちらに掲載しています。

目次

初期設定

トラブルシューティング

コード紹介