Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
KrewsOrg 2020-01-03 18:05:39 +00:00
commit 1a973c9c4e
7 changed files with 47 additions and 12 deletions

View File

@ -4,6 +4,7 @@ import com.eu.habbo.Emulator;
import com.eu.habbo.core.RoomUserPetComposer; import com.eu.habbo.core.RoomUserPetComposer;
import com.eu.habbo.habbohotel.achievements.AchievementManager; import com.eu.habbo.habbohotel.achievements.AchievementManager;
import com.eu.habbo.habbohotel.bots.Bot; import com.eu.habbo.habbohotel.bots.Bot;
import com.eu.habbo.habbohotel.gameclients.GameClient;
import com.eu.habbo.habbohotel.games.Game; import com.eu.habbo.habbohotel.games.Game;
import com.eu.habbo.habbohotel.games.battlebanzai.BattleBanzaiGame; import com.eu.habbo.habbohotel.games.battlebanzai.BattleBanzaiGame;
import com.eu.habbo.habbohotel.games.football.FootballGame; import com.eu.habbo.habbohotel.games.football.FootballGame;
@ -40,6 +41,7 @@ import com.eu.habbo.messages.outgoing.rooms.pets.RoomPetComposer;
import com.eu.habbo.messages.outgoing.rooms.promotions.RoomPromotionMessageComposer; import com.eu.habbo.messages.outgoing.rooms.promotions.RoomPromotionMessageComposer;
import com.eu.habbo.messages.outgoing.rooms.users.*; import com.eu.habbo.messages.outgoing.rooms.users.*;
import com.eu.habbo.messages.outgoing.users.MutedWhisperComposer; import com.eu.habbo.messages.outgoing.users.MutedWhisperComposer;
import com.eu.habbo.plugin.Event;
import com.eu.habbo.plugin.events.navigator.NavigatorRoomCreatedEvent; import com.eu.habbo.plugin.events.navigator.NavigatorRoomCreatedEvent;
import com.eu.habbo.plugin.events.rooms.RoomUncachedEvent; import com.eu.habbo.plugin.events.rooms.RoomUncachedEvent;
import com.eu.habbo.plugin.events.rooms.UserVoteRoomEvent; import com.eu.habbo.plugin.events.rooms.UserVoteRoomEvent;
@ -710,9 +712,20 @@ public class RoomManager {
List<Habbo> habbos = new ArrayList<>(); List<Habbo> habbos = new ArrayList<>();
if (!room.getCurrentHabbos().isEmpty()) { if (!room.getCurrentHabbos().isEmpty()) {
Collection<Habbo> habbosToSendEnter = room.getCurrentHabbos().values();
room.sendComposer(new RoomUsersComposer(habbo).compose()); if (Emulator.getPluginManager().isRegistered(HabboAddedToRoomEvent.class, false)) {
room.sendComposer(new RoomUserStatusComposer(habbo.getRoomUnit()).compose()); HabboAddedToRoomEvent event = Emulator.getPluginManager().fireEvent(new HabboAddedToRoomEvent(habbo, room, habbosToSendEnter));
habbosToSendEnter = event.habbosToSendEnter;
}
for (Habbo habboToSendEnter : habbosToSendEnter) {
GameClient client = habboToSendEnter.getClient();
if (client != null) {
client.sendResponse(new RoomUsersComposer(habbo).compose());
habboToSendEnter.getClient().sendResponse(new RoomUserStatusComposer(habbo.getRoomUnit()).compose());
}
}
for (Habbo h : room.getHabbos()) { for (Habbo h : room.getHabbos()) {
if (!h.getRoomUnit().isInvisible()) { if (!h.getRoomUnit().isInvisible()) {
@ -890,10 +903,6 @@ public class RoomManager {
if (!habbo.getHabboStats().nux && (room.isOwner(habbo) || room.isPublicRoom())) { if (!habbo.getHabboStats().nux && (room.isOwner(habbo) || room.isPublicRoom())) {
UserNuxEvent.handle(habbo); UserNuxEvent.handle(habbo);
} }
if (Emulator.getPluginManager().isRegistered(HabboAddedToRoomEvent.class, false)) {
Emulator.getPluginManager().fireEvent(new HabboAddedToRoomEvent(habbo, room));
}
} }
void logEnter(Habbo habbo, Room room) { void logEnter(Habbo habbo, Room room) {

View File

@ -0,0 +1,7 @@
package com.eu.habbo.messages;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface NoAuthMessage {}

View File

@ -156,11 +156,20 @@ public class PacketManager {
if (client == null || Emulator.isShuttingDown) if (client == null || Emulator.isShuttingDown)
return; return;
if (client.getHabbo() == null && !(packet.getMessageId() == Incoming.SecureLoginEvent || packet.getMessageId() == Incoming.MachineIDEvent))
return;
try { try {
if (this.isRegistered(packet.getMessageId())) { if (this.isRegistered(packet.getMessageId())) {
Class<? extends MessageHandler> handlerClass = this.incoming.get(packet.getMessageId());
if (handlerClass == null) throw new Exception("Unknown message " + packet.getMessageId());
if (client.getHabbo() == null && !handlerClass.isAnnotationPresent(NoAuthMessage.class)) {
if (DEBUG_SHOW_PACKETS) {
Emulator.getLogging().logPacketLine("[" + Logging.ANSI_CYAN + "CLIENT" + Logging.ANSI_RESET + "][" + Logging.ANSI_RED + "NOT LOGGED IN" + Logging.ANSI_RESET + "][" + packet.getMessageId() + "] => " + packet.getMessageBody());
}
return;
}
if (PacketManager.DEBUG_SHOW_PACKETS) if (PacketManager.DEBUG_SHOW_PACKETS)
Emulator.getLogging().logPacketLine("[" + Logging.ANSI_CYAN + "CLIENT" + Logging.ANSI_RESET + "][" + packet.getMessageId() + "] => " + packet.getMessageBody()); Emulator.getLogging().logPacketLine("[" + Logging.ANSI_CYAN + "CLIENT" + Logging.ANSI_RESET + "][" + packet.getMessageId() + "] => " + packet.getMessageBody());
@ -168,7 +177,7 @@ public class PacketManager {
System.out.println(("[" + Logging.ANSI_CYAN + "CLIENT" + Logging.ANSI_RESET + "][" + client.getHabbo().getHabboInfo().getUsername() + "][" + packet.getMessageId() + "] => " + packet.getMessageBody())); System.out.println(("[" + Logging.ANSI_CYAN + "CLIENT" + Logging.ANSI_RESET + "][" + client.getHabbo().getHabboInfo().getUsername() + "][" + packet.getMessageId() + "] => " + packet.getMessageBody()));
} }
final MessageHandler handler = this.incoming.get(packet.getMessageId()).newInstance(); final MessageHandler handler = handlerClass.newInstance();
handler.client = client; handler.client = client;
handler.packet = packet; handler.packet = packet;
@ -184,7 +193,7 @@ public class PacketManager {
} }
} else { } else {
if (PacketManager.DEBUG_SHOW_PACKETS) if (PacketManager.DEBUG_SHOW_PACKETS)
Emulator.getLogging().logPacketLine("[" + Logging.ANSI_CYAN + "CLIENT" + Logging.ANSI_RESET + "][" + Logging.ANSI_RED + "UNDEFINED" + Logging.ANSI_RESET + "][" + packet.getMessageId() + "] => " + packet.getMessageBody()); Emulator.getLogging().logPacketLine("[" + Logging.ANSI_CYAN + "CLIENT" + Logging.ANSI_RESET + "][" + Logging.ANSI_YELLOW + "UNDEFINED" + Logging.ANSI_RESET + "][" + packet.getMessageId() + "] => " + packet.getMessageBody());
} }
} catch (Exception e) { } catch (Exception e) {
Emulator.getLogging().logErrorLine(e); Emulator.getLogging().logErrorLine(e);

View File

@ -1,8 +1,10 @@
package com.eu.habbo.messages.incoming.handshake; package com.eu.habbo.messages.incoming.handshake;
import com.eu.habbo.messages.NoAuthMessage;
import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.incoming.MessageHandler;
import com.eu.habbo.messages.outgoing.handshake.MachineIDComposer; import com.eu.habbo.messages.outgoing.handshake.MachineIDComposer;
@NoAuthMessage
public class MachineIDEvent extends MessageHandler { public class MachineIDEvent extends MessageHandler {
@Override @Override

View File

@ -1,7 +1,9 @@
package com.eu.habbo.messages.incoming.handshake; package com.eu.habbo.messages.incoming.handshake;
import com.eu.habbo.messages.NoAuthMessage;
import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.incoming.MessageHandler;
@NoAuthMessage
public class ReleaseVersionEvent extends MessageHandler { public class ReleaseVersionEvent extends MessageHandler {
@Override @Override

View File

@ -6,6 +6,7 @@ import com.eu.habbo.habbohotel.navigation.NavigatorSavedSearch;
import com.eu.habbo.habbohotel.permissions.Permission; import com.eu.habbo.habbohotel.permissions.Permission;
import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.habbohotel.users.Habbo;
import com.eu.habbo.habbohotel.users.HabboManager; import com.eu.habbo.habbohotel.users.HabboManager;
import com.eu.habbo.messages.NoAuthMessage;
import com.eu.habbo.messages.ServerMessage; import com.eu.habbo.messages.ServerMessage;
import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.incoming.MessageHandler;
import com.eu.habbo.messages.outgoing.achievements.AchievementListComposer; import com.eu.habbo.messages.outgoing.achievements.AchievementListComposer;
@ -31,6 +32,7 @@ import com.eu.habbo.plugin.events.users.UserLoginEvent;
import java.util.ArrayList; import java.util.ArrayList;
@NoAuthMessage
public class SecureLoginEvent extends MessageHandler { public class SecureLoginEvent extends MessageHandler {

View File

@ -3,14 +3,18 @@ package com.eu.habbo.plugin.events.users;
import com.eu.habbo.habbohotel.rooms.Room; import com.eu.habbo.habbohotel.rooms.Room;
import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.habbohotel.users.Habbo;
import java.util.Collection;
public class HabboAddedToRoomEvent extends UserEvent { public class HabboAddedToRoomEvent extends UserEvent {
public final Room room; public final Room room;
public final Collection<Habbo> habbosToSendEnter;
public HabboAddedToRoomEvent(Habbo habbo, Room room) { public HabboAddedToRoomEvent(Habbo habbo, Room room, Collection<Habbo> habbosToSendEnter) {
super(habbo); super(habbo);
this.room = room; this.room = room;
this.habbosToSendEnter = habbosToSendEnter;
} }
} }