Package org.bukkit.plugin.messaging

# Interface Messenger

All Known Implementing Classes:
  `StandardMessenger`

public interface Messenger
A class responsible for managing the registrations of plugin channels and their listeners. Channel names must contain a colon separator and consist of only [a-z0-9/._-] - i.e. they MUST be valid `NamespacedKey`. The "BungeeCord" channel is an exception and may only take this form.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`MAX_CHANNEL_SIZE`
Represents the largest size that a Plugin Channel may be.
`static final int`
`MAX_MESSAGE_SIZE`
Represents the largest size that an individual Plugin Message may be.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispatchIncomingMessage(@NotNull Player source, @NotNull String channel, @org.jetbrains.annotations.NotNull byte[] message)`
Dispatches the specified incoming message to any registered listeners.
`@NotNull Set<PluginMessageListenerRegistration>`
`getIncomingChannelRegistrations(@NotNull String channel)`
Gets a set containing all the incoming plugin channel registrations that are on the requested channel.
`@NotNull Set<PluginMessageListenerRegistration>`
`getIncomingChannelRegistrations(@NotNull Plugin plugin)`
Gets a set containing all the incoming plugin channel registrations that the specified plugin has.
`@NotNull Set<PluginMessageListenerRegistration>`
`getIncomingChannelRegistrations(@NotNull Plugin plugin, @NotNull String channel)`
Gets a set containing all the incoming plugin channel registrations that the specified plugin has on the requested channel.
`@NotNull Set<String>`
`getIncomingChannels()`
Gets a set containing all the incoming plugin channels.
`@NotNull Set<String>`
`getIncomingChannels(@NotNull Plugin plugin)`
Gets a set containing all the incoming plugin channels that the specified plugin is registered for.
`@NotNull Set<String>`
`getOutgoingChannels()`
Gets a set containing all the outgoing plugin channels.
`@NotNull Set<String>`
`getOutgoingChannels(@NotNull Plugin plugin)`
Gets a set containing all the outgoing plugin channels that the specified plugin is registered to.
`boolean`
`isIncomingChannelRegistered(@NotNull Plugin plugin, @NotNull String channel)`
Checks if the specified plugin has registered to receive incoming messages through the requested channel.
`boolean`
`isOutgoingChannelRegistered(@NotNull Plugin plugin, @NotNull String channel)`
Checks if the specified plugin has registered to send outgoing messages through the requested channel.
`boolean`
`isRegistrationValid(@NotNull PluginMessageListenerRegistration registration)`
Checks if the specified plugin message listener registration is valid.
`boolean`
`isReservedChannel(@NotNull String channel)`
Checks if the specified channel is a reserved name.
`@NotNull PluginMessageListenerRegistration`
`registerIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel, @NotNull PluginMessageListener listener)`
Registers the specific plugin for listening on the requested incoming plugin channel, allowing it to act upon any plugin messages.
`void`
`registerOutgoingPluginChannel(@NotNull Plugin plugin, @NotNull String channel)`
Registers the specific plugin to the requested outgoing plugin channel, allowing it to send messages through that channel to any clients.
`void`
`unregisterIncomingPluginChannel(@NotNull Plugin plugin)`
Unregisters the specific plugin from listening on all plugin channels through all listeners.
`void`
`unregisterIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel)`
Unregisters the specific plugin from listening on the requested incoming plugin channel, no longer allowing it to act upon any plugin messages.
`void`
`unregisterIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel, @NotNull PluginMessageListener listener)`
Unregisters the specific plugin's listener from listening on the requested incoming plugin channel, no longer allowing it to act upon any plugin messages.
`void`
`unregisterOutgoingPluginChannel(@NotNull Plugin plugin)`
Unregisters the specific plugin from all outgoing plugin channels, no longer allowing it to send any plugin messages.
`void`
`unregisterOutgoingPluginChannel(@NotNull Plugin plugin, @NotNull String channel)`
Unregisters the specific plugin from the requested outgoing plugin channel, no longer allowing it to send messages through that channel to any clients.

## Field Details

### MAX_MESSAGE_SIZE

static final int MAX_MESSAGE_SIZE
Represents the largest size that an individual Plugin Message may be.

See Also:
  - Constant Field Values

### MAX_CHANNEL_SIZE

static final int MAX_CHANNEL_SIZE
Represents the largest size that a Plugin Channel may be.

## Method Details

### isReservedChannel

boolean isReservedChannel(@NotNull @NotNull String channel)
Checks if the specified channel is a reserved name.
All channels within the "minecraft" namespace except for "minecraft:brand" are reserved.

Parameters:
  `channel` - Channel name to check.
Returns:
  True if the channel is reserved, otherwise false.
Throws:
  `IllegalArgumentException` - Thrown if channel is null.

### registerOutgoingPluginChannel

void registerOutgoingPluginChannel(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel)
Registers the specific plugin to the requested outgoing plugin channel, allowing it to send messages through that channel to any clients.

Parameters:
  `plugin` - Plugin that wishes to send messages through the channel.
  `channel` - Channel to register.
Throws:
  `IllegalArgumentException` - Thrown if plugin or channel is null.

### unregisterOutgoingPluginChannel

void unregisterOutgoingPluginChannel(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel)
Unregisters the specific plugin from the requested outgoing plugin channel, no longer allowing it to send messages through that channel to any clients.

Parameters:
  `plugin` - Plugin that no longer wishes to send messages through the channel.
  `channel` - Channel to unregister.
Throws:
  `IllegalArgumentException` - Thrown if plugin or channel is null.

### unregisterOutgoingPluginChannel

void unregisterOutgoingPluginChannel(@NotNull @NotNull Plugin plugin)
Unregisters the specific plugin from all outgoing plugin channels, no longer allowing it to send any plugin messages.

Parameters:
  `plugin` - Plugin that no longer wishes to send plugin messages.
Throws:
  `IllegalArgumentException` - Thrown if plugin is null.

### registerIncomingPluginChannel

@NotNull @NotNull PluginMessageListenerRegistration registerIncomingPluginChannel(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel, @NotNull @NotNull PluginMessageListener listener)
Registers the specific plugin for listening on the requested incoming plugin channel, allowing it to act upon any plugin messages.

Parameters:
  `plugin` - Plugin that wishes to register to this channel.
  `channel` - Channel to register.
  `listener` - Listener to receive messages on.
Returns:
  The resulting registration that was made as a result of this method.
Throws:
  `IllegalArgumentException` - Thrown if plugin, channel or listener is null, or the listener is already registered for this channel.

### unregisterIncomingPluginChannel

void unregisterIncomingPluginChannel(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel, @NotNull @NotNull PluginMessageListener listener)
Unregisters the specific plugin's listener from listening on the requested incoming plugin channel, no longer allowing it to act upon any plugin messages.

Parameters:
  `plugin` - Plugin that wishes to unregister from this channel.
  `channel` - Channel to unregister.
  `listener` - Listener to stop receiving messages on.
Throws:
  `IllegalArgumentException` - Thrown if plugin, channel or listener is null.

### unregisterIncomingPluginChannel

void unregisterIncomingPluginChannel(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel)
Unregisters the specific plugin from listening on the requested incoming plugin channel, no longer allowing it to act upon any plugin messages.

Parameters:
  `plugin` - Plugin that wishes to unregister from this channel.
  `channel` - Channel to unregister.
Throws:
  `IllegalArgumentException` - Thrown if plugin or channel is null.

### unregisterIncomingPluginChannel

void unregisterIncomingPluginChannel(@NotNull @NotNull Plugin plugin)
Unregisters the specific plugin from listening on all plugin channels through all listeners.

Parameters:
  `plugin` - Plugin that wishes to unregister from this channel.
Throws:
  `IllegalArgumentException` - Thrown if plugin is null.

### getOutgoingChannels

@NotNull @NotNull Set<String> getOutgoingChannels()
Gets a set containing all the outgoing plugin channels.

Returns:
  List of all registered outgoing plugin channels.

### getOutgoingChannels

@NotNull @NotNull Set<String> getOutgoingChannels(@NotNull @NotNull Plugin plugin)
Gets a set containing all the outgoing plugin channels that the specified plugin is registered to.

Parameters:
  `plugin` - Plugin to retrieve channels for.
Returns:
  List of all registered outgoing plugin channels that a plugin is registered to.
Throws:
  `IllegalArgumentException` - Thrown if plugin is null.

### getIncomingChannels

@NotNull @NotNull Set<String> getIncomingChannels()
Gets a set containing all the incoming plugin channels.

Returns:
  List of all registered incoming plugin channels.

### getIncomingChannels

@NotNull @NotNull Set<String> getIncomingChannels(@NotNull @NotNull Plugin plugin)
Gets a set containing all the incoming plugin channels that the specified plugin is registered for.

Parameters:
  `plugin` - Plugin to retrieve channels for.
Returns:
  List of all registered incoming plugin channels that the plugin is registered for.
Throws:
  `IllegalArgumentException` - Thrown if plugin is null.

### getIncomingChannelRegistrations

@NotNull @NotNull Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull @NotNull Plugin plugin)
Gets a set containing all the incoming plugin channel registrations that the specified plugin has.

Parameters:
  `plugin` - Plugin to retrieve registrations for.
Returns:
  List of all registrations that the plugin has.
Throws:
  `IllegalArgumentException` - Thrown if plugin is null.

### getIncomingChannelRegistrations

@NotNull @NotNull Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull @NotNull String channel)
Gets a set containing all the incoming plugin channel registrations that are on the requested channel.

Parameters:
  `channel` - Channel to retrieve registrations for.
Returns:
  List of all registrations that are on the channel.
Throws:
  `IllegalArgumentException` - Thrown if channel is null.

### getIncomingChannelRegistrations

@NotNull @NotNull Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel)
Gets a set containing all the incoming plugin channel registrations that the specified plugin has on the requested channel.

Parameters:
  `plugin` - Plugin to retrieve registrations for.
  `channel` - Channel to filter registrations by.
Returns:
  List of all registrations that the plugin has.
Throws:
  `IllegalArgumentException` - Thrown if plugin or channel is null.

### isRegistrationValid

boolean isRegistrationValid(@NotNull @NotNull PluginMessageListenerRegistration registration)
Checks if the specified plugin message listener registration is valid.

A registration is considered valid if it has not be unregistered and that the plugin is still enabled.

Parameters:
  `registration` - Registration to check.
Returns:
  True if the registration is valid, otherwise false.

### isIncomingChannelRegistered

boolean isIncomingChannelRegistered(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel)
Checks if the specified plugin has registered to receive incoming messages through the requested channel.

Parameters:
  `plugin` - Plugin to check registration for.
  `channel` - Channel to test for.
Returns:
  True if the channel is registered, else false.

### isOutgoingChannelRegistered

boolean isOutgoingChannelRegistered(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String channel)
Checks if the specified plugin has registered to send outgoing messages through the requested channel.

Parameters:
  `plugin` - Plugin to check registration for.
  `channel` - Channel to test for.
Returns:
  True if the channel is registered, else false.

### dispatchIncomingMessage

void dispatchIncomingMessage(@NotNull @NotNull Player source, @NotNull @NotNull String channel, @NotNull @org.jetbrains.annotations.NotNull byte[] message)
Dispatches the specified incoming message to any registered listeners.

Parameters:
  `source` - Source of the message.
  `channel` - Channel that the message was sent by.
  `message` - Raw payload of the message.