Class SimplePluginManager

  • All Implemented Interfaces:
    PluginManager

    public final class SimplePluginManager
    extends Object
    implements PluginManager
    Handles all plugin management from the Server
    • Constructor Detail

      • SimplePluginManager

        public SimplePluginManager​(@NotNull
                                   Server instance,
                                   @NotNull
                                   SimpleCommandMap commandMap)
    • Method Detail

      • loadPlugins

        @NotNull
        public Plugin[] loadPlugins​(@NotNull
                                    File directory)
        Loads the plugins contained within the specified directory
        Specified by:
        loadPlugins in interface PluginManager
        Parameters:
        directory - Directory to check for plugins
        Returns:
        A list of all plugins loaded
      • getPlugin

        @Nullable
        public Plugin getPlugin​(@NotNull
                                String name)
        Checks if the given plugin is loaded and returns it when applicable

        Please note that the name of the plugin is case-sensitive

        Specified by:
        getPlugin in interface PluginManager
        Parameters:
        name - Name of the plugin to check
        Returns:
        Plugin if it exists, otherwise null
      • getPlugins

        @NotNull
        public Plugin[] getPlugins()
        Description copied from interface: PluginManager
        Gets a list of all currently loaded plugins
        Specified by:
        getPlugins in interface PluginManager
        Returns:
        Array of Plugins
      • isPluginEnabled

        public boolean isPluginEnabled​(@NotNull
                                       String name)
        Checks if the given plugin is enabled or not

        Please note that the name of the plugin is case-sensitive.

        Specified by:
        isPluginEnabled in interface PluginManager
        Parameters:
        name - Name of the plugin to check
        Returns:
        true if the plugin is enabled, otherwise false
      • isPluginEnabled

        public boolean isPluginEnabled​(@Nullable
                                       Plugin plugin)
        Checks if the given plugin is enabled or not
        Specified by:
        isPluginEnabled in interface PluginManager
        Parameters:
        plugin - Plugin to check
        Returns:
        true if the plugin is enabled, otherwise false
      • enablePlugin

        public void enablePlugin​(@NotNull
                                 Plugin plugin)
        Description copied from interface: PluginManager
        Enables the specified plugin

        Attempting to enable a plugin that is already enabled will have no effect

        Specified by:
        enablePlugin in interface PluginManager
        Parameters:
        plugin - Plugin to enable
      • disablePlugin

        public void disablePlugin​(@NotNull
                                  Plugin plugin)
        Description copied from interface: PluginManager
        Disables the specified plugin

        Attempting to disable a plugin that is not enabled will have no effect

        Specified by:
        disablePlugin in interface PluginManager
        Parameters:
        plugin - Plugin to disable
      • callEvent

        public void callEvent​(@NotNull
                              Event event)
        Calls an event with the given details.

        This method only synchronizes when the event is not asynchronous.

        Specified by:
        callEvent in interface PluginManager
        Parameters:
        event - Event details
      • registerEvents

        public void registerEvents​(@NotNull
                                   Listener listener,
                                   @NotNull
                                   Plugin plugin)
        Description copied from interface: PluginManager
        Registers all the events in the given listener class
        Specified by:
        registerEvents in interface PluginManager
        Parameters:
        listener - Listener to register
        plugin - Plugin to register
      • registerEvent

        public void registerEvent​(@NotNull
                                  Class<? extends Event> event,
                                  @NotNull
                                  Listener listener,
                                  @NotNull
                                  EventPriority priority,
                                  @NotNull
                                  EventExecutor executor,
                                  @NotNull
                                  Plugin plugin)
        Description copied from interface: PluginManager
        Registers the specified executor to the given event class
        Specified by:
        registerEvent in interface PluginManager
        Parameters:
        event - Event type to register
        listener - Listener to register
        priority - Priority to register this event at
        executor - EventExecutor to register
        plugin - Plugin to register
      • registerEvent

        public void registerEvent​(@NotNull
                                  Class<? extends Event> event,
                                  @NotNull
                                  Listener listener,
                                  @NotNull
                                  EventPriority priority,
                                  @NotNull
                                  EventExecutor executor,
                                  @NotNull
                                  Plugin plugin,
                                  boolean ignoreCancelled)
        Registers the given event to the specified listener using a directly passed EventExecutor
        Specified by:
        registerEvent in interface PluginManager
        Parameters:
        event - Event class to register
        listener - PlayerListener to register
        priority - Priority of this event
        executor - EventExecutor to register
        plugin - Plugin to register
        ignoreCancelled - Do not call executor if event was already cancelled
      • addPermission

        public void addPermission​(@NotNull
                                  Permission perm)
        Description copied from interface: PluginManager
        Adds a Permission to this plugin manager.

        If a permission is already defined with the given name of the new permission, an exception will be thrown.

        Specified by:
        addPermission in interface PluginManager
        Parameters:
        perm - Permission to add
      • addPermission

        @Deprecated
        public void addPermission​(@NotNull
                                  Permission perm,
                                  boolean dirty)
        Deprecated.
      • getDefaultPermissions

        @NotNull
        public Set<Permission> getDefaultPermissions​(boolean op)
        Description copied from interface: PluginManager
        Gets the default permissions for the given op status
        Specified by:
        getDefaultPermissions in interface PluginManager
        Parameters:
        op - Which set of default permissions to get
        Returns:
        The default permissions
      • removePermission

        public void removePermission​(@NotNull
                                     Permission perm)
        Description copied from interface: PluginManager
        Removes a Permission registration from this plugin manager.

        If the specified permission does not exist in this plugin manager, nothing will happen.

        Removing a permission registration will not remove the permission from any Permissibles that have it.

        Specified by:
        removePermission in interface PluginManager
        Parameters:
        perm - Permission to remove
      • removePermission

        public void removePermission​(@NotNull
                                     String name)
        Description copied from interface: PluginManager
        Removes a Permission registration from this plugin manager.

        If the specified permission does not exist in this plugin manager, nothing will happen.

        Removing a permission registration will not remove the permission from any Permissibles that have it.

        Specified by:
        removePermission in interface PluginManager
        Parameters:
        name - Permission to remove
      • recalculatePermissionDefaults

        public void recalculatePermissionDefaults​(@NotNull
                                                  Permission perm)
        Description copied from interface: PluginManager
        Recalculates the defaults for the given Permission.

        This will have no effect if the specified permission is not registered here.

        Specified by:
        recalculatePermissionDefaults in interface PluginManager
        Parameters:
        perm - Permission to recalculate
      • dirtyPermissibles

        @Deprecated
        public void dirtyPermissibles()
        Deprecated.
      • subscribeToPermission

        public void subscribeToPermission​(@NotNull
                                          String permission,
                                          @NotNull
                                          Permissible permissible)
        Description copied from interface: PluginManager
        Subscribes the given Permissible for information about the requested Permission, by name.

        If the specified Permission changes in any form, the Permissible will be asked to recalculate.

        Specified by:
        subscribeToPermission in interface PluginManager
        Parameters:
        permission - Permission to subscribe to
        permissible - Permissible subscribing
      • unsubscribeFromPermission

        public void unsubscribeFromPermission​(@NotNull
                                              String permission,
                                              @NotNull
                                              Permissible permissible)
        Description copied from interface: PluginManager
        Unsubscribes the given Permissible for information about the requested Permission, by name.
        Specified by:
        unsubscribeFromPermission in interface PluginManager
        Parameters:
        permission - Permission to unsubscribe from
        permissible - Permissible subscribing
      • getPermissionSubscriptions

        @NotNull
        public Set<Permissible> getPermissionSubscriptions​(@NotNull
                                                           String permission)
        Description copied from interface: PluginManager
        Gets a set containing all subscribed Permissibles to the given permission, by name
        Specified by:
        getPermissionSubscriptions in interface PluginManager
        Parameters:
        permission - Permission to query for
        Returns:
        Set containing all subscribed permissions
      • subscribeToDefaultPerms

        public void subscribeToDefaultPerms​(boolean op,
                                            @NotNull
                                            Permissible permissible)
        Description copied from interface: PluginManager
        Subscribes to the given Default permissions by operator status

        If the specified defaults change in any form, the Permissible will be asked to recalculate.

        Specified by:
        subscribeToDefaultPerms in interface PluginManager
        Parameters:
        op - Default list to subscribe to
        permissible - Permissible subscribing
      • unsubscribeFromDefaultPerms

        public void unsubscribeFromDefaultPerms​(boolean op,
                                                @NotNull
                                                Permissible permissible)
        Description copied from interface: PluginManager
        Unsubscribes from the given Default permissions by operator status
        Specified by:
        unsubscribeFromDefaultPerms in interface PluginManager
        Parameters:
        op - Default list to unsubscribe from
        permissible - Permissible subscribing
      • getDefaultPermSubscriptions

        @NotNull
        public Set<Permissible> getDefaultPermSubscriptions​(boolean op)
        Description copied from interface: PluginManager
        Gets a set containing all subscribed Permissibles to the given default list, by op status
        Specified by:
        getDefaultPermSubscriptions in interface PluginManager
        Parameters:
        op - Default list to query for
        Returns:
        Set containing all subscribed permissions
      • getPermissions

        @NotNull
        public Set<Permission> getPermissions()
        Description copied from interface: PluginManager
        Gets a set of all registered permissions.

        This set is a copy and will not be modified live.

        Specified by:
        getPermissions in interface PluginManager
        Returns:
        Set containing all current registered permissions
      • useTimings

        public boolean useTimings()
        Description copied from interface: PluginManager
        Returns whether or not timing code should be used for event calls
        Specified by:
        useTimings in interface PluginManager
        Returns:
        True if event timings are to be used
      • useTimings

        public void useTimings​(boolean use)
        Sets whether or not per event timing code should be used
        Parameters:
        use - True if per event timing code should be used