diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e1d0de35..d2ee9781 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,5 +14,5 @@ build: artifacts: expire_in: 2 weeks paths: - - target/Habbo-*.jar + - target/Morningstar-*.jar diff --git a/sqlupdates/3_5_0 to 4_0_0.sql b/sqlupdates/3_5_0 to 4_0_0.sql index e9a7a641..a9f11d60 100644 --- a/sqlupdates/3_5_0 to 4_0_0.sql +++ b/sqlupdates/3_5_0 to 4_0_0.sql @@ -13,5 +13,5 @@ CREATE TABLE IF NOT EXISTS `pet_commands` ( INSERT IGNORE INTO `pet_commands` (`pet_id`, `command_id`) VALUES (0, 46),(0, 0),(0, 1),(0, 14),(0, 43),(0, 2),(0, 3),(0, 4),(0, 17),(0, 5),(0, 6),(0, 7),(0, 8),(0, 19),(0, 10),(0, 12),(0, 13),(0, 4),(0, 15),(0, 16),(0, 24),(0, 25),(0, 26),(1, 46),(1, 0),(1, 1),(1, 14),(1, 43),(1, 2),(1, 3),(1, 4),(1, 17),(1, 5),(1, 6),(1, 7),(1, 8),(1, 19),(1, 10),(1, 12),(1, 13),(1, 4),(1, 15),(1, 16),(1, 24),(1, 25),(1, 26),(2, 0),(2, 1),(2, 43),(2, 2),(2, 18),(2, 4),(2, 17),(2, 5),(2, 6),(2, 7),(2, 8),(2, 10),(2, 11),(2, 12),(2, 13),(2, 15),(2, 16),(2, 24),(2, 25),(2, 26),(3, 46),(3, 0),(3, 1),(3, 14),(3, 43),(3, 2),(3, 3),(3, 4),(3, 17),(3, 5),(3, 6),(3, 7),(3, 8),(3, 19),(3, 10),(3, 12),(3, 13),(3, 4),(3, 15),(3, 16),(3, 24),(3, 25),(3, 26),(4, 46),(4, 0),(4, 1),(4, 14),(4, 43),(4, 2),(4, 3),(4, 4),(4, 17),(4, 5),(4, 6),(4, 7),(4, 8),(4, 19),(4, 10),(4, 12),(4, 13),(4, 4),(4, 15),(4, 16),(4, 24),(4, 25),(4, 26),(5, 46),(5, 0),(5, 1),(5, 14),(5, 43),(5, 2),(5, 3),(5, 4),(5, 17),(5, 5),(5, 6),(5, 7),(5, 8),(5, 19),(5, 10),(5, 12),(5, 13),(5, 4),(5, 15),(5, 16),(5, 24),(5, 25),(5, 26),(6, 0),(6, 1),(6, 43),(6, 2),(6, 18),(6, 4),(6, 17),(6, 5),(6, 6),(6, 7),(6, 8),(6, 10),(6, 11),(6, 12),(6, 13),(6, 15),(6, 16),(6, 24),(6, 25),(6, 26),(7, 0),(7, 1),(7, 43),(7, 2),(7, 18),(7, 4),(7, 17),(7, 5),(7, 6),(7, 7),(7, 8),(7, 10),(7, 11),(7, 12),(7, 13),(7, 15),(7, 16),(7, 24),(7, 25),(7, 26),(8, 0),(8, 20),(8, 18),(8, 17),(8, 5),(8, 6),(8, 7),(8, 23),(8, 19),(8, 10),(8, 11),(8, 24),(8, 25),(8, 26),(8, 13),(8, 14),(8, 19),(8, 20),(8, 22),(8, 21),(8, 15),(8, 16),(9, 0),(9, 14),(9, 43),(9, 18),(9, 29),(9, 2),(9, 13),(9, 6),(9, 17),(9, 5),(9, 7),(9, 8),(9, 10),(9, 11),(9, 15),(9, 16),(9, 24),(9, 25),(9, 26),(11, 0),(11, 1),(11, 2),(11, 3),(11, 6),(11, 4),(11, 28),(11, 5),(11, 30),(11, 9),(11, 7),(11, 27),(11, 13),(11, 17),(11, 29),(11, 21),(11, 15),(11, 16),(12, 0),(12, 35),(12, 5),(12, 3),(12, 36),(12, 37),(12, 38),(12, 2),(12, 6),(12, 7),(12, 40),(12, 8),(12, 19),(12, 41),(12, 10),(12, 11),(12, 12),(12, 13),(12, 14),(12, 15),(12, 16),(12, 42),(14, 0),(14, 1),(14, 43),(14, 14),(14, 3),(14, 6),(14, 4),(14, 5),(14, 2),(14, 9),(14, 7),(14, 29),(14, 10),(14, 11),(14, 21),(14, 13),(14, 15),(14, 16),(15, 0),(15, 14),(15, 43),(15, 44),(15, 2),(15, 3),(15, 6),(15, 7),(15, 10),(15, 12),(15, 11),(15, 15),(15, 16),(15, 24),(15, 25),(15, 26),(15, 45),(33, 0),(33, 1),(33, 14),(33, 43),(33, 6),(33, 13),(33, 3),(33, 17),(33, 2),(33, 10),(33, 8),(33, 12),(33, 7),(33, 16),(33, 15),(33, 25),(33, 26),(34, 0),(34, 1),(34, 14),(34, 43),(34, 6),(34, 13),(34, 3),(34, 17),(34, 2),(34, 10),(34, 8),(34, 12),(34, 7),(34, 16),(34, 15),(34, 25),(34, 26); - UPDATE pet_commands_data SET required_level=1 WHERE command_id=35; +INSERT INTO `emulator_settings` (`key`, `value`) VALUES ('encryption.forced', '0'); diff --git a/src/main/java/com/eu/habbo/messages/outgoing/inventory/FurniListComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/inventory/FurniListComposer.java index d6c787b5..402b3c14 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/inventory/FurniListComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/inventory/FurniListComposer.java @@ -10,6 +10,8 @@ import gnu.trove.map.TIntObjectMap; import gnu.trove.procedure.TIntObjectProcedure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Arrays; +import java.util.List; public class FurniListComposer extends MessageComposer implements TIntObjectProcedure { 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.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()) { case "landscape": this.response.appendInt(4); @@ -62,6 +64,9 @@ public class FurniListComposer extends MessageComposer implements TIntObjectProc case "poster": this.response.appendInt(6); break; + case "song_disk": + this.response.appendInt(8); + break; } this.response.appendInt(0); @@ -84,10 +89,20 @@ public class FurniListComposer extends MessageComposer implements TIntObjectProc 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()); + } + } diff --git a/src/main/java/com/eu/habbo/threading/runnables/CannonKickAction.java b/src/main/java/com/eu/habbo/threading/runnables/CannonKickAction.java index e68d783f..1cd945ec 100644 --- a/src/main/java/com/eu/habbo/threading/runnables/CannonKickAction.java +++ b/src/main/java/com/eu/habbo/threading/runnables/CannonKickAction.java @@ -26,6 +26,8 @@ public class CannonKickAction implements Runnable { @Override public void run() { + if(this.cannon == null || this.room == null || this.room.getLayout() == null) return; + if (this.client != null) { this.client.getHabbo().getRoomUnit().setCanWalk(true); }