package me.drbooker.bookchat.listener; import me.drbooker.bookchat.Main; import me.drbooker.bookchat.data.Settings; import java.util.Locale; import java.util.Map; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; public class AsyncPlayerChatListener implements Listener { @EventHandler public void onEvent(AsyncPlayerChatEvent e) { if (e.isCancelled()) { return; } if (!e.getPlayer().hasPermission("bookchat.bypass")) { if (!Main.getInst().chatOn) { e.getPlayer().sendMessage(Settings.getInst().msgChatDisabled); e.setCancelled(true); return; } if (Main.getInst().chatInterval.containsKey(e.getPlayer().getUniqueId())) { long expires = ((Long)Main.getInst().chatInterval.get(e.getPlayer().getUniqueId())).longValue() + Settings.getInst().chatInterval * 50; if (expires > System.currentTimeMillis()) { e.getPlayer().sendMessage(Settings.getInst().msgChatInterval .replace("%inter%", String.format(Locale.US, "%.1f", new Object[] { Double.valueOf(Settings.getInst().chatInterval / 20.0D) })) .replace("%rem%", String.format(Locale.US, "%.1f", new Object[] { Double.valueOf((expires - System.currentTimeMillis()) / 1000.0D) }))); e.setCancelled(true); return; } } Main.getInst().chatInterval.put(e.getPlayer().getUniqueId(), Long.valueOf(System.currentTimeMillis())); } } }