1 |
torben |
1968 |
package dk.thoerup.bukkit.hoeruputils;
|
2 |
|
|
|
3 |
|
|
import java.util.Collections;
|
4 |
|
|
import java.util.Set;
|
5 |
|
|
import java.util.TreeSet;
|
6 |
|
|
|
7 |
|
|
import org.bukkit.ChatColor;
|
8 |
|
|
import org.bukkit.Server;
|
9 |
|
|
import org.bukkit.command.Command;
|
10 |
|
|
import org.bukkit.command.CommandExecutor;
|
11 |
|
|
import org.bukkit.command.CommandSender;
|
12 |
|
|
import org.bukkit.entity.Player;
|
13 |
|
|
import org.bukkit.event.EventHandler;
|
14 |
|
|
import org.bukkit.event.Listener;
|
15 |
|
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
16 |
|
|
|
17 |
|
|
public class Mute implements CommandExecutor, Listener{
|
18 |
|
|
|
19 |
|
|
Set<String> muted = Collections.synchronizedSet( new TreeSet<String>() );
|
20 |
|
|
|
21 |
|
|
Server server;
|
22 |
|
|
HoerupUtilsPlugin plugin;
|
23 |
|
|
|
24 |
|
|
|
25 |
|
|
public Mute(HoerupUtilsPlugin plugin) {
|
26 |
|
|
this.plugin = plugin;
|
27 |
|
|
this.server = plugin.getServer();
|
28 |
|
|
}
|
29 |
|
|
|
30 |
|
|
@Override
|
31 |
|
|
public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {
|
32 |
|
|
|
33 |
|
|
if (sender instanceof Player) {
|
34 |
|
|
Player p = (Player) sender;
|
35 |
|
|
if (p.isOp() == false && p.hasPermission("hoeruputils.mute")==false) {
|
36 |
|
|
sender.sendMessage(ChatColor.YELLOW + "You don't have permission to use this");
|
37 |
|
|
return true;
|
38 |
|
|
}
|
39 |
|
|
}
|
40 |
|
|
|
41 |
|
|
if ( args.length != 1) {
|
42 |
|
|
sender.sendMessage(ChatColor.YELLOW + "Usage: mute|unmute <player>");
|
43 |
|
|
}
|
44 |
|
|
|
45 |
|
|
Player target = server.getPlayer( args[0] );
|
46 |
|
|
if (target == null) {
|
47 |
|
|
sender.sendMessage(ChatColor.YELLOW + "Mute: Player " + args[0] + " not found");
|
48 |
|
|
}
|
49 |
|
|
|
50 |
|
|
if (command.getName().equals("mute")) {
|
51 |
|
|
muted.add( target.getName() );
|
52 |
|
|
sender.sendMessage( ChatColor.YELLOW + "Mute ok" );
|
53 |
|
|
} else {//unmute
|
54 |
|
|
muted.remove( target.getName() );
|
55 |
|
|
sender.sendMessage( ChatColor.YELLOW + "Unmute ok" );
|
56 |
|
|
}
|
57 |
|
|
return true;
|
58 |
|
|
}
|
59 |
|
|
|
60 |
|
|
@EventHandler
|
61 |
|
|
public void onPlayerChat(AsyncPlayerChatEvent event) {
|
62 |
|
|
if (muted.contains( event.getPlayer().getName() )) {
|
63 |
|
|
event.setCancelled(true);
|
64 |
|
|
event.getPlayer().sendMessage(ChatColor.YELLOW + "You cannot chat while you are muted !");
|
65 |
|
|
}
|
66 |
|
|
}
|
67 |
|
|
|
68 |
|
|
|
69 |
|
|
}
|