前回分かった現状のバージョンでは動かなった箇所。ベースとなる進捗サポートデータパックを修正してみよう。
データの抽出
minecraft-jar-extractor (this link opens in a new window) by PrismarineJS (this link opens in a new window)
Extract structured data from the minecraft jar
minectaft-jar-extractorでデータを抽出した。
進捗、すなわち「advancements」の内容が見たいだけなので、他にもあるとは思う。
node環境が必要ではあるが、使用したい場合は各自でセットアップされたい。
node extract_datafolder.js 1.19.2 output tmp
extract_datafolder.jsでバージョン指定をすればdataフォルダが抽出できる。出力に指定したディレクトリ配下に「バージョン名/data」とディレクトリが生成されその下に各種ファイル群ができる。
その中のadvancementsが進捗ファイルであるので、その中身を見る。
冒険の時間は、「adventure/adventuring_time.json」
モンスター狩りの達人は、「adventure/kill_all_mobs.json」
バランスの取れた食事は、「husbandry/balanced_diet.json」
猫大全集は、「husbandry/complete_catalogue.sjon」
2匹ずつは、「husbandry/breed_all_animals.json」
みんなで町に跳び込もうは、「husbandry/leash_all_frog_variants.json」
ホットな観光地は、「nether/explore_nether.json」
と、各ファイルごとにcriteriaが記載されている。
元々のdatapckは1.17をターゲットにしていたので比較してみよう
1.17
["minecraft:river": {
"trigger": "minecraft:location",
"conditions": {
"location": {
"biome": "minecraft:river"
}
}
}
]
1.19.2
["minecraft:river": {
"conditions": {
"player": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"location": {
"biome": "minecraft:river"
}
}
}
]
},
"trigger": "minecraft:location"
}
]
と、全然違う。まぁこれでは動くはずがないだろう。
参考までに既存のjson。1.17と同じ形といえよう。
{
"display": {
"icon": {
"item": "minecraft:oak_boat"
},
"frame": "task"
,
"title": {
"translate": "biome.minecraft.river"
},
"description": {
"text":"river",
"color": "dark_gray"
},
"show_toast": false,
"announce_to_chat": false
},
"parent": "advancement_supports:_adventuring_time/temperate/plains",
"criteria": {
"plain": {
"trigger": "minecraft:location",
"conditions": {
"biome":"minecraft:river"
}
}
},
"rewards": {
"function": "advancement_supports:foundbiome/river"
}
}
結局、全部書き直すならプログラム書いた方が速そう。
pythonを書く
jsonを読み込んでjsonを書き出すだけなので、そんなに大したことはないだろう。
json以外に決めるべき内容を定義づける必要はある。displayの中身(icon,frame,title,description)と、parentとなるものは決めるべきだろう。
なんとなくそれっぽいのはできた
とりあえず冒険の時間だけ。
advancement_support_datapack (this link opens in a new window) by iroro-minecraft (this link opens in a new window)
datapack for advancement support in minecraft
作ったプログラムは↓。
大した事やっていないし、もっと良いやり方ある。minectaft-jar-extractorあたりと連携すればもっと効率化はできそうではあるが、そこまで作りこむものでもないので。
アイコンを指定するのが面倒。結局はこれに尽きる。(csv参照)
まとめ
ちゃんと直せば動く。
この勢いだとやることもないので、次回で完結する予定。
コメント