Package io.github.simplex.simplexss
Class SchedulingSystem<T extends org.bukkit.plugin.java.JavaPlugin>
java.lang.Object
io.github.simplex.simplexss.SchedulingSystem<T>
- All Implemented Interfaces:
ISchedule
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final reactor.core.scheduler.Schedulerprivate final Tprivate final Set<ServicePool>private final ServiceManager -
Constructor Summary
ConstructorsConstructorDescriptionSchedulingSystem(@NotNull ServiceManager serviceManager, T plugin) Creates a new instance of the scheduling system. -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<Void>forceStart(IService service) reactor.core.publisher.Mono<Void>reactor.core.scheduler.Scheduler@NotNull reactor.core.publisher.Mono<T>@NotNull reactor.core.publisher.Mono<ServiceManager>@NotNull reactor.core.publisher.Mono<ServicePool>@NotNull reactor.core.publisher.Mono<Void>
-
Field Details
-
serviceManager
-
plugin
-
repeatingPools
-
mainScheduler
private final reactor.core.scheduler.Scheduler mainScheduler
-
-
Constructor Details
-
SchedulingSystem
Creates a new instance of the scheduling system. This is used to manage the scheduling of services.- Parameters:
serviceManager- The service manager to use for this scheduling system.plugin- The plugin to use for this scheduling system. This should be an instance of your plugin.
-
-
Method Details
-
getRepeatingPools
- Returns:
- A set of
ServicePools which contain repeating services.
-
getServiceManager
- Specified by:
getServiceManagerin interfaceISchedule- Returns:
- The service manager which exerts control over the service pools and their associated services.
-
queue
@NotNull public @NotNull reactor.core.publisher.Mono<ServicePool> queue(@NotNull @NotNull IService service) - Specified by:
queuein interfaceISchedule- Parameters:
service- The service to use to locate the associated service pool and queue the service for execution.- Returns:
- A Mono
that can be used to prepare the service for execution within it's associated service pool. If the service has no associated pool, a new pool will be created.
-
runOnce
-
forceStop
-
forceStart
- Specified by:
forceStartin interfaceISchedule- Parameters:
service- The service to forcefully start.- Returns:
- A Mono
object which can be used to forcefully start the service with Mono.subscribe().
-
getProvidingPlugin
- Returns:
- A Mono object containing your plugin, for non-blocking communication.
-
getMainSchedulerThread
@Contract(pure=true) public reactor.core.scheduler.Scheduler getMainSchedulerThread()- Returns:
- The main thread which the scheduling system operates on.
-