From d271d3d687c26dd668f2402bb54bd5116a7b7cd6 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 19 May 2023 14:34:34 +0200 Subject: [PATCH] 1.20-pre3 --- build.gradle.kts | 2 +- .../api/rewriters/TranslatableRewriter.java | 10 ++ .../Protocol1_19_4To1_20.java | 12 +- .../data/translation-mappings.json | 152 ++++++++++++++---- 4 files changed, 140 insertions(+), 36 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9d713459..6a800f37 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { allprojects { group = "com.viaversion" - version = "4.7.0-1.20-pre1-SNAPSHOT" + version = "4.7.0-1.20-pre3-SNAPSHOT" description = "Allow older clients to join newer server versions." } diff --git a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/TranslatableRewriter.java b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/TranslatableRewriter.java index 1a5ea9a9..d7820748 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/TranslatableRewriter.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/TranslatableRewriter.java @@ -110,6 +110,16 @@ public class TranslatableRewriter extends Compo }); } + public void registerCombatKill1_20(C packetType) { + protocol.registerClientbound(packetType, new PacketHandlers() { + @Override + public void register() { + map(Type.VAR_INT); // Duration + handler(wrapper -> processText(wrapper.passthrough(Type.COMPONENT))); + } + }); + } + @Override protected void handleTranslate(JsonObject root, String translate) { String newTranslate = mappedTranslationKey(translate); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_4to1_20/Protocol1_19_4To1_20.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_4to1_20/Protocol1_19_4To1_20.java index bc7edb75..8e7f5954 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_4to1_20/Protocol1_19_4To1_20.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_4to1_20/Protocol1_19_4To1_20.java @@ -25,6 +25,7 @@ import com.viaversion.viabackwards.protocol.protocol1_19_4to1_20.packets.BlockIt import com.viaversion.viabackwards.protocol.protocol1_19_4to1_20.packets.EntityPackets1_20; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.entities.Entity1_19_4Types; +import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.data.entity.EntityTrackerBase; import com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.ClientboundPackets1_19_4; import com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.ServerboundPackets1_19_4; @@ -64,10 +65,19 @@ public final class Protocol1_19_4To1_20 extends BackwardsProtocol { + wrapper.passthrough(Type.VAR_INT); // Duration + wrapper.write(Type.INT, -1); // Killer ID - unused (who knows for how long?) + }); + registerClientbound(ClientboundPackets1_19_4.COMBAT_KILL, wrapper -> { + wrapper.passthrough(Type.VAR_INT); // Duration + wrapper.write(Type.INT, -1); // Killer ID - unused (who knows for how long?) + translatableRewriter.processText(wrapper.passthrough(Type.COMPONENT)); + }); } @Override diff --git a/common/src/main/resources/assets/viabackwards/data/translation-mappings.json b/common/src/main/resources/assets/viabackwards/data/translation-mappings.json index 1de5b183..d2cdcf85 100644 --- a/common/src/main/resources/assets/viabackwards/data/translation-mappings.json +++ b/common/src/main/resources/assets/viabackwards/data/translation-mappings.json @@ -1,67 +1,151 @@ { "1.20": { "advancements.adventure.craft_decorated_pot_using_only_sherds.description": "Make a Decorated Pot out of 4 Pottery Sherds", - "advancements.adventure.craft_decorated_pot_using_only_sherds.title": "Careful restoration", - "advancements.adventure.trim_with_any_armor_pattern.description": "Craft a trimmed armor at a Smithing Table", - "advancements.adventure.trim_with_any_armor_pattern.title": "Crafting a new look", + "advancements.adventure.craft_decorated_pot_using_only_sherds.title": "Careful Restoration", + "advancements.adventure.read_power_from_chiseled_bookshelf.description": "Read the power signal of a Chiseled Bookshelf using a Comparator", + "advancements.adventure.read_power_from_chiseled_bookshelf.title": "The Power of Books", "advancements.adventure.salvage_sherd.description": "Brush a Suspicious block to obtain a Pottery Sherd", - "advancements.adventure.salvage_sherd.title": "Respecting the remnants", + "advancements.adventure.salvage_sherd.title": "Respecting the Remnants", "advancements.adventure.trim_with_all_exclusive_armor_patterns.description": "Apply these smithing templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder", - "advancements.adventure.trim_with_all_exclusive_armor_patterns.title": "Smithing with style", + "advancements.adventure.trim_with_all_exclusive_armor_patterns.title": "Smithing with Style", + "advancements.adventure.trim_with_any_armor_pattern.description": "Craft a trimmed armor at a Smithing Table", + "advancements.adventure.trim_with_any_armor_pattern.title": "Crafting a New Look", "advancements.husbandry.feed_snifflet.description": "Feed a Snifflet", - "advancements.husbandry.feed_snifflet.title": "Little sniffs", + "advancements.husbandry.feed_snifflet.title": "Little Sniffs", "advancements.husbandry.obtain_sniffer_egg.description": "Obtain a Sniffer Egg", - "advancements.husbandry.obtain_sniffer_egg.title": "Smells interesting", + "advancements.husbandry.obtain_sniffer_egg.title": "Smells Interesting", "advancements.husbandry.plant_any_sniffer_seed.description": "Plant any Sniffer seed", - "advancements.husbandry.plant_any_sniffer_seed.title": "Planting the past", + "advancements.husbandry.plant_any_sniffer_seed.title": "Planting the Past", "block.minecraft.calibrated_sculk_sensor": "Calibrated Sculk Sensor", + "block.minecraft.pitcher_crop": "Pitcher Crop", + "block.minecraft.pitcher_plant": "Pitcher Plant", "block.minecraft.sniffer_egg": "Sniffer Egg", "block.minecraft.suspicious_gravel": "Suspicious Gravel", - "block.minecraft.pitcher_plant": "Pitcher Plant", - "block.minecraft.pitcher_crop": "Pitcher Crop", + "commands.data.modify.invalid_substring": "Invalid substring indices: %s to %s", "commands.function.success.multiple.result": "Executed %s functions", "commands.function.success.single.result": "Function '%2$s' returned %1$s", + "death.attack.genericKill": "%1$s was killed", + "death.attack.genericKill.player": "%1$s was killed whilst fighting %2$s", + "death.attack.outsideBorder": "%1$s left the confines of this world", + "death.attack.outsideBorder.player": "%1$s left the confines of this world whilst fighting %2$s", + "disconnect.ignoring_status_request": "Ignoring status request", "gui.toRealms": "Back to Realms List", "gui.toWorld": "Back to World List", + "item.minecraft.angler_pottery_shard": "Angler Pottery Shard", + "item.minecraft.angler_pottery_sherd": "Angler Pottery Sherd", + "item.minecraft.archer_pottery_shard": "Archer Pottery Shard", + "item.minecraft.archer_pottery_sherd": "Archer Pottery Sherd", + "item.minecraft.arms_up_pottery_shard": "Arms Up Pottery Shard", + "item.minecraft.arms_up_pottery_sherd": "Arms Up Pottery Sherd", + "item.minecraft.blade_pottery_shard": "Blade Pottery Shard", + "item.minecraft.blade_pottery_sherd": "Blade Pottery Sherd", + "item.minecraft.brewer_pottery_shard": "Brewer Pottery Shard", + "item.minecraft.brewer_pottery_sherd": "Brewer Pottery Sherd", + "item.minecraft.burn_pottery_shard": "Burn Pottery Shard", + "item.minecraft.burn_pottery_sherd": "Burn Pottery Sherd", + "item.minecraft.danger_pottery_shard": "Danger Pottery Shard", + "item.minecraft.danger_pottery_sherd": "Danger Pottery Sherd", + "item.minecraft.explorer_pottery_shard": "Explorer Pottery Shard", + "item.minecraft.explorer_pottery_sherd": "Explorer Pottery Sherd", + "item.minecraft.friend_pottery_shard": "Friend Pottery Shard", + "item.minecraft.friend_pottery_sherd": "Friend Pottery Sherd", + "item.minecraft.heart_pottery_shard": "Heart Pottery Shard", + "item.minecraft.heart_pottery_sherd": "Heart Pottery Sherd", + "item.minecraft.heartbreak_pottery_shard": "Heartbreak Pottery Shard", + "item.minecraft.heartbreak_pottery_sherd": "Heartbreak Pottery Sherd", + "item.minecraft.howl_pottery_shard": "Howl Pottery Shard", + "item.minecraft.howl_pottery_sherd": "Howl Pottery Sherd", + "item.minecraft.miner_pottery_shard": "Miner Pottery Shard", + "item.minecraft.miner_pottery_sherd": "Miner Pottery Sherd", + "item.minecraft.mourner_pottery_shard": "Mourner Pottery Shard", + "item.minecraft.mourner_pottery_sherd": "Mourner Pottery Sherd", "item.minecraft.music_disc_relic": "Music Disc", "item.minecraft.music_disc_relic.desc": "Aaron Cherof - Relic", - "item.minecraft.angler_pottery_sherd": "Angler Pottery Sherd", - "item.minecraft.archer_pottery_sherd": "Archer Pottery Sherd", - "item.minecraft.arms_up_pottery_sherd": "Arms Up Pottery Sherd", - "item.minecraft.blade_pottery_sherd": "Blade Pottery Sherd", - "item.minecraft.brewer_pottery_sherd": "Brewer Pottery Sherd", - "item.minecraft.burn_pottery_sherd": "Burn Pottery Sherd", - "item.minecraft.danger_pottery_sherd": "Danger Pottery Sherd", - "item.minecraft.explorer_pottery_sherd": "Explorer Pottery Sherd", - "item.minecraft.friend_pottery_sherd": "Friend Pottery Sherd", - "item.minecraft.heart_pottery_sherd": "Heart Pottery Sherd", - "item.minecraft.heartbreak_pottery_sherd": "Heartbreak Pottery Sherd", - "item.minecraft.howl_pottery_sherd": "Howl Pottery Sherd", - "item.minecraft.miner_pottery_sherd": "Miner Pottery Sherd", - "item.minecraft.mourner_pottery_sherd": "Mourner Pottery Sherd", - "item.minecraft.plenty_pottery_sherd": "Plenty Pottery Sherd", - "item.minecraft.prize_pottery_sherd": "Prize Pottery Sherd", - "item.minecraft.sheaf_pottery_sherd": "Sheaf Pottery Sherd", - "item.minecraft.shelter_pottery_sherd": "Shelter Pottery Sherd", - "item.minecraft.skull_pottery_sherd": "Skull Pottery Sherd", - "item.minecraft.snort_pottery_sherd": "Snort Pottery Sherd", "item.minecraft.pitcher_plant": "Pitcher Plant", "item.minecraft.pitcher_pod": "Pitcher Pod", + "item.minecraft.plenty_pottery_shard": "Plenty Pottery Shard", + "item.minecraft.plenty_pottery_sherd": "Plenty Pottery Sherd", + "item.minecraft.prize_pottery_shard": "Prize Pottery Shard", + "item.minecraft.prize_pottery_sherd": "Prize Pottery Sherd", + "item.minecraft.sheaf_pottery_shard": "Sheaf Pottery Shard", + "item.minecraft.sheaf_pottery_sherd": "Sheaf Pottery Sherd", + "item.minecraft.shelter_pottery_shard": "Shelter Pottery Shard", + "item.minecraft.shelter_pottery_sherd": "Shelter Pottery Sherd", + "item.minecraft.skull_pottery_shard": "Skull Pottery Shard", + "item.minecraft.skull_pottery_sherd": "Skull Pottery Sherd", + "item.minecraft.snort_pottery_shard": "Snort Pottery Shard", + "item.minecraft.snort_pottery_sherd": "Snort Pottery Sherd", + "mco.backup.entry": "Backup (%s)", + "mco.backup.entry.description": "Description", + "mco.backup.entry.enabledPack": "Enabled Pack", + "mco.backup.entry.gameDifficulty": "Game Difficulty", + "mco.backup.entry.gameMode": "Game Mode", + "mco.backup.entry.gameServerVersion": "Game Server Version", + "mco.backup.entry.name": "Name", + "mco.backup.entry.seed": "Seed", + "mco.backup.entry.templateName": "Template Name", + "mco.backup.entry.undefined": "Undefined Change", + "mco.backup.entry.uploaded": "Uploaded", + "mco.backup.entry.worldType": "World Type", + "mco.backup.info.title": "Changes from last backup", + "mco.backup.unknown": "UNKNOWN", + "mco.configure.world.invited.number": "Invited (%s)", + "mco.configure.world.minigame": "Current: %s", + "mco.configure.world.subscription.remaining.months.days": "%1$s month(s), %2$s day(s)", + "mco.configure.world.subscription.remaining.months": "%1$s month(s)", + "mco.configure.world.subscription.remaining.days": "%1$s day(s)", + "mco.configure.world.uninvite.player": "Are you sure that you want to uninvite '%s'?", + "mco.download.percent": "%s %%", + "mco.download.resourcePack.fail": "Failed to download resource pack!", + "mco.download.speed": "(%s/s)", + "mco.errorMessage.6005": "World locked", + "mco.errorMessage.6006": "World is out of date", + "mco.errorMessage.6007": "User in too many Realms", + "mco.errorMessage.6008": "Invalid Realm name", + "mco.errorMessage.6009": "Invalid Realm description", + "mco.errorMessage.generic": "An error occurred: ", + "mco.errorMessage.realmsService": "An error occurred (%s):", + "mco.errorMessage.realmsService.realmsError": "Realms (%s):", + "mco.info": "Info!", + "mco.question": "Question", + "mco.upload.entry.id": "%1$s (%2$s)", + "mco.upload.entry.cheats": "%1$s, %2$s", + "mco.time.now": "right now", + "mco.time.secondsAgo": "%1$s second(s) ago", + "mco.time.minutesAgo": "%1$s minute(s) ago", + "mco.time.hoursAgo": "%1$s hour(s) ago", + "mco.time.daysAgo": "%1$s day(s) ago", + "mco.warning": "Warning!", + "mco.worldSlot.minigame": "Minigame", "multiplayer.disconnect.invalid_public_key_signature.new": "Invalid signature for profile public key.\nTry restarting your game.", - "quickplay.error.title": "Failed to Quick Play", "quickplay.error.invalid_identifier": "Could not find world with the provided identifier", "quickplay.error.realm_connect": "Could not connect to Realm", "quickplay.error.realm_permission": "Lacking permission to connect to this Realm", + "quickplay.error.title": "Failed to Quick Play", "subtitles.block.amethyst_block.resonate": "Amethyst resonates", "subtitles.block.sign.waxed_interact_fail": "Sign wobbles", - "subtitles.block.sniffer_egg.plop": "Sniffer plops", "subtitles.block.sniffer_egg.crack": "Sniffer Egg cracks", "subtitles.block.sniffer_egg.hatch": "Sniffer Egg hatches", + "subtitles.block.sniffer_egg.plop": "Sniffer plops", + "subtitles.entity.sniffer.egg_crack": "Sniffer Egg cracks", + "subtitles.entity.sniffer.egg_hatch": "Sniffer Egg hatches", "subtitles.item.brush.brushing.generic": "Brushing", - "subtitles.item.brush.brushing.sand": "Brushing Sand", "subtitles.item.brush.brushing.gravel": "Brushing Gravel", - "subtitles.item.brush.brushing.sand.complete": "Brushing Sand completed", "subtitles.item.brush.brushing.gravel.complete": "Brushing Gravel completed", + "subtitles.item.brush.brushing.sand": "Brushing Sand", + "subtitles.item.brush.brushing.sand.complete": "Brushing Sand completed", + "telemetry.event.advancement_made.description": "Understanding the context behind receiving an advancement can help us better understand and improve the progression of the game.", + "telemetry.event.advancement_made.title": "Advancement Made", + "telemetry.event.game_load_times.description": "This event can help us figure out where startup performance improvements are needed by measuring the execution times of the startup phases.", + "telemetry.event.game_load_times.title": "Game Load Times", + "telemetry.property.advancement_game_time.title": "Game Time (Ticks)", + "telemetry.property.advancement_id.title": "Advancement ID", + "telemetry.property.launcher_name.title": "Launcher Name", + "telemetry.property.load_time_bootstrap_ms.title": "Bootstrap Time (Milliseconds)", + "telemetry.property.load_time_loading_overlay_ms.title": "Time in Loading Screen (Milliseconds)", + "telemetry.property.load_time_pre_window_ms.title": "Time Before Window Opens (Milliseconds)", + "telemetry.property.load_time_total_time_ms.title": "Total Load Time (Milliseconds)", + "telemetry.property.realms_map_content.title": "Realms Map Content (Minigame Name)", "trim_pattern.minecraft.host": "Host Armor Trim", "trim_pattern.minecraft.raiser": "Raiser Armor Trim", "trim_pattern.minecraft.shaper": "Shaper Armor Trim",