たくのろじぃのメモ部屋

プログラミング(C#)の基礎やそれを応用した技術情報をメモしておくブログです。

【C#】Minecraft自動化 #番外編1 VSOnlineからの操作

はじめに

前回はVisual Studio Onlineを使う方法について書きました。書いているときに思いました。「もしかしてマイクラ自動化もできるのではないか?」と。早速やってみたいと思います。

お品書き

  1. CoreRCONの導入
  2. 自動化プログラムを書く
  3. いざ、実行

1. CoreRCONの導入

まずはプロジェクトを作り、そのディレクトリに移動します。

$ dotnet new console --new MinecraftAutomation

Nuget Package Managerをインポートします。

f:id:takunology:20191107003614p:plain

再起動すると、Nugetが利用できるようになっています。

Ctrl+ Shift + P で Nuget と入力してNugetを起動します。

f:id:takunology:20191107004227p:plain

あとはキーワードを入れて検索、バージョンを選びます。

イクラ自動化に必要なバージョンは CoreRCON 3.0.0 です。

f:id:takunology:20191107004410p:plain

f:id:takunology:20191107004421p:plain

導入したいディレクトリ先を選択します。

f:id:takunology:20191107004900p:plain

導入されると、csproj ファイルに CoreRCONが追記されています。

f:id:takunology:20191107004929p:plain

これでセット完了です。

2. 自動化プログラムを書く

私は前に書いた記事を参考にしながらプログラムを書きました。 参考にどうぞ。

github.com

ただし、注意すべき点はサーバのアドレスです。これはローカルではなく、外部からの接続になるので接続先のグローバルIPアドレスに書き換えます。 自分のグローバルIPアドレスが分からない人はこちらから確認できます。

www.cman.jp

できたらビルドしてみます。

$dotnet build

エラーがなければ 0 Error と表示されます。

f:id:takunology:20191107010035p:plain

3. いざ、実行

実行する前に、まずはマイクラサーバを立ち上げてゲームに参加しましょう。 準備できたら、VSOnline で実行します。

$dotnet run

f:id:takunology:20191107011432p:plain

あるぇ?コマンドが投げられていない??? 完全にかたまってますね...。

と思っていましたが、解決策が分かりました。

ポートフォワーディングの設定をしましょう。 私の環境での設定はこんな感じです。

f:id:takunology:20191107012757j:plain

ちなみに、この画像の25565はゲーム参加用ポートで、25575はRCON専用ポートです。

これでもう一度実行してみると...

f:id:takunology:20191107013025j:plain

できました!!しっかり動いています。ということは...

f:id:takunology:20191107180447j:plain

iPadからもマイクラ自動化ができます!

おわりに

このあと、自動整地プログラムを動かしてみたのですが、高さ判定のロジックでかたまってしまいました。 これはマシンスペックが原因なのか、ネットワーク環境か、アルゴリズムの問題か...まだわかっていません。

ただ、VSOnlineからでも問題なくマイクラへコマンドを投げられることは確認できたのでかなりの収穫です!