Package org.bukkit.plugin
Interface ServicesManager
-
- All Known Implementing Classes:
SimpleServicesManager
public interface ServicesManager
Manages services and service providers. Services are an interface specifying a list of methods that a provider must implement. Providers are implementations of these services. A provider can be queried from the services manager in order to use a service (if one is available). If multiple plugins register a service, then the service with the highest priority takes precedence.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description @NotNull Collection<Class<?>>
getKnownServices()
Get a list of known services.<T> @Nullable RegisteredServiceProvider<T>
getRegistration(@NotNull Class<T> service)
Queries for a provider registration.<T> @NotNull Collection<RegisteredServiceProvider<T>>
getRegistrations(@NotNull Class<T> service)
Get registrations of providers for a service.@NotNull List<RegisteredServiceProvider<?>>
getRegistrations(@NotNull Plugin plugin)
Get registrations of providers for a plugin.<T> boolean
isProvidedFor(@NotNull Class<T> service)
Returns whether a provider has been registered for a service.<T> T
load(@NotNull Class<T> service)
Queries for a provider.<T> void
register(@NotNull Class<T> service, T provider, @NotNull Plugin plugin, @NotNull ServicePriority priority)
Register a provider of a service.void
unregister(@NotNull Class<?> service, @NotNull Object provider)
Unregister a particular provider for a particular service.void
unregister(@NotNull Object provider)
Unregister a particular provider.void
unregisterAll(@NotNull Plugin plugin)
Unregister all the providers registered by a particular plugin.
-
-
-
Method Detail
-
register
<T> void register(@NotNull @NotNull Class<T> service, @NotNull T provider, @NotNull @NotNull Plugin plugin, @NotNull @NotNull ServicePriority priority)
Register a provider of a service.- Type Parameters:
T
- Provider- Parameters:
service
- service classprovider
- provider to registerplugin
- plugin with the providerpriority
- priority of the provider
-
unregisterAll
void unregisterAll(@NotNull @NotNull Plugin plugin)
Unregister all the providers registered by a particular plugin.- Parameters:
plugin
- The plugin
-
unregister
void unregister(@NotNull @NotNull Class<?> service, @NotNull @NotNull Object provider)
Unregister a particular provider for a particular service.- Parameters:
service
- The service interfaceprovider
- The service provider implementation
-
unregister
void unregister(@NotNull @NotNull Object provider)
Unregister a particular provider.- Parameters:
provider
- The service provider implementation
-
load
@Nullable <T> T load(@NotNull @NotNull Class<T> service)
Queries for a provider. This may return if no provider has been registered for a service. The highest priority provider is returned.- Type Parameters:
T
- The service interface- Parameters:
service
- The service interface- Returns:
- provider or null
-
getRegistration
@Nullable <T> @Nullable RegisteredServiceProvider<T> getRegistration(@NotNull @NotNull Class<T> service)
Queries for a provider registration. This may return if no provider has been registered for a service.- Type Parameters:
T
- The service interface- Parameters:
service
- The service interface- Returns:
- provider registration or null
-
getRegistrations
@NotNull @NotNull List<RegisteredServiceProvider<?>> getRegistrations(@NotNull @NotNull Plugin plugin)
Get registrations of providers for a plugin.- Parameters:
plugin
- The plugin- Returns:
- provider registrations
-
getRegistrations
@NotNull <T> @NotNull Collection<RegisteredServiceProvider<T>> getRegistrations(@NotNull @NotNull Class<T> service)
Get registrations of providers for a service. The returned list is unmodifiable.- Type Parameters:
T
- The service interface- Parameters:
service
- The service interface- Returns:
- list of registrations
-
getKnownServices
@NotNull @NotNull Collection<Class<?>> getKnownServices()
Get a list of known services. A service is known if it has registered providers for it.- Returns:
- list of known services
-
isProvidedFor
<T> boolean isProvidedFor(@NotNull @NotNull Class<T> service)
Returns whether a provider has been registered for a service. Do not check this first only to callload(service)
later, as that would be a non-thread safe situation.- Type Parameters:
T
- service- Parameters:
service
- service to check- Returns:
- whether there has been a registered provider
-
-