@Override public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { Player player = event.getPlayer(); String[] split = event.getMessage().split(" "); int numParams = split.length - 1; if (!(plugin.optionsMap.containsKey("oncommand|" + split[0]) || plugin.optionsMap.containsKey("oncommand|" + split[0] + "|" + numParams) || plugin.optionsMap.containsKey("oncommand|" + split[0] + "|override") || plugin.optionsMap.containsKey("oncommand|" + split[0] + "|override|" + numParams))) return; List<String> replaceThese = new LinkedList<String>(); List<String> withThese = new LinkedList<String>(); /* Build parameter list */ StringBuilder params = new StringBuilder(); StringBuilder reverseParams = new StringBuilder(); String prefix = ""; int max = split.length; for (int i = 1; i < max; i++) { params.append(prefix + split[i]); reverseParams.insert(0, split[max - i] + prefix); prefix = " "; replaceThese.add("<<param" + Integer.toString(i) + ">>"); withThese.add(split[i]); replaceThese.add("<<param" + Integer.toString(i) + "->>"); withThese.add(params.toString()); replaceThese.add("<<param" + Integer.toString(max - i) + "\\+>>"); withThese.add(reverseParams.toString()); } replaceThese.add("<<params>>"); withThese.add(params.toString()); String[] replaceTheseArray = replaceThese.toArray(new String[replaceThese.size()]); String[] withTheseArray = withThese.toArray(new String[withThese.size()]); plugin.triggerMessages(player, "oncommand|" + split[0], replaceTheseArray, withTheseArray); if (split[0].equalsIgnoreCase("/rTriggers")) { plugin.triggerMessages(player, "onrTriggers", replaceTheseArray, withTheseArray); event.setCancelled(true); } if (plugin.triggerMessages( player, "oncommand|" + split[0] + "|override", replaceTheseArray, withTheseArray) || plugin.triggerMessages( player, "oncommand|" + split[0] + "|override|" + numParams, replaceTheseArray, withTheseArray)) { event.setCancelled(true); } return; }
@EventHandler(priority = EventPriority.LOWEST) public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { if (event.isCancelled()) return; if (plugin.showcommands) log.info("[PLAYER_COMMAND] " + event.getPlayer().getName() + ": " + event.getMessage()); if (PConfManager.getPValBoolean(event.getPlayer(), "muted")) { if (PConfManager.getPVal(event.getPlayer(), "mutetime") != null && !RUtils.isTimeStampValid(event.getPlayer(), "mutetime")) PConfManager.setPValBoolean(event.getPlayer(), false, "muted"); for (String command : plugin.muteCmds) { if (!(event.getMessage().toLowerCase().startsWith(command.toLowerCase() + " ") || event.getMessage().equalsIgnoreCase(command.toLowerCase()))) continue; event.getPlayer().sendMessage(ChatColor.RED + "You are muted."); log.info( "[RoyalCommands] " + event.getPlayer().getName() + " tried to use that command, but is muted."); event.setCancelled(true); } } if (PConfManager.getPValBoolean(event.getPlayer(), "jailed")) { event.getPlayer().sendMessage(ChatColor.RED + "You are jailed."); log.info( "[RoyalCommands] " + event.getPlayer().getName() + " tried to use that command, but is jailed."); event.setCancelled(true); } }
@EventHandler public void commandCooldown(PlayerCommandPreprocessEvent e) { if (e.isCancelled()) return; String command = e.getMessage().split(" ")[0].toLowerCase().substring(1); if (plugin.getCommand(command) != null) command = plugin.getCommand(command).getName(); Player p = e.getPlayer(); if (plugin.isAuthorized(p, "rcmds.exempt.cooldown.commands")) return; Long currentcd = PConfManager.getPValLong(p, "command_cooldowns." + command); if (currentcd != null) { if (currentcd <= new Date().getTime()) { setCooldown(command, p); return; } p.sendMessage( ChatColor.RED + "You can't use that command for" + ChatColor.GRAY + RUtils.formatDateDiff(currentcd) + ChatColor.RED + "."); e.setCancelled(true); return; } setCooldown(command, p); }
@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); } } } }