Doccing and Bugfixing

This commit is contained in:
Paldiu 2022-12-13 17:25:58 -06:00
parent e4dba84b9f
commit 329726ed95
49 changed files with 651 additions and 168 deletions

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>All Classes and Interfaces</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="class index">
<meta name="generator" content="javadoc/AllClassesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>All Packages</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="package index">
<meta name="generator" content="javadoc/AllPackagesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>API Help</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="help">
<meta name="generator" content="javadoc/HelpWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>A-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: A">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -58,7 +58,9 @@ loadScripts(document, 'script');</script>
<dt><a href="../io/github/simplex/simplexss/ServiceManager.html#addToExistingPool(io.github.simplex.simplexss.ServicePool,io.github.simplex.api.IService...)" class="member-name-link">addToExistingPool(ServicePool, IService...)</a> - Method in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServiceManager.html" title="class in io.github.simplex.simplexss">ServiceManager</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#associatedServices" class="member-name-link">associatedServices</a> - Variable in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
<dd>
<div class="block">A collection of services related to this service pool.</div>
</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">D</a>&nbsp;<a href="index-4.html">E</a>&nbsp;<a href="index-5.html">F</a>&nbsp;<a href="index-6.html">G</a>&nbsp;<a href="index-7.html">I</a>&nbsp;<a href="index-8.html">L</a>&nbsp;<a href="index-9.html">M</a>&nbsp;<a href="index-10.html">N</a>&nbsp;<a href="index-11.html">O</a>&nbsp;<a href="index-12.html">P</a>&nbsp;<a href="index-13.html">Q</a>&nbsp;<a href="index-14.html">R</a>&nbsp;<a href="index-15.html">S</a>&nbsp;<a href="index-16.html">T</a>&nbsp;<br><a href="../allclasses-index.html">All&nbsp;Classes&nbsp;and&nbsp;Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="../serialized-form.html">Serialized&nbsp;Form</a></main>
</div>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>N-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: N">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -54,7 +54,13 @@ loadScripts(document, 'script');</script>
<h2 class="title" id="I:N">N</h2>
<dl class="index">
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#name" class="member-name-link">name</a> - Variable in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
<dd>
<div class="block">The key used to identify this service pool.</div>
</dd>
<dt><a href="../io/github/simplex/api/IService.html#newNamespacedKey(java.lang.String,java.lang.String)" class="member-name-link">newNamespacedKey(String, String)</a> - Static method in interface io.github.simplex.api.<a href="../io/github/simplex/api/IService.html" title="interface in io.github.simplex.api">IService</a></dt>
<dd>
<div class="block">This is an easy static call for creating a new namespaced key for services and service pools.</div>
</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">D</a>&nbsp;<a href="index-4.html">E</a>&nbsp;<a href="index-5.html">F</a>&nbsp;<a href="index-6.html">G</a>&nbsp;<a href="index-7.html">I</a>&nbsp;<a href="index-8.html">L</a>&nbsp;<a href="index-9.html">M</a>&nbsp;<a href="index-10.html">N</a>&nbsp;<a href="index-11.html">O</a>&nbsp;<a href="index-12.html">P</a>&nbsp;<a href="index-13.html">Q</a>&nbsp;<a href="index-14.html">R</a>&nbsp;<a href="index-15.html">S</a>&nbsp;<a href="index-16.html">T</a>&nbsp;<br><a href="../allclasses-index.html">All&nbsp;Classes&nbsp;and&nbsp;Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="../serialized-form.html">Serialized&nbsp;Form</a></main>
</div>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>O-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: O">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>P-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: P">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -53,12 +53,16 @@ loadScripts(document, 'script');</script>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">D</a>&nbsp;<a href="index-4.html">E</a>&nbsp;<a href="index-5.html">F</a>&nbsp;<a href="index-6.html">G</a>&nbsp;<a href="index-7.html">I</a>&nbsp;<a href="index-8.html">L</a>&nbsp;<a href="index-9.html">M</a>&nbsp;<a href="index-10.html">N</a>&nbsp;<a href="index-11.html">O</a>&nbsp;<a href="index-12.html">P</a>&nbsp;<a href="index-13.html">Q</a>&nbsp;<a href="index-14.html">R</a>&nbsp;<a href="index-15.html">S</a>&nbsp;<a href="index-16.html">T</a>&nbsp;<br><a href="../allclasses-index.html">All&nbsp;Classes&nbsp;and&nbsp;Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="../serialized-form.html">Serialized&nbsp;Form</a>
<h2 class="title" id="I:P">P</h2>
<dl class="index">
<dt><a href="../io/github/simplex/api/ExecutableService.html#parentPool" class="member-name-link">parentPool</a> - Variable in class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#period" class="member-name-link">period</a> - Variable in class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/impl/ServiceImpl.html#plugin" class="member-name-link">plugin</a> - Variable in class io.github.simplex.impl.<a href="../io/github/simplex/impl/ServiceImpl.html" title="class in io.github.simplex.impl">ServiceImpl</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/SchedulingSystem.html#plugin" class="member-name-link">plugin</a> - Variable in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/SchedulingSystem.html" title="class in io.github.simplex.simplexss">SchedulingSystem</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/impl/Main.html#pool" class="member-name-link">pool</a> - Variable in class io.github.simplex.impl.<a href="../io/github/simplex/impl/Main.html" title="class in io.github.simplex.impl">Main</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">D</a>&nbsp;<a href="index-4.html">E</a>&nbsp;<a href="index-5.html">F</a>&nbsp;<a href="index-6.html">G</a>&nbsp;<a href="index-7.html">I</a>&nbsp;<a href="index-8.html">L</a>&nbsp;<a href="index-9.html">M</a>&nbsp;<a href="index-10.html">N</a>&nbsp;<a href="index-11.html">O</a>&nbsp;<a href="index-12.html">P</a>&nbsp;<a href="index-13.html">Q</a>&nbsp;<a href="index-14.html">R</a>&nbsp;<a href="index-15.html">S</a>&nbsp;<a href="index-16.html">T</a>&nbsp;<br><a href="../allclasses-index.html">All&nbsp;Classes&nbsp;and&nbsp;Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="../serialized-form.html">Serialized&nbsp;Form</a></main>
</div>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>Q-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: Q">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -57,6 +57,8 @@ loadScripts(document, 'script');</script>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/ISchedule.html#queue(io.github.simplex.api.IService)" class="member-name-link">queue(IService)</a> - Method in interface io.github.simplex.api.<a href="../io/github/simplex/api/ISchedule.html" title="interface in io.github.simplex.api">ISchedule</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#queueService(org.bukkit.NamespacedKey)" class="member-name-link">queueService(NamespacedKey)</a> - Method in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">D</a>&nbsp;<a href="index-4.html">E</a>&nbsp;<a href="index-5.html">F</a>&nbsp;<a href="index-6.html">G</a>&nbsp;<a href="index-7.html">I</a>&nbsp;<a href="index-8.html">L</a>&nbsp;<a href="index-9.html">M</a>&nbsp;<a href="index-10.html">N</a>&nbsp;<a href="index-11.html">O</a>&nbsp;<a href="index-12.html">P</a>&nbsp;<a href="index-13.html">Q</a>&nbsp;<a href="index-14.html">R</a>&nbsp;<a href="index-15.html">S</a>&nbsp;<a href="index-16.html">T</a>&nbsp;<br><a href="../allclasses-index.html">All&nbsp;Classes&nbsp;and&nbsp;Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="../serialized-form.html">Serialized&nbsp;Form</a></main>
</div>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>R-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: R">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>S-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: S">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -56,11 +56,15 @@ loadScripts(document, 'script');</script>
<dt><a href="../io/github/simplex/impl/Main.html#scheduler" class="member-name-link">scheduler</a> - Variable in class io.github.simplex.impl.<a href="../io/github/simplex/impl/Main.html" title="class in io.github.simplex.impl">Main</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#scheduler" class="member-name-link">scheduler</a> - Variable in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
<dd>
<div class="block">The scheduler used to run the services in this pool.</div>
</dd>
<dt><a href="../io/github/simplex/simplexss/SchedulingSystem.html" class="type-name-link" title="class in io.github.simplex.simplexss">SchedulingSystem</a>&lt;<a href="../io/github/simplex/simplexss/SchedulingSystem.html" title="type parameter in SchedulingSystem">T</a> extends org.bukkit.plugin.java.JavaPlugin&gt; - Class in <a href="../io/github/simplex/simplexss/package-summary.html">io.github.simplex.simplexss</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/SchedulingSystem.html#%3Cinit%3E(io.github.simplex.simplexss.ServiceManager,T)" class="member-name-link">SchedulingSystem(ServiceManager, T)</a> - Constructor for class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/SchedulingSystem.html" title="class in io.github.simplex.simplexss">SchedulingSystem</a></dt>
<dd>&nbsp;</dd>
<dd>
<div class="block">Creates a new instance of the scheduling system.</div>
</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#service_name" class="member-name-link">service_name</a> - Variable in class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/impl/ServiceImpl.html" class="type-name-link" title="class in io.github.simplex.impl">ServiceImpl</a> - Class in <a href="../io/github/simplex/impl/package-summary.html">io.github.simplex.impl</a></dt>
@ -72,7 +76,9 @@ loadScripts(document, 'script');</script>
<dt><a href="../io/github/simplex/simplexss/ServiceManager.html" class="type-name-link" title="class in io.github.simplex.simplexss">ServiceManager</a> - Class in <a href="../io/github/simplex/simplexss/package-summary.html">io.github.simplex.simplexss</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServiceManager.html#%3Cinit%3E()" class="member-name-link">ServiceManager()</a> - Constructor for class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServiceManager.html" title="class in io.github.simplex.simplexss">ServiceManager</a></dt>
<dd>&nbsp;</dd>
<dd>
<div class="block">Creates a new instance of the Service Manager class.</div>
</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html" class="type-name-link" title="class in io.github.simplex.simplexss">ServicePool</a> - Class in <a href="../io/github/simplex/simplexss/package-summary.html">io.github.simplex.simplexss</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#%3Cinit%3E(org.bukkit.NamespacedKey,boolean)" class="member-name-link">ServicePool(NamespacedKey, boolean)</a> - Constructor for class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
@ -91,8 +97,6 @@ loadScripts(document, 'script');</script>
</dd>
<dt><a href="../io/github/simplex/impl/ServiceImpl.html#start()" class="member-name-link">start()</a> - Method in class io.github.simplex.impl.<a href="../io/github/simplex/impl/ServiceImpl.html" title="class in io.github.simplex.impl">ServiceImpl</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#startService(org.bukkit.NamespacedKey)" class="member-name-link">startService(NamespacedKey)</a> - Method in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#startServices()" class="member-name-link">startServices()</a> - Method in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/IService.html#stop()" class="member-name-link">stop()</a> - Method in interface io.github.simplex.api.<a href="../io/github/simplex/api/IService.html" title="interface in io.github.simplex.api">IService</a></dt>
@ -101,7 +105,7 @@ loadScripts(document, 'script');</script>
</dd>
<dt><a href="../io/github/simplex/impl/ServiceImpl.html#stop()" class="member-name-link">stop()</a> - Method in class io.github.simplex.impl.<a href="../io/github/simplex/impl/ServiceImpl.html" title="class in io.github.simplex.impl">ServiceImpl</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#stopService(org.bukkit.NamespacedKey)" class="member-name-link">stopService(NamespacedKey)</a> - Method in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#stopService(org.bukkit.NamespacedKey,reactor.core.publisher.Mono)" class="member-name-link">stopService(NamespacedKey, Mono&lt;Disposable&gt;)</a> - Method in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#stopServices(reactor.core.publisher.Flux)" class="member-name-link">stopServices(Flux&lt;Disposable&gt;)</a> - Method in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>T-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: T">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>C-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: C">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>D-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: D">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -54,7 +54,9 @@ loadScripts(document, 'script');</script>
<h2 class="title" id="I:D">D</h2>
<dl class="index">
<dt><a href="../io/github/simplex/simplexss/ServicePool.html#DEFAULT" class="member-name-link">DEFAULT</a> - Static variable in class io.github.simplex.simplexss.<a href="../io/github/simplex/simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></dt>
<dd>&nbsp;</dd>
<dd>
<div class="block">The default <code>NamespacedKey</code> used to identify unmarked services.</div>
</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#delay" class="member-name-link">delay</a> - Variable in class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/impl/Main.html#disposables" class="member-name-link">disposables</a> - Variable in class io.github.simplex.impl.<a href="../io/github/simplex/impl/Main.html" title="class in io.github.simplex.impl">Main</a></dt>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>E-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: E">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -57,7 +57,23 @@ loadScripts(document, 'script');</script>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html" class="type-name-link" title="class in io.github.simplex.api">ExecutableService</a> - Class in <a href="../io/github/simplex/api/package-summary.html">io.github.simplex.api</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#%3Cinit%3E(org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean,java.lang.Boolean)" class="member-name-link">ExecutableService(NamespacedKey, Long, Long, Boolean, Boolean)</a> - Constructor for class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dt><a href="../io/github/simplex/api/ExecutableService.html#%3Cinit%3E(org.bukkit.NamespacedKey)" class="member-name-link">ExecutableService(NamespacedKey)</a> - Constructor for class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>
<div class="block">Creates a new instance of an executable service.</div>
</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey)" class="member-name-link">ExecutableService(ServicePool, NamespacedKey)</a> - Constructor for class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>
<div class="block">Creates a new instance of an executable service.</div>
</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean)" class="member-name-link">ExecutableService(ServicePool, NamespacedKey, Long, Long, Boolean)</a> - Constructor for class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>
<div class="block">Creates a new instance of an executable service.</div>
</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long)" class="member-name-link">ExecutableService(ServicePool, NamespacedKey, Long)</a> - Constructor for class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>
<div class="block">Creates a new instance of an executable service.</div>
</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean,java.lang.Boolean)" class="member-name-link">ExecutableService(ServicePool, NamespacedKey, Long, Long, Boolean, Boolean)</a> - Constructor for class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>
<div class="block">Creates a new instance of an executable service.</div>
</dd>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>F-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: F">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>G-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: G">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
@ -73,6 +73,8 @@ loadScripts(document, 'script');</script>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/IService.html#getNamespacedKey()" class="member-name-link">getNamespacedKey()</a> - Method in interface io.github.simplex.api.<a href="../io/github/simplex/api/IService.html" title="interface in io.github.simplex.api">IService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/ExecutableService.html#getParentPool()" class="member-name-link">getParentPool()</a> - Method in class io.github.simplex.api.<a href="../io/github/simplex/api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/api/IService.html#getParentPool()" class="member-name-link">getParentPool()</a> - Method in interface io.github.simplex.api.<a href="../io/github/simplex/api/IService.html" title="interface in io.github.simplex.api">IService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../io/github/simplex/impl/ServiceImpl.html#getParentPool()" class="member-name-link">getParentPool()</a> - Method in class io.github.simplex.impl.<a href="../io/github/simplex/impl/ServiceImpl.html" title="class in io.github.simplex.impl">ServiceImpl</a></dt>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>I-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: I">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>L-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: L">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>M-Index</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index: M">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>Overview</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="package index">
<meta name="generator" content="javadoc/PackageIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>Context</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.api, interface: Context">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>ExecutableService</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.api, class: ExecutableService">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@ -108,15 +108,18 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
<div class="col-first even-row-color"><code>private final boolean</code></div>
<div class="col-second even-row-color"><code><a href="#mayInterruptWhenRunning" class="member-name-link">mayInterruptWhenRunning</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final long</code></div>
<div class="col-second odd-row-color"><code><a href="#period" class="member-name-link">period</a></code></div>
<div class="col-first odd-row-color"><code>private <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></code></div>
<div class="col-second odd-row-color"><code><a href="#parentPool" class="member-name-link">parentPool</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final boolean</code></div>
<div class="col-second even-row-color"><code><a href="#repeating" class="member-name-link">repeating</a></code></div>
<div class="col-first even-row-color"><code>private final long</code></div>
<div class="col-second even-row-color"><code><a href="#period" class="member-name-link">period</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final org.bukkit.NamespacedKey</code></div>
<div class="col-second odd-row-color"><code><a href="#service_name" class="member-name-link">service_name</a></code></div>
<div class="col-first odd-row-color"><code>private final boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#repeating" class="member-name-link">repeating</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final org.bukkit.NamespacedKey</code></div>
<div class="col-second even-row-color"><code><a href="#service_name" class="member-name-link">service_name</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
@ -128,7 +131,31 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean,java.lang.Boolean)" class="member-name-link">ExecutableService</a><wbr>(@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.bukkit.NamespacedKey)" class="member-name-link">ExecutableService</a><wbr>(@NotNull org.bukkit.NamespacedKey&nbsp;service_name)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new instance of an executable service.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey)" class="member-name-link">ExecutableService</a><wbr>(@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull org.bukkit.NamespacedKey&nbsp;service_name)</code></div>
<div class="col-last odd-row-color">
<div class="block">Creates a new instance of an executable service.</div>
</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean)" class="member-name-link">ExecutableService</a><wbr>(@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;delay,
@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;period,
@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;repeating)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new instance of an executable service.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long)" class="member-name-link">ExecutableService</a><wbr>(@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;delay)</code></div>
<div class="col-last odd-row-color">
<div class="block">Creates a new instance of an executable service.</div>
</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean,java.lang.Boolean)" class="member-name-link">ExecutableService</a><wbr>(@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;delay,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;period,
@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;repeating,
@ -161,20 +188,23 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.bukkit.NamespacedKey</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNamespacedKey()" class="member-name-link">getNamespacedKey</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPeriod()" class="member-name-link">getPeriod</a>()</code></div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;<a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getParentPool()" class="member-name-link">getParentPool</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isCancelled()" class="member-name-link">isCancelled</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPeriod()" class="member-name-link">getPeriod</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isCancelled()" class="member-name-link">isCancelled</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Cancels the execution of this service.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isPeriodic()" class="member-name-link">isPeriodic</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setCancelled(boolean)" class="member-name-link">setCancelled</a><wbr>(boolean&nbsp;cancel)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isPeriodic()" class="member-name-link">isPeriodic</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setCancelled(boolean)" class="member-name-link">setCancelled</a><wbr>(boolean&nbsp;cancel)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Cancels the execution of this service.</div>
</div>
</div>
@ -185,7 +215,7 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-io.github.simplex.api.IService">Methods inherited from interface&nbsp;io.github.simplex.api.<a href="IService.html" title="interface in io.github.simplex.api">IService</a></h3>
<code><a href="IService.html#getParentPool()">getParentPool</a>, <a href="IService.html#getPlugin()">getPlugin</a>, <a href="IService.html#run()">run</a>, <a href="IService.html#start()">start</a>, <a href="IService.html#stop()">stop</a></code></div>
<code><a href="IService.html#getPlugin()">getPlugin</a>, <a href="IService.html#run()">run</a>, <a href="IService.html#start()">start</a>, <a href="IService.html#stop()">stop</a></code></div>
</section>
</li>
</ul>
@ -233,6 +263,12 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">cancelled</span></div>
</section>
</li>
<li>
<section class="detail" id="parentPool">
<h3>parentPool</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></span>&nbsp;<span class="element-name">parentPool</span></div>
</section>
</li>
</ul>
</section>
</li>
@ -242,9 +278,94 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean,java.lang.Boolean)">
<section class="detail" id="&lt;init&gt;(org.bukkit.NamespacedKey)">
<h3>ExecutableService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExecutableService</span><wbr><span class="parameters">(@NotNull
@NotNull org.bukkit.NamespacedKey&nbsp;service_name)</span></div>
<div class="block">Creates a new instance of an executable service.
Each service is registered with a <code>NamespacedKey</code>,
to allow for easy identification within the associated <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>service_name</code> - A namespaced key which can be used to identify the service.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey)">
<h3>ExecutableService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExecutableService</span><wbr><span class="parameters">(@Nullable
@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull
@NotNull org.bukkit.NamespacedKey&nbsp;service_name)</span></div>
<div class="block">Creates a new instance of an executable service.
Each service is registered with a <code>NamespacedKey</code>,
to allow for easy identification within the associated <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>parentPool</code> - The <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a> which this service is executing on.</dd>
<dd><code>service_name</code> - A namespaced key which can be used to identify the service.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long)">
<h3>ExecutableService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExecutableService</span><wbr><span class="parameters">(@Nullable
@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull
@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@Nullable
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;delay)</span></div>
<div class="block">Creates a new instance of an executable service.
The timings are measured in ticks (20 ticks per second).
You do not need to explicitly define a delay.
Each service is registered with a <code>NamespacedKey</code>,
to allow for easy identification within the associated <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>parentPool</code> - The <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a> which this service is executing on.</dd>
<dd><code>service_name</code> - A namespaced key which can be used to identify the service.</dd>
<dd><code>delay</code> - A specified amount of time (in ticks) to wait before the service runs.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean)">
<h3>ExecutableService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExecutableService</span><wbr><span class="parameters">(@Nullable
@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull
@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@NotNull
@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;delay,
@NotNull
@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;period,
@NotNull
@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;repeating)</span></div>
<div class="block">Creates a new instance of an executable service.
The timings are measured in ticks (20 ticks per second).
You do not need to explicitly define a delay or a period,
however if you have flagged <a href="#repeating"><code>repeating</code></a> as true, and the period is null,
then the period will automatically be set to 20 minutes.
Each service is registered with a <code>NamespacedKey</code>,
to allow for easy identification within the associated <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>parentPool</code> - The <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a> which this service is executing on.</dd>
<dd><code>service_name</code> - A namespaced key which can be used to identify the service.</dd>
<dd><code>delay</code> - A specified amount of time (in ticks) to wait before the service runs.</dd>
<dd><code>period</code> - How long the service should wait between service executions (in ticks).</dd>
<dd><code>repeating</code> - If the service should be scheduled for repeated executions or not.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(io.github.simplex.simplexss.ServicePool,org.bukkit.NamespacedKey,java.lang.Long,java.lang.Long,java.lang.Boolean,java.lang.Boolean)">
<h3>ExecutableService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExecutableService</span><wbr><span class="parameters">(@Nullable
@Nullable <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&nbsp;parentPool,
@NotNull
@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@Nullable
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&nbsp;delay,
@ -263,6 +384,7 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
to allow for easy identification within the associated <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>parentPool</code> - The <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a> which this service is executing on.</dd>
<dd><code>service_name</code> - A namespaced key which can be used to identify the service.</dd>
<dd><code>delay</code> - A specified amount of time (in ticks) to wait before the service runs.</dd>
<dd><code>period</code> - How long the service should wait between service executions (in ticks).</dd>
@ -357,6 +479,18 @@ implements <a href="IService.html" title="interface in io.github.simplex.api">IS
<div class="block">Actual stop call, to ensure that the service actually #isCancelled().</div>
</section>
</li>
<li>
<section class="detail" id="getParentPool()">
<h3>getParentPool</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Mono&lt;<a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&gt;</span>&nbsp;<span class="element-name">getParentPool</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IService.html#getParentPool()">getParentPool</a></code>&nbsp;in interface&nbsp;<code><a href="IService.html" title="interface in io.github.simplex.api">IService</a></code></dd>
<dt>Returns:</dt>
<dd>The <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a> which this service is executing on.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>ISchedule</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.api, interface: ISchedule">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>IService</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.api, interface: IService">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@ -118,17 +118,23 @@ extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/ja
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isPeriodic()" class="member-name-link">isPeriodic</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#run()" class="member-name-link">run</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#start()" class="member-name-link">start</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1"><code>static @NotNull org.bukkit.NamespacedKey</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1"><code><a href="#newNamespacedKey(java.lang.String,java.lang.String)" class="member-name-link">newNamespacedKey</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;space,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1">
<div class="block">This is an easy static call for creating a new namespaced key for services and service pools.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#run()" class="member-name-link">run</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#start()" class="member-name-link">start</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The actual start method for the service.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#stop()" class="member-name-link">stop</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#stop()" class="member-name-link">stop</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The actual end method for the service.</div>
</div>
</div>
@ -248,6 +254,23 @@ extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/ja
</dl>
</section>
</li>
<li>
<section class="detail" id="newNamespacedKey(java.lang.String,java.lang.String)">
<h3>newNamespacedKey</h3>
<div class="member-signature"><span class="annotations">@Contract("_, _ -&gt; new")
@NotNull
</span><span class="modifiers">static</span>&nbsp;<span class="return-type">@NotNull org.bukkit.NamespacedKey</span>&nbsp;<span class="element-name">newNamespacedKey</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;space,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key)</span></div>
<div class="block">This is an easy static call for creating a new namespaced key for services and service pools.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>space</code> - The namespace of the service.</dd>
<dd><code>key</code> - The key name of the service.</dd>
<dt>Returns:</dt>
<dd>A NamespacedKey object representing the service.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>InvalidServiceException</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.api, class: InvalidServiceException">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>InvalidServicePoolException</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.api, class: InvalidServicePoolException">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>io.github.simplex.api</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.api">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>io.github.simplex.api Class Hierarchy</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="tree: package: io.github.simplex.api">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>Main</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.impl, class: Main">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@ -101,9 +101,12 @@ loadScripts(document, 'script');</script>
<div class="col-first even-row-color"><code>private reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#disposables" class="member-name-link">disposables</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private <a href="../simplexss/SchedulingSystem.html" title="class in io.github.simplex.simplexss">SchedulingSystem</a>&lt;<a href="Main.html" title="class in io.github.simplex.impl">Main</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#scheduler" class="member-name-link">scheduler</a></code></div>
<div class="col-first odd-row-color"><code><a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></code></div>
<div class="col-second odd-row-color"><code><a href="#pool" class="member-name-link">pool</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private <a href="../simplexss/SchedulingSystem.html" title="class in io.github.simplex.simplexss">SchedulingSystem</a>&lt;<a href="Main.html" title="class in io.github.simplex.impl">Main</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#scheduler" class="member-name-link">scheduler</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
@ -167,6 +170,12 @@ loadScripts(document, 'script');</script>
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="pool">
<h3>pool</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a></span>&nbsp;<span class="element-name">pool</span></div>
</section>
</li>
<li>
<section class="detail" id="scheduler">
<h3>scheduler</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="../simplexss/SchedulingSystem.html" title="class in io.github.simplex.simplexss">SchedulingSystem</a>&lt;<a href="Main.html" title="class in io.github.simplex.impl">Main</a>&gt;</span>&nbsp;<span class="element-name">scheduler</span></div>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>ServiceImpl</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.impl, class: ServiceImpl">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@ -235,6 +235,10 @@ loadScripts(document, 'script');</script>
<h3>getParentPool</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Mono&lt;<a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&gt;</span>&nbsp;<span class="element-name">getParentPool</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../api/IService.html#getParentPool()">getParentPool</a></code>&nbsp;in interface&nbsp;<code><a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a></code></dd>
<dt>Overrides:</dt>
<dd><code><a href="../api/ExecutableService.html#getParentPool()">getParentPool</a></code>&nbsp;in class&nbsp;<code><a href="../api/ExecutableService.html" title="class in io.github.simplex.api">ExecutableService</a></code></dd>
<dt>Returns:</dt>
<dd>The <a href="../simplexss/ServicePool.html" title="class in io.github.simplex.simplexss"><code>ServicePool</code></a> which this service is executing on.</dd>
</dl>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>io.github.simplex.impl</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.impl">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>io.github.simplex.impl Class Hierarchy</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="tree: package: io.github.simplex.impl">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>SchedulingSystem</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.simplexss, class: SchedulingSystem">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@ -120,7 +120,9 @@ implements <a href="../api/ISchedule.html" title="interface in io.github.simplex
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(io.github.simplex.simplexss.ServiceManager,T)" class="member-name-link">SchedulingSystem</a><wbr>(@NotNull <a href="ServiceManager.html" title="class in io.github.simplex.simplexss">ServiceManager</a>&nbsp;serviceManager,
<a href="SchedulingSystem.html" title="type parameter in SchedulingSystem">T</a>&nbsp;plugin)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-last even-row-color">
<div class="block">Creates a new instance of the scheduling system.</div>
</div>
</div>
</section>
</li>
@ -214,6 +216,12 @@ implements <a href="../api/ISchedule.html" title="interface in io.github.simplex
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SchedulingSystem</span><wbr><span class="parameters">(@NotNull
@NotNull <a href="ServiceManager.html" title="class in io.github.simplex.simplexss">ServiceManager</a>&nbsp;serviceManager,
<a href="SchedulingSystem.html" title="type parameter in SchedulingSystem">T</a>&nbsp;plugin)</span></div>
<div class="block">Creates a new instance of the scheduling system. This is used to manage the scheduling of services.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>serviceManager</code> - The service manager to use for this scheduling system.</dd>
<dd><code>plugin</code> - The plugin to use for this scheduling system. This should be an instance of your plugin.</dd>
</dl>
</section>
</li>
</ul>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>ServiceManager</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.simplexss, class: ServiceManager">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@ -105,7 +105,9 @@ loadScripts(document, 'script');</script>
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ServiceManager</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-last even-row-color">
<div class="block">Creates a new instance of the Service Manager class.</div>
</div>
</div>
</section>
</li>
@ -184,6 +186,11 @@ loadScripts(document, 'script');</script>
<section class="detail" id="&lt;init&gt;()">
<h3>ServiceManager</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ServiceManager</span>()</div>
<div class="block">Creates a new instance of the Service Manager class.
This class acts as a Service Pool factory, and can be used to create
both single and multithreaded Service Pools, empty service pools, as well as
retrieve existing Service Pools. It also provides methods for you to add and remove
<a href="../api/IService.html" title="interface in io.github.simplex.api"><code>IService</code></a>s from the {ServicePool} parameter.</div>
</section>
</li>
</ul>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>ServicePool</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.simplexss, class: ServicePool">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
@ -92,16 +92,24 @@ loadScripts(document, 'script');</script>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#associatedServices" class="member-name-link">associatedServices</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-last even-row-color">
<div class="block">A collection of services related to this service pool.</div>
</div>
<div class="col-first odd-row-color"><code>private static final org.bukkit.NamespacedKey</code></div>
<div class="col-second odd-row-color"><code><a href="#DEFAULT" class="member-name-link">DEFAULT</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-last odd-row-color">
<div class="block">The default <code>NamespacedKey</code> used to identify unmarked services.</div>
</div>
<div class="col-first even-row-color"><code>private final org.bukkit.NamespacedKey</code></div>
<div class="col-second even-row-color"><code><a href="#name" class="member-name-link">name</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-last even-row-color">
<div class="block">The key used to identify this service pool.</div>
</div>
<div class="col-first odd-row-color"><code>private final reactor.core.scheduler.Scheduler</code></div>
<div class="col-second odd-row-color"><code><a href="#scheduler" class="member-name-link">scheduler</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-last odd-row-color">
<div class="block">The scheduler used to run the services in this pool.</div>
</div>
</div>
</section>
</li>
@ -142,29 +150,30 @@ loadScripts(document, 'script');</script>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.scheduler.Scheduler</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getScheduler()" class="member-name-link">getScheduler</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&gt;</code></div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@NotNull reactor.core.publisher.Mono&lt;<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getService(org.bukkit.NamespacedKey)" class="member-name-link">getService</a><wbr>(org.bukkit.NamespacedKey&nbsp;service_name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isValidService(io.github.simplex.api.IService)" class="member-name-link">isValidService</a><wbr>(<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&nbsp;service)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;<a href="ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#recycle()" class="member-name-link">recycle</a>()</code></div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@NotNull reactor.core.publisher.Mono&lt;reactor.core.Disposable&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#queueService(org.bukkit.NamespacedKey)" class="member-name-link">queueService</a><wbr>(org.bukkit.NamespacedKey&nbsp;service_name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeService(io.github.simplex.api.IService)" class="member-name-link">removeService</a><wbr>(<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&nbsp;service)</code></div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@NotNull reactor.core.publisher.Mono&lt;<a href="ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#recycle()" class="member-name-link">recycle</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;reactor.core.Disposable&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#startService(org.bukkit.NamespacedKey)" class="member-name-link">startService</a><wbr>(org.bukkit.NamespacedKey&nbsp;service_name)</code></div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeService(io.github.simplex.api.IService)" class="member-name-link">removeService</a><wbr>(<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&nbsp;service)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;</code></div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@NotNull reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#startServices()" class="member-name-link">startServices</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#stopService(org.bukkit.NamespacedKey)" class="member-name-link">stopService</a><wbr>(org.bukkit.NamespacedKey&nbsp;service_name)</code></div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@NotNull reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#stopService(org.bukkit.NamespacedKey,reactor.core.publisher.Mono)" class="member-name-link">stopService</a><wbr>(@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@Nullable reactor.core.publisher.Mono&lt;reactor.core.Disposable&gt;&nbsp;disposable)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#stopServices(reactor.core.publisher.Flux)" class="member-name-link">stopServices</a><wbr>(reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;&nbsp;disposableThread)</code></div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@NotNull reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#stopServices(reactor.core.publisher.Flux)" class="member-name-link">stopServices</a><wbr>(@NotNull reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;&nbsp;disposableThread)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
@ -187,24 +196,28 @@ loadScripts(document, 'script');</script>
<section class="detail" id="associatedServices">
<h3>associatedServices</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&gt;</span>&nbsp;<span class="element-name">associatedServices</span></div>
<div class="block">A collection of services related to this service pool.</div>
</section>
</li>
<li>
<section class="detail" id="scheduler">
<h3>scheduler</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">reactor.core.scheduler.Scheduler</span>&nbsp;<span class="element-name">scheduler</span></div>
<div class="block">The scheduler used to run the services in this pool.</div>
</section>
</li>
<li>
<section class="detail" id="name">
<h3>name</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">org.bukkit.NamespacedKey</span>&nbsp;<span class="element-name">name</span></div>
<div class="block">The key used to identify this service pool.</div>
</section>
</li>
<li>
<section class="detail" id="DEFAULT">
<h3>DEFAULT</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">org.bukkit.NamespacedKey</span>&nbsp;<span class="element-name">DEFAULT</span></div>
<div class="block">The default <code>NamespacedKey</code> used to identify unmarked services. This will cause errors if left unchecked.</div>
</section>
</li>
</ul>
@ -220,6 +233,11 @@ loadScripts(document, 'script');</script>
<h3>ServicePool</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ServicePool</span><wbr><span class="parameters">(org.bukkit.NamespacedKey&nbsp;name,
boolean&nbsp;multithreaded)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name of this service pool.</dd>
<dd><code>multithreaded</code> - Whether this service pool should be multithreaded, or operate upon a single thread.</dd>
</dl>
</section>
</li>
</ul>
@ -234,73 +252,148 @@ loadScripts(document, 'script');</script>
<section class="detail" id="getDefaultNamespacedKey()">
<h3>getDefaultNamespacedKey</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type">org.bukkit.NamespacedKey</span>&nbsp;<span class="element-name">getDefaultNamespacedKey</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The default namespaced key to use if one is not assigned.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addService(io.github.simplex.api.IService)">
<h3>addService</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">addService</span><wbr><span class="parameters">(<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&nbsp;service)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>service</code> - Add a service to the pool's service collection.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isValidService(io.github.simplex.api.IService)">
<h3>isValidService</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isValidService</span><wbr><span class="parameters">(<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&nbsp;service)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>service</code> - The service to check against this pool.</dd>
<dt>Returns:</dt>
<dd>Whether the service is registered with this pool.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAssociatedServices()">
<h3>getAssociatedServices</h3>
<div class="member-signature"><span class="annotations">@NotNull
<div class="member-signature"><span class="annotations">@Contract(pure=true)
@NotNull
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">@NotNull <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&gt;</span>&nbsp;<span class="element-name">getAssociatedServices</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link"><code>Set</code></a> of <a href="../api/IService.html" title="interface in io.github.simplex.api"><code>IService</code></a> objects which are registered with this pool.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="startService(org.bukkit.NamespacedKey)">
<h3>startService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Mono&lt;reactor.core.Disposable&gt;</span>&nbsp;<span class="element-name">startService</span><wbr><span class="parameters">(org.bukkit.NamespacedKey&nbsp;service_name)</span></div>
<section class="detail" id="queueService(org.bukkit.NamespacedKey)">
<h3>queueService</h3>
<div class="member-signature"><span class="annotations">@NotNull
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">@NotNull reactor.core.publisher.Mono&lt;reactor.core.Disposable&gt;</span>&nbsp;<span class="element-name">queueService</span><wbr><span class="parameters">(org.bukkit.NamespacedKey&nbsp;service_name)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>service_name</code> - The name of the service to queue. This should be a service that is located within this service pool.
If you name a service that is stored within another service pool,
this method will throw an error.</dd>
<dt>Returns:</dt>
<dd>A <code>Mono</code> object which contains a <code>Disposable</code> element which can be used to destroy the registered service.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="startServices()">
<h3>startServices</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;</span>&nbsp;<span class="element-name">startServices</span>()</div>
<div class="member-signature"><span class="annotations">@NotNull
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">@NotNull reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;</span>&nbsp;<span class="element-name">startServices</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A <code>Flux</code> object which contains a collection of <code>Disposable</code> elements,
which can be used to destroy the registered services using <a href="#stopServices(reactor.core.publisher.Flux)"><code>stopServices(Flux&lt;Disposable&gt;)</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="stopServices(reactor.core.publisher.Flux)">
<h3>stopServices</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</span>&nbsp;<span class="element-name">stopServices</span><wbr><span class="parameters">(reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;&nbsp;disposableThread)</span></div>
<div class="member-signature"><span class="annotations">@NotNull
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">@NotNull reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</span>&nbsp;<span class="element-name">stopServices</span><wbr><span class="parameters">(@NotNull
@NotNull reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;&nbsp;disposableThread)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>disposableThread</code> - A <code>reactor.core.publisher.Flux&lt;reactor.core.Disposable&gt;</code> which contains all the services that should be disposed..</dd>
<dt>Returns:</dt>
<dd>A <code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code> object which can be used to stop the services.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="stopService(org.bukkit.NamespacedKey)">
<section class="detail" id="stopService(org.bukkit.NamespacedKey,reactor.core.publisher.Mono)">
<h3>stopService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</span>&nbsp;<span class="element-name">stopService</span><wbr><span class="parameters">(org.bukkit.NamespacedKey&nbsp;service_name)</span></div>
<div class="member-signature"><span class="annotations">@NotNull
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">@NotNull reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</span>&nbsp;<span class="element-name">stopService</span><wbr><span class="parameters">(@NotNull
@NotNull org.bukkit.NamespacedKey&nbsp;service_name,
@Nullable
@Nullable reactor.core.publisher.Mono&lt;reactor.core.Disposable&gt;&nbsp;disposable)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>service_name</code> - The name of the service to stop.</dd>
<dd><code>disposable</code> - A <code>Disposable</code> object which contains the service that should be disposed.</dd>
<dt>Returns:</dt>
<dd>A <code>reactor.core.publisher.Mono&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code> object which can be used to stop the service.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getService(org.bukkit.NamespacedKey)">
<h3>getService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Mono&lt;<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&gt;</span>&nbsp;<span class="element-name">getService</span><wbr><span class="parameters">(org.bukkit.NamespacedKey&nbsp;service_name)</span></div>
<div class="member-signature"><span class="annotations">@NotNull
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">@NotNull reactor.core.publisher.Mono&lt;<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&gt;</span>&nbsp;<span class="element-name">getService</span><wbr><span class="parameters">(org.bukkit.NamespacedKey&nbsp;service_name)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>service_name</code> - The name of the service to get.</dd>
<dt>Returns:</dt>
<dd>A <code>Mono</code> object which contains the service.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeService(io.github.simplex.api.IService)">
<h3>removeService</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">removeService</span><wbr><span class="parameters">(<a href="../api/IService.html" title="interface in io.github.simplex.api">IService</a>&nbsp;service)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>service</code> - The service to remove from the pool's service collection.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="recycle()">
<h3>recycle</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.publisher.Mono&lt;<a href="ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&gt;</span>&nbsp;<span class="element-name">recycle</span>()</div>
<div class="member-signature"><span class="annotations">@NotNull
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">@NotNull reactor.core.publisher.Mono&lt;<a href="ServicePool.html" title="class in io.github.simplex.simplexss">ServicePool</a>&gt;</span>&nbsp;<span class="element-name">recycle</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>This service pool after being cleared of all services.
You will need to register services with this pool again before using it.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getScheduler()">
<h3>getScheduler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.scheduler.Scheduler</span>&nbsp;<span class="element-name">getScheduler</span>()</div>
<div class="member-signature"><span class="annotations">@Contract(pure=true)
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">reactor.core.scheduler.Scheduler</span>&nbsp;<span class="element-name">getScheduler</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <code>Scheduler</code> which hosts the threads for the service pool.</dd>
</dl>
</section>
</li>
</ul>

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>io.github.simplex.simplexss</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="declaration: package: io.github.simplex.simplexss">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>io.github.simplex.simplexss Class Hierarchy</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="tree: package: io.github.simplex.simplexss">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>Generated Documentation (Untitled)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="index redirect">
<meta name="generator" content="javadoc/IndexRedirectWriter">
<link rel="canonical" href="index.html">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>Class Hierarchy</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="class tree">
<meta name="generator" content="javadoc/TreeWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">

