#作成の発端
「マイクラのサーバーを立てる作業が難しい!面倒くさい!」
筆者はマイクラを始めて1年程度の新参者ですが、熱狂的にハマった結果、友人たちを集めては夜な夜なマルチプレイで遊んでいます。
しかし、サーバーを個人で立てるためには様々な壁を突破しなければなりません。
バージョンが変わるたびにlauncherからserver.jarをダウンロードしたり、server.propertiesを編集したり、…
なので、サーバーを管理するソフトを作っちゃいました!
#インストール方法
-
こちらのリンクを踏むとソフトをインストールするためのインストーラーがダウンロードされます。
-
ダウンロードが完了したらインストーラー(Setup_ServerStarter.msi)を起動してください。
- 自作ソフトのため、以下のような制限を受けた場合は、詳細情報をクリックし、実行してください。
-
画面の案内に従い、利用規約に同意するとインストール先を選択する画面が表示されるため、特に問題なければそのまま進んでください。
- マイクラのクライアントが入っていない場合など、インストール先を変更する場合は適宜、変更してもらって問題ありません。
-
インストールが終わったらインストーラーを閉じ、デスクトップにショートカットが作成されていることを確認してください。
#簡単に機能紹介
次回から実装でのポイント・工夫を解説していきますが、それを理解するために搭載している機能を紹介しておきます。
##前提条件(環境)
下記の環境で動作確認を行いました。
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の作成は今回が初めてのため、きれいな実装でない部分も少なからずあります。
それでも、初心者なりに一つのシステムを完成させるまでの軌跡を公開し、参考にしてもらえればうれしく思います。
また、公開することにより、「ここはこう書いた方がよい」などのアドバイスももらえればとても助かります。
コードはこちらに掲載しています。
##目次
初期設定
- Gitレポジトリの設定方法 (ShareWorldを利用するにあたり最初に行ってください)
トラブルシューティング
- Gitによるデータ復旧の方法 (ShareWorldを利用している場合はワールドデータの復旧が可能です)
コード紹介
- プログラムを始める前に意識したこと (GUI制作の事前準備として意識したことをまとめました)