From e54b7ba74ca0de0628500dfa7a5c481d31e2ca74 Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Fri, 2 Sep 2011 22:21:26 +0100 Subject: Added new Server.broadcast method to broadcast to specific groups of users, including non-players --- src/main/java/org/bukkit/Bukkit.java | 4 ++++ src/main/java/org/bukkit/Server.java | 24 ++++++++++++++++++++++ .../util/permissions/CommandPermissions.java | 2 +- .../util/permissions/DefaultPermissions.java | 2 +- 4 files changed, 30 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java index 0d6e2874..5ab3f94e 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -219,4 +219,8 @@ public final class Bukkit { public static void shutdown() { server.shutdown(); } + + public int broadcast(String message, String permission) { + return server.broadcast(message, permission); + } } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java index ab512269..1edceb18 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -21,6 +21,19 @@ import org.bukkit.scheduler.BukkitScheduler; * Represents a server implementation */ public interface Server { + /** + * Used for all administrative messages, such as an operator using a command. + * + * For use in {@link #broadcast(java.lang.String, java.lang.String)} + */ + public static final String BROADCAST_CHANNEL_ADMINISTRATIVE = "bukkit.broadcast.admin"; + + /** + * Used for all announcement messages, such as informing users that a player has joined. + * + * For use in {@link #broadcast(java.lang.String, java.lang.String)} + */ + public static final String BROADCAST_CHANNEL_USERS = "bukkit.broadcast.user"; /** * Gets the name of this server implementation @@ -103,6 +116,8 @@ public interface Server { /** * Broadcast a message to all players. * + * This is the same as calling {@link #broadcast(java.lang.String, java.lang.String)} to {@link #BROADCAST_CHANNEL_USERS} + * * @param message the message * @return the number of players */ @@ -351,4 +366,13 @@ public interface Server { * Shutdowns the server, stopping everything. */ public void shutdown(); + + /** + * Broadcasts the specified message to every user with the given permission + * + * @param message Message to broadcast + * @param permission Permission the users must have to receive the broadcast + * @return Amount of users who received the message + */ + public int broadcast(String message, String permission); } diff --git a/src/main/java/org/bukkit/util/permissions/CommandPermissions.java b/src/main/java/org/bukkit/util/permissions/CommandPermissions.java index 654b4c10..ab835553 100644 --- a/src/main/java/org/bukkit/util/permissions/CommandPermissions.java +++ b/src/main/java/org/bukkit/util/permissions/CommandPermissions.java @@ -3,7 +3,7 @@ package org.bukkit.util.permissions; import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionDefault; -public class CommandPermissions { +public final class CommandPermissions { private static final String ROOT = "bukkit.command"; private static final String PREFIX = ROOT + "."; diff --git a/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java b/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java index ec483ea4..82a41385 100644 --- a/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java +++ b/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java @@ -1,6 +1,5 @@ package org.bukkit.util.permissions; -import java.util.HashMap; import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.permissions.Permission; @@ -77,6 +76,7 @@ public final class DefaultPermissions { Permission parent = registerPermission(ROOT, "Gives the user the ability to use all Craftbukkit utilities and commands"); CommandPermissions.registerPermissions(parent); + BroadcastPermissions.registerPermissions(parent); parent.recalculatePermissibles(); } -- cgit v1.2.3