From 3858483988af19648063affda32c56ba1bb6f10a Mon Sep 17 00:00:00 2001 From: Julimar Melo Date: Tue, 3 Jan 2023 01:36:03 -0300 Subject: [PATCH] Fixes the song disk bug --- .../inventory/InventoryItemsComposer.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/eu/habbo/messages/outgoing/inventory/InventoryItemsComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/inventory/InventoryItemsComposer.java index a8a24ed0..e8dbd939 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/inventory/InventoryItemsComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/inventory/InventoryItemsComposer.java @@ -11,6 +11,9 @@ import gnu.trove.procedure.TIntObjectProcedure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Arrays; +import java.util.List; + public class InventoryItemsComposer extends MessageComposer implements TIntObjectProcedure { private static final Logger LOGGER = LoggerFactory.getLogger(InventoryItemsComposer.class); @@ -48,7 +51,7 @@ public class InventoryItemsComposer extends MessageComposer implements TIntObjec this.response.appendInt(habboItem.getId()); this.response.appendInt(habboItem.getBaseItem().getSpriteId()); - if (habboItem.getBaseItem().getName().equals("floor") || habboItem.getBaseItem().getName().equals("landscape") || habboItem.getBaseItem().getName().equals("wallpaper") || habboItem.getBaseItem().getName().equals("poster")) { + if (habboItem.getBaseItem().getName().equals("floor") || habboItem.getBaseItem().getName().equals("landscape") || habboItem.getBaseItem().getName().equals("song_disk") || habboItem.getBaseItem().getName().equals("wallpaper") || habboItem.getBaseItem().getName().equals("poster")) { switch (habboItem.getBaseItem().getName()) { case "landscape": this.response.appendInt(4); @@ -62,10 +65,11 @@ public class InventoryItemsComposer extends MessageComposer implements TIntObjec case "poster": this.response.appendInt(6); break; + case "song_disk": + this.response.appendInt(8); + break; } - - this.response.appendInt(0); - this.response.appendString(habboItem.getExtradata()); + this.addExtraDataToResponse(habboItem); } else { if (habboItem.getBaseItem().getName().equals("gnome_box")) this.response.appendInt(13); @@ -82,12 +86,25 @@ public class InventoryItemsComposer extends MessageComposer implements TIntObjec this.response.appendBoolean(true); this.response.appendInt(-1); + if (habboItem.getBaseItem().getType() == FurnitureType.FLOOR) { this.response.appendString(""); + if(habboItem.getBaseItem().getName().equals("song_disk")) { + List extraDataAsList = Arrays.asList(habboItem.getExtradata().split("\n")); + this.response.appendInt(Integer.valueOf(extraDataAsList.get(extraDataAsList.size() - 1))); + return true; + } this.response.appendInt(habboItem instanceof InteractionGift ? ((((InteractionGift) habboItem).getColorId() * 1000) + ((InteractionGift) habboItem).getRibbonId()) : 1); } + + return true; } -} + public void addExtraDataToResponse(HabboItem habboItem) { + this.response.appendInt(0); + this.response.appendString(habboItem.getExtradata()); + } + +} \ No newline at end of file