@EventHandler(priority = EventPriority.HIGH) public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { String command = event.getMessage(); Player p = event.getPlayer(); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); playerdata.incrementMsgCount(); playerdata.setLastCommand(command); if (playerdata.getMsgCount() > 10) { TFM_Util.bcastMsg( p.getName() + " was automatically kicked for spamming commands.", ChatColor.RED); TFM_Util.autoEject(p, "Kicked for spamming commands."); playerdata.resetMsgCount(); TFM_Util.TFM_EntityWiper.wipeEntities(true, true); event.setCancelled(true); return; } if (playerdata.allCommandsBlocked()) { TFM_Util.playerMsg(p, "Your commands have been blocked by an admin.", ChatColor.RED); event.setCancelled(true); return; } // Block commands if player is muted if (playerdata.isMuted()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) { for (String test_command : BLOCKED_MUTED_CMDS) { if (Pattern.compile("^/" + test_command.toLowerCase() + " ").matcher(command).find()) { p.sendMessage(ChatColor.RED + "That command is blocked while you are muted."); event.setCancelled(true); return; } } } else { playerdata.setMuted(false); } } if (TotalFreedomMod.preprocessLogEnabled) { TFM_Log.info( String.format( "[PREPROCESS_COMMAND] %s(%s): %s", p.getName(), ChatColor.stripColor(p.getDisplayName()), command), true); } command = command.toLowerCase().trim(); // Blocked commands if (TFM_CommandBlockerNew.getInstance().isCommandBlocked(command, event.getPlayer())) { // CommandBlocker handles messages and broadcasts event.setCancelled(true); } if (!TFM_SuperadminList.isUserSuperadmin(p)) { for (Player pl : Bukkit.getOnlinePlayers()) { if (TFM_SuperadminList.isUserSuperadmin(pl) && TFM_PlayerData.getPlayerData(pl).cmdspyEnabled()) { TFM_Util.playerMsg(pl, p.getName() + ": " + command); } } } }