Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.28 KB | None | 0 0
  1.     public static HashMap<Player, Long> inWarning = new HashMap<Player, Long>();
  2.     public static HashMap<Player, Long> inTrouble = new HashMap<Player, Long>();
  3.    
  4.     @EventHandler
  5.     public void PlayerChat(AsyncPlayerChatEvent event){
  6.         Player p = event.getPlayer();
  7.         if(p.hasPermission("AvalonRules.bypass")){
  8.             return;
  9.         } else {
  10.             String message = event.getMessage();
  11.             String ignorePart = event.getMessage().replaceAll("FiFTX", "").replaceAll("FiFT", "").replaceAll("XD", " ").replaceAll("HI", " ").replaceAll(" ", "").replaceAll("xDD", "").replaceAll("XDD", "").replaceAll("[^A-Za-z]", "");
  12.             double amount = 0;
  13.             double size = ignorePart.length();
  14.             for(int i = 0; i < size; i++){
  15.                 if(Character.isLetter(ignorePart.charAt(i)) && Character.isUpperCase(ignorePart.charAt(i))){
  16.                     amount++;
  17.                 }
  18.             }
  19.             double percent = amount / size * 100D;
  20.             long cooldown = 0;
  21.             if(percent >= 55){
  22.                 if(percent >= 75){
  23.                     if(inWarning.containsKey(p)){
  24.                         cooldown = ((inWarning.get(p)/1000)+20) - (System.currentTimeMillis()/1000);
  25.                         if(cooldown <= 0){
  26.                             inWarning.remove(p);
  27.                         } else {
  28.                             String warn = "warn " + p.getName() + " caps!";
  29.                             Bukkit.dispatchCommand(Bukkit.getConsoleSender(), warn);
  30.                             inWarning.remove(p);
  31.                             inTrouble.put(p, System.currentTimeMillis());
  32.                         }
  33.                     } else  if(inTrouble.containsKey(p)){
  34.                         cooldown = ((inTrouble.get(p)/1000)+60) - (System.currentTimeMillis()/1000);
  35.                         if(cooldown <= 0){
  36.                             inTrouble.remove(p);
  37.                         } else {
  38.                             String tempmute = "tempmute " + p.getName() + " 1 hour";
  39.                             String kick = "kick " + p.getName() + " caps!";
  40.                             Bukkit.dispatchCommand(Bukkit.getConsoleSender(), tempmute);
  41.                             Bukkit.dispatchCommand(Bukkit.getConsoleSender(), kick);
  42.                             inTrouble.remove(p);
  43.                         }
  44.                     } else {
  45.                         inWarning.put(p, System.currentTimeMillis());
  46.                     }
  47.                 }
  48.                 Utils.logToPlayerFile(p, p.getName() + " chatted with too much uppercase letters: " + message + " (" + new DecimalFormat("#.##").format(percent) + "% are in Caps! (Ignoring: 'HI' 'FiFTX' 'FiFT' 'XD', 'xDD', 'XDD'))", plugin);
  49.                 p.sendMessage(ChatColor.RED + "Your message contains too much uppercase letters, setting to lowercase!");
  50.                 event.setMessage(message.toLowerCase());
  51.                 return;
  52.             }
  53.         }
  54.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement