Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.anonym927;
- import java.util.logging.Logger;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Server;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerChatEvent;
- import org.bukkit.plugin.PluginDescriptionFile;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Main extends JavaPlugin implements Listener
- {
- private static Logger console;
- private static Main instance;
- public static final String RED = ChatColor.RED.toString();
- @Override
- public void onDisable()
- {
- instance = null;
- console.info("ChatSecurer disabled!");
- }
- @Override
- public void onEnable()
- {
- instance = this;
- Server s = this.getServer();
- console = this.getLogger();
- PluginManager pm = s.getPluginManager();
- pm.registerEvents(this, this);
- PluginDescriptionFile pdf = this.getDescription();
- console.info("ChatSecurer enabled!");
- }
- private long refreshingTime = 5000;//what time to wait for all messages
- private int messageCap = 3;//how many messages can be sent in said time
- private long chatLock = 5000;
- private double messages = 0;
- private long chatLocked = 0;
- private long lastTime = System.currentTimeMillis();
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerChat(PlayerChatEvent e)
- {
- long currentTime = System.currentTimeMillis();
- long delta = currentTime -lastTime;
- chatLocked -= delta;
- messages -= messageCap * ((double)delta / refreshingTime);
- if(messages < 0D)
- messages = 0D;
- lastTime = currentTime;
- Player sender = e.getPlayer();
- if(chatLocked > 0)
- {
- sender.sendMessage(RED.concat("Der Chat ist gesperrt! Deine Nachricht wurde nicht gesendet!"));
- e.setCancelled(true);
- return;
- }
- messages++;
- if(messages > messageCap)
- {
- Bukkit.getServer().broadcastMessage(new StringBuilder(RED).append("Die Message-Grenze wurde überschritten durch die Nachricht von").append(sender.getName()).append("! Chat wird für 5 Sekunden gesperrt!").toString());
- e.setCancelled(true);
- chatLocked = chatLock;
- messages = 0;
- }
- }
- }
Add Comment
Please, Sign In to add comment