From 57072ecaa90c5fcdf2c9eb77e01675dcf65c5f92 Mon Sep 17 00:00:00 2001 From: Chitasa <74024372+Chitasa@users.noreply.github.com> Date: Thu, 8 Jun 2023 17:55:27 -0400 Subject: [PATCH 1/8] Add feature for statistics --- data/pc/common/features.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/pc/common/features.json b/data/pc/common/features.json index 35bccff6b..677da0732 100644 --- a/data/pc/common/features.json +++ b/data/pc/common/features.json @@ -721,5 +721,10 @@ "name": "hasBundlePacket", "description": "Has a Bundle Packet to group packets for processing at once", "versions": ["1.19.4", "latest"] + }, + { + "name": "statisticsUsesPayload", + "description": "uses payload to send client_command", + "versions": ["1.8", "1.8.9"] } ] From cb02416f73b0dfbee3c83479baf3e80a126c3a2c Mon Sep 17 00:00:00 2001 From: Chitasa <74024372+Chitasa@users.noreply.github.com> Date: Thu, 8 Jun 2023 18:16:46 -0400 Subject: [PATCH 2/8] Missed feature --- data/pc/common/features.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/pc/common/features.json b/data/pc/common/features.json index 677da0732..f783c6372 100644 --- a/data/pc/common/features.json +++ b/data/pc/common/features.json @@ -726,5 +726,10 @@ "name": "statisticsUsesPayload", "description": "uses payload to send client_command", "versions": ["1.8", "1.8.9"] + }, + { + "name": "statisticsFormatChanges", + "description": "statistics packet now uses packetId instead of sending stat name", + "versions": ["1.13.2", "1.16.5"] } ] From 219438e2c4624b9c5c4424d3b5360128b9192b19 Mon Sep 17 00:00:00 2001 From: a <> Date: Tue, 13 Jun 2023 15:57:56 -0400 Subject: [PATCH 3/8] update statisticsFormatChanges to latest version --- data/pc/common/features.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/pc/common/features.json b/data/pc/common/features.json index 93143f9cd..7557db76d 100644 --- a/data/pc/common/features.json +++ b/data/pc/common/features.json @@ -730,7 +730,7 @@ { "name": "statisticsFormatChanges", "description": "statistics packet now uses packetId instead of sending stat name", - "versions": ["1.13.2", "1.16.5"] + "versions": ["1.13.2", "latest"] }, { "name": "mcDataHasEntityMetadata", From ae77ed057429a43225ee6498fd4fbfc9133cb6a3 Mon Sep 17 00:00:00 2001 From: extremeheat Date: Tue, 13 Jun 2023 21:11:19 +0000 Subject: [PATCH 4/8] rename 1.8 protocol's client_command payload to actionId --- data/pc/1.8/protocol.json | 2 +- data/pc/15w40b/protocol.json | 2 +- data/pc/common/features.json | 5 ----- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/data/pc/1.8/protocol.json b/data/pc/1.8/protocol.json index a37b9aeb0..bef951e7e 100644 --- a/data/pc/1.8/protocol.json +++ b/data/pc/1.8/protocol.json @@ -3259,7 +3259,7 @@ "container", [ { - "name": "payload", + "name": "actionId", "type": "varint" } ] diff --git a/data/pc/15w40b/protocol.json b/data/pc/15w40b/protocol.json index 003bdd958..c26e43f17 100644 --- a/data/pc/15w40b/protocol.json +++ b/data/pc/15w40b/protocol.json @@ -3321,7 +3321,7 @@ "container", [ { - "name": "payload", + "name": "actionId", "type": "varint" } ] diff --git a/data/pc/common/features.json b/data/pc/common/features.json index 7557db76d..02423efe5 100644 --- a/data/pc/common/features.json +++ b/data/pc/common/features.json @@ -722,11 +722,6 @@ "description": "Has a Bundle Packet to group packets for processing at once", "versions": ["1.19.4", "latest"] }, - { - "name": "statisticsUsesPayload", - "description": "uses payload to send client_command", - "versions": ["1.8", "1.8.9"] - }, { "name": "statisticsFormatChanges", "description": "statistics packet now uses packetId instead of sending stat name", From 553110f25727a3e6f6ff8370735da3f3f8320892 Mon Sep 17 00:00:00 2001 From: extremeheat Date: Tue, 13 Jun 2023 21:15:16 +0000 Subject: [PATCH 5/8] 1.7 --- data/pc/1.7/protocol.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/pc/1.7/protocol.json b/data/pc/1.7/protocol.json index 6c52a0a0b..120bf070c 100644 --- a/data/pc/1.7/protocol.json +++ b/data/pc/1.7/protocol.json @@ -2794,7 +2794,7 @@ "container", [ { - "name": "payload", + "name": "actionId", "type": "i8" } ] From 729f0e36d94e364bfe6dbc0db509b25a70be4087 Mon Sep 17 00:00:00 2001 From: a <> Date: Tue, 13 Jun 2023 18:55:42 -0400 Subject: [PATCH 6/8] update features to reflect different statistics versions --- data/pc/common/features.json | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/data/pc/common/features.json b/data/pc/common/features.json index 02423efe5..4b36422ba 100644 --- a/data/pc/common/features.json +++ b/data/pc/common/features.json @@ -722,14 +722,24 @@ "description": "Has a Bundle Packet to group packets for processing at once", "versions": ["1.19.4", "latest"] }, - { - "name": "statisticsFormatChanges", - "description": "statistics packet now uses packetId instead of sending stat name", - "versions": ["1.13.2", "latest"] - }, { "name": "mcDataHasEntityMetadata", "description": "Entity Metadata is defined in mcdata", "versions": ["1.19.4", "latest"] + }, + { + "name": "statsVersionOne", + "description": "Version 1 of statistics - https://gist.github.com/Alvin-LB/8d0d13db00b3c00fd0e822a562025eff", + "versions": ["1.8", "1.12.2"] + }, + { + "name": "statsVersionTwo", + "description": "Version 2 of statistics - https://wiki.vg/index.php?title=Protocol&oldid=14889#Statistics", + "versions": ["1.13", "1.15.2"] + }, + { + "name": "statsVersionThree", + "description": "Version 3 of statistics - https://wiki.vg/index.php?title=Protocol#Award_Statistics", + "versions": ["1.16", "latest"] } ] From 64d59052fcb4361ec66612984bd36c4d2cdfb730 Mon Sep 17 00:00:00 2001 From: a <> Date: Thu, 15 Jun 2023 21:36:16 -0400 Subject: [PATCH 7/8] add extractStatistics.js --- tools/js/extractStatistics.js | 76 +++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 tools/js/extractStatistics.js diff --git a/tools/js/extractStatistics.js b/tools/js/extractStatistics.js new file mode 100644 index 000000000..5e82dd250 --- /dev/null +++ b/tools/js/extractStatistics.js @@ -0,0 +1,76 @@ +const fs = require('fs') +const cp = require('child_process') +const version = process.argv[2] || '1.19.4' + +if (!version) { + console.log('Usage: node extractStatistics.js ') + process.exit(1) +} + +if (!fs.existsSync(version)) { + cp.execSync(`git clone -b client${version} https://github.com/extremeheat/extracted_minecraft_data.git ${version} --depth 1`, { stdio: 'inherit' }) +} + +const baseStatTypes = [] +const baseCustomStats = [] + +let fileData +const files = [ + `./${version}/client/net/minecraft/stats/Stats.java`, + `./${version}/client/net/minecraft/stats/StatList.java`, + `./${version}/client/net/minecraft/stats/StatsList.java` +] + +for (const f of files) { + try { + fileData = fs.readFileSync(f, 'utf8').split('\n') + } catch (e) { + } +} + +if (!fileData) { + console.log('Could not find corresponding statistics file for version ') + process.exit(1) +} + +for (const line of fileData) { + const typeMatches = [ + line.match(/makeRegistryStatType\("([^"]+?)", .+?\)/), + line.match(/new (?:StatCrafting|StatBase)\("(stat\.[^"]+)\.".*?\)/), + line.match(/func_.+?\("(.+?)", IRegistry\..+?\)/) + ] + + const customMatches = [ + line.match(/makeCustomStat\("(.+?)", .+?\)/), + line.match(/new StatBasic\("(.+?)", .+?\)/), + line.match(/func_.+?\("(.+?)", IStatFormater\..+?\)/) + ] + + for (const m of typeMatches) { + if (m) baseStatTypes.push(m[1]) + } + + for (const m of customMatches) { + if (m) baseCustomStats.push(m[1]) + } +} + +const statTypes = baseStatTypes.map((x, i) => { + return { + id: i, + name: x, + protocolName: x.includes('.') ? x.split('.', 2).join(':') : `minecraft:${x}` + } +}) + +const customStats = baseCustomStats.map((x, i) => { + return { + id: i, + name: x, + protocolName: x.includes('.') ? x.split('.', 2).join(':') : `minecraft:${x}`, + actionId: i + } +}) + +fs.writeFileSync(`../../data/pc/${version}/statTypes.json`, JSON.stringify(statTypes, null, 2)) +fs.writeFileSync(`../../data/pc/${version}/customStats.json`, JSON.stringify(customStats, null, 2)) From d90215b9c2c728a9fe29ba374677f4d8ab09a2bd Mon Sep 17 00:00:00 2001 From: a <> Date: Thu, 15 Jun 2023 21:36:31 -0400 Subject: [PATCH 8/8] add 1.8, 1.13.2, 1.19.4 stats --- data/pc/1.13.2/customStats.json | 350 +++++++++++++++++++++++++ data/pc/1.13.2/statTypes.json | 47 ++++ data/pc/1.19.4/customStats.json | 452 ++++++++++++++++++++++++++++++++ data/pc/1.19.4/statTypes.json | 47 ++++ data/pc/1.8/customStats.json | 452 ++++++++++++++++++++++++++++++++ data/pc/1.8/statTypes.json | 47 ++++ 6 files changed, 1395 insertions(+) create mode 100644 data/pc/1.13.2/customStats.json create mode 100644 data/pc/1.13.2/statTypes.json create mode 100644 data/pc/1.19.4/customStats.json create mode 100644 data/pc/1.19.4/statTypes.json create mode 100644 data/pc/1.8/customStats.json create mode 100644 data/pc/1.8/statTypes.json diff --git a/data/pc/1.13.2/customStats.json b/data/pc/1.13.2/customStats.json new file mode 100644 index 000000000..843572f29 --- /dev/null +++ b/data/pc/1.13.2/customStats.json @@ -0,0 +1,350 @@ +[ + { + "id": 0, + "name": "leave_game", + "protocolName": "minecraft:leave_game", + "actionId": 0 + }, + { + "id": 1, + "name": "play_one_minute", + "protocolName": "minecraft:play_one_minute", + "actionId": 1 + }, + { + "id": 2, + "name": "time_since_death", + "protocolName": "minecraft:time_since_death", + "actionId": 2 + }, + { + "id": 3, + "name": "time_since_rest", + "protocolName": "minecraft:time_since_rest", + "actionId": 3 + }, + { + "id": 4, + "name": "sneak_time", + "protocolName": "minecraft:sneak_time", + "actionId": 4 + }, + { + "id": 5, + "name": "walk_one_cm", + "protocolName": "minecraft:walk_one_cm", + "actionId": 5 + }, + { + "id": 6, + "name": "crouch_one_cm", + "protocolName": "minecraft:crouch_one_cm", + "actionId": 6 + }, + { + "id": 7, + "name": "sprint_one_cm", + "protocolName": "minecraft:sprint_one_cm", + "actionId": 7 + }, + { + "id": 8, + "name": "walk_on_water_one_cm", + "protocolName": "minecraft:walk_on_water_one_cm", + "actionId": 8 + }, + { + "id": 9, + "name": "fall_one_cm", + "protocolName": "minecraft:fall_one_cm", + "actionId": 9 + }, + { + "id": 10, + "name": "climb_one_cm", + "protocolName": "minecraft:climb_one_cm", + "actionId": 10 + }, + { + "id": 11, + "name": "fly_one_cm", + "protocolName": "minecraft:fly_one_cm", + "actionId": 11 + }, + { + "id": 12, + "name": "walk_under_water_one_cm", + "protocolName": "minecraft:walk_under_water_one_cm", + "actionId": 12 + }, + { + "id": 13, + "name": "minecart_one_cm", + "protocolName": "minecraft:minecart_one_cm", + "actionId": 13 + }, + { + "id": 14, + "name": "boat_one_cm", + "protocolName": "minecraft:boat_one_cm", + "actionId": 14 + }, + { + "id": 15, + "name": "pig_one_cm", + "protocolName": "minecraft:pig_one_cm", + "actionId": 15 + }, + { + "id": 16, + "name": "horse_one_cm", + "protocolName": "minecraft:horse_one_cm", + "actionId": 16 + }, + { + "id": 17, + "name": "aviate_one_cm", + "protocolName": "minecraft:aviate_one_cm", + "actionId": 17 + }, + { + "id": 18, + "name": "swim_one_cm", + "protocolName": "minecraft:swim_one_cm", + "actionId": 18 + }, + { + "id": 19, + "name": "jump", + "protocolName": "minecraft:jump", + "actionId": 19 + }, + { + "id": 20, + "name": "drop", + "protocolName": "minecraft:drop", + "actionId": 20 + }, + { + "id": 21, + "name": "damage_dealt", + "protocolName": "minecraft:damage_dealt", + "actionId": 21 + }, + { + "id": 22, + "name": "damage_dealt_absorbed", + "protocolName": "minecraft:damage_dealt_absorbed", + "actionId": 22 + }, + { + "id": 23, + "name": "damage_dealt_resisted", + "protocolName": "minecraft:damage_dealt_resisted", + "actionId": 23 + }, + { + "id": 24, + "name": "damage_taken", + "protocolName": "minecraft:damage_taken", + "actionId": 24 + }, + { + "id": 25, + "name": "damage_blocked_by_shield", + "protocolName": "minecraft:damage_blocked_by_shield", + "actionId": 25 + }, + { + "id": 26, + "name": "damage_absorbed", + "protocolName": "minecraft:damage_absorbed", + "actionId": 26 + }, + { + "id": 27, + "name": "damage_resisted", + "protocolName": "minecraft:damage_resisted", + "actionId": 27 + }, + { + "id": 28, + "name": "deaths", + "protocolName": "minecraft:deaths", + "actionId": 28 + }, + { + "id": 29, + "name": "mob_kills", + "protocolName": "minecraft:mob_kills", + "actionId": 29 + }, + { + "id": 30, + "name": "animals_bred", + "protocolName": "minecraft:animals_bred", + "actionId": 30 + }, + { + "id": 31, + "name": "player_kills", + "protocolName": "minecraft:player_kills", + "actionId": 31 + }, + { + "id": 32, + "name": "fish_caught", + "protocolName": "minecraft:fish_caught", + "actionId": 32 + }, + { + "id": 33, + "name": "talked_to_villager", + "protocolName": "minecraft:talked_to_villager", + "actionId": 33 + }, + { + "id": 34, + "name": "traded_with_villager", + "protocolName": "minecraft:traded_with_villager", + "actionId": 34 + }, + { + "id": 35, + "name": "eat_cake_slice", + "protocolName": "minecraft:eat_cake_slice", + "actionId": 35 + }, + { + "id": 36, + "name": "fill_cauldron", + "protocolName": "minecraft:fill_cauldron", + "actionId": 36 + }, + { + "id": 37, + "name": "use_cauldron", + "protocolName": "minecraft:use_cauldron", + "actionId": 37 + }, + { + "id": 38, + "name": "clean_armor", + "protocolName": "minecraft:clean_armor", + "actionId": 38 + }, + { + "id": 39, + "name": "clean_banner", + "protocolName": "minecraft:clean_banner", + "actionId": 39 + }, + { + "id": 40, + "name": "clean_shulker_box", + "protocolName": "minecraft:clean_shulker_box", + "actionId": 40 + }, + { + "id": 41, + "name": "interact_with_brewingstand", + "protocolName": "minecraft:interact_with_brewingstand", + "actionId": 41 + }, + { + "id": 42, + "name": "interact_with_beacon", + "protocolName": "minecraft:interact_with_beacon", + "actionId": 42 + }, + { + "id": 43, + "name": "inspect_dropper", + "protocolName": "minecraft:inspect_dropper", + "actionId": 43 + }, + { + "id": 44, + "name": "inspect_hopper", + "protocolName": "minecraft:inspect_hopper", + "actionId": 44 + }, + { + "id": 45, + "name": "inspect_dispenser", + "protocolName": "minecraft:inspect_dispenser", + "actionId": 45 + }, + { + "id": 46, + "name": "play_noteblock", + "protocolName": "minecraft:play_noteblock", + "actionId": 46 + }, + { + "id": 47, + "name": "tune_noteblock", + "protocolName": "minecraft:tune_noteblock", + "actionId": 47 + }, + { + "id": 48, + "name": "pot_flower", + "protocolName": "minecraft:pot_flower", + "actionId": 48 + }, + { + "id": 49, + "name": "trigger_trapped_chest", + "protocolName": "minecraft:trigger_trapped_chest", + "actionId": 49 + }, + { + "id": 50, + "name": "open_enderchest", + "protocolName": "minecraft:open_enderchest", + "actionId": 50 + }, + { + "id": 51, + "name": "enchant_item", + "protocolName": "minecraft:enchant_item", + "actionId": 51 + }, + { + "id": 52, + "name": "play_record", + "protocolName": "minecraft:play_record", + "actionId": 52 + }, + { + "id": 53, + "name": "interact_with_furnace", + "protocolName": "minecraft:interact_with_furnace", + "actionId": 53 + }, + { + "id": 54, + "name": "interact_with_crafting_table", + "protocolName": "minecraft:interact_with_crafting_table", + "actionId": 54 + }, + { + "id": 55, + "name": "open_chest", + "protocolName": "minecraft:open_chest", + "actionId": 55 + }, + { + "id": 56, + "name": "sleep_in_bed", + "protocolName": "minecraft:sleep_in_bed", + "actionId": 56 + }, + { + "id": 57, + "name": "open_shulker_box", + "protocolName": "minecraft:open_shulker_box", + "actionId": 57 + } +] \ No newline at end of file diff --git a/data/pc/1.13.2/statTypes.json b/data/pc/1.13.2/statTypes.json new file mode 100644 index 000000000..343f60a8c --- /dev/null +++ b/data/pc/1.13.2/statTypes.json @@ -0,0 +1,47 @@ +[ + { + "id": 0, + "name": "mined", + "protocolName": "minecraft:mined" + }, + { + "id": 1, + "name": "crafted", + "protocolName": "minecraft:crafted" + }, + { + "id": 2, + "name": "used", + "protocolName": "minecraft:used" + }, + { + "id": 3, + "name": "broken", + "protocolName": "minecraft:broken" + }, + { + "id": 4, + "name": "picked_up", + "protocolName": "minecraft:picked_up" + }, + { + "id": 5, + "name": "dropped", + "protocolName": "minecraft:dropped" + }, + { + "id": 6, + "name": "killed", + "protocolName": "minecraft:killed" + }, + { + "id": 7, + "name": "killed_by", + "protocolName": "minecraft:killed_by" + }, + { + "id": 8, + "name": "custom", + "protocolName": "minecraft:custom" + } +] \ No newline at end of file diff --git a/data/pc/1.19.4/customStats.json b/data/pc/1.19.4/customStats.json new file mode 100644 index 000000000..61dc6805d --- /dev/null +++ b/data/pc/1.19.4/customStats.json @@ -0,0 +1,452 @@ +[ + { + "id": 0, + "name": "leave_game", + "protocolName": "minecraft:leave_game", + "actionId": 0 + }, + { + "id": 1, + "name": "play_time", + "protocolName": "minecraft:play_time", + "actionId": 1 + }, + { + "id": 2, + "name": "total_world_time", + "protocolName": "minecraft:total_world_time", + "actionId": 2 + }, + { + "id": 3, + "name": "time_since_death", + "protocolName": "minecraft:time_since_death", + "actionId": 3 + }, + { + "id": 4, + "name": "time_since_rest", + "protocolName": "minecraft:time_since_rest", + "actionId": 4 + }, + { + "id": 5, + "name": "sneak_time", + "protocolName": "minecraft:sneak_time", + "actionId": 5 + }, + { + "id": 6, + "name": "walk_one_cm", + "protocolName": "minecraft:walk_one_cm", + "actionId": 6 + }, + { + "id": 7, + "name": "crouch_one_cm", + "protocolName": "minecraft:crouch_one_cm", + "actionId": 7 + }, + { + "id": 8, + "name": "sprint_one_cm", + "protocolName": "minecraft:sprint_one_cm", + "actionId": 8 + }, + { + "id": 9, + "name": "walk_on_water_one_cm", + "protocolName": "minecraft:walk_on_water_one_cm", + "actionId": 9 + }, + { + "id": 10, + "name": "fall_one_cm", + "protocolName": "minecraft:fall_one_cm", + "actionId": 10 + }, + { + "id": 11, + "name": "climb_one_cm", + "protocolName": "minecraft:climb_one_cm", + "actionId": 11 + }, + { + "id": 12, + "name": "fly_one_cm", + "protocolName": "minecraft:fly_one_cm", + "actionId": 12 + }, + { + "id": 13, + "name": "walk_under_water_one_cm", + "protocolName": "minecraft:walk_under_water_one_cm", + "actionId": 13 + }, + { + "id": 14, + "name": "minecart_one_cm", + "protocolName": "minecraft:minecart_one_cm", + "actionId": 14 + }, + { + "id": 15, + "name": "boat_one_cm", + "protocolName": "minecraft:boat_one_cm", + "actionId": 15 + }, + { + "id": 16, + "name": "pig_one_cm", + "protocolName": "minecraft:pig_one_cm", + "actionId": 16 + }, + { + "id": 17, + "name": "horse_one_cm", + "protocolName": "minecraft:horse_one_cm", + "actionId": 17 + }, + { + "id": 18, + "name": "aviate_one_cm", + "protocolName": "minecraft:aviate_one_cm", + "actionId": 18 + }, + { + "id": 19, + "name": "swim_one_cm", + "protocolName": "minecraft:swim_one_cm", + "actionId": 19 + }, + { + "id": 20, + "name": "strider_one_cm", + "protocolName": "minecraft:strider_one_cm", + "actionId": 20 + }, + { + "id": 21, + "name": "jump", + "protocolName": "minecraft:jump", + "actionId": 21 + }, + { + "id": 22, + "name": "drop", + "protocolName": "minecraft:drop", + "actionId": 22 + }, + { + "id": 23, + "name": "damage_dealt", + "protocolName": "minecraft:damage_dealt", + "actionId": 23 + }, + { + "id": 24, + "name": "damage_dealt_absorbed", + "protocolName": "minecraft:damage_dealt_absorbed", + "actionId": 24 + }, + { + "id": 25, + "name": "damage_dealt_resisted", + "protocolName": "minecraft:damage_dealt_resisted", + "actionId": 25 + }, + { + "id": 26, + "name": "damage_taken", + "protocolName": "minecraft:damage_taken", + "actionId": 26 + }, + { + "id": 27, + "name": "damage_blocked_by_shield", + "protocolName": "minecraft:damage_blocked_by_shield", + "actionId": 27 + }, + { + "id": 28, + "name": "damage_absorbed", + "protocolName": "minecraft:damage_absorbed", + "actionId": 28 + }, + { + "id": 29, + "name": "damage_resisted", + "protocolName": "minecraft:damage_resisted", + "actionId": 29 + }, + { + "id": 30, + "name": "deaths", + "protocolName": "minecraft:deaths", + "actionId": 30 + }, + { + "id": 31, + "name": "mob_kills", + "protocolName": "minecraft:mob_kills", + "actionId": 31 + }, + { + "id": 32, + "name": "animals_bred", + "protocolName": "minecraft:animals_bred", + "actionId": 32 + }, + { + "id": 33, + "name": "player_kills", + "protocolName": "minecraft:player_kills", + "actionId": 33 + }, + { + "id": 34, + "name": "fish_caught", + "protocolName": "minecraft:fish_caught", + "actionId": 34 + }, + { + "id": 35, + "name": "talked_to_villager", + "protocolName": "minecraft:talked_to_villager", + "actionId": 35 + }, + { + "id": 36, + "name": "traded_with_villager", + "protocolName": "minecraft:traded_with_villager", + "actionId": 36 + }, + { + "id": 37, + "name": "eat_cake_slice", + "protocolName": "minecraft:eat_cake_slice", + "actionId": 37 + }, + { + "id": 38, + "name": "fill_cauldron", + "protocolName": "minecraft:fill_cauldron", + "actionId": 38 + }, + { + "id": 39, + "name": "use_cauldron", + "protocolName": "minecraft:use_cauldron", + "actionId": 39 + }, + { + "id": 40, + "name": "clean_armor", + "protocolName": "minecraft:clean_armor", + "actionId": 40 + }, + { + "id": 41, + "name": "clean_banner", + "protocolName": "minecraft:clean_banner", + "actionId": 41 + }, + { + "id": 42, + "name": "clean_shulker_box", + "protocolName": "minecraft:clean_shulker_box", + "actionId": 42 + }, + { + "id": 43, + "name": "interact_with_brewingstand", + "protocolName": "minecraft:interact_with_brewingstand", + "actionId": 43 + }, + { + "id": 44, + "name": "interact_with_beacon", + "protocolName": "minecraft:interact_with_beacon", + "actionId": 44 + }, + { + "id": 45, + "name": "inspect_dropper", + "protocolName": "minecraft:inspect_dropper", + "actionId": 45 + }, + { + "id": 46, + "name": "inspect_hopper", + "protocolName": "minecraft:inspect_hopper", + "actionId": 46 + }, + { + "id": 47, + "name": "inspect_dispenser", + "protocolName": "minecraft:inspect_dispenser", + "actionId": 47 + }, + { + "id": 48, + "name": "play_noteblock", + "protocolName": "minecraft:play_noteblock", + "actionId": 48 + }, + { + "id": 49, + "name": "tune_noteblock", + "protocolName": "minecraft:tune_noteblock", + "actionId": 49 + }, + { + "id": 50, + "name": "pot_flower", + "protocolName": "minecraft:pot_flower", + "actionId": 50 + }, + { + "id": 51, + "name": "trigger_trapped_chest", + "protocolName": "minecraft:trigger_trapped_chest", + "actionId": 51 + }, + { + "id": 52, + "name": "open_enderchest", + "protocolName": "minecraft:open_enderchest", + "actionId": 52 + }, + { + "id": 53, + "name": "enchant_item", + "protocolName": "minecraft:enchant_item", + "actionId": 53 + }, + { + "id": 54, + "name": "play_record", + "protocolName": "minecraft:play_record", + "actionId": 54 + }, + { + "id": 55, + "name": "interact_with_furnace", + "protocolName": "minecraft:interact_with_furnace", + "actionId": 55 + }, + { + "id": 56, + "name": "interact_with_crafting_table", + "protocolName": "minecraft:interact_with_crafting_table", + "actionId": 56 + }, + { + "id": 57, + "name": "open_chest", + "protocolName": "minecraft:open_chest", + "actionId": 57 + }, + { + "id": 58, + "name": "sleep_in_bed", + "protocolName": "minecraft:sleep_in_bed", + "actionId": 58 + }, + { + "id": 59, + "name": "open_shulker_box", + "protocolName": "minecraft:open_shulker_box", + "actionId": 59 + }, + { + "id": 60, + "name": "open_barrel", + "protocolName": "minecraft:open_barrel", + "actionId": 60 + }, + { + "id": 61, + "name": "interact_with_blast_furnace", + "protocolName": "minecraft:interact_with_blast_furnace", + "actionId": 61 + }, + { + "id": 62, + "name": "interact_with_smoker", + "protocolName": "minecraft:interact_with_smoker", + "actionId": 62 + }, + { + "id": 63, + "name": "interact_with_lectern", + "protocolName": "minecraft:interact_with_lectern", + "actionId": 63 + }, + { + "id": 64, + "name": "interact_with_campfire", + "protocolName": "minecraft:interact_with_campfire", + "actionId": 64 + }, + { + "id": 65, + "name": "interact_with_cartography_table", + "protocolName": "minecraft:interact_with_cartography_table", + "actionId": 65 + }, + { + "id": 66, + "name": "interact_with_loom", + "protocolName": "minecraft:interact_with_loom", + "actionId": 66 + }, + { + "id": 67, + "name": "interact_with_stonecutter", + "protocolName": "minecraft:interact_with_stonecutter", + "actionId": 67 + }, + { + "id": 68, + "name": "bell_ring", + "protocolName": "minecraft:bell_ring", + "actionId": 68 + }, + { + "id": 69, + "name": "raid_trigger", + "protocolName": "minecraft:raid_trigger", + "actionId": 69 + }, + { + "id": 70, + "name": "raid_win", + "protocolName": "minecraft:raid_win", + "actionId": 70 + }, + { + "id": 71, + "name": "interact_with_anvil", + "protocolName": "minecraft:interact_with_anvil", + "actionId": 71 + }, + { + "id": 72, + "name": "interact_with_grindstone", + "protocolName": "minecraft:interact_with_grindstone", + "actionId": 72 + }, + { + "id": 73, + "name": "target_hit", + "protocolName": "minecraft:target_hit", + "actionId": 73 + }, + { + "id": 74, + "name": "interact_with_smithing_table", + "protocolName": "minecraft:interact_with_smithing_table", + "actionId": 74 + } +] \ No newline at end of file diff --git a/data/pc/1.19.4/statTypes.json b/data/pc/1.19.4/statTypes.json new file mode 100644 index 000000000..343f60a8c --- /dev/null +++ b/data/pc/1.19.4/statTypes.json @@ -0,0 +1,47 @@ +[ + { + "id": 0, + "name": "mined", + "protocolName": "minecraft:mined" + }, + { + "id": 1, + "name": "crafted", + "protocolName": "minecraft:crafted" + }, + { + "id": 2, + "name": "used", + "protocolName": "minecraft:used" + }, + { + "id": 3, + "name": "broken", + "protocolName": "minecraft:broken" + }, + { + "id": 4, + "name": "picked_up", + "protocolName": "minecraft:picked_up" + }, + { + "id": 5, + "name": "dropped", + "protocolName": "minecraft:dropped" + }, + { + "id": 6, + "name": "killed", + "protocolName": "minecraft:killed" + }, + { + "id": 7, + "name": "killed_by", + "protocolName": "minecraft:killed_by" + }, + { + "id": 8, + "name": "custom", + "protocolName": "minecraft:custom" + } +] \ No newline at end of file diff --git a/data/pc/1.8/customStats.json b/data/pc/1.8/customStats.json new file mode 100644 index 000000000..61dc6805d --- /dev/null +++ b/data/pc/1.8/customStats.json @@ -0,0 +1,452 @@ +[ + { + "id": 0, + "name": "leave_game", + "protocolName": "minecraft:leave_game", + "actionId": 0 + }, + { + "id": 1, + "name": "play_time", + "protocolName": "minecraft:play_time", + "actionId": 1 + }, + { + "id": 2, + "name": "total_world_time", + "protocolName": "minecraft:total_world_time", + "actionId": 2 + }, + { + "id": 3, + "name": "time_since_death", + "protocolName": "minecraft:time_since_death", + "actionId": 3 + }, + { + "id": 4, + "name": "time_since_rest", + "protocolName": "minecraft:time_since_rest", + "actionId": 4 + }, + { + "id": 5, + "name": "sneak_time", + "protocolName": "minecraft:sneak_time", + "actionId": 5 + }, + { + "id": 6, + "name": "walk_one_cm", + "protocolName": "minecraft:walk_one_cm", + "actionId": 6 + }, + { + "id": 7, + "name": "crouch_one_cm", + "protocolName": "minecraft:crouch_one_cm", + "actionId": 7 + }, + { + "id": 8, + "name": "sprint_one_cm", + "protocolName": "minecraft:sprint_one_cm", + "actionId": 8 + }, + { + "id": 9, + "name": "walk_on_water_one_cm", + "protocolName": "minecraft:walk_on_water_one_cm", + "actionId": 9 + }, + { + "id": 10, + "name": "fall_one_cm", + "protocolName": "minecraft:fall_one_cm", + "actionId": 10 + }, + { + "id": 11, + "name": "climb_one_cm", + "protocolName": "minecraft:climb_one_cm", + "actionId": 11 + }, + { + "id": 12, + "name": "fly_one_cm", + "protocolName": "minecraft:fly_one_cm", + "actionId": 12 + }, + { + "id": 13, + "name": "walk_under_water_one_cm", + "protocolName": "minecraft:walk_under_water_one_cm", + "actionId": 13 + }, + { + "id": 14, + "name": "minecart_one_cm", + "protocolName": "minecraft:minecart_one_cm", + "actionId": 14 + }, + { + "id": 15, + "name": "boat_one_cm", + "protocolName": "minecraft:boat_one_cm", + "actionId": 15 + }, + { + "id": 16, + "name": "pig_one_cm", + "protocolName": "minecraft:pig_one_cm", + "actionId": 16 + }, + { + "id": 17, + "name": "horse_one_cm", + "protocolName": "minecraft:horse_one_cm", + "actionId": 17 + }, + { + "id": 18, + "name": "aviate_one_cm", + "protocolName": "minecraft:aviate_one_cm", + "actionId": 18 + }, + { + "id": 19, + "name": "swim_one_cm", + "protocolName": "minecraft:swim_one_cm", + "actionId": 19 + }, + { + "id": 20, + "name": "strider_one_cm", + "protocolName": "minecraft:strider_one_cm", + "actionId": 20 + }, + { + "id": 21, + "name": "jump", + "protocolName": "minecraft:jump", + "actionId": 21 + }, + { + "id": 22, + "name": "drop", + "protocolName": "minecraft:drop", + "actionId": 22 + }, + { + "id": 23, + "name": "damage_dealt", + "protocolName": "minecraft:damage_dealt", + "actionId": 23 + }, + { + "id": 24, + "name": "damage_dealt_absorbed", + "protocolName": "minecraft:damage_dealt_absorbed", + "actionId": 24 + }, + { + "id": 25, + "name": "damage_dealt_resisted", + "protocolName": "minecraft:damage_dealt_resisted", + "actionId": 25 + }, + { + "id": 26, + "name": "damage_taken", + "protocolName": "minecraft:damage_taken", + "actionId": 26 + }, + { + "id": 27, + "name": "damage_blocked_by_shield", + "protocolName": "minecraft:damage_blocked_by_shield", + "actionId": 27 + }, + { + "id": 28, + "name": "damage_absorbed", + "protocolName": "minecraft:damage_absorbed", + "actionId": 28 + }, + { + "id": 29, + "name": "damage_resisted", + "protocolName": "minecraft:damage_resisted", + "actionId": 29 + }, + { + "id": 30, + "name": "deaths", + "protocolName": "minecraft:deaths", + "actionId": 30 + }, + { + "id": 31, + "name": "mob_kills", + "protocolName": "minecraft:mob_kills", + "actionId": 31 + }, + { + "id": 32, + "name": "animals_bred", + "protocolName": "minecraft:animals_bred", + "actionId": 32 + }, + { + "id": 33, + "name": "player_kills", + "protocolName": "minecraft:player_kills", + "actionId": 33 + }, + { + "id": 34, + "name": "fish_caught", + "protocolName": "minecraft:fish_caught", + "actionId": 34 + }, + { + "id": 35, + "name": "talked_to_villager", + "protocolName": "minecraft:talked_to_villager", + "actionId": 35 + }, + { + "id": 36, + "name": "traded_with_villager", + "protocolName": "minecraft:traded_with_villager", + "actionId": 36 + }, + { + "id": 37, + "name": "eat_cake_slice", + "protocolName": "minecraft:eat_cake_slice", + "actionId": 37 + }, + { + "id": 38, + "name": "fill_cauldron", + "protocolName": "minecraft:fill_cauldron", + "actionId": 38 + }, + { + "id": 39, + "name": "use_cauldron", + "protocolName": "minecraft:use_cauldron", + "actionId": 39 + }, + { + "id": 40, + "name": "clean_armor", + "protocolName": "minecraft:clean_armor", + "actionId": 40 + }, + { + "id": 41, + "name": "clean_banner", + "protocolName": "minecraft:clean_banner", + "actionId": 41 + }, + { + "id": 42, + "name": "clean_shulker_box", + "protocolName": "minecraft:clean_shulker_box", + "actionId": 42 + }, + { + "id": 43, + "name": "interact_with_brewingstand", + "protocolName": "minecraft:interact_with_brewingstand", + "actionId": 43 + }, + { + "id": 44, + "name": "interact_with_beacon", + "protocolName": "minecraft:interact_with_beacon", + "actionId": 44 + }, + { + "id": 45, + "name": "inspect_dropper", + "protocolName": "minecraft:inspect_dropper", + "actionId": 45 + }, + { + "id": 46, + "name": "inspect_hopper", + "protocolName": "minecraft:inspect_hopper", + "actionId": 46 + }, + { + "id": 47, + "name": "inspect_dispenser", + "protocolName": "minecraft:inspect_dispenser", + "actionId": 47 + }, + { + "id": 48, + "name": "play_noteblock", + "protocolName": "minecraft:play_noteblock", + "actionId": 48 + }, + { + "id": 49, + "name": "tune_noteblock", + "protocolName": "minecraft:tune_noteblock", + "actionId": 49 + }, + { + "id": 50, + "name": "pot_flower", + "protocolName": "minecraft:pot_flower", + "actionId": 50 + }, + { + "id": 51, + "name": "trigger_trapped_chest", + "protocolName": "minecraft:trigger_trapped_chest", + "actionId": 51 + }, + { + "id": 52, + "name": "open_enderchest", + "protocolName": "minecraft:open_enderchest", + "actionId": 52 + }, + { + "id": 53, + "name": "enchant_item", + "protocolName": "minecraft:enchant_item", + "actionId": 53 + }, + { + "id": 54, + "name": "play_record", + "protocolName": "minecraft:play_record", + "actionId": 54 + }, + { + "id": 55, + "name": "interact_with_furnace", + "protocolName": "minecraft:interact_with_furnace", + "actionId": 55 + }, + { + "id": 56, + "name": "interact_with_crafting_table", + "protocolName": "minecraft:interact_with_crafting_table", + "actionId": 56 + }, + { + "id": 57, + "name": "open_chest", + "protocolName": "minecraft:open_chest", + "actionId": 57 + }, + { + "id": 58, + "name": "sleep_in_bed", + "protocolName": "minecraft:sleep_in_bed", + "actionId": 58 + }, + { + "id": 59, + "name": "open_shulker_box", + "protocolName": "minecraft:open_shulker_box", + "actionId": 59 + }, + { + "id": 60, + "name": "open_barrel", + "protocolName": "minecraft:open_barrel", + "actionId": 60 + }, + { + "id": 61, + "name": "interact_with_blast_furnace", + "protocolName": "minecraft:interact_with_blast_furnace", + "actionId": 61 + }, + { + "id": 62, + "name": "interact_with_smoker", + "protocolName": "minecraft:interact_with_smoker", + "actionId": 62 + }, + { + "id": 63, + "name": "interact_with_lectern", + "protocolName": "minecraft:interact_with_lectern", + "actionId": 63 + }, + { + "id": 64, + "name": "interact_with_campfire", + "protocolName": "minecraft:interact_with_campfire", + "actionId": 64 + }, + { + "id": 65, + "name": "interact_with_cartography_table", + "protocolName": "minecraft:interact_with_cartography_table", + "actionId": 65 + }, + { + "id": 66, + "name": "interact_with_loom", + "protocolName": "minecraft:interact_with_loom", + "actionId": 66 + }, + { + "id": 67, + "name": "interact_with_stonecutter", + "protocolName": "minecraft:interact_with_stonecutter", + "actionId": 67 + }, + { + "id": 68, + "name": "bell_ring", + "protocolName": "minecraft:bell_ring", + "actionId": 68 + }, + { + "id": 69, + "name": "raid_trigger", + "protocolName": "minecraft:raid_trigger", + "actionId": 69 + }, + { + "id": 70, + "name": "raid_win", + "protocolName": "minecraft:raid_win", + "actionId": 70 + }, + { + "id": 71, + "name": "interact_with_anvil", + "protocolName": "minecraft:interact_with_anvil", + "actionId": 71 + }, + { + "id": 72, + "name": "interact_with_grindstone", + "protocolName": "minecraft:interact_with_grindstone", + "actionId": 72 + }, + { + "id": 73, + "name": "target_hit", + "protocolName": "minecraft:target_hit", + "actionId": 73 + }, + { + "id": 74, + "name": "interact_with_smithing_table", + "protocolName": "minecraft:interact_with_smithing_table", + "actionId": 74 + } +] \ No newline at end of file diff --git a/data/pc/1.8/statTypes.json b/data/pc/1.8/statTypes.json new file mode 100644 index 000000000..343f60a8c --- /dev/null +++ b/data/pc/1.8/statTypes.json @@ -0,0 +1,47 @@ +[ + { + "id": 0, + "name": "mined", + "protocolName": "minecraft:mined" + }, + { + "id": 1, + "name": "crafted", + "protocolName": "minecraft:crafted" + }, + { + "id": 2, + "name": "used", + "protocolName": "minecraft:used" + }, + { + "id": 3, + "name": "broken", + "protocolName": "minecraft:broken" + }, + { + "id": 4, + "name": "picked_up", + "protocolName": "minecraft:picked_up" + }, + { + "id": 5, + "name": "dropped", + "protocolName": "minecraft:dropped" + }, + { + "id": 6, + "name": "killed", + "protocolName": "minecraft:killed" + }, + { + "id": 7, + "name": "killed_by", + "protocolName": "minecraft:killed_by" + }, + { + "id": 8, + "name": "custom", + "protocolName": "minecraft:custom" + } +] \ No newline at end of file