Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / plugin / messaging / PluginMessageRecipient.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit.plugin.messaging;

import org.bukkit.plugin.Plugin;

import java.util.Set;

/**
 * Represents a possible recipient for a Plugin Message.
 */
public interface PluginMessageRecipient
{
	/**
	 * Sends this recipient a Plugin Message on the specified outgoing
	 * channel.
	 * <p>
	 * The message may not be larger than {@link Messenger#MAX_MESSAGE_SIZE}
	 * bytes, and the plugin must be registered to send messages on the
	 * specified channel.
	 *
	 * @param source  The plugin that sent this message.
	 * @param channel The channel to send this message on.
	 * @param message The raw message to send.
	 * @throws IllegalArgumentException      Thrown if the source plugin is
	 *                                       disabled.
	 * @throws IllegalArgumentException      Thrown if source, channel or message
	 *                                       is null.
	 * @throws MessageTooLargeException      Thrown if the message is too big.
	 * @throws ChannelNotRegisteredException Thrown if the channel is not
	 *                                       registered for this plugin.
	 */
	public void sendPluginMessage(Plugin source, String channel, byte[] message);

	/**
	 * Gets a set containing all the Plugin Channels that this client is
	 * listening on.
	 *
	 * @return Set containing all the channels that this client may accept.
	 */
	public Set<String> getListeningPluginChannels();
}