Updating items

From Matcha Flavoured Wiki
Jump to navigation Jump to search

Updating items(アイテムの更新)は、Matcha Flavouredが古いバージョンのデータパックのアイテムを最新の状態に更新するために用意しているツールのことで、主に1.12.2で追加された/trigger update_itemコマンドを指す。

背景

データパックではアイテムを追加できないため、カスタムアイテムはすべてバニラのアイテムに追加のデータコンポーネント(名前、モデル、説明文、エンチャント、属性)を付与したものとなる。アイテムは作成時のコンポーネントを保持するため、新しいバージョンでアイテムの能力値、テクスチャ、名前が変更されても、古いコピーはそのままの状態で残り、新しいものと重ねられなくなることが多い。1.12.2では、ほぼすべてのモデルとデータがminecraftとmainの名前空間からmatchaへ移動したため、多くの古いアイテムが壊れて見えるようになった。[1]

/trigger update_item

アイテムをメインハンドに持った状態で/trigger update_itemを実行する。チートを有効にしなくても、どのプレイヤーでも使用できる。[2] この関数は次の処理を行う。[3]

  1. 手に持つアイテムの名前の翻訳キーを読み取る。翻訳キーがないアイテムは「The held item cannot be updated because it is missing a translation key.」と表示されて拒否される。
  2. キーを、パックのクラフト、金床での強化、食べ物のレシピおよび村人の取引から生成された301種類の現行アイテム定義の表で検索する。変更点がアイテムモデルだけの13種類(Amber、Opal、Ruby、Topaz、fox pelt、粘土の像(cheerfulとmournful)、tallow、ofuda、レシピのページ、クラシック版のポークチョップ、クラシック版のバラ2種)については、代わりに小さなアイテム修飾子を手に持つスタックに適用し、新しいモデルを設定して他は変更しない。[4] 表にないキーのアイテムは「The held item cannot be updated.」と報告される。
  3. 現行バージョンのアイテムを作成し、スタック数とカスタム名を引き継ぐ。耐久値のダメージは新しい最大値に対する割合として維持される。
  4. 古いアイテムのエンチャント、装備の刻印、ロードストーンコンパスの追跡先を新しいアイテムに統合する。両方にあるエンチャントは高いレベルのものを残す。その後、バニラのFortuneはパックの最大値であるレベルIに制限される。
  5. 手に持つアイテムを削除し、新しいアイテムを遅延なしでプレイヤーの足元にドロップして、「The held item has been successfully updated.」と報告する。

この表はリポジトリ内のスクリプトgenerate_update_item_mcfunction.pyによって生成される。[5]

制限事項

翻訳キーを持つ名前のアイテムだけが更新可能なため、金床で名前を変えたアイテムはカスタム名を保つが、その下には元のキーが残っていなければならない。1.12.2では、この関数はアイテムIDでも検索していたため、対象のバニラIDを持つアイテムはどれでも表の項目に作り直された(どのスプラッシュポーションもpickled warped fungusになった)。また、装備の刻印やロードストーンコンパスの追跡先も失われ、村人のみが販売するアイテムの項目もなかった。1.12.3以降ではIDの表は削除され、村人の取引アイテムも対象となり、刻印とコンパスの追跡先も維持される。[6]

