package dk.thoerup.bukkit.hoeruputils; import java.util.Collections; import java.util.Set; import java.util.TreeSet; import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; public class Mute implements CommandExecutor, Listener{ Set muted = Collections.synchronizedSet( new TreeSet() ); Server server; HoerupUtilsPlugin plugin; public Mute(HoerupUtilsPlugin plugin) { this.plugin = plugin; this.server = plugin.getServer(); } @Override public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) { if (sender instanceof Player) { Player p = (Player) sender; if (p.isOp() == false && p.hasPermission("hoeruputils.mute")==false) { sender.sendMessage(ChatColor.YELLOW + "You don't have permission to use this"); return true; } } if ( args.length != 1) { sender.sendMessage(ChatColor.YELLOW + "Usage: mute|unmute "); } Player target = server.getPlayer( args[0] ); if (target == null) { sender.sendMessage(ChatColor.YELLOW + "Mute: Player " + args[0] + " not found"); } if (command.getName().equals("mute")) { muted.add( target.getName() ); sender.sendMessage( ChatColor.YELLOW + "Mute ok" ); } else {//unmute muted.remove( target.getName() ); sender.sendMessage( ChatColor.YELLOW + "Unmute ok" ); } return true; } @EventHandler public void onPlayerChat(AsyncPlayerChatEvent event) { if (muted.contains( event.getPlayer().getName() )) { event.setCancelled(true); event.getPlayer().sendMessage(ChatColor.YELLOW + "You cannot chat while you are muted !"); } } }