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 d8873053..7dd1b524 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java @@ -3244,17 +3244,17 @@ public class Room implements Comparable, ISerialize, Runnable { } public THashSet getItemsAt(RoomTile tile) { + THashSet items = new THashSet<>(0); + + if (tile == null) + return items; + if (this.loaded) { if (this.tileCache.containsKey(tile)) { return this.tileCache.get(tile); } } - THashSet items = new THashSet<>(0); - - if (tile == null) - return items; - TIntObjectIterator iterator = this.roomItems.iterator(); for (int i = this.roomItems.size(); i-- > 0; ) { @@ -3682,6 +3682,7 @@ public class Room implements Comparable, ISerialize, Runnable { for (Habbo habbo : this.getHabbos()) { if (habbo.getClient() == null) { this.removeHabbo(habbo, true); + continue; } habbo.getClient().sendResponse(message); diff --git a/src/main/java/com/eu/habbo/habbohotel/wired/highscores/WiredHighscoreManager.java b/src/main/java/com/eu/habbo/habbohotel/wired/highscores/WiredHighscoreManager.java index aa5935ef..1873b2de 100644 --- a/src/main/java/com/eu/habbo/habbohotel/wired/highscores/WiredHighscoreManager.java +++ b/src/main/java/com/eu/habbo/habbohotel/wired/highscores/WiredHighscoreManager.java @@ -1,6 +1,8 @@ package com.eu.habbo.habbohotel.wired.highscores; import com.eu.habbo.Emulator; +import com.eu.habbo.plugin.EventHandler; +import com.eu.habbo.plugin.events.emulator.EmulatorLoadedEvent; import java.sql.Connection; import java.sql.PreparedStatement; @@ -29,12 +31,16 @@ public class WiredHighscoreManager { this.data.clear(); this.loadHighscoreData(); + Emulator.getLogging().logStart("Highscore Manager -> Loaded! (" + (System.currentTimeMillis() - millis) + " MS, " + this.data.size() + " items)"); + } + + @EventHandler + public static void onEmulatorLoaded(EmulatorLoadedEvent event) { if (midnightUpdater != null) { midnightUpdater.cancel(true); } + midnightUpdater = Emulator.getThreading().run(new WiredHighscoreMidnightUpdater(), WiredHighscoreMidnightUpdater.getNextUpdaterRun()); - - Emulator.getLogging().logStart("Highscore Manager -> Loaded! (" + (System.currentTimeMillis() - millis) + " MS, " + this.data.size() + " items)"); } public void dispose() { diff --git a/src/main/java/com/eu/habbo/plugin/PluginManager.java b/src/main/java/com/eu/habbo/plugin/PluginManager.java index d1ecfbef..556ae8d4 100644 --- a/src/main/java/com/eu/habbo/plugin/PluginManager.java +++ b/src/main/java/com/eu/habbo/plugin/PluginManager.java @@ -20,12 +20,14 @@ import com.eu.habbo.habbohotel.rooms.*; import com.eu.habbo.habbohotel.users.HabboInventory; import com.eu.habbo.habbohotel.users.HabboManager; import com.eu.habbo.habbohotel.wired.WiredHandler; +import com.eu.habbo.habbohotel.wired.highscores.WiredHighscoreManager; import com.eu.habbo.messages.PacketManager; import com.eu.habbo.messages.incoming.floorplaneditor.FloorPlanEditorSaveEvent; import com.eu.habbo.messages.incoming.hotelview.HotelViewRequestLTDAvailabilityEvent; import com.eu.habbo.messages.incoming.users.ChangeNameCheckUsernameEvent; import com.eu.habbo.messages.outgoing.catalog.DiscountComposer; import com.eu.habbo.plugin.events.emulator.EmulatorConfigUpdatedEvent; +import com.eu.habbo.plugin.events.emulator.EmulatorLoadedEvent; import com.eu.habbo.plugin.events.roomunit.RoomUnitLookAtPointEvent; import com.eu.habbo.plugin.events.users.*; import com.eu.habbo.threading.runnables.RoomTrashing; @@ -322,6 +324,7 @@ public class PluginManager { this.methods.add(InteractionFootballGate.class.getMethod("onUserExitRoomEvent", UserExitRoomEvent.class)); this.methods.add(InteractionFootballGate.class.getMethod("onUserSavedLookEvent", UserSavedLookEvent.class)); this.methods.add(PluginManager.class.getMethod("globalOnConfigurationUpdated", EmulatorConfigUpdatedEvent.class)); + this.methods.add(WiredHighscoreManager.class.getMethod("onEmulatorLoaded", EmulatorLoadedEvent.class)); } catch (NoSuchMethodException e) { Emulator.getLogging().logStart("Failed to define default events!"); Emulator.getLogging().logErrorLine(e);