View File

@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Mon Dec 12 20:32:47 CST 2022 -->
<!-- Generated by javadoc (17) on Tue Dec 13 17:23:54 CST 2022 -->
<title>Serialized Form</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-12-12">
<meta name="dc.created" content="2022-12-13">
<meta name="description" content="serialized forms">
<meta name="generator" content="javadoc/SerializedFormWriterImpl">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">

View File

@ -17,6 +17,48 @@ public abstract class ExecutableService implements IService {
private final boolean mayInterruptWhenRunning;
private boolean cancelled = false;
private ServicePool parentPool;
/**
* Creates a new instance of an executable service.
* Each service is registered with a {@link NamespacedKey},
* to allow for easy identification within the associated {@link ServicePool}.
*
* @param service_name A namespaced key which can be used to identify the service.
*/
public ExecutableService(@NotNull NamespacedKey service_name) {
this((new ServicePool(IService.newNamespacedKey("", ""), false)), service_name, 0L, 0L, false, false);
}
/**
* Creates a new instance of an executable service.
* Each service is registered with a {@link NamespacedKey},
* to allow for easy identification within the associated {@link ServicePool}.
*
* @param parentPool The {@link ServicePool} which this service is executing on.
* @param service_name A namespaced key which can be used to identify the service.
*/
public ExecutableService(@Nullable ServicePool parentPool, @NotNull NamespacedKey service_name) {
this(parentPool, service_name, 0L, 0L, false, false);
}
/**
* Creates a new instance of an executable service.
* The timings are measured in ticks (20 ticks per second).
* You do not need to explicitly define a delay.
* Each service is registered with a {@link NamespacedKey},
* to allow for easy identification within the associated {@link ServicePool}.
*
* @param parentPool The {@link ServicePool} which this service is executing on.
* @param service_name A namespaced key which can be used to identify the service.
* @param delay A specified amount of time (in ticks) to wait before the service runs.
*/
public ExecutableService(
@Nullable ServicePool parentPool,
@NotNull NamespacedKey service_name,
@Nullable Long delay) {
this(parentPool, service_name, delay, 0L, false, false);
}
/**
* Creates a new instance of an executable service.
@ -27,6 +69,31 @@ public abstract class ExecutableService implements IService {
* Each service is registered with a {@link NamespacedKey},
* to allow for easy identification within the associated {@link ServicePool}.
*
* @param parentPool The {@link ServicePool} which this service is executing on.
* @param service_name A namespaced key which can be used to identify the service.
* @param delay A specified amount of time (in ticks) to wait before the service runs.
* @param period How long the service should wait between service executions (in ticks).
* @param repeating If the service should be scheduled for repeated executions or not.
*/
public ExecutableService(
@Nullable ServicePool parentPool,
@NotNull NamespacedKey service_name,
@NotNull Long delay,
@NotNull Long period,
@NotNull Boolean repeating) {
this(parentPool, service_name, delay, period, repeating, false);
}
/**
* Creates a new instance of an executable service.
* The timings are measured in ticks (20 ticks per second).
* You do not need to explicitly define a delay or a period,
* however if you have flagged {@link #repeating} as true, and the period is null,
* then the period will automatically be set to 20 minutes.
* Each service is registered with a {@link NamespacedKey},
* to allow for easy identification within the associated {@link ServicePool}.
*
* @param parentPool The {@link ServicePool} which this service is executing on.
* @param service_name A namespaced key which can be used to identify the service.
* @param delay A specified amount of time (in ticks) to wait before the service runs.
* @param period How long the service should wait between service executions (in ticks).
@ -34,6 +101,7 @@ public abstract class ExecutableService implements IService {
* @param mayInterruptWhenRunning If the service can be cancelled during execution.
*/
public ExecutableService(
@Nullable ServicePool parentPool,
@NotNull NamespacedKey service_name,
@Nullable Long delay,
@Nullable Long period,
@ -44,6 +112,7 @@ public abstract class ExecutableService implements IService {
this.delay = Objects.requireNonNullElse(delay, 0L);
this.period = Objects.requireNonNullElse(period, (20L * 60L) * 20L);
this.mayInterruptWhenRunning = mayInterruptWhenRunning;
this.parentPool = parentPool;
}
@Override
@ -99,4 +168,9 @@ public abstract class ExecutableService implements IService {
}
return Mono.empty();
}
@Override
public Mono<ServicePool> getParentPool() {
return Mono.just(parentPool);
}
}

