Interface PluginManager
-
- All Known Implementing Classes:
SimplePluginManager
public interface PluginManager
Handles all plugin management from the Server
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addPermission(Permission perm)
Adds aPermission
to this plugin manager.void
callEvent(Event event)
Calls an event with the given detailsvoid
clearPlugins()
Disables and removes all pluginsvoid
disablePlugin(Plugin plugin)
Disables the specified pluginvoid
disablePlugins()
Disables all the loaded pluginsvoid
enablePlugin(Plugin plugin)
Enables the specified pluginSet<Permission>
getDefaultPermissions(boolean op)
Gets the default permissions for the given op statusSet<Permissible>
getDefaultPermSubscriptions(boolean op)
Gets a set containing all subscribedPermissible
s to the given default list, by op statusPermission
getPermission(String name)
Gets aPermission
from its fully qualified nameSet<Permission>
getPermissions()
Gets a set of all registered permissions.Set<Permissible>
getPermissionSubscriptions(String permission)
Gets a set containing all subscribedPermissible
s to the given permission, by namePlugin
getPlugin(String name)
Checks if the given plugin is loaded and returns it when applicablePlugin[]
getPlugins()
Gets a list of all currently loaded pluginsboolean
isPluginEnabled(String name)
Checks if the given plugin is enabled or notboolean
isPluginEnabled(Plugin plugin)
Checks if the given plugin is enabled or notPlugin
loadPlugin(File file)
Loads the plugin in the specified filePlugin[]
loadPlugins(File directory)
Loads the plugins contained within the specified directoryvoid
recalculatePermissionDefaults(Permission perm)
Recalculates the defaults for the givenPermission
.void
registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin)
Registers the specified executor to the given event classvoid
registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin, boolean ignoreCancelled)
Registers the specified executor to the given event classvoid
registerEvents(Listener listener, Plugin plugin)
Registers all the events in the given listener classvoid
registerInterface(Class<? extends PluginLoader> loader)
Registers the specified plugin loadervoid
removePermission(String name)
Removes aPermission
registration from this plugin manager.void
removePermission(Permission perm)
Removes aPermission
registration from this plugin manager.void
subscribeToDefaultPerms(boolean op, Permissible permissible)
Subscribes to the given Default permissions by operator statusvoid
subscribeToPermission(String permission, Permissible permissible)
Subscribes the given Permissible for information about the requested Permission, by name.void
unsubscribeFromDefaultPerms(boolean op, Permissible permissible)
Unsubscribes from the given Default permissions by operator statusvoid
unsubscribeFromPermission(String permission, Permissible permissible)
Unsubscribes the given Permissible for information about the requested Permission, by name.boolean
useTimings()
Returns whether or not timing code should be used for event calls
-
-
-
Method Detail
-
registerInterface
void registerInterface(@NotNull Class<? extends PluginLoader> loader) throws IllegalArgumentException
Registers the specified plugin loader- Parameters:
loader
- Class name of the PluginLoader to register- Throws:
IllegalArgumentException
- Thrown when the given Class is not a valid PluginLoader
-
getPlugin
@Nullable Plugin getPlugin(@NotNull String name)
Checks if the given plugin is loaded and returns it when applicablePlease note that the name of the plugin is case-sensitive
- Parameters:
name
- Name of the plugin to check- Returns:
- Plugin if it exists, otherwise null
-
getPlugins
@NotNull Plugin[] getPlugins()
Gets a list of all currently loaded plugins- Returns:
- Array of Plugins
-
isPluginEnabled
boolean isPluginEnabled(@NotNull String name)
Checks if the given plugin is enabled or notPlease note that the name of the plugin is case-sensitive.
- Parameters:
name
- Name of the plugin to check- Returns:
- true if the plugin is enabled, otherwise false
-
isPluginEnabled
@Contract("null -> false") boolean isPluginEnabled(@Nullable Plugin plugin)
Checks if the given plugin is enabled or not- Parameters:
plugin
- Plugin to check- Returns:
- true if the plugin is enabled, otherwise false
-
loadPlugin
@Nullable Plugin loadPlugin(@NotNull File file) throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException
Loads the plugin in the specified fileFile must be valid according to the current enabled Plugin interfaces
- Parameters:
file
- File containing the plugin to load- Returns:
- The Plugin loaded, or null if it was invalid
- Throws:
InvalidPluginException
- Thrown when the specified file is not a valid pluginInvalidDescriptionException
- Thrown when the specified file contains an invalid descriptionUnknownDependencyException
- If a required dependency could not be resolved
-
loadPlugins
@NotNull Plugin[] loadPlugins(@NotNull File directory)
Loads the plugins contained within the specified directory- Parameters:
directory
- Directory to check for plugins- Returns:
- A list of all plugins loaded
-
disablePlugins
void disablePlugins()
Disables all the loaded plugins
-
clearPlugins
void clearPlugins()
Disables and removes all plugins
-
callEvent
void callEvent(@NotNull Event event) throws IllegalStateException
Calls an event with the given details- Parameters:
event
- Event details- Throws:
IllegalStateException
- Thrown when an asynchronous event is fired from synchronous code.Note: This is best-effort basis, and should not be used to test synchronized state. This is an indicator for flawed flow logic.
-
registerEvents
void registerEvents(@NotNull Listener listener, @NotNull Plugin plugin)
Registers all the events in the given listener class- Parameters:
listener
- Listener to registerplugin
- Plugin to register
-
registerEvent
void registerEvent(@NotNull Class<? extends Event> event, @NotNull Listener listener, @NotNull EventPriority priority, @NotNull EventExecutor executor, @NotNull Plugin plugin)
Registers the specified executor to the given event class- Parameters:
event
- Event type to registerlistener
- Listener to registerpriority
- Priority to register this event atexecutor
- EventExecutor to registerplugin
- Plugin to register
-
registerEvent
void registerEvent(@NotNull Class<? extends Event> event, @NotNull Listener listener, @NotNull EventPriority priority, @NotNull EventExecutor executor, @NotNull Plugin plugin, boolean ignoreCancelled)
Registers the specified executor to the given event class- Parameters:
event
- Event type to registerlistener
- Listener to registerpriority
- Priority to register this event atexecutor
- EventExecutor to registerplugin
- Plugin to registerignoreCancelled
- Whether to pass cancelled events or not
-
enablePlugin
void enablePlugin(@NotNull Plugin plugin)
Enables the specified pluginAttempting to enable a plugin that is already enabled will have no effect
- Parameters:
plugin
- Plugin to enable
-
disablePlugin
void disablePlugin(@NotNull Plugin plugin)
Disables the specified pluginAttempting to disable a plugin that is not enabled will have no effect
- Parameters:
plugin
- Plugin to disable
-
getPermission
@Nullable Permission getPermission(@NotNull String name)
Gets aPermission
from its fully qualified name- Parameters:
name
- Name of the permission- Returns:
- Permission, or null if none
-
addPermission
void addPermission(@NotNull Permission perm)
Adds aPermission
to this plugin manager.If a permission is already defined with the given name of the new permission, an exception will be thrown.
- Parameters:
perm
- Permission to add- Throws:
IllegalArgumentException
- Thrown when a permission with the same name already exists
-
removePermission
void removePermission(@NotNull Permission perm)
Removes aPermission
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
Permissible
s that have it.- Parameters:
perm
- Permission to remove
-
removePermission
void removePermission(@NotNull String name)
Removes aPermission
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
Permissible
s that have it.- Parameters:
name
- Permission to remove
-
getDefaultPermissions
@NotNull Set<Permission> getDefaultPermissions(boolean op)
Gets the default permissions for the given op status- Parameters:
op
- Which set of default permissions to get- Returns:
- The default permissions
-
recalculatePermissionDefaults
void recalculatePermissionDefaults(@NotNull Permission perm)
Recalculates the defaults for the givenPermission
.This will have no effect if the specified permission is not registered here.
- Parameters:
perm
- Permission to recalculate
-
subscribeToPermission
void subscribeToPermission(@NotNull String permission, @NotNull Permissible permissible)
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.
- Parameters:
permission
- Permission to subscribe topermissible
- Permissible subscribing
-
unsubscribeFromPermission
void unsubscribeFromPermission(@NotNull String permission, @NotNull Permissible permissible)
Unsubscribes the given Permissible for information about the requested Permission, by name.- Parameters:
permission
- Permission to unsubscribe frompermissible
- Permissible subscribing
-
getPermissionSubscriptions
@NotNull Set<Permissible> getPermissionSubscriptions(@NotNull String permission)
Gets a set containing all subscribedPermissible
s to the given permission, by name- Parameters:
permission
- Permission to query for- Returns:
- Set containing all subscribed permissions
-
subscribeToDefaultPerms
void subscribeToDefaultPerms(boolean op, @NotNull Permissible permissible)
Subscribes to the given Default permissions by operator statusIf the specified defaults change in any form, the Permissible will be asked to recalculate.
- Parameters:
op
- Default list to subscribe topermissible
- Permissible subscribing
-
unsubscribeFromDefaultPerms
void unsubscribeFromDefaultPerms(boolean op, @NotNull Permissible permissible)
Unsubscribes from the given Default permissions by operator status- Parameters:
op
- Default list to unsubscribe frompermissible
- Permissible subscribing
-
getDefaultPermSubscriptions
@NotNull Set<Permissible> getDefaultPermSubscriptions(boolean op)
Gets a set containing all subscribedPermissible
s to the given default list, by op status- Parameters:
op
- Default list to query for- Returns:
- Set containing all subscribed permissions
-
getPermissions
@NotNull Set<Permission> getPermissions()
Gets a set of all registered permissions.This set is a copy and will not be modified live.
- Returns:
- Set containing all current registered permissions
-
useTimings
boolean useTimings()
Returns whether or not timing code should be used for event calls- Returns:
- True if event timings are to be used
-
-