Class StandardMessenger

    • Constructor Detail

      • StandardMessenger

        public StandardMessenger()
    • Method Detail

      • isReservedChannel

        public boolean isReservedChannel​(@NotNull
                                         String channel)
        Description copied from interface: Messenger
        Checks if the specified channel is a reserved name.
        All channels within the "minecraft" namespace except for "minecraft:brand" are reserved.
        Specified by:
        isReservedChannel in interface Messenger
        Parameters:
        channel - Channel name to check.
        Returns:
        True if the channel is reserved, otherwise false.
      • registerOutgoingPluginChannel

        public void registerOutgoingPluginChannel​(@NotNull
                                                  Plugin plugin,
                                                  @NotNull
                                                  String channel)
        Description copied from interface: Messenger
        Registers the specific plugin to the requested outgoing plugin channel, allowing it to send messages through that channel to any clients.
        Specified by:
        registerOutgoingPluginChannel in interface Messenger
        Parameters:
        plugin - Plugin that wishes to send messages through the channel.
        channel - Channel to register.
      • unregisterOutgoingPluginChannel

        public void unregisterOutgoingPluginChannel​(@NotNull
                                                    Plugin plugin,
                                                    @NotNull
                                                    String channel)
        Description copied from interface: Messenger
        Unregisters the specific plugin from the requested outgoing plugin channel, no longer allowing it to send messages through that channel to any clients.
        Specified by:
        unregisterOutgoingPluginChannel in interface Messenger
        Parameters:
        plugin - Plugin that no longer wishes to send messages through the channel.
        channel - Channel to unregister.
      • unregisterOutgoingPluginChannel

        public void unregisterOutgoingPluginChannel​(@NotNull
                                                    Plugin plugin)
        Description copied from interface: Messenger
        Unregisters the specific plugin from all outgoing plugin channels, no longer allowing it to send any plugin messages.
        Specified by:
        unregisterOutgoingPluginChannel in interface Messenger
        Parameters:
        plugin - Plugin that no longer wishes to send plugin messages.
      • registerIncomingPluginChannel

        @NotNull
        public PluginMessageListenerRegistration registerIncomingPluginChannel​(@NotNull
                                                                               Plugin plugin,
                                                                               @NotNull
                                                                               String channel,
                                                                               @NotNull
                                                                               PluginMessageListener listener)
        Description copied from interface: Messenger
        Registers the specific plugin for listening on the requested incoming plugin channel, allowing it to act upon any plugin messages.
        Specified by:
        registerIncomingPluginChannel in interface Messenger
        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.
      • unregisterIncomingPluginChannel

        public void unregisterIncomingPluginChannel​(@NotNull
                                                    Plugin plugin,
                                                    @NotNull
                                                    String channel,
                                                    @NotNull
                                                    PluginMessageListener listener)
        Description copied from interface: Messenger
        Unregisters the specific plugin's listener from listening on the requested incoming plugin channel, no longer allowing it to act upon any plugin messages.
        Specified by:
        unregisterIncomingPluginChannel in interface Messenger
        Parameters:
        plugin - Plugin that wishes to unregister from this channel.
        channel - Channel to unregister.
        listener - Listener to stop receiving messages on.
      • unregisterIncomingPluginChannel

        public void unregisterIncomingPluginChannel​(@NotNull
                                                    Plugin plugin,
                                                    @NotNull
                                                    String channel)
        Description copied from interface: Messenger
        Unregisters the specific plugin from listening on the requested incoming plugin channel, no longer allowing it to act upon any plugin messages.
        Specified by:
        unregisterIncomingPluginChannel in interface Messenger
        Parameters:
        plugin - Plugin that wishes to unregister from this channel.
        channel - Channel to unregister.
      • unregisterIncomingPluginChannel

        public void unregisterIncomingPluginChannel​(@NotNull
                                                    Plugin plugin)
        Description copied from interface: Messenger
        Unregisters the specific plugin from listening on all plugin channels through all listeners.
        Specified by:
        unregisterIncomingPluginChannel in interface Messenger
        Parameters:
        plugin - Plugin that wishes to unregister from this channel.
      • getOutgoingChannels

        @NotNull
        public Set<String> getOutgoingChannels()
        Description copied from interface: Messenger
        Gets a set containing all the outgoing plugin channels.
        Specified by:
        getOutgoingChannels in interface Messenger
        Returns:
        List of all registered outgoing plugin channels.
      • getOutgoingChannels

        @NotNull
        public Set<String> getOutgoingChannels​(@NotNull
                                               Plugin plugin)
        Description copied from interface: Messenger
        Gets a set containing all the outgoing plugin channels that the specified plugin is registered to.
        Specified by:
        getOutgoingChannels in interface Messenger
        Parameters:
        plugin - Plugin to retrieve channels for.
        Returns:
        List of all registered outgoing plugin channels that a plugin is registered to.
      • getIncomingChannels

        @NotNull
        public Set<String> getIncomingChannels()
        Description copied from interface: Messenger
        Gets a set containing all the incoming plugin channels.
        Specified by:
        getIncomingChannels in interface Messenger
        Returns:
        List of all registered incoming plugin channels.
      • getIncomingChannels

        @NotNull
        public Set<String> getIncomingChannels​(@NotNull
                                               Plugin plugin)
        Description copied from interface: Messenger
        Gets a set containing all the incoming plugin channels that the specified plugin is registered for.
        Specified by:
        getIncomingChannels in interface Messenger
        Parameters:
        plugin - Plugin to retrieve channels for.
        Returns:
        List of all registered incoming plugin channels that the plugin is registered for.
      • getIncomingChannelRegistrations

        @NotNull
        public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations​(@NotNull
                                                                                      Plugin plugin)
        Description copied from interface: Messenger
        Gets a set containing all the incoming plugin channel registrations that the specified plugin has.
        Specified by:
        getIncomingChannelRegistrations in interface Messenger
        Parameters:
        plugin - Plugin to retrieve registrations for.
        Returns:
        List of all registrations that the plugin has.
      • getIncomingChannelRegistrations

        @NotNull
        public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations​(@NotNull
                                                                                      String channel)
        Description copied from interface: Messenger
        Gets a set containing all the incoming plugin channel registrations that are on the requested channel.
        Specified by:
        getIncomingChannelRegistrations in interface Messenger
        Parameters:
        channel - Channel to retrieve registrations for.
        Returns:
        List of all registrations that are on the channel.
      • getIncomingChannelRegistrations

        @NotNull
        public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations​(@NotNull
                                                                                      Plugin plugin,
                                                                                      @NotNull
                                                                                      String channel)
        Description copied from interface: Messenger
        Gets a set containing all the incoming plugin channel registrations that the specified plugin has on the requested channel.
        Specified by:
        getIncomingChannelRegistrations in interface Messenger
        Parameters:
        plugin - Plugin to retrieve registrations for.
        channel - Channel to filter registrations by.
        Returns:
        List of all registrations that the plugin has.
      • isRegistrationValid

        public boolean isRegistrationValid​(@NotNull
                                           PluginMessageListenerRegistration registration)
        Description copied from interface: Messenger
        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.

        Specified by:
        isRegistrationValid in interface Messenger
        Parameters:
        registration - Registration to check.
        Returns:
        True if the registration is valid, otherwise false.
      • isIncomingChannelRegistered

        public boolean isIncomingChannelRegistered​(@NotNull
                                                   Plugin plugin,
                                                   @NotNull
                                                   String channel)
        Description copied from interface: Messenger
        Checks if the specified plugin has registered to receive incoming messages through the requested channel.
        Specified by:
        isIncomingChannelRegistered in interface Messenger
        Parameters:
        plugin - Plugin to check registration for.
        channel - Channel to test for.
        Returns:
        True if the channel is registered, else false.
      • isOutgoingChannelRegistered

        public boolean isOutgoingChannelRegistered​(@NotNull
                                                   Plugin plugin,
                                                   @NotNull
                                                   String channel)
        Description copied from interface: Messenger
        Checks if the specified plugin has registered to send outgoing messages through the requested channel.
        Specified by:
        isOutgoingChannelRegistered in interface Messenger
        Parameters:
        plugin - Plugin to check registration for.
        channel - Channel to test for.
        Returns:
        True if the channel is registered, else false.
      • dispatchIncomingMessage

        public void dispatchIncomingMessage​(@NotNull
                                            Player source,
                                            @NotNull
                                            String channel,
                                            @NotNull
                                            byte[] message)
        Description copied from interface: Messenger
        Dispatches the specified incoming message to any registered listeners.
        Specified by:
        dispatchIncomingMessage in interface Messenger
        Parameters:
        source - Source of the message.
        channel - Channel that the message was sent by.
        message - Raw payload of the message.
      • validateChannel

        @Deprecated
        public static void validateChannel​(@NotNull
                                           String channel)
        Deprecated.
        not an API method
        Validates a Plugin Channel name.
        Parameters:
        channel - Channel name to validate.
      • validateAndCorrectChannel

        @Deprecated
        @NotNull
        public static String validateAndCorrectChannel​(@NotNull
                                                       String channel)
        Deprecated.
        not an API method
        Validates and corrects a Plugin Channel name. Method is not reentrant / idempotent.
        Parameters:
        channel - Channel name to validate.
        Returns:
        corrected channel name
      • validatePluginMessage

        public static void validatePluginMessage​(@NotNull
                                                 Messenger messenger,
                                                 @NotNull
                                                 Plugin source,
                                                 @NotNull
                                                 String channel,
                                                 @NotNull
                                                 byte[] message)
        Validates the input of a Plugin Message, ensuring the arguments are all valid.
        Parameters:
        messenger - Messenger to use for validation.
        source - Source plugin of the Message.
        channel - Plugin Channel to send the message by.
        message - Raw message payload to send.
        Throws:
        IllegalArgumentException - Thrown if the source plugin is disabled.
        IllegalArgumentException - Thrown if source, channel or message is null.
        MessageTooLargeException - Thrown if the message is too big.
        ChannelNameTooLongException - Thrown if the channel name is too long.
        ChannelNotRegisteredException - Thrown if the channel is not registered for this plugin.