Reduce duplicated broadcast code.

This commit is contained in:
KHobbits 2013-05-26 17:58:04 +01:00
parent 423c8c54dc
commit 6512a53a3f
9 changed files with 34 additions and 70 deletions

View File

@ -615,11 +615,22 @@ public class Essentials extends JavaPlugin implements IEssentials
@Override
public int broadcastMessage(final IUser sender, final String message)
{
if (sender == null)
return broadcastMessage(sender, null, message);
}
@Override
public int broadcastMessage(final CommandSender sender, final String permission, final String message)
{
return broadcastMessage(null, permission, message);
}
private int broadcastMessage(final IUser sender, final String permission, final String message)
{
if (sender == null && permission == null)
{
return getServer().broadcastMessage(message);
}
if (sender.isHidden())
if (sender != null && sender.isHidden())
{
return 0;
}
@ -628,7 +639,8 @@ public class Essentials extends JavaPlugin implements IEssentials
for (Player player : players)
{
final User user = getUser(player);
if (!user.isIgnoredPlayer(sender))
if ((permission == null && (sender == null || !user.isIgnoredPlayer(sender)))
|| (permission != null && user.isAuthorized(permission)))
{
player.sendMessage(message);
}

View File

@ -31,6 +31,8 @@ public interface IEssentials extends Plugin
int broadcastMessage(IUser sender, String message);
int broadcastMessage(CommandSender sender, String permission, String message);
ISettings getSettings();
BukkitScheduler getScheduler();
@ -46,7 +48,7 @@ public interface IEssentials extends Plugin
Methods getPaymentMethod();
BukkitTask runTaskAsynchronously(Runnable run);
BukkitTask runTaskLaterAsynchronously(Runnable run, long delay);
int scheduleSyncDelayedTask(Runnable run);
@ -66,12 +68,12 @@ public interface IEssentials extends Plugin
ItemDb getItemDb();
UserMap getUserMap();
Metrics getMetrics();
void setMetrics(Metrics metrics);
EssentialsTimer getTimer();
List<String> getVanishedPlayers();
}

View File

@ -67,21 +67,14 @@ public class Commandban extends EssentialsCommand
user.setBanned(true);
user.setBanTimeout(0);
user.kickPlayer(_("banFormat", banReason, senderName));
server.getLogger().log(Level.INFO, _("playerBanned", senderName, user.getName(), banReason));
if (nomatch)
{
sender.sendMessage(_("userUnknown", user.getName()));
}
for (Player onlinePlayer : server.getOnlinePlayers())
{
final User player = ess.getUser(onlinePlayer);
if (onlinePlayer == sender || player.isAuthorized("essentials.ban.notify"))
{
onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason));
}
}
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerBanned", senderName, user.getName(), banReason));
}
}

View File

@ -43,14 +43,7 @@ public class Commandbanip extends EssentialsCommand
ess.getServer().banIP(ipAddress);
server.getLogger().log(Level.INFO, _("playerBanIpAddress", senderName, ipAddress));
for (Player onlinePlayer : server.getOnlinePlayers())
{
final User onlineUser = ess.getUser(onlinePlayer);
if (onlinePlayer == sender || onlineUser.isAuthorized("essentials.ban.notify"))
{
onlinePlayer.sendMessage(_("playerBanIpAddress", senderName, ipAddress));
}
}
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerBanIpAddress", senderName, ipAddress));
}
}

View File

@ -47,14 +47,6 @@ public class Commandkick extends EssentialsCommand
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
server.getLogger().log(Level.INFO, _("playerKicked", senderName, target.getName(), kickReason));
for (Player onlinePlayer : server.getOnlinePlayers())
{
User player = ess.getUser(onlinePlayer);
if (player.isAuthorized("essentials.kick.notify"))
{
onlinePlayer.sendMessage(_("playerKicked", senderName, target.getName(), kickReason));
}
}
ess.broadcastMessage(sender, "essentials.kick.notify", _("playerKicked", senderName, target.getName(), kickReason));
}
}

View File

@ -54,14 +54,7 @@ public class Commandmute extends EssentialsCommand
sender.sendMessage(_("mutedPlayer", player.getDisplayName()));
player.sendMessage(_("playerMuted"));
}
for (Player onlinePlayer : server.getOnlinePlayers())
{
final User user = ess.getUser(onlinePlayer);
if (onlinePlayer != sender && user.isAuthorized("essentials.mute.notify"))
{
onlinePlayer.sendMessage(_("muteNotify", sender.getName(), player.getName()));
}
}
ess.broadcastMessage(sender, "essentials.mute.notify", _("muteNotify", sender.getName(), player.getName()));
}
else
{

View File

@ -59,14 +59,7 @@ public class Commandtempban extends EssentialsCommand
user.setBanTimeout(banTimestamp);
user.setBanned(true);
user.kickPlayer(banReason);
for (Player onlinePlayer : server.getOnlinePlayers())
{
final User player = ess.getUser(onlinePlayer);
if (player.isAuthorized("essentials.ban.notify"))
{
onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason));
}
}
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerBanned", senderName, user.getName(), banReason));
}
}

View File

@ -45,14 +45,7 @@ public class Commandunban extends EssentialsCommand
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
server.getLogger().log(Level.INFO, _("playerUnbanned", senderName, name));
for (Player onlinePlayer : server.getOnlinePlayers())
{
final User onlineUser = ess.getUser(onlinePlayer);
if (onlinePlayer == sender || onlineUser.isAuthorized("essentials.ban.notify"))
{
onlinePlayer.sendMessage(_("playerUnbanned", senderName, name));
}
}
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerUnbanned", senderName, name));
}
}

View File

@ -43,13 +43,6 @@ public class Commandunbanip extends EssentialsCommand
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
server.getLogger().log(Level.INFO, _("playerUnbanIpAddress", senderName, ipAddress));
for (Player onlinePlayer : server.getOnlinePlayers())
{
final User onlineUser = ess.getUser(onlinePlayer);
if (onlinePlayer == sender || onlineUser.isAuthorized("essentials.ban.notify"))
{
onlinePlayer.sendMessage(_("playerUnbanIpAddress", senderName, ipAddress));
}
}
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerUnbanIpAddress", senderName, ipAddress));
}
}