diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_1to1_19/Protocol1_19_1To1_19.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_1to1_19/Protocol1_19_1To1_19.java index fc3842f56..23a89eb04 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_1to1_19/Protocol1_19_1To1_19.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_1to1_19/Protocol1_19_1To1_19.java @@ -17,13 +17,11 @@ */ package com.viaversion.viaversion.protocols.protocol1_19_1to1_19; -import com.github.steveice10.opennbt.stringified.SNBT; import com.github.steveice10.opennbt.tag.builtin.ByteTag; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.ListTag; import com.github.steveice10.opennbt.tag.builtin.NumberTag; import com.github.steveice10.opennbt.tag.builtin.StringTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; import com.google.common.base.Preconditions; import com.google.gson.JsonElement; import com.viaversion.viaversion.api.Via; @@ -39,6 +37,8 @@ import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.protocols.base.ClientboundLoginPackets; import com.viaversion.viaversion.protocols.base.ServerboundLoginPackets; +import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.data.ChatDecorationResult; +import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.data.ChatRegistry; import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.storage.ChatTypeStorage; import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.storage.NonceStorage; import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.ClientboundPackets1_19; @@ -58,39 +58,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; public final class Protocol1_19_1To1_19 extends AbstractProtocol { - private static final String CHAT_REGISTRY_SNBT = "{" + - " \"minecraft:chat_type\": {" + - " \"type\": \"minecraft:chat_type\"," + - " \"value\": [" + - " {" + - " \"name\":\"minecraft:chat\"," + - " \"id\":1," + - " \"element\":{" + - " \"chat\":{" + - " \"translation_key\":\"chat.type.text\"," + - " \"parameters\":[" + - " \"sender\"," + - " \"content\"" + - " ]" + - " }," + - " \"narration\":{" + - " \"translation_key\":\"chat.type.text.narrate\"," + - " \"parameters\":[" + - " \"sender\"," + - " \"content\"" + - " ]" + - " }" + - " }" + - " }" + - " ]" + - " }" + - "}"; - private static final CompoundTag CHAT_REGISTRY; - - static { - CHAT_REGISTRY = SNBT.deserializeCompoundTag(CHAT_REGISTRY_SNBT).getCompoundTag("minecraft:chat_type"); - } - public Protocol1_19_1To1_19() { super(ClientboundPackets1_19.class, ClientboundPackets1_19_1.class, ServerboundPackets1_19.class, ServerboundPackets1_19_1.class); } @@ -229,7 +196,7 @@ public final class Protocol1_19_1To1_19 extends AbstractProtocol. */ -package com.viaversion.viaversion.protocols.protocol1_19_1to1_19; +package com.viaversion.viaversion.protocols.protocol1_19_1to1_19.data; import com.google.gson.JsonElement; diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_1to1_19/data/ChatRegistry.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_1to1_19/data/ChatRegistry.java new file mode 100644 index 000000000..5b5135f97 --- /dev/null +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_1to1_19/data/ChatRegistry.java @@ -0,0 +1,34 @@ +/* + * 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 . + */ +package com.viaversion.viaversion.protocols.protocol1_19_1to1_19.data; + +import com.github.steveice10.opennbt.tag.builtin.CompoundTag; +import com.viaversion.viaversion.api.data.MappingDataLoader; + +public class ChatRegistry { + + private static final CompoundTag chatRegistry; + + static { + chatRegistry = MappingDataLoader.INSTANCE.loadNBTFromFile("chat-registry-1.19.1.nbt"); + } + + public static CompoundTag chatRegistry() { + return chatRegistry.copy(); + } +} diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/data/MappingData.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/data/MappingData.java index 38cf16e2c..b36ab2f99 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/data/MappingData.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/data/MappingData.java @@ -29,6 +29,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; public final class MappingData extends MappingDataBase { private final Int2ObjectMap defaultChatTypes = new Int2ObjectOpenHashMap<>(); + private CompoundTag chatRegistry; public MappingData() { super("1.18", "1.19"); @@ -41,9 +42,15 @@ public final class MappingData extends MappingDataBase { final NumberTag idTag = chatType.getNumberTag("id"); defaultChatTypes.put(idTag.asInt(), chatType); } + + chatRegistry = MappingDataLoader.INSTANCE.loadNBTFromFile("chat-registry-1.19.nbt"); } public @Nullable CompoundTag chatType(final int id) { return defaultChatTypes.get(id); } + + public CompoundTag chatRegistry() { + return chatRegistry.copy(); + } } diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/packets/EntityPackets.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/packets/EntityPackets.java index a8382420f..35323362f 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/packets/EntityPackets.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19to1_18_2/packets/EntityPackets.java @@ -17,12 +17,10 @@ */ package com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets; -import com.github.steveice10.opennbt.stringified.SNBT; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.IntTag; import com.github.steveice10.opennbt.tag.builtin.ListTag; import com.github.steveice10.opennbt.tag.builtin.NumberTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; import com.google.common.collect.Maps; import com.google.gson.JsonElement; import com.viaversion.viaversion.api.Via; @@ -54,36 +52,6 @@ import java.util.Map; public final class EntityPackets extends EntityRewriter { - private static final String CHAT_REGISTRY_SNBT = "{\n" + - " \"minecraft:chat_type\": {\n" + - " \"type\": \"minecraft:chat_type\",\n" + - " \"value\": [\n" + - " {\n" + - " \"name\": \"minecraft:system\",\n" + - " \"id\": 1,\n" + - " \"element\": {\n" + - " \"chat\": {},\n" + - " \"narration\": {\n" + - " \"priority\": \"system\"\n" + - " }\n" + - " }\n" + - " },\n" + - " {\n" + - " \"name\": \"minecraft:game_info\",\n" + - " \"id\": 2,\n" + - " \"element\": {\n" + - " \"overlay\": {}\n" + - " }\n" + - " }\n" + - " ]\n" + - " }\n" + - "}"; - public static final CompoundTag CHAT_REGISTRY; - - static { - CHAT_REGISTRY = SNBT.deserializeCompoundTag(CHAT_REGISTRY_SNBT).getCompoundTag("minecraft:chat_type"); - } - public EntityPackets(final Protocol1_19To1_18_2 protocol) { super(protocol); } @@ -207,7 +175,7 @@ public final class EntityPackets extends EntityRewriter dimensions = tag.getCompoundTag("minecraft:dimension_type").getListTag("value", CompoundTag.class); diff --git a/common/src/main/resources/assets/viaversion/data/chat-registry-1.19.1.nbt b/common/src/main/resources/assets/viaversion/data/chat-registry-1.19.1.nbt new file mode 100644 index 000000000..cbce24dd2 Binary files /dev/null and b/common/src/main/resources/assets/viaversion/data/chat-registry-1.19.1.nbt differ diff --git a/common/src/main/resources/assets/viaversion/data/chat-registry-1.19.nbt b/common/src/main/resources/assets/viaversion/data/chat-registry-1.19.nbt new file mode 100644 index 000000000..6423f4219 Binary files /dev/null and b/common/src/main/resources/assets/viaversion/data/chat-registry-1.19.nbt differ