Fix anvil item rename (#992)

* fix anvil item rename

* fix anvil item rename
This commit is contained in:
ForceUpdate1 2020-07-21 22:01:55 +02:00 committed by GitHub
parent 30c007d04b
commit 765efe8a33
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -32,6 +32,9 @@ import com.github.steveice10.mc.protocol.packet.ingame.client.window.ClientRenam
import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.nukkitx.nbt.NbtMap; import com.nukkitx.nbt.NbtMap;
import com.nukkitx.protocol.bedrock.data.inventory.*; import com.nukkitx.protocol.bedrock.data.inventory.*;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.geysermc.connector.inventory.Inventory; import org.geysermc.connector.inventory.Inventory;
import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.session.GeyserSession;
import org.geysermc.connector.network.translators.inventory.updater.CursorInventoryUpdater; import org.geysermc.connector.network.translators.inventory.updater.CursorInventoryUpdater;
@ -106,7 +109,9 @@ public class AnvilInventoryTranslator extends BlockInventoryTranslator {
String rename; String rename;
NbtMap tag = itemName.getTag(); NbtMap tag = itemName.getTag();
if (tag != null) { if (tag != null) {
rename = tag.getCompound("display").getString("Name"); String name = tag.getCompound("display").getString("Name");
Component component = GsonComponentSerializer.gson().deserialize(name);
rename = LegacyComponentSerializer.legacy().serialize(component);
} else { } else {
rename = ""; rename = "";
} }
@ -138,8 +143,8 @@ public class AnvilInventoryTranslator extends BlockInventoryTranslator {
CompoundTag displayTag = tag.get("display"); CompoundTag displayTag = tag.get("display");
if (displayTag != null && displayTag.contains("Name")) { if (displayTag != null && displayTag.contains("Name")) {
String itemName = displayTag.get("Name").getValue().toString(); String itemName = displayTag.get("Name").getValue().toString();
TextMessage message = (TextMessage) MessageSerializer.fromString(itemName); Component component = GsonComponentSerializer.gson().deserialize(itemName);
rename = message.getText(); rename = LegacyComponentSerializer.legacy().serialize(component);
} else { } else {
rename = ""; rename = "";
} }