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 Detail

      • 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.
        See Also:
        Constant Field Values
    • Method Detail

      • isReservedChannel

        boolean isReservedChannel​(@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
                                           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.
        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
                                             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.
        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
                                             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
        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.
        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
                                             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.
        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
                                             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.
        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
                                             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
        Set<String> getOutgoingChannels()
        Gets a set containing all the outgoing plugin channels.
        Returns:
        List of all registered outgoing plugin channels.
      • getOutgoingChannels

        @NotNull
        Set<String> getOutgoingChannels​(@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
        Set<String> getIncomingChannels()
        Gets a set containing all the incoming plugin channels.
        Returns:
        List of all registered incoming plugin channels.
      • getIncomingChannels

        @NotNull
        Set<String> getIncomingChannels​(@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
        Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations​(@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
        Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations​(@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
        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.
        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
                                    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
                                            Plugin plugin,
                                            @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
                                            Plugin plugin,
                                            @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
                                     Player source,
                                     @NotNull
                                     String channel,
                                     @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.