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(@NotNull Permission perm)
Adds aPermission
to this plugin manager.void
callEvent(@NotNull Event event)
Calls an event with the given detailsvoid
clearPlugins()
Disables and removes all pluginsvoid
disablePlugin(@NotNull Plugin plugin)
Disables the specified pluginvoid
disablePlugins()
Disables all the loaded pluginsvoid
enablePlugin(@NotNull Plugin plugin)
Enables the specified plugin@NotNull Set<Permission>
getDefaultPermissions(boolean op)
Gets the default permissions for the given op status@NotNull Set<Permissible>
getDefaultPermSubscriptions(boolean op)
Gets a set containing all subscribedPermissible
s to the given default list, by op status@Nullable Permission
getPermission(@NotNull String name)
Gets aPermission
from its fully qualified name@NotNull Set<Permission>
getPermissions()
Gets a set of all registered permissions.@NotNull Set<Permissible>
getPermissionSubscriptions(@NotNull String permission)
Gets a set containing all subscribedPermissible
s to the given permission, by name@Nullable Plugin
getPlugin(@NotNull String name)
Checks if the given plugin is loaded and returns it when applicable@NotNull Plugin[]
getPlugins()
Gets a list of all currently loaded pluginsboolean
isPluginEnabled(@NotNull String name)
Checks if the given plugin is enabled or notboolean
isPluginEnabled(@Nullable Plugin plugin)
Checks if the given plugin is enabled or not@Nullable Plugin
loadPlugin(@NotNull File file)
Loads the plugin in the specified file@NotNull Plugin[]
loadPlugins(@NotNull File directory)
Loads the plugins contained within the specified directoryvoid
recalculatePermissionDefaults(@NotNull Permission perm)
Recalculates the defaults for the givenPermission
.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 classvoid
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 classvoid
registerEvents(@NotNull Listener listener, @NotNull Plugin plugin)
Registers all the events in the given listener classvoid
registerInterface(@NotNull Class<? extends PluginLoader> loader)
Registers the specified plugin loadervoid
removePermission(@NotNull String name)
Removes aPermission
registration from this plugin manager.void
removePermission(@NotNull Permission perm)
Removes aPermission
registration from this plugin manager.void
subscribeToDefaultPerms(boolean op, @NotNull Permissible permissible)
Subscribes to the given Default permissions by operator statusvoid
subscribeToPermission(@NotNull String permission, @NotNull Permissible permissible)
Subscribes the given Permissible for information about the requested Permission, by name.void
unsubscribeFromDefaultPerms(boolean op, @NotNull Permissible permissible)
Unsubscribes from the given Default permissions by operator statusvoid
unsubscribeFromPermission(@NotNull String permission, @NotNull 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 @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 @Nullable Plugin getPlugin(@NotNull @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 @NotNull Plugin[] getPlugins()
Gets a list of all currently loaded plugins- Returns:
- Array of Plugins
-
isPluginEnabled
boolean isPluginEnabled(@NotNull @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 @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 @Nullable Plugin loadPlugin(@NotNull @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 @NotNull Plugin[] loadPlugins(@NotNull @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 @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 @NotNull Listener listener, @NotNull @NotNull Plugin plugin)
Registers all the events in the given listener class- Parameters:
listener
- Listener to registerplugin
- Plugin to register
-
registerEvent
void registerEvent(@NotNull @NotNull Class<? extends Event> event, @NotNull @NotNull Listener listener, @NotNull @NotNull EventPriority priority, @NotNull @NotNull EventExecutor executor, @NotNull @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 @NotNull Class<? extends Event> event, @NotNull @NotNull Listener listener, @NotNull @NotNull EventPriority priority, @NotNull @NotNull EventExecutor executor, @NotNull @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 @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 @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 @Nullable Permission getPermission(@NotNull @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 @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 @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 @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 @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 @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 @NotNull String permission, @NotNull @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 @NotNull String permission, @NotNull @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 @NotNull Set<Permissible> getPermissionSubscriptions(@NotNull @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 @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 @NotNull Permissible permissible)
Unsubscribes from the given Default permissions by operator status- Parameters:
op
- Default list to unsubscribe frompermissible
- Permissible subscribing
-
getDefaultPermSubscriptions
@NotNull @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 @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
-
-