ViaVersion/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16to1_15_2/data/TranslationMappings.java

96 lines
5.3 KiB
Java

/*
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
* Copyright (C) 2016-2024 ViaVersion and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.viaversion.viaversion.protocols.protocol1_16to1_15_2.data;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.ClientboundPackets1_15;
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.Protocol1_16To1_15_2;
import com.viaversion.viaversion.rewriter.ComponentRewriter;
import java.util.HashMap;
import java.util.Map;
public class TranslationMappings extends ComponentRewriter<ClientboundPackets1_15> {
private final Map<String, String> mappings = new HashMap<>();
public TranslationMappings(Protocol1_16To1_15_2 protocol) {
super(protocol, ReadType.JSON);
mappings.put("attribute.name.generic.armorToughness", "attribute.name.generic.armor_toughness");
mappings.put("attribute.name.generic.attackDamage", "attribute.name.generic.attack_damage");
mappings.put("attribute.name.generic.attackSpeed", "attribute.name.generic.attack_speed");
mappings.put("attribute.name.generic.followRange", "attribute.name.generic.follow_range");
mappings.put("attribute.name.generic.knockbackResistance", "attribute.name.generic.knockback_resistance");
mappings.put("attribute.name.generic.maxHealth", "attribute.name.generic.max_health");
mappings.put("attribute.name.generic.movementSpeed", "attribute.name.generic.movement_speed");
mappings.put("attribute.name.horse.jumpStrength", "attribute.name.horse.jump_strength");
mappings.put("attribute.name.zombie.spawnReinforcements", "attribute.name.zombie.spawn_reinforcements");
mappings.put("block.minecraft.banner", "Banner");
mappings.put("block.minecraft.wall_banner", "Wall Banner");
mappings.put("block.minecraft.bed", "Bed");
mappings.put("block.minecraft.bed.not_valid", "block.minecraft.spawn.not_valid");
mappings.put("block.minecraft.bed.set_spawn", "block.minecraft.set_spawn");
mappings.put("block.minecraft.flowing_water", "Flowing Water");
mappings.put("block.minecraft.flowing_lava", "Flowing Lava");
mappings.put("block.minecraft.two_turtle_eggs", "Two Turtle Eggs");
mappings.put("block.minecraft.three_turtle_eggs", "Three Turtle Eggs");
mappings.put("block.minecraft.four_turtle_eggs", "Four Turtle Eggs");
mappings.put("item.minecraft.skeleton_skull", "block.minecraft.skeleton_skull");
mappings.put("item.minecraft.wither_skeleton_skull", "block.minecraft.skeleton_wall_skull");
mappings.put("item.minecraft.zombie_head", "block.minecraft.zombie_head");
mappings.put("item.minecraft.creeper_head", "block.minecraft.creeper_head");
mappings.put("item.minecraft.dragon_head", "block.minecraft.dragon_head");
mappings.put("entity.minecraft.zombie_pigman", "Zombie Pigman");
mappings.put("item.minecraft.zombie_pigman_spawn_egg", "Zombie Pigman Spawn Egg");
mappings.put("death.fell.accident.water", "%1$s fell out of the water");
mappings.put("death.attack.netherBed.message", "death.attack.badRespawnPoint.message");
mappings.put("death.attack.netherBed.link", "death.attack.badRespawnPoint.link");
mappings.put("advancements.husbandry.break_diamond_hoe.title", "Serious Dedication");
mappings.put("advancements.husbandry.break_diamond_hoe.description", "Completely use up a diamond hoe, and then reevaluate your life choices");
mappings.put("biome.minecraft.nether", "Nether");
mappings.put("key.swapHands", "key.swapOffhand");
}
@Override
public void processText(UserConnection connection, JsonElement element) {
super.processText(connection, element);
if (element == null || !element.isJsonObject()) return;
// Score components no longer contain value fields
JsonObject object = element.getAsJsonObject();
JsonObject score = object.getAsJsonObject("score");
if (score == null || object.has("text")) return;
JsonPrimitive value = score.getAsJsonPrimitive("value");
if (value != null) {
object.remove("score");
object.add("text", value);
}
}
@Override
protected void handleTranslate(JsonObject object, String translate) {
// A few keys were removed - manually set the text of relevant ones
String mappedTranslation = mappings.get(translate);
if (mappedTranslation != null) {
object.addProperty("translate", mappedTranslation);
}
}
}