From 8870145948683198118fd7a5dfc07d451e3b3f86 Mon Sep 17 00:00:00 2001 From: Alejandro <25-alejandro@users.noreply.git.krews.org> Date: Tue, 30 Jul 2019 13:52:29 +0300 Subject: [PATCH] Fix NullPointerExceptions --- .../games/InteractionGameTimer.java | 20 ++++++++++--------- .../rooms/users/RoomUserWalkEvent.java | 2 +- .../inventory/UserEffectsListComposer.java | 16 ++++++++------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/games/InteractionGameTimer.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/games/InteractionGameTimer.java index da2a6c73..94e01be1 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/games/InteractionGameTimer.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/games/InteractionGameTimer.java @@ -16,6 +16,7 @@ import com.eu.habbo.messages.ServerMessage; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Arrays; public class InteractionGameTimer extends HabboItem implements Runnable { private int[] TIMER_INTERVAL_STEPS = new int[] { 30, 60, 120, 180, 300, 600 }; @@ -77,16 +78,17 @@ public class InteractionGameTimer extends HabboItem implements Runnable { parseCustomParams(item); } - public void parseCustomParams(Item baseItem) { + private void parseCustomParams(Item baseItem) { try { - String[] intervalSteps = baseItem.getCustomParams().split(","); - int[] finalSteps = new int[intervalSteps.length]; - for (int i = 0; i < intervalSteps.length; i++) { - finalSteps[i] = Integer.parseInt(intervalSteps[i]); - } - TIMER_INTERVAL_STEPS = finalSteps; - } - catch (Exception e) { + TIMER_INTERVAL_STEPS = Arrays.stream(baseItem.getCustomParams().split(",")) + .mapToInt(s -> { + try { + return Integer.parseInt(s); + } catch (NumberFormatException e) { + return 0; + } + }).toArray(); + } catch (Exception e) { Emulator.getLogging().logErrorLine(e); } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/users/RoomUserWalkEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/users/RoomUserWalkEvent.java index 08966a11..c8eb815d 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/users/RoomUserWalkEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/users/RoomUserWalkEvent.java @@ -80,7 +80,7 @@ public class RoomUserWalkEvent extends MessageHandler { if (!event.isCancelled()) { if (!event.idle) { - roomUnit.getRoom().unIdle(habbo); + if (roomUnit.getRoom() != null) roomUnit.getRoom().unIdle(habbo); roomUnit.resetIdleTimer(); } } diff --git a/src/main/java/com/eu/habbo/messages/outgoing/inventory/UserEffectsListComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/inventory/UserEffectsListComposer.java index ddf8bd80..9fa470af 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/inventory/UserEffectsListComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/inventory/UserEffectsListComposer.java @@ -19,11 +19,12 @@ public class UserEffectsListComposer extends MessageComposer { public ServerMessage compose() { this.response.init(Outgoing.UserEffectsListComposer); - synchronized (this.habbo.getInventory().getEffectsComponent().effects) { - this.response.appendInt(this.habbo.getInventory().getEffectsComponent().effects.size()); - this.habbo.getInventory().getEffectsComponent().effects.forEachValue(new TObjectProcedure() { - @Override - public boolean execute(EffectsComponent.HabboEffect effect) { + if (this.habbo == null || this.habbo.getInventory() == null || this.habbo.getInventory().getEffectsComponent() == null || this.habbo.getInventory().getEffectsComponent().effects == null) { + this.response.appendInt(0); + } else { + synchronized (this.habbo.getInventory().getEffectsComponent().effects) { + this.response.appendInt(this.habbo.getInventory().getEffectsComponent().effects.size()); + this.habbo.getInventory().getEffectsComponent().effects.forEachValue(effect -> { UserEffectsListComposer.this.response.appendInt(effect.effect); UserEffectsListComposer.this.response.appendInt(0); UserEffectsListComposer.this.response.appendInt(effect.duration); @@ -31,9 +32,10 @@ public class UserEffectsListComposer extends MessageComposer { UserEffectsListComposer.this.response.appendInt(effect.activationTimestamp >= 0 ? Emulator.getIntUnixTimestamp() - effect.activationTimestamp : -1); UserEffectsListComposer.this.response.appendBoolean(effect.isActivated()); return true; - } - }); + }); + } } + return this.response; } }