Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2015
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.06 KB | None | 0 0
  1. package me.assist.chatdelay;
  2.  
  3. import java.util.HashMap;
  4. import java.util.UUID;
  5. import java.util.concurrent.TimeUnit;
  6.  
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.Listener;
  10. import org.bukkit.event.player.AsyncPlayerChatEvent;
  11. import org.bukkit.event.player.PlayerKickEvent;
  12. import org.bukkit.event.player.PlayerQuitEvent;
  13. import org.bukkit.plugin.java.JavaPlugin;
  14.  
  15. public class ChatDelay extends JavaPlugin implements Listener {
  16.  
  17.     private int chatDelay;
  18.     private String warnMessage;
  19.  
  20.     private HashMap<UUID, Long> delayMap = new HashMap<>();
  21.  
  22.     public void onEnable() {
  23.         getConfig().options().copyDefaults(true);
  24.         saveConfig();
  25.  
  26.         chatDelay = getConfig().getInt("chatDelay", 2500);
  27.         warnMessage = getConfig().getString("warnMessage", null);
  28.  
  29.         getServer().getPluginManager().registerEvents(this, this);
  30.     }
  31.  
  32.     @EventHandler
  33.     public void onChat(AsyncPlayerChatEvent event) {
  34.         UUID id = event.getPlayer().getUniqueId();
  35.  
  36.         if (!delayMap.containsKey(id)) {
  37.             delayMap.put(id, System.currentTimeMillis());
  38.             return;
  39.         }
  40.  
  41.         long lastChat = delayMap.get(id);
  42.         long now = System.currentTimeMillis();
  43.  
  44.         long diff = now - lastChat;
  45.         long seconds = TimeUnit.MILLISECONDS.toSeconds(diff);
  46.         int time = (int) (TimeUnit.MILLISECONDS.toSeconds(chatDelay) - seconds);
  47.  
  48.         if (!(diff >= chatDelay)) {
  49.             event.setCancelled(true);
  50.  
  51.             if (warnMessage != null && !warnMessage.isEmpty()) {
  52.                 String message = warnMessage.replace("{time}", Integer.toString(time));
  53.                 message = ChatColor.translateAlternateColorCodes('&', message);
  54.  
  55.                 event.getPlayer().sendMessage(message);
  56.             }
  57.  
  58.             return;
  59.         }
  60.  
  61.         delayMap.put(id, System.currentTimeMillis());
  62.     }
  63.  
  64.     @EventHandler
  65.     public void onQuit(PlayerQuitEvent event) {
  66.         UUID id = event.getPlayer().getUniqueId();
  67.  
  68.         if (delayMap.containsKey(id)) {
  69.             delayMap.remove(id);
  70.         }
  71.     }
  72.  
  73.     @EventHandler
  74.     public void onKick(PlayerKickEvent event) {
  75.         UUID id = event.getPlayer().getUniqueId();
  76.  
  77.         if (delayMap.containsKey(id)) {
  78.             delayMap.remove(id);
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement