diff --git a/src/main/java/com/eu/habbo/messages/incoming/handshake/SecureLoginEvent.java b/src/main/java/com/eu/habbo/messages/incoming/handshake/SecureLoginEvent.java index 6b83322c..3e13a26a 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/handshake/SecureLoginEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/handshake/SecureLoginEvent.java @@ -21,7 +21,7 @@ import com.eu.habbo.messages.outgoing.generic.alerts.MessagesForYouComposer; import com.eu.habbo.messages.outgoing.habboway.nux.NewUserIdentityComposer; import com.eu.habbo.messages.outgoing.handshake.DebugConsoleComposer; import com.eu.habbo.messages.outgoing.handshake.SecureLoginOKComposer; -import com.eu.habbo.messages.outgoing.handshake.SessionRightsComposer; +import com.eu.habbo.messages.outgoing.handshake.AvailabilityStatusMessageComposer; import com.eu.habbo.messages.outgoing.handshake.PingComposer; import com.eu.habbo.messages.outgoing.inventory.InventoryAchievementsComposer; import com.eu.habbo.messages.outgoing.inventory.InventoryRefreshComposer; @@ -59,6 +59,7 @@ public class SecureLoginEvent extends MessageHandler { if (Emulator.getConfig().getBoolean("encryption.forced", false) && Emulator.getCrypto().isEnabled() && !this.client.isHandshakeFinished()) { Emulator.getGameServer().getGameClientManager().disposeClient(this.client); + LOGGER.warn("Encryption is forced and TLS Handshake isn't finished! Closed connection..."); return; } @@ -66,11 +67,13 @@ public class SecureLoginEvent extends MessageHandler { if (Emulator.getPluginManager().fireEvent(new SSOAuthenticationEvent(sso)).isCancelled()) { Emulator.getGameServer().getGameClientManager().disposeClient(this.client); + LOGGER.info("SSO Authentication is cancelled by a plugin. Closed connection..."); return; } if (sso.isEmpty()) { Emulator.getGameServer().getGameClientManager().disposeClient(this.client); + LOGGER.warn("Client is trying to connect without SSO ticket! Closed connection..."); return; } @@ -117,7 +120,7 @@ public class SecureLoginEvent extends MessageHandler { messages.add(new UserClothesComposer(this.client.getHabbo()).compose()); messages.add(new NewUserIdentityComposer(habbo).compose()); messages.add(new UserPermissionsComposer(this.client.getHabbo()).compose()); - messages.add(new SessionRightsComposer().compose()); + messages.add(new AvailabilityStatusMessageComposer(true, false, true).compose()); messages.add(new PingComposer().compose()); messages.add(new DebugConsoleComposer(Emulator.debugging).compose()); messages.add(new UserAchievementScoreComposer(this.client.getHabbo()).compose()); @@ -216,6 +219,7 @@ public class SecureLoginEvent extends MessageHandler { } } else { Emulator.getGameServer().getGameClientManager().disposeClient(this.client); + LOGGER.warn("Someone tried to login with a non-existing SSO token! Closed connection..."); } } else { Emulator.getGameServer().getGameClientManager().disposeClient(this.client); diff --git a/src/main/java/com/eu/habbo/messages/outgoing/Outgoing.java b/src/main/java/com/eu/habbo/messages/outgoing/Outgoing.java index e627c771..fb84490b 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/Outgoing.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/Outgoing.java @@ -84,7 +84,7 @@ public class Outgoing { public final static int RoomScoreComposer = 482; public final static int DoorbellAddUserComposer = 2309; public final static int SecureLoginOKComposer = 2491; - public final static int SessionRightsComposer = 2033; + public final static int AvailabilityStatusMessageComposer = 2033; public final static int GuildMemberUpdateComposer = 265; public final static int RoomFloorItemsComposer = 1778; public final static int InventoryItemsComposer = 994; diff --git a/src/main/java/com/eu/habbo/messages/outgoing/handshake/AvailabilityStatusMessageComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/handshake/AvailabilityStatusMessageComposer.java new file mode 100644 index 00000000..d65cc78c --- /dev/null +++ b/src/main/java/com/eu/habbo/messages/outgoing/handshake/AvailabilityStatusMessageComposer.java @@ -0,0 +1,27 @@ +package com.eu.habbo.messages.outgoing.handshake; + +import com.eu.habbo.messages.ServerMessage; +import com.eu.habbo.messages.outgoing.MessageComposer; +import com.eu.habbo.messages.outgoing.Outgoing; + +public class AvailabilityStatusMessageComposer extends MessageComposer { + private final boolean isOpen; + private final boolean isShuttingDown; + private final boolean isAuthenticHabbo; + + public AvailabilityStatusMessageComposer(boolean isOpen, boolean isShuttingDown, boolean isAuthenticHabbo) { + this.isOpen = isOpen; + this.isShuttingDown = isShuttingDown; + this.isAuthenticHabbo = isAuthenticHabbo; + } + + @Override + protected ServerMessage composeInternal() { + this.response.init(Outgoing.AvailabilityStatusMessageComposer); + + this.response.appendBoolean(isOpen);//isOpen + this.response.appendBoolean(isShuttingDown);//onShutdown + this.response.appendBoolean(isAuthenticHabbo);//isAuthenticHabbo + return this.response; + } +} diff --git a/src/main/java/com/eu/habbo/messages/outgoing/handshake/SessionRightsComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/handshake/SessionRightsComposer.java deleted file mode 100644 index b442e4e0..00000000 --- a/src/main/java/com/eu/habbo/messages/outgoing/handshake/SessionRightsComposer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.eu.habbo.messages.outgoing.handshake; - -import com.eu.habbo.messages.ServerMessage; -import com.eu.habbo.messages.outgoing.MessageComposer; -import com.eu.habbo.messages.outgoing.Outgoing; - -public class SessionRightsComposer extends MessageComposer { - private static final boolean unknownBooleanOne = true; //true - private static final boolean unknownBooleanTwo = false; - - @Override - protected ServerMessage composeInternal() { - this.response.init(Outgoing.SessionRightsComposer); - - this.response.appendBoolean(unknownBooleanOne); - this.response.appendBoolean(true); - this.response.appendBoolean(true); - return this.response; - } -}