🆙 Fix NPE

Fixed in-memory disconnection race caused by a sloppy antipattern pervasive in Habbo.java
This commit is contained in:
duckietm
2026-04-08 08:21:20 +02:00
parent 7786ba8e8f
commit 7e22e215e5
@@ -273,7 +273,7 @@ public class Habbo implements Runnable {
return;
this.getHabboInfo().addPixels(event.points);
if (this.client != null) this.client.sendResponse(new UserCurrencyComposer(this.client.getHabbo()));
if (this.client != null) this.client.sendResponse(new UserCurrencyComposer(this));
}
@@ -292,7 +292,7 @@ public class Habbo implements Runnable {
this.getHabboInfo().addCurrencyAmount(event.type, event.points);
if (this.client != null)
this.client.sendResponse(new UserPointsComposer(this.client.getHabbo().getHabboInfo().getCurrencyAmount(type), event.points, event.type));
this.client.sendResponse(new UserPointsComposer(this.getHabboInfo().getCurrencyAmount(type), event.points, event.type));
}
@@ -303,7 +303,7 @@ public class Habbo implements Runnable {
public void whisper(String message, RoomChatMessageBubbles bubble) {
if (this.getRoomUnit().isInRoom()) {
this.client.sendResponse(new RoomUserWhisperComposer(new RoomChatMessage(message, this.client.getHabbo().getRoomUnit(), bubble)));
this.client.sendResponse(new RoomUserWhisperComposer(new RoomChatMessage(message, this.getRoomUnit(), bubble)));
}
}
@@ -315,7 +315,7 @@ public class Habbo implements Runnable {
public void talk(String message, RoomChatMessageBubbles bubble) {
if (this.getRoomUnit().isInRoom()) {
this.getHabboInfo().getCurrentRoom().sendComposer(new RoomUserTalkComposer(new RoomChatMessage(message, this.client.getHabbo().getRoomUnit(), bubble)).compose());
this.getHabboInfo().getCurrentRoom().sendComposer(new RoomUserTalkComposer(new RoomChatMessage(message, this.getRoomUnit(), bubble)).compose());
}
}
@@ -327,7 +327,7 @@ public class Habbo implements Runnable {
public void shout(String message, RoomChatMessageBubbles bubble) {
if (this.getRoomUnit().isInRoom()) {
this.getHabboInfo().getCurrentRoom().sendComposer(new RoomUserShoutComposer(new RoomChatMessage(message, this.client.getHabbo().getRoomUnit(), bubble)).compose());
this.getHabboInfo().getCurrentRoom().sendComposer(new RoomUserShoutComposer(new RoomChatMessage(message, this.getRoomUnit(), bubble)).compose());
}
}
@@ -446,7 +446,7 @@ public class Habbo implements Runnable {
this.client.sendResponse(new FloodCounterComposer(remaining));
this.client.sendResponse(new MutedWhisperComposer(remaining));
Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom();
Room room = this.getHabboInfo().getCurrentRoom();
if (room != null && !isFlood) {
room.sendComposer(new RoomUserIgnoredComposer(this, RoomUserIgnoredComposer.MUTED).compose());
}
@@ -456,7 +456,7 @@ public class Habbo implements Runnable {
public void unMute() {
this.habboStats.unMute();
this.client.sendResponse(new FloodCounterComposer(3));
Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom();
Room room = this.getHabboInfo().getCurrentRoom();
if (room != null) {
room.sendComposer(new RoomUserIgnoredComposer(this, RoomUserIgnoredComposer.UNIGNORED).compose());
}
@@ -493,18 +493,18 @@ public class Habbo implements Runnable {
public void respect(Habbo target) {
if (target != null && target != this.client.getHabbo()) {
if (target != null && target != this) {
target.getHabboStats().respectPointsReceived++;
this.client.getHabbo().getHabboStats().respectPointsGiven++;
this.client.getHabbo().getHabboStats().respectPointsToGive--;
this.client.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new RoomUserRespectComposer(target).compose());
this.client.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new RoomUserActionComposer(this.client.getHabbo().getRoomUnit(), RoomUserAction.THUMB_UP).compose());
this.getHabboStats().respectPointsGiven++;
this.getHabboStats().respectPointsToGive--;
this.getHabboInfo().getCurrentRoom().sendComposer(new RoomUserRespectComposer(target).compose());
this.getHabboInfo().getCurrentRoom().sendComposer(new RoomUserActionComposer(this.getRoomUnit(), RoomUserAction.THUMB_UP).compose());
AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("RespectGiven"));
AchievementManager.progressAchievement(this, Emulator.getGameEnvironment().getAchievementManager().getAchievement("RespectGiven"));
AchievementManager.progressAchievement(target, Emulator.getGameEnvironment().getAchievementManager().getAchievement("RespectEarned"));
this.client.getHabbo().getHabboInfo().getCurrentRoom().unIdle(this.client.getHabbo());
this.client.getHabbo().getHabboInfo().getCurrentRoom().dance(this.client.getHabbo().getRoomUnit(), DanceType.NONE);
this.getHabboInfo().getCurrentRoom().unIdle(this);
this.getHabboInfo().getCurrentRoom().dance(this.getRoomUnit(), DanceType.NONE);
}
}