package tv.mineinthebox.essentials.events.ban; import java.util.HashMap; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerChatEvent; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.interfaces.EventTemplate; @SuppressWarnings("deprecation") public class HumanSpamEvent extends EventTemplate implements Listener { private final HashMap<String, String> message1 = new HashMap<String, String>(); private final HashMap<String, String> message2 = new HashMap<String, String>(); public HumanSpamEvent(xEssentials pl) { super(pl, "HumanSpam"); this.pl = pl; } @EventHandler(priority = EventPriority.LOWEST) public void slowSpamCheck(PlayerChatEvent e) { final Player p = (Player) e.getPlayer(); if(message2.containsKey(e.getPlayer().getName())) { if(message2.get(e.getPlayer().getName()).equalsIgnoreCase(e.getMessage())) { e.getPlayer().kickPlayer(pl.getConfiguration().getBanConfig().getHumanSpamBanMessage()); message2.remove(e.getPlayer().getName()); } else { message2.remove(e.getPlayer().getName()); } } else if(message1.containsKey(e.getPlayer().getName())) { if(message1.get(e.getPlayer().getName()).equalsIgnoreCase(e.getMessage())) { message1.remove(e.getPlayer().getName()); message2.put(e.getPlayer().getName(), e.getMessage()); sendMessage(e.getPlayer(), ChatColor.RED + "Warning if you post one more time the same message you will be kicked!"); } else { message1.put(e.getPlayer().getName(), e.getMessage()); } } else { message1.put(e.getPlayer().getName(), e.getMessage()); } Bukkit.getScheduler().scheduleSyncDelayedTask(pl, new Runnable() { @Override public void run() { if(message1.containsKey(p.getPlayer().getName())) { message1.remove(p.getPlayer().getName()); } else if(message2.containsKey(p.getPlayer().getName())) { message2.remove(p.getPlayer().getName()); } } }, 300); } }