1.20-pre3

This commit is contained in:
Nassim Jahnke 2023-05-19 14:34:34 +02:00
parent 9fa7af7c7b
commit d271d3d687
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B
4 changed files with 140 additions and 36 deletions

View File

@ -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."
}

View File

@ -110,6 +110,16 @@ public class TranslatableRewriter<C extends ClientboundPacketType> 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);

View File

@ -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<ClientboundPac
translatableRewriter.registerBossBar(ClientboundPackets1_19_4.BOSSBAR);
translatableRewriter.registerDisconnect(ClientboundPackets1_19_4.DISCONNECT);
translatableRewriter.registerTabList(ClientboundPackets1_19_4.TAB_LIST);
translatableRewriter.registerCombatKill(ClientboundPackets1_19_4.COMBAT_KILL);
translatableRewriter.registerComponentPacket(ClientboundPackets1_19_4.SYSTEM_CHAT);
translatableRewriter.registerComponentPacket(ClientboundPackets1_19_4.DISGUISED_CHAT);
translatableRewriter.registerPing();
registerClientbound(ClientboundPackets1_19_4.COMBAT_END, wrapper -> {
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

View File

@ -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",