001 package org.bukkit.plugin.messaging;
002
003 import java.util.Set;
004 import org.bukkit.plugin.Plugin;
005
006 /**
007 * Represents a possible recipient for a Plugin Message.
008 */
009 public interface PluginMessageRecipient {
010 /**
011 * Sends this recipient a Plugin Message on the specified outgoing
012 * channel.
013 * <p>
014 * The message may not be larger than {@link Messenger#MAX_MESSAGE_SIZE}
015 * bytes, and the plugin must be registered to send messages on the
016 * specified channel.
017 *
018 * @param source The plugin that sent this message.
019 * @param channel The channel to send this message on.
020 * @param message The raw message to send.
021 * @throws IllegalArgumentException Thrown if the source plugin is
022 * disabled.
023 * @throws IllegalArgumentException Thrown if source, channel or message
024 * is null.
025 * @throws MessageTooLargeException Thrown if the message is too big.
026 * @throws ChannelNotRegisteredException Thrown if the channel is not
027 * registered for this plugin.
028 */
029 public void sendPluginMessage(Plugin source, String channel, byte[] message);
030
031 /**
032 * Gets a set containing all the Plugin Channels that this client is
033 * listening on.
034 *
035 * @return Set containing all the channels that this client may accept.
036 */
037 public Set<String> getListeningPluginChannels();
038 }