Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.assist.chatdelay;
- import java.util.HashMap;
- import java.util.UUID;
- import java.util.concurrent.TimeUnit;
- import org.bukkit.ChatColor;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.AsyncPlayerChatEvent;
- import org.bukkit.event.player.PlayerKickEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- public class ChatDelay extends JavaPlugin implements Listener {
- private int chatDelay;
- private String warnMessage;
- private HashMap<UUID, Long> delayMap = new HashMap<>();
- public void onEnable() {
- getConfig().options().copyDefaults(true);
- saveConfig();
- chatDelay = getConfig().getInt("chatDelay", 2500);
- warnMessage = getConfig().getString("warnMessage", null);
- getServer().getPluginManager().registerEvents(this, this);
- }
- @EventHandler
- public void onChat(AsyncPlayerChatEvent event) {
- UUID id = event.getPlayer().getUniqueId();
- if (!delayMap.containsKey(id)) {
- delayMap.put(id, System.currentTimeMillis());
- return;
- }
- long lastChat = delayMap.get(id);
- long now = System.currentTimeMillis();
- long diff = now - lastChat;
- long seconds = TimeUnit.MILLISECONDS.toSeconds(diff);
- int time = (int) (TimeUnit.MILLISECONDS.toSeconds(chatDelay) - seconds);
- if (!(diff >= chatDelay)) {
- event.setCancelled(true);
- if (warnMessage != null && !warnMessage.isEmpty()) {
- String message = warnMessage.replace("{time}", Integer.toString(time));
- message = ChatColor.translateAlternateColorCodes('&', message);
- event.getPlayer().sendMessage(message);
- }
- return;
- }
- delayMap.put(id, System.currentTimeMillis());
- }
- @EventHandler
- public void onQuit(PlayerQuitEvent event) {
- UUID id = event.getPlayer().getUniqueId();
- if (delayMap.containsKey(id)) {
- delayMap.remove(id);
- }
- }
- @EventHandler
- public void onKick(PlayerKickEvent event) {
- UUID id = event.getPlayer().getUniqueId();
- if (delayMap.containsKey(id)) {
- delayMap.remove(id);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement