package tv.mineinthebox.essentials.events.ban;
import java.util.Date;
import java.util.HashMap;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import tv.mineinthebox.essentials.xEssentials;
import tv.mineinthebox.essentials.interfaces.XPlayer;
@SuppressWarnings("deprecation")
public class FloodSpamEvent implements Listener {
private final xEssentials pl;
private final HashMap<String, Long> chatTime = new HashMap<String, Long>();
public FloodSpamEvent(xEssentials pl) {
this.pl = pl;
}
@EventHandler(priority = EventPriority.LOWEST)
public void playerChatTime(PlayerChatEvent e) {
if(chatTime.containsKey(e.getPlayer().getName())) {
if(System.currentTimeMillis() - chatTime.get(e.getPlayer().getName()) < 300) {
e.setCancelled(true);
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName());
Date date = new Date(System.currentTimeMillis());
date.setDate(date.getDate() + 1);
xp.setTempbanned(date.getTime(), pl.getConfiguration().getBanConfig().getFloodSpamBanMessage(), "CONSOLE");
} else {
chatTime.put(e.getPlayer().getName(), System.currentTimeMillis());
}
} else {
chatTime.put(e.getPlayer().getName(), System.currentTimeMillis());
}
}
@EventHandler
public void pQuit(PlayerQuitEvent e) {
if(chatTime.containsKey(e.getPlayer().getName())) {
chatTime.remove(e.getPlayer().getName());
}
}
}