From 0152107a066fc9977cb512574dfc31577a99c7df Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 15 Apr 2020 13:13:46 +0200 Subject: [PATCH 1/2] Send rename item packet on update slot --- .../inventory/AnvilInventoryTranslator.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java index 60700ba2..8804f1e0 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java @@ -25,7 +25,10 @@ package org.geysermc.connector.network.translators.inventory; +import com.github.steveice10.mc.protocol.data.game.entity.metadata.ItemStack; +import com.github.steveice10.mc.protocol.data.message.Message; import com.github.steveice10.mc.protocol.packet.ingame.client.window.ClientRenameItemPacket; +import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.nukkitx.protocol.bedrock.data.ContainerId; import com.nukkitx.protocol.bedrock.data.ContainerType; import com.nukkitx.protocol.bedrock.data.InventoryActionData; @@ -114,4 +117,30 @@ public class AnvilInventoryTranslator extends BlockInventoryTranslator { super.translateActions(session, inventory, actions); } + + @Override + public void updateSlot(GeyserSession session, Inventory inventory, int slot) { + if(slot >= 0 && slot <= 2){ + ItemStack item = inventory.getItem(slot); + if(item != null){ + String rename; + CompoundTag tag = item.getNbt(); + if (tag != null) { + CompoundTag displayTag = tag.get("display"); + if(displayTag != null){ + String itemName = displayTag.get("Name").getValue().toString(); + Message message = Message.fromString(itemName); + rename = message.getText(); + } else { + rename = ""; + } + } else { + rename = ""; + } + ClientRenameItemPacket renameItemPacket = new ClientRenameItemPacket(rename); + session.getDownstream().getSession().send(renameItemPacket); + } + } + super.updateSlot(session, inventory, slot); + } } From 0a9470acb8b3f028438cbc8b895ac325cb9e6ab7 Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 15 Apr 2020 21:37:12 +0200 Subject: [PATCH 2/2] formatting code --- .../translators/inventory/AnvilInventoryTranslator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java index 8804f1e0..8df72d36 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/inventory/AnvilInventoryTranslator.java @@ -120,14 +120,14 @@ public class AnvilInventoryTranslator extends BlockInventoryTranslator { @Override public void updateSlot(GeyserSession session, Inventory inventory, int slot) { - if(slot >= 0 && slot <= 2){ + if (slot >= 0 && slot <= 2) { ItemStack item = inventory.getItem(slot); - if(item != null){ + if (item != null) { String rename; CompoundTag tag = item.getNbt(); if (tag != null) { CompoundTag displayTag = tag.get("display"); - if(displayTag != null){ + if (displayTag != null) { String itemName = displayTag.get("Name").getValue().toString(); Message message = Message.fromString(itemName); rename = message.getText();