Fixed the song disk bug

This commit is contained in:
Julimar Melo 2023-01-03 02:31:25 -03:00
parent 7f3521f821
commit db703d36b3

View File

@ -10,6 +10,8 @@ import gnu.trove.map.TIntObjectMap;
import gnu.trove.procedure.TIntObjectProcedure; import gnu.trove.procedure.TIntObjectProcedure;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.Arrays;
import java.util.List;
public class FurniListComposer extends MessageComposer implements TIntObjectProcedure<HabboItem> { public class FurniListComposer extends MessageComposer implements TIntObjectProcedure<HabboItem> {
private static final Logger LOGGER = LoggerFactory.getLogger(FurniListComposer.class); private static final Logger LOGGER = LoggerFactory.getLogger(FurniListComposer.class);
@ -48,7 +50,7 @@ public class FurniListComposer extends MessageComposer implements TIntObjectProc
this.response.appendInt(habboItem.getId()); this.response.appendInt(habboItem.getId());
this.response.appendInt(habboItem.getBaseItem().getSpriteId()); 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("song_disk") || habboItem.getBaseItem().getName().equals("landscape") || habboItem.getBaseItem().getName().equals("wallpaper") || habboItem.getBaseItem().getName().equals("poster")) {
switch (habboItem.getBaseItem().getName()) { switch (habboItem.getBaseItem().getName()) {
case "landscape": case "landscape":
this.response.appendInt(4); this.response.appendInt(4);
@ -62,6 +64,9 @@ public class FurniListComposer extends MessageComposer implements TIntObjectProc
case "poster": case "poster":
this.response.appendInt(6); this.response.appendInt(6);
break; break;
case "song_disk":
this.response.appendInt(8);
break;
} }
this.response.appendInt(0); this.response.appendInt(0);
@ -84,10 +89,20 @@ public class FurniListComposer extends MessageComposer implements TIntObjectProc
if (habboItem.getBaseItem().getType() == FurnitureType.FLOOR) { if (habboItem.getBaseItem().getType() == FurnitureType.FLOOR) {
this.response.appendString(""); this.response.appendString("");
if(habboItem.getBaseItem().getName().equals("song_disk")) {
List<String> 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); this.response.appendInt(habboItem instanceof InteractionGift ? ((((InteractionGift) habboItem).getColorId() * 1000) + ((InteractionGift) habboItem).getRibbonId()) : 1);
} }
return true; return true;
} }
public void addExtraDataToResponse(HabboItem habboItem) {
this.response.appendInt(0);
this.response.appendString(habboItem.getExtradata());
}
} }