Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.plugin.sito;
- import com.google.common.collect.Maps;
- import java.util.Map;
- import org.bukkit.Server;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.command.PluginCommand;
- 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.AsyncPlayerChatEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- public class BoostChat
- extends JavaPlugin
- implements Listener
- {
- Map<Player, Long> delay = Maps.newHashMap();
- String s = "&a&lBoost&b&lChat &7& ";
- boolean muted = false;
- long time = 5000L;
- public void onEnable()
- {
- getServer().getPluginManager().registerEvents(this, this);
- getCommand("mutechat").setExecutor(this);
- getCommand("slowchat").setExecutor(this);
- getCommand("clearchat").setExecutor(this);
- }
- boolean isDouble(String s)
- {
- try
- {
- Double.parseDouble(s);
- return true;
- }
- catch (NumberFormatException e) {}
- return false;
- }
- @EventHandler
- public void quit(PlayerQuitEvent e)
- {
- this.delay.remove(e.getPlayer());
- }
- @EventHandler(priority=EventPriority.LOWEST)
- public void chat(AsyncPlayerChatEvent e)
- {
- Player p = e.getPlayer();
- if ((this.delay.containsKey(p)) && (System.currentTimeMillis() >= ((Long)this.delay.get(p)).longValue())) {
- this.delay.remove(p);
- }
- if ((this.muted) && (!p.hasPermission("boostchat.bypass")))
- {
- e.setCancelled(true);
- e.setMessage(null);
- p.sendMessage(this.s + "&aChat is currently muted");
- }
- else if (this.delay.containsKey(p))
- {
- e.setCancelled(true);
- e.setMessage(null);
- p.sendMessage("&c&l(!) &eYou must wait &a&n" + (((Long)this.delay.get(p)).longValue() - System.currentTimeMillis()) + " ms&e before using chat");
- }
- else if (!p.hasPermission("boostchat.bypass"))
- {
- this.delay.put(p, Long.valueOf(System.currentTimeMillis() + this.time));
- }
- }
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
- {
- if ((command.getName().equals("mutechat")) && (sender.hasPermission("boost.mutechat")))
- {
- if (!this.muted)
- {
- this.muted = true;
- if(args.length == 1 && (args[0].equalsIgnoreCase("-s") || args[0].equalsIgnoreCase("silent"))) {
- getServer().broadcastMessage(this.s + "&cChat has been muted!");
- } else {
- getServer().broadcastMessage(this.s + "&cChat has been muted by &e" + sender.getName() + "&c!");
- }
- }
- else
- {
- this.muted = false;
- if ((args.length == 1) && ((args[0].equalsIgnoreCase("-s")) || (args[0].equalsIgnoreCase("silent")))) {
- getServer().broadcastMessage(this.s + "&aChat has been enabled!");
- } else {
- getServer().broadcastMessage(this.s + "&aChat has been enabled by &e" + sender.getName() + "&a!");
- }
- }
- }
- else if ((command.getName().equalsIgnoreCase("slowchat")) && (sender.hasPermission("boost.slowchat")))
- {
- if ((args.length == 2) && (args[0].equalsIgnoreCase("set")) && (isDouble(args[1])))
- {
- this.time = (long)((Double.parseDouble(args[1]) * 1000.0D));
- sender.sendMessage(this.s + "&aSet slow chat time to &e" + args[1] + " &aseconds");
- return true;
- }
- sender.sendMessage(this.s + "&aSlow chat is currently at &e" + this.time / 1000L + " &aseconds");
- sender.sendMessage(this.s + "&aUse &c/slowchat set <seconds> &ato change it");
- }
- else if ((command.getName().equalsIgnoreCase("clearchat")) && (sender.hasPermission("boost.clearchat")))
- {
- for (int i = 0; i < 100; i++) {
- getServer().broadcastMessage("\n");
- }
- if ((args.length == 1) && ((args[0].equalsIgnoreCase("-s")) || (args[0].equalsIgnoreCase("silent")))) {
- getServer().broadcastMessage(this.s + "&cChat has been cleared!");
- } else {
- getServer().broadcastMessage(this.s + "&cChat has been cleared by &e" + sender.getName() + "&c!");
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement