From 68e55c5a095a43411686570b0054a8811e4fbf72 Mon Sep 17 00:00:00 2001 From: KrewsOrg Date: Thu, 26 Mar 2020 19:04:52 +0000 Subject: [PATCH 1/3] Fix WiredEffectChangeFurniDirection Delay. --- .../wired/effects/WiredEffectChangeFurniDirection.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java index 3a9b1f3c..c41094e9 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java @@ -94,7 +94,7 @@ public class WiredEffectChangeFurniDirection extends InteractionWiredEffect { @Override public String getWiredData() { - StringBuilder data = new StringBuilder(this.startRotation.getValue() + "\t" + this.rotateAction + "\t" + this.items.size()); + StringBuilder data = new StringBuilder(this.getDelay() + this.startRotation.getValue() + "\t" + this.rotateAction + "\t" + this.items.size()); for (Map.Entry entry : this.items.entrySet()) { data.append("\t").append(entry.getKey().getId()).append(":").append(entry.getValue().getValue()); @@ -107,6 +107,9 @@ public class WiredEffectChangeFurniDirection extends InteractionWiredEffect { public void loadWiredData(ResultSet set, Room room) throws SQLException { String[] data = set.getString("wired_data").split("\t"); + if (data.length >= 1) { + this.setDelay(Integer.valueOf(data[0])); + } if (data.length >= 3) { this.startRotation = RoomUserRotation.fromValue(Integer.valueOf(data[0])); this.rotateAction = Integer.valueOf(data[1]); @@ -178,6 +181,7 @@ public class WiredEffectChangeFurniDirection extends InteractionWiredEffect { this.items.put(item, this.startRotation); } } + this.setDelay(packet.readInt()); return true; } From 1070283284d9d143a92de6c658337bd58efce207 Mon Sep 17 00:00:00 2001 From: KrewsOrg Date: Thu, 26 Mar 2020 19:29:13 +0000 Subject: [PATCH 2/3] Fix NPE in TraxManager Disposal in Room.java --- src/main/java/com/eu/habbo/habbohotel/rooms/Room.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java b/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java index c36b15b9..6e36318b 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java @@ -857,7 +857,8 @@ public class Room implements Comparable, ISerialize, Runnable { if (this.loaded) { try { - if (!this.traxManager.disposed()) { + + if (this.traxManager != null && !this.traxManager.disposed()) { this.traxManager.dispose(); } From 87ae8e8125f445f86be19cd2fe6de09db6758287 Mon Sep 17 00:00:00 2001 From: skeletor Date: Wed, 1 Apr 2020 06:06:23 -0400 Subject: [PATCH 3/3] fixed nullpointer in traxmanager --- .../habbo/habbohotel/rooms/TraxManager.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/rooms/TraxManager.java b/src/main/java/com/eu/habbo/habbohotel/rooms/TraxManager.java index 334ddc17..3f478feb 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/TraxManager.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/TraxManager.java @@ -44,24 +44,26 @@ public class TraxManager implements Disposable { try (ResultSet set = statement.executeQuery()) { while (set.next()) { HabboItem musicDisc = Emulator.getGameEnvironment().getItemManager().loadHabboItem(set.getInt("item_id")); + if(musicDisc != null) { + if (!(musicDisc instanceof InteractionMusicDisc) || musicDisc.getRoomId() != -1) { + try (PreparedStatement stmt = connection.prepareStatement("DELETE FROM room_trax_playlist WHERE room_id = ? AND item_id = ? LIMIT 1")) { + stmt.setInt(1, this.room.getId()); + stmt.setInt(2, musicDisc.getId()); + stmt.execute(); + } catch (SQLException e) { + Emulator.getLogging().logSQLException(e); + return; + } + } else { + SoundTrack track = Emulator.getGameEnvironment().getItemManager().getSoundTrack(((InteractionMusicDisc) musicDisc).getSongId()); - if (!(musicDisc instanceof InteractionMusicDisc) || musicDisc.getRoomId() != -1) { - try (PreparedStatement stmt = connection.prepareStatement("DELETE FROM room_trax_playlist WHERE room_id = ? AND item_id = ? LIMIT 1")) { - stmt.setInt(1, this.room.getId()); - stmt.setInt(2, musicDisc.getId()); - stmt.execute(); - } catch (SQLException e) { - Emulator.getLogging().logSQLException(e); - return; - } - } else { - SoundTrack track = Emulator.getGameEnvironment().getItemManager().getSoundTrack(((InteractionMusicDisc) musicDisc).getSongId()); - - if (track != null) { - this.songs.add((InteractionMusicDisc) musicDisc); - this.totalLength += track.getLength(); + if (track != null) { + this.songs.add((InteractionMusicDisc) musicDisc); + this.totalLength += track.getLength(); + } } } + } } } catch (SQLException e) {