Don't eavesdrop when target can eavesdrop.

This commit is contained in:
ryanhamshire 2015-07-16 21:00:53 -07:00
parent fb33b28d5d
commit 2a7755d2a7

View File

@ -454,31 +454,37 @@ class PlayerEventHandler implements Listener
//if a whisper //if a whisper
if(GriefPrevention.instance.config_eavesdrop_whisperCommands.contains(command) && args.length > 1) if(GriefPrevention.instance.config_eavesdrop_whisperCommands.contains(command) && args.length > 1)
{ {
//if eavesdrop enabled, eavesdrop //determine target player, might be NULL
if(GriefPrevention.instance.config_whisperNotifications && !event.getPlayer().hasPermission("griefprevention.eavesdrop")) Player targetPlayer = GriefPrevention.instance.getServer().getPlayer(args[1]);
//if eavesdrop enabled and sender doesn't have the eavesdrop permission, eavesdrop
if(GriefPrevention.instance.config_whisperNotifications && !player.hasPermission("griefprevention.eavesdrop"))
{ {
StringBuilder logMessageBuilder = new StringBuilder(); //except for when the recipient has eavesdrop permission
logMessageBuilder.append("[[").append(event.getPlayer().getName()).append("]] "); if(targetPlayer == null || targetPlayer.hasPermission("griefprevention.eavesdrop"))
{
for(int i = 1; i < args.length; i++) StringBuilder logMessageBuilder = new StringBuilder();
{ logMessageBuilder.append("[[").append(event.getPlayer().getName()).append("]] ");
logMessageBuilder.append(args[i]).append(" ");
} for(int i = 1; i < args.length; i++)
{
String logMessage = logMessageBuilder.toString(); logMessageBuilder.append(args[i]).append(" ");
}
Collection<Player> players = (Collection<Player>)GriefPrevention.instance.getServer().getOnlinePlayers();
for(Player onlinePlayer : players) String logMessage = logMessageBuilder.toString();
{
if(onlinePlayer.hasPermission("griefprevention.eavesdrop") && !onlinePlayer.getName().equalsIgnoreCase(args[1])) Collection<Player> players = (Collection<Player>)GriefPrevention.instance.getServer().getOnlinePlayers();
{ for(Player onlinePlayer : players)
onlinePlayer.sendMessage(ChatColor.GRAY + logMessage); {
} if(onlinePlayer.hasPermission("griefprevention.eavesdrop") && !onlinePlayer.equals(targetPlayer))
} {
onlinePlayer.sendMessage(ChatColor.GRAY + logMessage);
}
}
}
} }
//determine target player //ignore feature
Player targetPlayer = GriefPrevention.instance.getServer().getPlayer(args[1]);
if(targetPlayer != null && targetPlayer.isOnline()) if(targetPlayer != null && targetPlayer.isOnline())
{ {
//if either is ignoring the other, cancel this command //if either is ignoring the other, cancel this command