1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

れびゅーAdvent Calendar 2022

Day 2

minecraft gametestが1.19.50になって動かなくなった人へ

Last updated at Posted at 2022-12-02

導入

 皆さんはMinecraftというゲームをご存じでしょうか。まぁあんな神ゲーをご存じないという方、そうそういないかと思います。
 さて、この記事では、MinecraftBEのバージョンを1.19.40から1.19.50にバージョンアップしたときにGametestが動かなくなり、どうすれば動くようになるのか手こずったので、今後同じような事態に陥った人のために、解決までの過程を記していきたいと思います。

解決方法

 結論としてはmanifest.jsonの"dependencies"の値のうち、"module_name"が"@minecraft/server"である要素の"version"を"1.0.0-beta"から"1.1.0-beta"に変更することで再び動作するようになります。

問題解決までの過程

 以下、問題解決の最終的な方法だけでなく、その過程も知りたいという方のための部分です。その前にこの時の私の環境で問題の発生したビヘイビアパックのmanifest.jsonの中身を上げておきます。

{
  "format_version": 2,
  "header":
  {
    "name": "hoge",
    "description" : "a",
    "uuid": "uuid",
    "version": [0,1,0],
    "min_engine_version": [1,19,40]
  },
  "modules":
  [
    {
      "description": "^^;",
      "type": "script",
      "language": "javascript",
      "uuid": "uuid",
      "version":[0,1,0],
      "entry": "scripts/main.js"
    }
  ],
  "dependencies":
  [
    {
      "module_name": "@minecraft/server",
      "version": "1.0.0-beta"
    },
    {
      "module_name": "@minecraft/server-ui",
      "version": "1.0.0-beta"
    }
  ]
}

 さて、問題が発生したらすぐに 設定>>クリエイター>>コンテンツログの有効化&コンテンツGUIの有効化 二つのトグルを両方ONにしてどこに問題があったのか調べてみます。すると次のようなログが現れました。

[Scripting][error]-Plugin [forMovie] - module [forMovie - 1.0.0] requesting invalid module version [@minecraft/server - 1.0.0-beta].
Available versions:
@minecraft/server - 0.1.0
@minecraft/server - 1.0.0
@minecraft/server - 1.1.0-beta


[Scripting][error]-Plugin [forMovie] - version conflict for [@minecraft/server] - [forMovie - 1.0.0] requested [@minecraft/server - 1.0.0-beta] but [@minecraft/server-ui - 1.0.0-beta] requested [@minecraft/server - 1.1.0-beta]

このログを頼りにすれば、どこに問題があるのか、そしてどうすれば解決するのか簡単にわかります。英語が苦手な方、大丈夫です。DeepL翻訳等の翻訳サービスで日本語に翻訳すればいいのです。ログを翻訳すると

[スクリプト][エラー]-プラグイン [forMovie] - モジュール [forMovie - 1.0.0] が無効なモジュールバージョン [@minecraft/server - 1.0.0-beta] を要求しています。
利用可能なバージョン
minecraft/server - 0.1.0
Minecraft/server - 1.0.0
minecraft/server - 1.1.0-beta (英語)


[スクリプト][エラー]-プラグイン [forMovie] - [@minecraft/server] のバージョンの競合 - [forMovie - 1.0.0] は [@minecraft/server - 1.0.0-beta] を要求しましたが [@minecraft/server-ui - 1.0.0-beta] は [@minecraft/server - 1.1.0-beta] を要求しています。

はい、二つ目のログがすべてを語っていますね。「@minecraft/server-uiの1.0.0-betaを使いたかったら@minecraft/serverは1.1.0-betaを使ってね!」と言っています。はい、そういうことです。

公式のアップデート情報を読むのも有効です。リンク先のマップ工場も@minecraft/server API を引き続き使用する場合は、manifest.json 参照を 1.1.0-beta に更新する必要があります

注意

manifest.jsonの変更は、reloadコマンドを使っても更新されないようです。"version"を適切に変更してもエラーを吐かれるという方はワールドに一度入りなおしてみてください。

最後に

minecraftのgametestは、今現在も開発中の機能ということもあり、アップデートによって仕様が少しずつ変わってきます。1.19.40へのアップデートの時には、かなり破壊的な変更がなされたりもしたようです。gametestで遊ぶ際は、保守性の高い設計をすることを意識したほうがよさそうです。
それでは、この記事が一人でも多くのgametestを勉強する人の助けになりますように。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?