View File

@ -68,4 +68,16 @@ public interface IService extends Runnable {
.orElseThrow(InvalidServicePoolException.supplyException()))
.subscribe();
}
/**
* This is an easy static call for creating a new namespaced key for services and service pools.
*
* @param space The namespace of the service.
* @param key The key name of the service.
* @return A NamespacedKey object representing the service.
*/
@Contract("_, _ -> new")
static @NotNull NamespacedKey newNamespacedKey(String space, String key) {
return new NamespacedKey(space, key);
}
}

View File

@ -4,7 +4,7 @@ import java.util.function.Supplier;
public class InvalidServiceException extends RuntimeException {
public InvalidServiceException(IService service) {
super("The service " + service.getNamespacedKey().getKey() + " has encountered an exception.");
super("The service " + service.getNamespacedKey().getKey() + " is not present within any service pool.");
}
public InvalidServiceException(Throwable th) {

View File

@ -1,7 +1,9 @@
package io.github.simplex.impl;
import io.github.simplex.api.IService;
import io.github.simplex.simplexss.SchedulingSystem;
import io.github.simplex.simplexss.ServiceManager;
import io.github.simplex.simplexss.ServicePool;
import org.bukkit.plugin.java.JavaPlugin;
import reactor.core.Disposable;
import reactor.core.publisher.Flux;
@ -9,6 +11,7 @@ import reactor.core.publisher.Flux;
import java.util.Objects;
public class Main extends JavaPlugin {
public ServicePool pool = new ServicePool(IService.newNamespacedKey("pool", "one"), true);
private SchedulingSystem<Main> scheduler;
private Flux<Disposable> disposables;
@ -16,10 +19,8 @@ public class Main extends JavaPlugin {
public void onEnable() {
ServiceManager serviceManager = new ServiceManager();
this.scheduler = new SchedulingSystem<>(serviceManager, this);
scheduler.getServiceManager().subscribe(manager -> manager.getServicePools()
.doOnEach(signal -> disposables = Objects.requireNonNull(signal.get()).startServices())
.subscribeOn(scheduler.getMainSchedulerThread(), false)
.subscribe());
IService service = new ServiceImpl(this);
service.getParentPool().subscribe(element -> disposables = element.startServices());
}
@Override

View File

@ -10,7 +10,7 @@ public class ServiceImpl extends ExecutableService {
private final Main plugin;
public ServiceImpl(Main plugin) {
super(IService.getDefaultNamespacedKey(), 20L, 20L * 60L * 10L, true, true);
super(plugin.pool, IService.getDefaultNamespacedKey(), 0L, 20 * 60 * 20L, true, false);
this.plugin = plugin;
}

View File

@ -19,6 +19,12 @@ public final class SchedulingSystem<T extends JavaPlugin> implements ISchedule {
private final Set<ServicePool> repeatingPools;
private final Scheduler mainScheduler;
/**
* Creates a new instance of the scheduling system. This is used to manage the scheduling of services.
*
* @param serviceManager The service manager to use for this scheduling system.
* @param plugin The plugin to use for this scheduling system. This should be an instance of your plugin.
*/
public SchedulingSystem(@NotNull ServiceManager serviceManager, T plugin) {
this.serviceManager = serviceManager;
this.plugin = plugin;
@ -53,8 +59,7 @@ public final class SchedulingSystem<T extends JavaPlugin> implements ISchedule {
@Override
public @NotNull Mono<Void> runOnce(IService service) {
return Mono.just(service).doOnNext(s -> {
s.start().subscribe();
s.stop().subscribe();
s.start().then(s.stop()).subscribe();
}).then();
}

View File

@ -14,6 +14,13 @@ import java.util.Set;
public final class ServiceManager {
private final Set<ServicePool> servicePools;
/**
* Creates a new instance of the Service Manager class.
* This class acts as a Service Pool factory, and can be used to create
* both single and multithreaded Service Pools, empty service pools, as well as
* retrieve existing Service Pools. It also provides methods for you to add and remove
* {@link IService}s from the {ServicePool} parameter.
*/
public ServiceManager() {
servicePools = new HashSet<>();
}

View File

@ -1,9 +1,10 @@
package io.github.simplex.simplexss;
import io.github.simplex.api.IService;
import io.github.simplex.api.InvalidServiceException;
import org.bukkit.NamespacedKey;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import reactor.core.Disposable;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@ -12,16 +13,31 @@ import reactor.core.scheduler.Schedulers;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public final class ServicePool {
/**
* A collection of services related to this service pool.
*/
private final Set<IService> associatedServices;
/**
* The scheduler used to run the services in this pool.
*/
private final Scheduler scheduler;
/**
* The key used to identify this service pool.
*/
private final NamespacedKey name;
/**
* The default {@link NamespacedKey} used to identify unmarked services. This will cause errors if left unchecked.
*/
private static final NamespacedKey DEFAULT = new NamespacedKey("simplex_ss", "default_service_pool");
/**
* @param name The name of this service pool.
* @param multithreaded Whether this service pool should be multithreaded, or operate upon a single thread.
*/
public ServicePool(NamespacedKey name, boolean multithreaded) {
this.name = name;
this.associatedServices = new HashSet<>();
@ -32,24 +48,44 @@ public final class ServicePool {
}
}
/**
* @return The default namespaced key to use if one is not assigned.
*/
static NamespacedKey getDefaultNamespacedKey() {
return DEFAULT;
}
/**
* @param service Add a service to the pool's service collection.
*/
void addService(IService service) {
getAssociatedServices().add(service);
}
/**
* @param service The service to check against this pool.
* @return Whether the service is registered with this pool.
*/
boolean isValidService(IService service) {
return getAssociatedServices().contains(service);
}
/**
* @return A {@link Set} of {@link IService} objects which are registered with this pool.
*/
@Contract(pure = true)
@NotNull
public Set<IService> getAssociatedServices() {
return associatedServices;
}
public Mono<Disposable> startService(NamespacedKey service_name) {
/**
* @param service_name The name of the service to queue. This should be a service that is located within this service pool.
* If you name a service that is stored within another service pool,
* this method will throw an error.
* @return A {@link Mono} object which contains a {@link Disposable} element which can be used to destroy the registered service.
*/
public @NotNull Mono<Disposable> queueService(NamespacedKey service_name) {
Mono<IService> service = getService(service_name);
return service.map(s -> {
if (s.isPeriodic()) {
@ -65,7 +101,11 @@ public final class ServicePool {
});
}
public Flux<Disposable> startServices() {
/**
* @return A {@link Flux} object which contains a collection of {@link Disposable} elements,
* which can be used to destroy the registered services using {@link ServicePool#stopServices(Flux<Disposable>)}.
*/
public @NotNull Flux<Disposable> startServices() {
return Mono.just(getAssociatedServices()).flatMapMany(services -> {
Set<Disposable> disposables = new HashSet<>();
for (IService service : services) {
@ -84,30 +124,58 @@ public final class ServicePool {
});
}
public Mono<Void> stopServices(Flux<Disposable> disposableThread) {
/**
* @param disposableThread A {@link Flux<Disposable>} which contains all the services that should be disposed..
* @return A {@link Mono<Void>} object which can be used to stop the services.
*/
public @NotNull Mono<Void> stopServices(@NotNull Flux<Disposable> disposableThread) {
getAssociatedServices().forEach(service -> service.stop().subscribe());
return disposableThread.doOnNext(Disposable::dispose).then();
}
public Mono<Void> stopService(NamespacedKey service_name) {
return getService(service_name).doOnNext(IService::stop).then();
/**
* @param service_name The name of the service to stop.
* @param disposable A {@link Disposable} object which contains the service that should be disposed.
* @return A {@link Mono<Void>} object which can be used to stop the service.
*/
public @NotNull Mono<Void> stopService(@NotNull NamespacedKey service_name, @Nullable Mono<Disposable> disposable) {
getService(service_name).doOnNext(IService::stop).subscribe();
if (disposable != null) {
disposable.doOnNext(Disposable::dispose).subscribe();
}
return Mono.empty();
}
public Mono<IService> getService(NamespacedKey service_name) {
/**
* @param service_name The name of the service to get.
* @return A {@link Mono} object which contains the service.
*/
public @NotNull Mono<IService> getService(NamespacedKey service_name) {
return Flux.fromIterable(getAssociatedServices())
.filter(service -> service.getNamespacedKey().equals(service_name))
.next();
}
/**
* @param service The service to remove from the pool's service collection.
*/
void removeService(IService service) {
getAssociatedServices().remove(service);
}
public Mono<ServicePool> recycle() {
/**
* @return This service pool after being cleared of all services.
* You will need to register services with this pool again before using it.
*/
public @NotNull Mono<ServicePool> recycle() {
this.getAssociatedServices().clear();
return Mono.just(this);
}
/**
* @return The {@link Scheduler} which hosts the threads for the service pool.
*/
@Contract(pure = true)
public Scheduler getScheduler() {
return scheduler;
}