自動更新

  • 1.12.4以降、パックのアイテムの大半は自動的に更新される。プレイヤーのインベントリが変化するたびに、メインハンド、オフハンド、または防具スロットにあるアイテムのうち、パックの415種類のアイテムのいずれかに一致し、現行バージョンのタグ(カスタムデータversion: 1)を持たないものは、そのコンポーネントが現行の定義で書き換えられる。1.12.4で作成されたアイテムはタグを持つため、そのまま残る。[7][8][9] エンチャント付きの装備の関数も、エンチャントを少なくとも現行のレベルまで引き上げることを意図しているが、その処理は何もしない(Known bugsを参照)。[10][11] これらのファイルはitem_updater_db.jsonから、スクリプトgenerate_item_update_files.pyによって生成される。[12]
  • 神聖なテキスト(The Avesta、The Book of Enoch、The Divine Comedy、The Lesser Key of Solomon、Paradise Lost、The Quran、The Tanakh)と「Golden」のディスクは、クリエイティブモード以外で拾得すると自動的に置き換えられる。[13]
  • バニラの水筒とエンチャントされていないバニラのエリトラは、パック版に変換される。[14] 1.12.2ではバニラのリンゴ、スウィートベリー、タートルの鱗片も同様に変換されていたが、1.12.3のパックではこれは行われなくなった。
  • 更新後にプレイヤーがサーバーに参加すると、レシピの解放状況がリセットされ、新しいレシピが解放できるようになる。1.12.6-alpha以降は、進行および報酬の進捗は維持される。それ以前のバージョンでは、再度獲得できるように進行および報酬の進捗も取り消されていた(1.12.2ではチュートリアルタブのほぼ全体、1.12.3から1.12.5では短いリスト)。[15] 1.12.7-beta以降は、更新時にプレイヤーの経験値レベルも10,000に設定される。Anvil#Experienceを参照。Advancements#Revocation on updateも参照。

その他の方法

  • /loot give @s loot matcha:...を使うと、多くのアイテムの新品を入手できる。例えばmatcha:treasure/divine_comedyなど。
  • トリガーでは再構築できない思い入れのあるアイテムについては、1.12.3のリリースノートで、それを地面に投げ、/data merge entity @n[type=item] {Item:{components:{"item_model":"matcha:XXX"}}}を実行することが提案されている。ここでXXXは英語の言語ファイルにあるアイテムのモデル名である(例:oarfishやmournful_clay_statue)。[16]
  • 以前のリソースパックを新しいものの下に読み込むと、壊れたテクスチャは隠れるが、エンチャントは壊れたままになる。
  • 武器職人(砥石の村人)は、合金化された装備をそのコンポーネントに分解し、amnesticは村人の取引をリセットする(1.12.3の変更以降、村人は新しい取引を解放するためにこれを必要とする)。どちらも1.10で追加された。

履歴

1.10 バージョン追跡、レシピ解放のリセット、武器職人による溶解、amnesticを追加。
1.12.1-alpha 移動した本と「Golden」ディスクの自動置換を追加。
1.12.2 /trigger update_itemを追加(FloofShade作)。
1.12.3 /trigger update_itemがアイテムIDで識別しなくなり、翻訳キーのないアイテムを報告するようになり、村人の取引アイテムに対応し、装備の刻印とロードストーンコンパスの追跡先を維持するようになった(FloofShade)。[17] 更新時に取り消されるチュートリアルの進捗が減った。[18]
1.12.4 手やアーマースロットのアイテムが、インベントリの変化時にカスタムデータのバージョンタグを使って自動更新されるようになった。[19]
1.12.5 普通の本、盾、弓が、単独でAngler's Almanac、warding shield、compound bowに変換されなくなった。1.12.4では、これら3つに対する更新処理の判定が、基本アイテムを両手のどちらでも受け付けていた。現在も、同種の普通のアイテムがオフハンドにある場合はメインハンドでの変換を受け付けるため、そのアイテムは引き続き変換される(Known bugsを参照)。[20][21][22][23][24]
1.12.6-alpha 更新時にレシピの解放以外の進捗が取り消されなくなり、最小ハート数が10にリセットされなくなった。[25] リンゴ、ニンジン、チョーラスの果実、スウィートベリー、グローベリー、トマト、エンチャントされた金のリンゴ、braised warped fungus、2種のOvergrown Abbey mapsは自動更新されなくなり、魚の骨、生のダイヤモンド、クリアなキノコスープ、クラシック版のポークチョップは自動更新されるようになった。エンチャントを復元する関数はmatcha_item:enchants/の下に存在するようになったが、Minecraft 26.3ではまだ動作しない。[26][27]

参考文献