Open6

読者コミュニティ|C# ではじめるマインクラフトプログラミング

たくのろじぃ | Takumi Okawaたくのろじぃ | Takumi Okawa

本の感想や質問をお気軽にコメントしてください。
まだ色々勉強中の身ですので、間違いなどもあればご指摘いただけると幸いです。

https://zenn.dev/takunology/books/minecraft-programming-book

sissis

まだ半分ほどですが、読ませていただきました。説明が丁寧で分かりやすく、C#の知識が浅い私でも理解しながら読むことができました。ライブラリも使いやすく、よく使うコマンドを簡単に呼び出せるのがとても良かったです。
 ですがGetPlayerData()に少し問題があったため目を通していただきたいです。

プレイヤーの座標を所得するための、PlayerData.csのGetPositionメソッドですが、マイクラのコマンドによって得られた返り値をint型にするための処理があります。(この部分です)

このままだとプレイヤー名に数字が含まれていた時にその部分も取り出してしまうのではないでしょうか。(間違っていたらすみません)

私はプレイヤー名に数字が含まれています。実行時にその項目についてエラーが発生し、取り出したデータを表示させたところプレイヤー名内の数字も座標データに含んでしまっているようでした。
コマンドの返り値の括弧[]の中(座標に関するデータ)だけを取り出したのちに同じ処理を行うようにしたところ、エラーは発生せず、正しい処理が行われました。

説明が下手で分かりにくいかもしれませんが、
この部分が問題なら修正していただけると嬉しいです。

たくのろじぃ | Takumi Okawaたくのろじぃ | Takumi Okawa

説明していただいた通り、ライブラリに不備がありました。申し訳ありません。

実際に、data get コマンドでプレイヤーの座標を表示させようとすると、サーバコンソール上で下記のような形式で取得されます。

<PlayerID> has the following entity data: [---d, ---d, ---d]

本来であれば、data 以前の文字列を消去(スキップ)する必要があったため、切り出し用の処理が必要でした。

result = result.Substring(result.IndexOf("data"));

ライブラリのほうも修正させていただきます。(NuGet への反映が完了したら、また返信させていただきます。)
コメントしていただきありがとうございます。

たくのろじぃ | Takumi Okawaたくのろじぃ | Takumi Okawa

修正が完了しましたのでお知らせします。
NuGet では最新版 (1.1.1) を導入してください。

https://www.nuget.org/packages/MinecraftConnection

もし、ライブラリに関して問題があれば GitHub の Issue に投げていただけますと幸いです。(今後もライブラリの修正や機能の追加などは行っていきます。)

https://github.com/takunology/MinecraftConnection/issues
よろしくお願いいたします。

たくのろじぃ | Takumi Okawaたくのろじぃ | Takumi Okawa

この本は全て無料で提供しています。有料にするつもりはありません。理由はいくつかありますが、

  • 学生の方にも気軽に読んでほしい
  • 仕事ではなくただの趣味で書いている
  • この本の価値がわからない(マイクラプログラミングの価値的な意味で)

が主な理由です。特に、「この本の価値」は読者の皆様に決めていただきたいと思っております。

MukakinMukakin

価値高すぎですよ
マイクラのこういった記事が非常に少ないので、本当に助かります!!!