package wtf.beatrice.limbomanager.listeners; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; import wtf.beatrice.limbomanager.Cache; import wtf.beatrice.limbomanager.LimboManager; public class PlayerChatManager implements Listener { @EventHandler public void onPlayerChat(AsyncPlayerChatEvent event) { int coolDown = Cache.getConfiguration().getInt("chat.cool-down", 3); if(coolDown < 1) return; // disable this feature if cooldown is 0 or negative. Player player = event.getPlayer(); if(Cache.chatCooldown.contains(player)) { player.sendMessage("Chat is limited in this server. Please wait."); event.setCancelled(true); return; } Cache.chatCooldown.add(player); Bukkit.getScheduler().runTaskLater(LimboManager.getInstance(), () -> Cache.chatCooldown.remove(player), 20L * coolDown); } }