はじめに
前回はVisual Studio Onlineを使う方法について書きました。書いているときに思いました。「もしかしてマイクラ自動化もできるのではないか?」と。早速やってみたいと思います。
お品書き
- CoreRCONの導入
- 自動化プログラムを書く
- いざ、実行
1. CoreRCONの導入
まずはプロジェクトを作り、そのディレクトリに移動します。
$ dotnet new console --new MinecraftAutomation
Nuget Package Managerをインポートします。
再起動すると、Nugetが利用できるようになっています。
Ctrl+ Shift + P で Nuget と入力してNugetを起動します。
あとはキーワードを入れて検索、バージョンを選びます。
マイクラ自動化に必要なバージョンは CoreRCON 3.0.0 です。
導入したいディレクトリ先を選択します。
導入されると、csproj ファイルに CoreRCONが追記されています。
これでセット完了です。
2. 自動化プログラムを書く
私は前に書いた記事を参考にしながらプログラムを書きました。 参考にどうぞ。
ただし、注意すべき点はサーバのアドレスです。これはローカルではなく、外部からの接続になるので接続先のグローバルIPアドレスに書き換えます。 自分のグローバルIPアドレスが分からない人はこちらから確認できます。
できたらビルドしてみます。
$dotnet build
エラーがなければ 0 Error と表示されます。
3. いざ、実行
実行する前に、まずはマイクラサーバを立ち上げてゲームに参加しましょう。 準備できたら、VSOnline で実行します。
$dotnet run
あるぇ?コマンドが投げられていない??? 完全にかたまってますね...。
と思っていましたが、解決策が分かりました。
ポートフォワーディングの設定をしましょう。 私の環境での設定はこんな感じです。
ちなみに、この画像の25565はゲーム参加用ポートで、25575はRCON専用ポートです。
これでもう一度実行してみると...
できました!!しっかり動いています。ということは...
おわりに
このあと、自動整地プログラムを動かしてみたのですが、高さ判定のロジックでかたまってしまいました。 これはマシンスペックが原因なのか、ネットワーク環境か、アルゴリズムの問題か...まだわかっていません。
ただ、VSOnlineからでも問題なくマイクラへコマンドを投げられることは確認できたのでかなりの収穫です!