diff --git a/common/src/main/java/us/myles/ViaVersion/api/rewriters/StatisticsRewriter.java b/common/src/main/java/us/myles/ViaVersion/api/rewriters/StatisticsRewriter.java index 2ed3b52c4..2449a7a1f 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/rewriters/StatisticsRewriter.java +++ b/common/src/main/java/us/myles/ViaVersion/api/rewriters/StatisticsRewriter.java @@ -11,16 +11,17 @@ public class StatisticsRewriter { private final IdRewriteFunction blockRewriter; private final IdRewriteFunction itemRewriter; private final IdRewriteFunction entityRewriter; - private final IdRewriteFunction categoryIdRewriter; + private final IdRewriteFunction statisticsIdRewriter; + private final int customStatsCategory = 8; // Make this changeable if it differs in a future version public StatisticsRewriter(Protocol protocol, @Nullable IdRewriteFunction blockRewriter, @Nullable IdRewriteFunction itemRewriter, @Nullable IdRewriteFunction entityRewriter, - @Nullable IdRewriteFunction categoryIdRewriter) { + @Nullable IdRewriteFunction statisticsIdRewriter) { this.protocol = protocol; this.blockRewriter = blockRewriter; this.itemRewriter = itemRewriter; this.entityRewriter = entityRewriter; - this.categoryIdRewriter = categoryIdRewriter; + this.statisticsIdRewriter = statisticsIdRewriter; } public StatisticsRewriter(Protocol protocol, @Nullable IdRewriteFunction blockRewriter, @Nullable IdRewriteFunction itemRewriter, @Nullable IdRewriteFunction entityRewriter) { @@ -38,27 +39,25 @@ public class StatisticsRewriter { int categoryId = wrapper.read(Type.VAR_INT); int statisticId = wrapper.read(Type.VAR_INT); int value = wrapper.read(Type.VAR_INT); - // Rewrite category id - if (categoryIdRewriter != null) { - categoryId = categoryIdRewriter.rewrite(categoryId); - if (categoryId == -1) { + if (categoryId == customStatsCategory && statisticsIdRewriter != null) { + // Rewrite custom statistics id + statisticId = statisticsIdRewriter.rewrite(statisticId); + if (statisticId == -1) { // Remove entry newSize--; continue; } + } else { + // Rewrite the block/item/entity id + RegistryType type = getRegistryTypeForStatistic(categoryId); + IdRewriteFunction statisticsRewriter; + if (type != null && (statisticsRewriter = getRewriter(type)) != null) { + statisticId = statisticsRewriter.rewrite(statisticId); + } } wrapper.write(Type.VAR_INT, categoryId); - - RegistryType type = getRegistryTypeForStatistic(categoryId); - IdRewriteFunction statisticsRewriter; - // Rewrite the block/item/entity id - if (type != null && (statisticsRewriter = getRewriter(type)) != null) { - wrapper.write(Type.VAR_INT, statisticsRewriter.rewrite(statisticId)); - } else { - wrapper.write(Type.VAR_INT, statisticId); - } - + wrapper.write(Type.VAR_INT, statisticId); wrapper.write(Type.VAR_INT, value); } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13_1to1_13/Protocol1_13_1To1_13.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13_1to1_13/Protocol1_13_1To1_13.java index 40239ab04..8de6c7862 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13_1to1_13/Protocol1_13_1To1_13.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13_1to1_13/Protocol1_13_1To1_13.java @@ -7,6 +7,7 @@ import us.myles.ViaVersion.api.protocol.Protocol; import us.myles.ViaVersion.api.remapper.PacketHandler; import us.myles.ViaVersion.api.remapper.PacketRemapper; import us.myles.ViaVersion.api.remapper.ValueTransformer; +import us.myles.ViaVersion.api.rewriters.StatisticsRewriter; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.protocols.protocol1_13_1to1_13.metadata.MetadataRewriter1_13_1To1_13; import us.myles.ViaVersion.protocols.protocol1_13_1to1_13.packets.EntityPackets; @@ -144,6 +145,20 @@ public class Protocol1_13_1To1_13 extends Protocol { + int newId = id; + if (newId > 22) { + newId += 2; + } + if (newId > 25) { + newId += 3; + } + if (newId > 40) { + newId++; + } + return newId; + }); } @Override diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java index 40f566787..76bdb89ff 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java @@ -39,7 +39,7 @@ public class Protocol1_14To1_13_2 extends Protocol MappingData.soundMappings.getNewId(id)).registerSound(ClientboundPackets1_13.SOUND); new StatisticsRewriter(this, Protocol1_14To1_13_2::getNewBlockId, - InventoryPackets::getNewItemId, metadataRewriter::getNewEntityId).register(ClientboundPackets1_13.STATISTICS); + InventoryPackets::getNewItemId, metadataRewriter::getNewEntityId, id -> MappingData.statisticsMappings.getNewId(id)).register(ClientboundPackets1_13.STATISTICS); ComponentRewriter componentRewriter = new ComponentRewriter1_14(this); componentRewriter.registerChatMessage(ClientboundPackets1_13.CHAT_MESSAGE); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java index 2bcf0a6e5..188c6e054 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java @@ -18,6 +18,7 @@ public class MappingData { public static Mappings blockStateMappings; public static Mappings blockMappings; public static Mappings soundMappings; + public static Mappings statisticsMappings; public static IntSet motionBlocking; public static IntSet nonFullBlocks; @@ -31,6 +32,7 @@ public class MappingData { blockMappings = new Mappings(mapping1_13_2.getAsJsonObject("blocks"), mapping1_14.getAsJsonObject("blocks")); MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_13_2.getAsJsonObject("items"), mapping1_14.getAsJsonObject("items")); soundMappings = new Mappings(mapping1_13_2.getAsJsonArray("sounds"), mapping1_14.getAsJsonArray("sounds")); + statisticsMappings = new Mappings(mapping1_13_2.getAsJsonArray("statistics"), mapping1_14.getAsJsonArray("statistics")); JsonObject blockStates = mapping1_14.getAsJsonObject("blockstates"); Map blockStateMap = new HashMap<>(blockStates.entrySet().size()); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java index 19e59fe68..3163e6180 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java @@ -40,8 +40,8 @@ public class Protocol1_15To1_14_4 extends Protocol MappingData.statisticsMappings.getNewId(id)).register(ClientboundPackets1_14.STATISTICS); registerIncoming(ServerboundPackets1_14.EDIT_BOOK, new PacketRemapper() { @Override diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java index ae039cd61..884a72e5d 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java @@ -11,6 +11,7 @@ public class MappingData { public static Mappings blockMappings; public static Mappings blockStateMappings; public static Mappings soundMappings; + public static Mappings statisticsMappings; public static void init() { Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 mappings..."); @@ -23,5 +24,6 @@ public class MappingData { blockMappings = new Mappings(mapping1_14.getAsJsonObject("blocks"), mapping1_15.getAsJsonObject("blocks")); MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_14.getAsJsonObject("items"), mapping1_15.getAsJsonObject("items")); soundMappings = new Mappings(mapping1_14.getAsJsonArray("sounds"), mapping1_15.getAsJsonArray("sounds"), false); + statisticsMappings = new Mappings(mapping1_14.getAsJsonArray("statistics"), mapping1_15.getAsJsonArray("statistics")); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/Protocol1_16To1_15_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/Protocol1_16To1_15_2.java index 7b695b11f..dffe441ab 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/Protocol1_16To1_15_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/Protocol1_16To1_15_2.java @@ -52,7 +52,7 @@ public class Protocol1_16To1_15_2 extends Protocol MappingData.statisticsMappings.getNewId(id)).register(ClientboundPackets1_15.STATISTICS); // Login Success registerOutgoing(State.LOGIN, 0x02, 0x02, new PacketRemapper() { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/data/MappingData.java index a70744838..b3eb7873d 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/data/MappingData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/data/MappingData.java @@ -14,6 +14,7 @@ public class MappingData { public static Mappings blockMappings; public static Mappings blockStateMappings; public static Mappings soundMappings; + public static Mappings statisticsMappings; public static void init() { Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 mappings..."); @@ -26,6 +27,7 @@ public class MappingData { blockMappings = new Mappings(mapping1_15.getAsJsonObject("blocks"), mapping1_16.getAsJsonObject("blocks")); MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_15.getAsJsonObject("items"), mapping1_16.getAsJsonObject("items"), diffmapping.getAsJsonObject("items")); soundMappings = new Mappings(mapping1_15.getAsJsonArray("sounds"), mapping1_16.getAsJsonArray("sounds"), diffmapping.getAsJsonObject("sounds")); + statisticsMappings = new Mappings(mapping1_15.getAsJsonArray("statistics"), mapping1_16.getAsJsonArray("statistics")); attributeMappings.put("generic.maxHealth", "minecraft:generic.max_health"); attributeMappings.put("zombie.spawnReinforcements", "minecraft:zombie.spawn_reinforcements"); diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.13.2.json b/common/src/main/resources/assets/viaversion/data/mapping-1.13.2.json index 2aa573114..102475283 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.13.2.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.13.2.json @@ -10655,5 +10655,65 @@ "595": "cave_air", "596": "bubble_column", "597": "structure_block" - } + }, + "statistics": [ + "minecraft.leave_game", + "minecraft.play_one_minute", + "minecraft.time_since_death", + "minecraft.time_since_rest", + "minecraft.sneak_time", + "minecraft.walk_one_cm", + "minecraft.crouch_one_cm", + "minecraft.sprint_one_cm", + "minecraft.walk_on_water_one_cm", + "minecraft.fall_one_cm", + "minecraft.climb_one_cm", + "minecraft.fly_one_cm", + "minecraft.walk_under_water_one_cm", + "minecraft.minecart_one_cm", + "minecraft.boat_one_cm", + "minecraft.pig_one_cm", + "minecraft.horse_one_cm", + "minecraft.aviate_one_cm", + "minecraft.swim_one_cm", + "minecraft.jump", + "minecraft.drop", + "minecraft.damage_dealt", + "minecraft.damage_dealt_absorbed", + "minecraft.damage_dealt_resisted", + "minecraft.damage_taken", + "minecraft.damage_blocked_by_shield", + "minecraft.damage_absorbed", + "minecraft.damage_resisted", + "minecraft.deaths", + "minecraft.mob_kills", + "minecraft.animals_bred", + "minecraft.player_kills", + "minecraft.fish_caught", + "minecraft.talked_to_villager", + "minecraft.traded_with_villager", + "minecraft.eat_cake_slice", + "minecraft.fill_cauldron", + "minecraft.use_cauldron", + "minecraft.clean_armor", + "minecraft.clean_banner", + "minecraft.clean_shulker_box", + "minecraft.interact_with_brewingstand", + "minecraft.interact_with_beacon", + "minecraft.inspect_dropper", + "minecraft.inspect_hopper", + "minecraft.inspect_dispenser", + "minecraft.play_noteblock", + "minecraft.tune_noteblock", + "minecraft.pot_flower", + "minecraft.trigger_trapped_chest", + "minecraft.open_enderchest", + "minecraft.enchant_item", + "minecraft.play_record", + "minecraft.interact_with_furnace", + "minecraft.interact_with_crafting_table", + "minecraft.open_chest", + "minecraft.sleep_in_bed", + "minecraft.open_shulker_box" + ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json index 6d8194e8e..a21a28e62 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json @@ -10741,5 +10741,59 @@ "31": "minecraft:channeling", "32": "minecraft:mending", "33": "minecraft:vanishing_curse" - } + }, + "statistics": [ + "minecraft.leave_game", + "minecraft.play_one_minute", + "minecraft.time_since_death", + "minecraft.time_since_rest", + "minecraft.sneak_time", + "minecraft.walk_one_cm", + "minecraft.crouch_one_cm", + "minecraft.sprint_one_cm", + "minecraft.walk_on_water_one_cm", + "minecraft.fall_one_cm", + "minecraft.climb_one_cm", + "minecraft.fly_one_cm", + "minecraft.walk_under_water_one_cm", + "minecraft.minecart_one_cm", + "minecraft.boat_one_cm", + "minecraft.pig_one_cm", + "minecraft.horse_one_cm", + "minecraft.aviate_one_cm", + "minecraft.swim_one_cm", + "minecraft.jump", + "minecraft.drop", + "minecraft.damage_dealt", + "minecraft.damage_taken", + "minecraft.deaths", + "minecraft.mob_kills", + "minecraft.animals_bred", + "minecraft.player_kills", + "minecraft.fish_caught", + "minecraft.talked_to_villager", + "minecraft.traded_with_villager", + "minecraft.eat_cake_slice", + "minecraft.fill_cauldron", + "minecraft.use_cauldron", + "minecraft.clean_armor", + "minecraft.clean_banner", + "minecraft.interact_with_brewingstand", + "minecraft.interact_with_beacon", + "minecraft.inspect_dropper", + "minecraft.inspect_hopper", + "minecraft.inspect_dispenser", + "minecraft.play_noteblock", + "minecraft.tune_noteblock", + "minecraft.pot_flower", + "minecraft.trigger_trapped_chest", + "minecraft.open_enderchest", + "minecraft.enchant_item", + "minecraft.play_record", + "minecraft.interact_with_furnace", + "minecraft.interact_with_crafting_table", + "minecraft.open_chest", + "minecraft.sleep_in_bed", + "minecraft.open_shulker_box" + ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.14.json b/common/src/main/resources/assets/viaversion/data/mapping-1.14.json index 3f2e65d05..e49c1329f 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.14.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.14.json @@ -13625,5 +13625,76 @@ "entity.zombie_villager.death", "entity.zombie_villager.hurt", "entity.zombie_villager.step" + ], + "statistics": [ + "minecraft.leave_game", + "minecraft.play_one_minute", + "minecraft.time_since_death", + "minecraft.time_since_rest", + "minecraft.sneak_time", + "minecraft.walk_one_cm", + "minecraft.crouch_one_cm", + "minecraft.sprint_one_cm", + "minecraft.walk_on_water_one_cm", + "minecraft.fall_one_cm", + "minecraft.climb_one_cm", + "minecraft.fly_one_cm", + "minecraft.walk_under_water_one_cm", + "minecraft.minecart_one_cm", + "minecraft.boat_one_cm", + "minecraft.pig_one_cm", + "minecraft.horse_one_cm", + "minecraft.aviate_one_cm", + "minecraft.swim_one_cm", + "minecraft.jump", + "minecraft.drop", + "minecraft.damage_dealt", + "minecraft.damage_dealt_absorbed", + "minecraft.damage_dealt_resisted", + "minecraft.damage_taken", + "minecraft.damage_blocked_by_shield", + "minecraft.damage_absorbed", + "minecraft.damage_resisted", + "minecraft.deaths", + "minecraft.mob_kills", + "minecraft.animals_bred", + "minecraft.player_kills", + "minecraft.fish_caught", + "minecraft.talked_to_villager", + "minecraft.traded_with_villager", + "minecraft.eat_cake_slice", + "minecraft.fill_cauldron", + "minecraft.use_cauldron", + "minecraft.clean_armor", + "minecraft.clean_banner", + "minecraft.clean_shulker_box", + "minecraft.interact_with_brewingstand", + "minecraft.interact_with_beacon", + "minecraft.inspect_dropper", + "minecraft.inspect_hopper", + "minecraft.inspect_dispenser", + "minecraft.play_noteblock", + "minecraft.tune_noteblock", + "minecraft.pot_flower", + "minecraft.trigger_trapped_chest", + "minecraft.open_enderchest", + "minecraft.enchant_item", + "minecraft.play_record", + "minecraft.interact_with_furnace", + "minecraft.interact_with_crafting_table", + "minecraft.open_chest", + "minecraft.sleep_in_bed", + "minecraft.open_shulker_box", + "minecraft.open_barrel", + "minecraft.interact_with_blast_furnace", + "minecraft.interact_with_smoker", + "minecraft.interact_with_lectern", + "minecraft.interact_with_campfire", + "minecraft.interact_with_cartography_table", + "minecraft.interact_with_loom", + "minecraft.interact_with_stonecutter", + "minecraft.bell_ring", + "minecraft.raid_trigger", + "minecraft.raid_win" ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.15.json b/common/src/main/resources/assets/viaversion/data/mapping-1.15.json index fd9914b59..72ae4a527 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.15.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.15.json @@ -13717,5 +13717,78 @@ "entity.zombie_villager.death", "entity.zombie_villager.hurt", "entity.zombie_villager.step" + ], + "statistics": [ + "minecraft.leave_game", + "minecraft.play_one_minute", + "minecraft.time_since_death", + "minecraft.time_since_rest", + "minecraft.sneak_time", + "minecraft.walk_one_cm", + "minecraft.crouch_one_cm", + "minecraft.sprint_one_cm", + "minecraft.walk_on_water_one_cm", + "minecraft.fall_one_cm", + "minecraft.climb_one_cm", + "minecraft.fly_one_cm", + "minecraft.walk_under_water_one_cm", + "minecraft.minecart_one_cm", + "minecraft.boat_one_cm", + "minecraft.pig_one_cm", + "minecraft.horse_one_cm", + "minecraft.aviate_one_cm", + "minecraft.swim_one_cm", + "minecraft.jump", + "minecraft.drop", + "minecraft.damage_dealt", + "minecraft.damage_dealt_absorbed", + "minecraft.damage_dealt_resisted", + "minecraft.damage_taken", + "minecraft.damage_blocked_by_shield", + "minecraft.damage_absorbed", + "minecraft.damage_resisted", + "minecraft.deaths", + "minecraft.mob_kills", + "minecraft.animals_bred", + "minecraft.player_kills", + "minecraft.fish_caught", + "minecraft.talked_to_villager", + "minecraft.traded_with_villager", + "minecraft.eat_cake_slice", + "minecraft.fill_cauldron", + "minecraft.use_cauldron", + "minecraft.clean_armor", + "minecraft.clean_banner", + "minecraft.clean_shulker_box", + "minecraft.interact_with_brewingstand", + "minecraft.interact_with_beacon", + "minecraft.inspect_dropper", + "minecraft.inspect_hopper", + "minecraft.inspect_dispenser", + "minecraft.play_noteblock", + "minecraft.tune_noteblock", + "minecraft.pot_flower", + "minecraft.trigger_trapped_chest", + "minecraft.open_enderchest", + "minecraft.enchant_item", + "minecraft.play_record", + "minecraft.interact_with_furnace", + "minecraft.interact_with_crafting_table", + "minecraft.open_chest", + "minecraft.sleep_in_bed", + "minecraft.open_shulker_box", + "minecraft.open_barrel", + "minecraft.interact_with_blast_furnace", + "minecraft.interact_with_smoker", + "minecraft.interact_with_lectern", + "minecraft.interact_with_campfire", + "minecraft.interact_with_cartography_table", + "minecraft.interact_with_loom", + "minecraft.interact_with_stonecutter", + "minecraft.bell_ring", + "minecraft.raid_trigger", + "minecraft.raid_win", + "minecraft.interact_with_anvil", + "minecraft.interact_with_grindstone" ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.16.json b/common/src/main/resources/assets/viaversion/data/mapping-1.16.json index 968e7f195..0f9675dc9 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.16.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.16.json @@ -19833,5 +19833,81 @@ "entity.zombie_villager.death", "entity.zombie_villager.hurt", "entity.zombie_villager.step" + ], + "statistics": [ + "minecraft.leave_game", + "minecraft.play_one_minute", + "minecraft.time_since_death", + "minecraft.time_since_rest", + "minecraft.sneak_time", + "minecraft.walk_one_cm", + "minecraft.crouch_one_cm", + "minecraft.sprint_one_cm", + "minecraft.walk_on_water_one_cm", + "minecraft.fall_one_cm", + "minecraft.climb_one_cm", + "minecraft.fly_one_cm", + "minecraft.walk_under_water_one_cm", + "minecraft.minecart_one_cm", + "minecraft.boat_one_cm", + "minecraft.pig_one_cm", + "minecraft.horse_one_cm", + "minecraft.aviate_one_cm", + "minecraft.swim_one_cm", + "minecraft.strider_one_cm", + "minecraft.jump", + "minecraft.drop", + "minecraft.damage_dealt", + "minecraft.damage_dealt_absorbed", + "minecraft.damage_dealt_resisted", + "minecraft.damage_taken", + "minecraft.damage_blocked_by_shield", + "minecraft.damage_absorbed", + "minecraft.damage_resisted", + "minecraft.deaths", + "minecraft.mob_kills", + "minecraft.animals_bred", + "minecraft.player_kills", + "minecraft.fish_caught", + "minecraft.talked_to_villager", + "minecraft.traded_with_villager", + "minecraft.eat_cake_slice", + "minecraft.fill_cauldron", + "minecraft.use_cauldron", + "minecraft.clean_armor", + "minecraft.clean_banner", + "minecraft.clean_shulker_box", + "minecraft.interact_with_brewingstand", + "minecraft.interact_with_beacon", + "minecraft.inspect_dropper", + "minecraft.inspect_hopper", + "minecraft.inspect_dispenser", + "minecraft.play_noteblock", + "minecraft.tune_noteblock", + "minecraft.pot_flower", + "minecraft.trigger_trapped_chest", + "minecraft.open_enderchest", + "minecraft.enchant_item", + "minecraft.play_record", + "minecraft.interact_with_furnace", + "minecraft.interact_with_crafting_table", + "minecraft.open_chest", + "minecraft.sleep_in_bed", + "minecraft.open_shulker_box", + "minecraft.open_barrel", + "minecraft.interact_with_blast_furnace", + "minecraft.interact_with_smoker", + "minecraft.interact_with_lectern", + "minecraft.interact_with_campfire", + "minecraft.interact_with_cartography_table", + "minecraft.interact_with_loom", + "minecraft.interact_with_stonecutter", + "minecraft.bell_ring", + "minecraft.raid_trigger", + "minecraft.raid_win", + "minecraft.interact_with_anvil", + "minecraft.interact_with_grindstone", + "minecraft.target_hit", + "minecraft.interact_with_smithing_table" ] } \ No newline at end of file