From fe0cd5405b68ee437fc179558d5e9086323fbcc8 Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Fri, 2 Sep 2011 22:24:28 +0100 Subject: [PATCH] Implemented new broadcast method --- .../org/bukkit/craftbukkit/CraftServer.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 27367d5507..30959af211 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -53,6 +53,7 @@ import net.minecraft.server.ItemStack; import net.minecraft.server.WorldMap; import net.minecraft.server.WorldMapCollection; import org.bukkit.*; +import org.bukkit.permissions.Permissible; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.ServicesManager; @@ -226,13 +227,7 @@ public final class CraftServer implements Server { } public int broadcastMessage(String message) { - Player[] players = getOnlinePlayers(); - - for (Player player : players) { - player.sendMessage(message); - } - - return players.length; + return broadcast(message, BROADCAST_CHANNEL_USERS); } public Player getPlayer(final EntityPlayer entity) { @@ -796,4 +791,19 @@ public final class CraftServer implements Server { public void shutdown() { console.a(); } + + public int broadcast(String message, String permission) { + int count = 0; + Set permissibles = getPluginManager().getPermissionSubscriptions(permission); + + for (Permissible permissible : permissibles) { + if (permissible instanceof CommandSender) { + CommandSender user = (CommandSender)permissible; + user.sendMessage(message); + count++; + } + } + + return count; + } }