@Override public void run() { try { long nanoTime = System.nanoTime(); long now = System.currentTimeMillis(); addNewTPSEntry(nanoTime, now); if (history.size() >= 60) { processing.submit(processors.tpsInsertProcessor(new ArrayList<>(history))); history.clear(); } } catch (Exception | NoClassDefFoundError | NoSuchMethodError | NoSuchFieldError e) { logger.error("TPS Count Task Disabled due to error, reload Plan to re-enable."); errorHandler.log(L.ERROR, this.getClass(), e); cancel(); } }
private void runInspectTask(String playerName, Sender sender) { processing.submitNonCritical(() -> { try { UUID uuid = uuidUtility.getUUIDOf(playerName); if (uuid == null) { sender.sendMessage(locale.getString(CommandLang.FAIL_USERNAME_NOT_VALID)); return; } if (!dbSystem.getDatabase().check().isPlayerRegistered(uuid)) { sender.sendMessage(locale.getString(CommandLang.FAIL_USERNAME_NOT_KNOWN)); return; } checkWebUserAndNotify(sender); processing.submit(processorFactory.inspectCacheRequestProcessor(uuid, sender, playerName, this::sendInspectMsg)); } catch (DBOpException e) { sender.sendMessage("§eDatabase exception occurred: " + e.getMessage()); errorHandler.log(L.ERROR, 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)); } }
private void handleKill(long time, UUID victimUUID, Entity killerEntity) { Runnable processor = null; if (killerEntity instanceof Player) { processor = handlePlayerKill(time, victimUUID, (Player) killerEntity); } else if (killerEntity instanceof Tameable) { processor = handlePetKill(time, victimUUID, (Tameable) killerEntity); } else if (killerEntity instanceof Projectile) { processor = handleProjectileKill(time, victimUUID, (Projectile) killerEntity); } if (processor != null) { processing.submit(processor); } }
private void actOnCommandEvent(PlayerCommandPreprocessEvent event) { String commandName = event.getMessage().substring(1).split(" ")[0].toLowerCase(); boolean logUnknownCommands = config.isTrue(DataGatheringSettings.LOG_UNKNOWN_COMMANDS); boolean combineCommandAliases = config.isTrue(DataGatheringSettings.COMBINE_COMMAND_ALIASES); if (!logUnknownCommands || combineCommandAliases) { Command command = getBukkitCommand(commandName); if (command == null) { if (!logUnknownCommands) { return; } } else if (combineCommandAliases) { commandName = command.getName(); } } processing.submit(processors.commandProcessor(commandName)); }
private void handleKill(long time, Living dead, Entity killerEntity) { Runnable processor = null; UUID victimUUID = getUUID(dead); if (killerEntity instanceof Player) { processor = handlePlayerKill(time, victimUUID, (Player) killerEntity); } else if (killerEntity instanceof Wolf) { processor = handleWolfKill(time, victimUUID, (Wolf) killerEntity); } else if (killerEntity instanceof Projectile) { processor = handleProjectileKill(time, victimUUID, (Projectile) killerEntity); } if (processor != null) { processing.submit(processor); } }
@Override public void run() { try { if (database.check().isPlayerRegistered(uuid)) { return; } database.save().registerNewUser(uuid, registered, name); } finally { for (Runnable process : afterProcess) { processing.submit(process); } } } }
private void actOnCommandEvent(SendCommandEvent event) { String commandName = event.getCommand(); boolean logUnknownCommands = config.isTrue(DataGatheringSettings.LOG_UNKNOWN_COMMANDS); boolean combineCommandAliases = config.isTrue(DataGatheringSettings.COMBINE_COMMAND_ALIASES); if (!logUnknownCommands || combineCommandAliases) { Optional<? extends CommandMapping> existingCommand = Sponge.getCommandManager().get(commandName); if (!existingCommand.isPresent()) { if (!logUnknownCommands) { return; } } else if (combineCommandAliases) { commandName = existingCommand.get().getPrimaryAlias(); } } processing.submit(processors.commandProcessor(commandName)); }
private void actOnLoginEvent(ClientConnectionEvent.Login event) { GameProfile profile = event.getProfile(); UUID uuid = profile.getUniqueId(); boolean banned = isBanned(profile); processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, false)); }
private void actOnChatEvent(AsyncPlayerChatEvent event) { Player p = event.getPlayer(); UUID uuid = p.getUniqueId(); String name = p.getName(); String displayName = p.getDisplayName(); processing.submit(processorFactory.nameProcessor(uuid, name, displayName)); } }
@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); } } }
@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); } }
@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 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); } } }
@Listener(order = Order.POST) public void onKick(KickPlayerEvent event) { try { UUID uuid = event.getTargetEntity().getUniqueId(); if (!status.areKicksCounted() || SpongeAFKListener.AFK_TRACKER.isAfk(uuid)) { return; } processing.submit(processors.player().kickProcessor(uuid)); } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); } }
@EventHandler(priority = EventPriority.MONITOR) public void onPlayerLogin(PlayerLoginEvent event) { try { PlayerLoginEvent.Result result = event.getResult(); UUID uuid = event.getPlayer().getUniqueId(); boolean op = event.getPlayer().isOp(); boolean banned = result == PlayerLoginEvent.Result.KICK_BANNED; processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, op)); } catch (Exception e) { errorHandler.log(L.ERROR, 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); } }
@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); } }
private void actOnChatEvent(@First Player player) { UUID uuid = player.getUniqueId(); String name = player.getName(); String displayName = player.getDisplayNameData().displayName().get().toPlain(); processing.submit(processorFactory.nameProcessor(uuid, name, displayName)); }