<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html"title="class or interface in java.util"class="external-link">Collection</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><?>></code></div>
<divclass="block">Get a list of known services.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><T> <ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="RegisteredServiceProvider.html"title="class in org.bukkit.plugin">RegisteredServiceProvider</a><T></code></div>
<divclass="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#getRegistration(java.lang.Class)"class="member-name-link">getRegistration</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</code></div>
<divclass="block">Queries for a provider registration.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><T> <ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html"title="class or interface in java.util"class="external-link">Collection</a><<ahref="RegisteredServiceProvider.html"title="class in org.bukkit.plugin">RegisteredServiceProvider</a><T>></code></div>
<divclass="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#getRegistrations(java.lang.Class)"class="member-name-link">getRegistrations</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</code></div>
<divclass="block">Get registrations of providers for a service.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="RegisteredServiceProvider.html"title="class in org.bukkit.plugin">RegisteredServiceProvider</a><?>></code></div>
<divclass="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#getRegistrations(org.bukkit.plugin.Plugin)"class="member-name-link">getRegistrations</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="Plugin.html"title="interface in org.bukkit.plugin">Plugin</a> plugin)</code></div>
<divclass="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#isProvidedFor(java.lang.Class)"class="member-name-link">isProvidedFor</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</code></div>
<divclass="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#load(java.lang.Class)"class="member-name-link">load</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</code></div>
<divclass="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#register(java.lang.Class,T,org.bukkit.plugin.Plugin,org.bukkit.plugin.ServicePriority)"class="member-name-link">register</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service,
T provider,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="Plugin.html"title="interface in org.bukkit.plugin">Plugin</a> plugin,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="ServicePriority.html"title="enum class in org.bukkit.plugin">ServicePriority</a> priority)</code></div>
<divclass="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#unregister(java.lang.Class,java.lang.Object)"class="member-name-link">unregister</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><?> service,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a> provider)</code></div>
<divclass="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#unregister(java.lang.Object)"class="member-name-link">unregister</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a> provider)</code></div>
<divclass="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#unregisterAll(org.bukkit.plugin.Plugin)"class="member-name-link">unregisterAll</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="Plugin.html"title="interface in org.bukkit.plugin">Plugin</a> plugin)</code></div>
<divclass="member-signature"><spanclass="type-parameters"><T></span> <spanclass="return-type">void</span> <spanclass="element-name">register</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
T provider,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="Plugin.html"title="interface in org.bukkit.plugin">Plugin</a> plugin,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="ServicePriority.html"title="enum class in org.bukkit.plugin">ServicePriority</a> priority)</span></div>
<divclass="block">Register a provider of a service.</div>
<dlclass="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - Provider</dd>
<dt>Parameters:</dt>
<dd><code>service</code> - service class</dd>
<dd><code>provider</code> - provider to register</dd>
<dd><code>plugin</code> - plugin with the provider</dd>
<dd><code>priority</code> - priority of the provider</dd>
<divclass="member-signature"><spanclass="return-type">void</span> <spanclass="element-name">unregisterAll</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="Plugin.html"title="interface in org.bukkit.plugin">Plugin</a> plugin)</span></div>
<divclass="block">Unregister all the providers registered by a particular plugin.</div>
<divclass="member-signature"><spanclass="return-type">void</span> <spanclass="element-name">unregister</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><?> service,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a> provider)</span></div>
<divclass="block">Unregister a particular provider for a particular service.</div>
<dlclass="notes">
<dt>Parameters:</dt>
<dd><code>service</code> - The service interface</dd>
<dd><code>provider</code> - The service provider implementation</dd>
<divclass="member-signature"><spanclass="return-type">void</span> <spanclass="element-name">unregister</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a> provider)</span></div>
<divclass="block">Unregister a particular provider.</div>
<dlclass="notes">
<dt>Parameters:</dt>
<dd><code>provider</code> - The service provider implementation</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="load(java.lang.Class)">
<h3>load</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a>
</span><spanclass="type-parameters"><T></span> <spanclass="return-type">T</span> <spanclass="element-name">load</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</span></div>
<divclass="block">Queries for a provider. This may return null if no provider has been
registered for a service. The highest priority provider is returned.</div>
<dlclass="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - The service interface</dd>
<dt>Parameters:</dt>
<dd><code>service</code> - The service interface</dd>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a>
</span><spanclass="type-parameters"><T></span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="RegisteredServiceProvider.html"title="class in org.bukkit.plugin">RegisteredServiceProvider</a><T></span> <spanclass="element-name">getRegistration</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</span></div>
<divclass="block">Queries for a provider registration. This may return null if no provider
has been registered for a service.</div>
<dlclass="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - The service interface</dd>
<dt>Parameters:</dt>
<dd><code>service</code> - The service interface</dd>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="RegisteredServiceProvider.html"title="class in org.bukkit.plugin">RegisteredServiceProvider</a><?>></span> <spanclass="element-name">getRegistrations</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="Plugin.html"title="interface in org.bukkit.plugin">Plugin</a> plugin)</span></div>
<divclass="block">Get registrations of providers for a plugin.</div>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html"title="class or interface in java.util"class="external-link">Collection</a><<ahref="RegisteredServiceProvider.html"title="class in org.bukkit.plugin">RegisteredServiceProvider</a><T>></span> <spanclass="element-name">getRegistrations</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</span></div>
<divclass="block">Get registrations of providers for a service. The returned list is
unmodifiable.</div>
<dlclass="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - The service interface</dd>
<dt>Parameters:</dt>
<dd><code>service</code> - The service interface</dd>
<dt>Returns:</dt>
<dd>list of registrations</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getKnownServices()">
<h3>getKnownServices</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html"title="class or interface in java.util"class="external-link">Collection</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><?>></span> <spanclass="element-name">getKnownServices</span>()</div>
<divclass="block">Get a list of known services. A service is known if it has registered
<divclass="member-signature"><spanclass="type-parameters"><T></span> <spanclass="return-type">boolean</span> <spanclass="element-name">isProvidedFor</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html"title="class or interface in java.lang"class="external-link">Class</a><T> service)</span></div>
<divclass="block">Returns whether a provider has been registered for a service. Do not
check this first only to call <code>load(service)</code> later, as that
would be a non-thread safe situation.</div>
<dlclass="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - service</dd>
<dt>Parameters:</dt>
<dd><code>service</code> - service to check</dd>
<dt>Returns:</dt>
<dd>whether there has been a registered provider</dd>