@Subscribe public void onLogout(DisconnectEvent event) { try { Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); sessionCache.endSession(uuid, System.currentTimeMillis()); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID())); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } }
@EventHandler public void onLogout(PlayerDisconnectEvent event) { try { ProxiedPlayer player = event.getPlayer(); UUID uuid = player.getUniqueId(); sessionCache.endSession(uuid, System.currentTimeMillis()); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID())); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } }
@EventHandler public void onServerSwitch(ServerSwitchEvent event) { try { ProxiedPlayer player = event.getPlayer(); UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); // Replaces the current session in the cache. sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null)); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } } }
@Subscribe public void onServerSwitch(ServerConnectedEvent event) { try { Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); long now = System.currentTimeMillis(); // Replaces the current session in the cache. sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), now, null, null)); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } } }
private void actOnQuitEvent(PlayerQuitEvent event) { long time = System.currentTimeMillis(); Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); AFKListener.AFK_TRACKER.loggedOut(uuid, time); processing.submit(processors.player().banAndOpProcessor(uuid, player::isBanned, player.isOp())); processing.submit(processors.player().endSessionProcessor(uuid, time)); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); } }
private void actOnQuitEvent(ClientConnectionEvent.Disconnect event) { long time = System.currentTimeMillis(); Player player = event.getTargetEntity(); UUID uuid = player.getUniqueId(); SpongeAFKListener.AFK_TRACKER.loggedOut(uuid, time); boolean banned = isBanned(player.getProfile()); processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, false)); processing.submit(processors.player().endSessionProcessor(uuid, time)); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); } }
@Subscribe public void onPostLogin(PostLoginEvent event) { try { Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); String name = player.getUsername(); InetAddress address = player.getRemoteAddress().getAddress(); long time = System.currentTimeMillis(); sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null)); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submit(processors.player().proxyRegisterProcessor(uuid, name, time, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null )); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID())); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } }
@EventHandler public void onPostLogin(PostLoginEvent event) { try { ProxiedPlayer player = event.getPlayer(); UUID uuid = player.getUniqueId(); String name = player.getName(); InetAddress address = player.getAddress().getAddress(); long time = System.currentTimeMillis(); sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null)); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submit(processors.player().proxyRegisterProcessor(uuid, name, time, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null )); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID())); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } }
private void actOnJoinEvent(ClientConnectionEvent.Join event) { Player player = event.getTargetEntity(); UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); SpongeAFKListener.AFK_TRACKER.performedAction(uuid, time); String world = player.getWorld().getName(); Optional<GameMode> gameMode = player.getGameModeData().get(Keys.GAME_MODE); String gm = gameMode.map(mode -> mode.getName().toUpperCase()).orElse("ADVENTURE"); InetAddress address = player.getConnection().getAddress().getAddress(); String playerName = player.getName(); String displayName = player.getDisplayNameData().displayName().get().toPlain(); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submitCritical(() -> sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, world, gm))); runnableFactory.create("Player Register: " + uuid, processors.player().registerProcessor(uuid, () -> time, playerName, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null, processors.player().nameProcessor(uuid, playerName, displayName), processors.info().playerPageUpdateProcessor(uuid) ) ).runTaskAsynchronously(); }
private void actOnJoinEvent(PlayerJoinEvent event) { Player player = event.getPlayer(); // TODO Move update notification to the website. UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); AFKListener.AFK_TRACKER.performedAction(uuid, time); String world = player.getWorld().getName(); String gm = player.getGameMode().name(); InetAddress address = player.getAddress().getAddress(); String playerName = player.getName(); String displayName = player.getDisplayName(); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submitCritical(() -> sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, world, gm))); runnableFactory.create("Player Register: " + uuid, processors.player().registerProcessor(uuid, player::getFirstPlayed, playerName, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null, processors.player().nameProcessor(uuid, playerName, displayName), processors.info().playerPageUpdateProcessor(uuid) ) ).runTaskAsynchronously(); }