This commit is contained in:
2023-04-02 20:49:18 -05:00
parent 3944acb7a4
commit ecd192d468
3283 changed files with 842194 additions and 0 deletions

View File

@ -0,0 +1,149 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ClassLoaderAccess (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="declaration: package: io.papermc.paper.plugin.provider.classloader, interface: ClassLoaderAccess">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ClassLoaderAccess.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a></div>
<h1 title="Interface ClassLoaderAccess" class="title">Interface ClassLoaderAccess</h1>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations"><a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/ApiStatus.Internal.html" title="class or interface in org.jetbrains.annotations" class="external-link">@Internal</a>
</span><span class="modifiers">public interface </span><span class="element-name type-name-label">ClassLoaderAccess</span></div>
<div class="block">The class loader access interface is an <b>internal</b> representation of a class accesses' ability to see types
from other <a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>.
<p>
An example of this would be a class loader access representing a plugin. The class loader access in that case would
only return <code>true</code> on calls for <a href="#canAccess(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)"><code>canAccess(ConfiguredPluginClassLoader)</code></a> if the passed class loader
is owned by a direct or transitive dependency of the plugin, preventing the plugin for accidentally discovering and
using class types that are supplied by plugins/libraries the plugin did not actively define as a dependency.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<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="#canAccess(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">canAccess</a><wbr>(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Evaluates if this class loader access is allowed to access types provided by the passed <a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="canAccess(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)">
<h3>canAccess</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">canAccess</span><wbr><span class="parameters">(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader)</span></div>
<div class="block">Evaluates if this class loader access is allowed to access types provided by the passed <a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>.
<p>
This interface method does not offer any further contracts on the interface level, as the logic to determine
what class loaders this class loader access is allowed to retrieve types from depends heavily on the type of
access.
Legacy spigot types for example may access any class loader available on the server, while modern paper plugins
are properly limited to their dependency tree.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>classLoader</code> - the class loader for which access should be evaluated</dd>
<dt>Returns:</dt>
<dd>a plain boolean flag, <code>true</code> indicating that this class loader access is allowed to access types
from the passed configured plugin class loader, <code>false</code> indicating otherwise.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,245 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ConfiguredPluginClassLoader (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="declaration: package: io.papermc.paper.plugin.provider.classloader, interface: ConfiguredPluginClassLoader">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ConfiguredPluginClassLoader.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a></div>
<h1 title="Interface ConfiguredPluginClassLoader" class="title">Interface ConfiguredPluginClassLoader</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html" title="class or interface in java.io" class="external-link">Closeable</a></code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" title="class in org.bukkit.plugin.java">PluginClassLoader</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations"><a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/ApiStatus.Internal.html" title="class or interface in org.jetbrains.annotations" class="external-link">@Internal</a>
</span><span class="modifiers">public interface </span><span class="element-name type-name-label">ConfiguredPluginClassLoader</span><span class="extends-implements">
extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html" title="class or interface in java.io" class="external-link">Closeable</a></span></div>
<div class="block">The configured plugin class loader represents an <b>internal</b> abstraction over the classloaders used by the server
to load and access a plugins classes during runtime.
<p>
It implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html" title="class or interface in java.io" class="external-link"><code>Closeable</code></a> to define the ability to shutdown and close the classloader that implements this
interface.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../configuration/PluginMeta.html" title="interface in io.papermc.paper.plugin.configuration">PluginMeta</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getConfiguration()" class="member-name-link">getConfiguration</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Provides the configuration of the plugin that this plugin classloader provides type access to.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="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> <a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getGroup()" class="member-name-link">getGroup</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Get the plugin classloader group
that is used by the underlying classloader</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="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> <a href="../../../../../../org/bukkit/plugin/java/JavaPlugin.html" title="class in org.bukkit.plugin.java">JavaPlugin</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getPlugin()" class="member-name-link">getPlugin</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the plugin held by this class loader.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#init(org.bukkit.plugin.java.JavaPlugin)" class="member-name-link">init</a><wbr>(<a href="../../../../../../org/bukkit/plugin/java/JavaPlugin.html" title="class in org.bukkit.plugin.java">JavaPlugin</a>&nbsp;plugin)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Initializes both this configured plugin class loader and the java plugin passed to link to each other.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="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>&lt;?&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#loadClass(java.lang.String,boolean,boolean,boolean)" class="member-name-link">loadClass</a><wbr>(<a href="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> <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;name,
boolean&nbsp;resolve,
boolean&nbsp;checkGlobal,
boolean&nbsp;checkLibraries)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Attempts to load a class from this plugin class loader using the passed fully qualified name.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.io.Closeable">Methods inherited from interface&nbsp;java.io.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html" title="class or interface in java.io" class="external-link">Closeable</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html#close()" title="class or interface in java.io" class="external-link">close</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getConfiguration()">
<h3>getConfiguration</h3>
<div class="member-signature"><span class="return-type"><a href="../../configuration/PluginMeta.html" title="interface in io.papermc.paper.plugin.configuration">PluginMeta</a></span>&nbsp;<span class="element-name">getConfiguration</span>()</div>
<div class="block">Provides the configuration of the plugin that this plugin classloader provides type access to.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the plugin meta instance, holding all meta information about the plugin instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="loadClass(java.lang.String,boolean,boolean,boolean)">
<h3>loadClass</h3>
<div class="member-signature"><span class="return-type"><a href="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>&lt;?&gt;</span>&nbsp;<span class="element-name">loadClass</span><wbr><span class="parameters">(<a href="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>
<a href="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> <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;name,
boolean&nbsp;resolve,
boolean&nbsp;checkGlobal,
boolean&nbsp;checkLibraries)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ClassNotFoundException.html" title="class or interface in java.lang" class="external-link">ClassNotFoundException</a></span></div>
<div class="block">Attempts to load a class from this plugin class loader using the passed fully qualified name.
This lookup logic can be configured through the following parameters to define how wide or how narrow the
class lookup should be.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - the fully qualified name of the class to load</dd>
<dd><code>resolve</code> - whether the class should be resolved if needed or not</dd>
<dd><code>checkGlobal</code> - whether this lookup should check transitive dependencies, including either the legacy spigot
global class loader or the paper <a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>PluginClassLoaderGroup</code></a></dd>
<dd><code>checkLibraries</code> - whether the defined libraries should be checked for the class or not</dd>
<dt>Returns:</dt>
<dd>the class found at the fully qualified class name passed under the passed restrictions</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ClassNotFoundException.html" title="class or interface in java.lang" class="external-link">ClassNotFoundException</a></code> - if the class could not be found considering the passed restrictions</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ClassLoader.html#loadClass(java.lang.String)" title="class or interface in java.lang" class="external-link"><code>ClassLoader.loadClass(String)</code></a></li>
<li><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html#forName(java.lang.String,boolean,java.lang.ClassLoader)" title="class or interface in java.lang" class="external-link"><code>Class.forName(String, boolean, ClassLoader)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="init(org.bukkit.plugin.java.JavaPlugin)">
<h3>init</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">init</span><wbr><span class="parameters">(<a href="../../../../../../org/bukkit/plugin/java/JavaPlugin.html" title="class in org.bukkit.plugin.java">JavaPlugin</a>&nbsp;plugin)</span></div>
<div class="block">Initializes both this configured plugin class loader and the java plugin passed to link to each other.
This logic is to be called exactly once when the initial setup between the class loader and the instantiated
<a href="../../../../../../org/bukkit/plugin/java/JavaPlugin.html" title="class in org.bukkit.plugin.java"><code>JavaPlugin</code></a> is loaded.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>plugin</code> - the <a href="../../../../../../org/bukkit/plugin/java/JavaPlugin.html" title="class in org.bukkit.plugin.java"><code>JavaPlugin</code></a> that should be interlinked with this class loader.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPlugin()">
<h3>getPlugin</h3>
<div class="member-signature"><span class="annotations"><a href="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><span class="return-type"><a href="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> <a href="../../../../../../org/bukkit/plugin/java/JavaPlugin.html" title="class in org.bukkit.plugin.java">JavaPlugin</a></span>&nbsp;<span class="element-name">getPlugin</span>()</div>
<div class="block">Gets the plugin held by this class loader.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the plugin or null if it doesn't exist yet</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getGroup()">
<h3>getGroup</h3>
<div class="member-signature"><span class="annotations"><a href="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><span class="return-type"><a href="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> <a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></span>&nbsp;<span class="element-name">getGroup</span>()</div>
<div class="block">Get the plugin classloader group
that is used by the underlying classloader</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>classloader</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,258 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>PaperClassLoaderStorage (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="declaration: package: io.papermc.paper.plugin.provider.classloader, interface: PaperClassLoaderStorage">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/PaperClassLoaderStorage.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a></div>
<h1 title="Interface PaperClassLoaderStorage" class="title">Interface PaperClassLoaderStorage</h1>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations"><a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/ApiStatus.Internal.html" title="class or interface in org.jetbrains.annotations" class="external-link">@Internal</a>
</span><span class="modifiers">public interface </span><span class="element-name type-name-label">PaperClassLoaderStorage</span></div>
<div class="block">The plugin classloader storage is an <b>internal</b> type that is used to manage existing classloaders on the server.
<p>
The paper classloader storage is also responsible for storing added <a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>s into
<a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>PluginClassLoaderGroup</code></a>s, via <a href="#registerOpenGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)"><code>registerOpenGroup(ConfiguredPluginClassLoader)</code></a>,
<a href="#registerSpigotGroup(org.bukkit.plugin.java.PluginClassLoader)"><code>registerSpigotGroup(PluginClassLoader)</code></a> and <a href="#registerAccessBackedGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader,io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess)"><code>registerAccessBackedGroup(ConfiguredPluginClassLoader, ClassLoaderAccess)</code></a>.
<p>
Groups are differentiated into the global group or plugin owned groups.
<ul>
<li>The global group holds all registered class loaders and merely exists to maintain backwards compatibility with
spigots legacy classloader handling.</li>
<li>The plugin groups only contains the classloaders that each plugin has access to and hence serves to properly
separates unrelated classloaders.</li>
</ul></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1"><code>static <a href="PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1"><code><a href="#instance()" class="member-name-link">instance</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1">
<div class="block">Access to the shared instance of the <code>PaperClassLoaderStorageAccess</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#registerAccessBackedGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader,io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess)" class="member-name-link">registerAccessBackedGroup</a><wbr>(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader,
<a href="ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a>&nbsp;access)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Registers a paper configured classloader into a new, access backed group.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#registerOpenGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">registerOpenGroup</a><wbr>(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Registers a paper configured plugin classloader into a new open group, with full access to the global
plugin class loader group.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#registerSpigotGroup(org.bukkit.plugin.java.PluginClassLoader)" class="member-name-link">registerSpigotGroup</a><wbr>(<a href="../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" title="class in org.bukkit.plugin.java">PluginClassLoader</a>&nbsp;pluginClassLoader)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Registers a legacy spigot <a href="../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" title="class in org.bukkit.plugin.java"><code>PluginClassLoader</code></a> into the loader storage, creating a group wrapping
the single plugin class loader with transitive access to the global group.</div>
</div>
<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="#registerUnsafePlugin(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">registerUnsafePlugin</a><wbr>(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;pluginLoader)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Registers a configured plugin class loader directly into the global group without adding it to
any existing groups.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#unregisterClassloader(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">unregisterClassloader</a><wbr>(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Unregisters a configured class loader from this storage.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="instance()">
<h3>instance</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type"><a href="PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></span>&nbsp;<span class="element-name">instance</span>()</div>
<div class="block">Access to the shared instance of the <code>PaperClassLoaderStorageAccess</code>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the singleton instance of the <a href="PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>PaperClassLoaderStorage</code></a> used throughout the server</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="registerSpigotGroup(org.bukkit.plugin.java.PluginClassLoader)">
<h3>registerSpigotGroup</h3>
<div class="member-signature"><span class="return-type"><a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></span>&nbsp;<span class="element-name">registerSpigotGroup</span><wbr><span class="parameters">(<a href="../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" title="class in org.bukkit.plugin.java">PluginClassLoader</a>&nbsp;pluginClassLoader)</span></div>
<div class="block">Registers a legacy spigot <a href="../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" title="class in org.bukkit.plugin.java"><code>PluginClassLoader</code></a> into the loader storage, creating a group wrapping
the single plugin class loader with transitive access to the global group.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>pluginClassLoader</code> - the legacy spigot plugin class loader to register</dd>
<dt>Returns:</dt>
<dd>the group the plugin class loader was placed into</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="registerOpenGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)">
<h3>registerOpenGroup</h3>
<div class="member-signature"><span class="return-type"><a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></span>&nbsp;<span class="element-name">registerOpenGroup</span><wbr><span class="parameters">(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader)</span></div>
<div class="block">Registers a paper configured plugin classloader into a new open group, with full access to the global
plugin class loader group.
<p>
This method hence allows the configured plugin class loader to access all other class loaders registered in this
storage.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>classLoader</code> - the configured plugin class loader to register</dd>
<dt>Returns:</dt>
<dd>the group the plugin class loader was placed into</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="registerAccessBackedGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader,io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess)">
<h3>registerAccessBackedGroup</h3>
<div class="member-signature"><span class="return-type"><a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></span>&nbsp;<span class="element-name">registerAccessBackedGroup</span><wbr><span class="parameters">(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader,
<a href="ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a>&nbsp;access)</span></div>
<div class="block">Registers a paper configured classloader into a new, access backed group.
The access backed classloader group, different from an open group, only has access to the classloaders
the passed <a href="ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ClassLoaderAccess</code></a> grants access to.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>classLoader</code> - the configured plugin class loader to register</dd>
<dd><code>access</code> - the class loader access that defines what other classloaders the passed plugin class loader
should be granted access to.</dd>
<dt>Returns:</dt>
<dd>the group the plugin class loader was placed into.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="unregisterClassloader(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)">
<h3>unregisterClassloader</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">unregisterClassloader</span><wbr><span class="parameters">(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</span></div>
<div class="block">Unregisters a configured class loader from this storage.
This removes the passed class loaders from any group it may have been a part of, including the global group.
<p>
Note: this method is <b>highly</b> discouraged from being used, as mutation of the classloaders at runtime
is not encouraged</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>configuredPluginClassLoader</code> - the class loader to remove from this storage.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="registerUnsafePlugin(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)">
<h3>registerUnsafePlugin</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">registerUnsafePlugin</span><wbr><span class="parameters">(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;pluginLoader)</span></div>
<div class="block">Registers a configured plugin class loader directly into the global group without adding it to
any existing groups.
<p>
Note: this method unsafely injects the plugin classloader directly into the global group, which bypasses the
group structure paper's plugin API introduced. This method should hence be used with caution.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>pluginLoader</code> - the configured plugin classloader instance that should be registered directly into the global
group.</dd>
<dt>Returns:</dt>
<dd>a simple boolean flag, <code>true</code> if the classloader was registered or <code>false</code> if the classloader
was already part of the global group.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,218 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>PluginClassLoaderGroup (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="declaration: package: io.papermc.paper.plugin.provider.classloader, interface: PluginClassLoaderGroup">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/PluginClassLoaderGroup.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a></div>
<h1 title="Interface PluginClassLoaderGroup" class="title">Interface PluginClassLoaderGroup</h1>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations"><a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/ApiStatus.Internal.html" title="class or interface in org.jetbrains.annotations" class="external-link">@Internal</a>
</span><span class="modifiers">public interface </span><span class="element-name type-name-label">PluginClassLoaderGroup</span></div>
<div class="block">A plugin classloader group represents a group of classloaders that a plugins classloader may access.
<p>
An example of this would be a classloader group that holds all direct and transitive dependencies a plugin declared,
allowing a plugins classloader to access classes included in these dependencies via this group.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#add(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">add</a><wbr>(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds the passed plugin classloader to this group, allowing this group to use it during
<a href="#getClassByName(java.lang.String,boolean,io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)"><code>getClassByName(String, boolean, ConfiguredPluginClassLoader)</code></a> lookups.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getAccess()" class="member-name-link">getAccess</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Provides the class loader access that guards and defines the content of this classloader group.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="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> <a href="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>&lt;?&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getClassByName(java.lang.String,boolean,io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">getClassByName</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;name,
boolean&nbsp;resolve,
<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;requester)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Attempts to find/load a class from this plugin class loader group using the passed fully qualified name
in any of the classloaders that are part of this group.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#remove(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">remove</a><wbr>(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes a configured plugin classloader from this class loader group.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getClassByName(java.lang.String,boolean,io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)">
<h3>getClassByName</h3>
<div class="member-signature"><span class="annotations"><a href="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><span class="return-type"><a href="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> <a href="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>&lt;?&gt;</span>&nbsp;<span class="element-name">getClassByName</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;name,
boolean&nbsp;resolve,
<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;requester)</span></div>
<div class="block">Attempts to find/load a class from this plugin class loader group using the passed fully qualified name
in any of the classloaders that are part of this group.
<p>
The lookup order across the contained loaders is not defined on the API level and depends purely on the
implementation.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - the fully qualified name of the class to load</dd>
<dd><code>resolve</code> - whether the class should be resolved if needed or not</dd>
<dd><code>requester</code> - plugin classloader that is requesting the class from this loader group</dd>
<dt>Returns:</dt>
<dd>the class found at the fully qualified class name passed. If the class could not be found, <code>null</code>
will be returned.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="ConfiguredPluginClassLoader.html#loadClass(java.lang.String,boolean,boolean,boolean)"><code>ConfiguredPluginClassLoader.loadClass(String, boolean, boolean, boolean)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="remove(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)">
<h3>remove</h3>
<div class="member-signature"><span class="annotations"><a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Contract.html" title="class or interface in org.jetbrains.annotations" class="external-link">@Contract</a>(<a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Contract.html#mutates()" title="class or interface in org.jetbrains.annotations" class="external-link">mutates</a>="this")
</span><span class="return-type">void</span>&nbsp;<span class="element-name">remove</span><wbr><span class="parameters">(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</span></div>
<div class="block">Removes a configured plugin classloader from this class loader group.
If the classloader is not currently in the list, this method will simply do nothing.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>configuredPluginClassLoader</code> - the plugin classloader to remove from the group</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="add(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)">
<h3>add</h3>
<div class="member-signature"><span class="annotations"><a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Contract.html" title="class or interface in org.jetbrains.annotations" class="external-link">@Contract</a>(<a href="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Contract.html#mutates()" title="class or interface in org.jetbrains.annotations" class="external-link">mutates</a>="this")
</span><span class="return-type">void</span>&nbsp;<span class="element-name">add</span><wbr><span class="parameters">(<a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</span></div>
<div class="block">Adds the passed plugin classloader to this group, allowing this group to use it during
<a href="#getClassByName(java.lang.String,boolean,io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)"><code>getClassByName(String, boolean, ConfiguredPluginClassLoader)</code></a> lookups.
<p>
This method does <b>not</b> query the <a href="ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ClassLoaderAccess</code></a> (exposed via <a href="#getAccess()"><code>getAccess()</code></a>) to ensure
if this group has access to the class loader passed.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>configuredPluginClassLoader</code> - the plugin classloader to add to this group.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAccess()">
<h3>getAccess</h3>
<div class="member-signature"><span class="return-type"><a href="ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></span>&nbsp;<span class="element-name">getAccess</span>()</div>
<div class="block">Provides the class loader access that guards and defines the content of this classloader group.
While not guaranteed contractually (see <a href="#add(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)"><code>add(ConfiguredPluginClassLoader)</code></a>), the access generally is
responsible for defining which <a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>s should be part of this group and which ones
should not.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the classloader access governing which classloaders should be part of this group and which ones should
not.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,97 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Uses of Interface io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="use: package: io.papermc.paper.plugin.provider.classloader, interface: ClassLoaderAccess">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Interface io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess" class="title">Uses of Interface<br>io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess</h1>
</div>
<div class="caption"><span>Packages that use <a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#io.papermc.paper.plugin.provider.classloader">io.papermc.paper.plugin.provider.classloader</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="io.papermc.paper.plugin.provider.classloader">
<h2>Uses of <a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a> in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a> that return <a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">PluginClassLoaderGroup.</span><code><a href="../PluginClassLoaderGroup.html#getAccess()" class="member-name-link">getAccess</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Provides the class loader access that guards and defines the content of this classloader group.</div>
</div>
</div>
<div class="caption"><span>Methods in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a> with parameters of type <a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#registerAccessBackedGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader,io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess)" class="member-name-link">registerAccessBackedGroup</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader,
<a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a>&nbsp;access)</code></div>
<div class="col-last even-row-color">
<div class="block">Registers a paper configured classloader into a new, access backed group.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,148 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Uses of Interface io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="use: package: io.papermc.paper.plugin.provider.classloader, interface: ConfiguredPluginClassLoader">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Interface io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader" class="title">Uses of Interface<br>io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader</h1>
</div>
<div class="caption"><span>Packages that use <a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#io.papermc.paper.plugin.provider.classloader">io.papermc.paper.plugin.provider.classloader</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="#org.bukkit.plugin.java">org.bukkit.plugin.java</a></div>
<div class="col-last odd-row-color">
<div class="block">Classes for handling <a href="../../../../../../../org/bukkit/plugin/Plugin.html" title="interface in org.bukkit.plugin"><code>plugins</code></a> written in
java.</div>
</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="io.papermc.paper.plugin.provider.classloader">
<h2>Uses of <a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a> in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a> with parameters of type <a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">PluginClassLoaderGroup.</span><code><a href="../PluginClassLoaderGroup.html#add(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">add</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</code></div>
<div class="col-last even-row-color">
<div class="block">Adds the passed plugin classloader to this group, allowing this group to use it during
<a href="../PluginClassLoaderGroup.html#getClassByName(java.lang.String,boolean,io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)"><code>PluginClassLoaderGroup.getClassByName(String, boolean, ConfiguredPluginClassLoader)</code></a> lookups.</div>
</div>
<div class="col-first odd-row-color"><code>boolean</code></div>
<div class="col-second odd-row-color"><span class="type-name-label">ClassLoaderAccess.</span><code><a href="../ClassLoaderAccess.html#canAccess(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">canAccess</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader)</code></div>
<div class="col-last odd-row-color">
<div class="block">Evaluates if this class loader access is allowed to access types provided by the passed <a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>.</div>
</div>
<div class="col-first even-row-color"><code><a href="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> <a href="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>&lt;?&gt;</code></div>
<div class="col-second even-row-color"><span class="type-name-label">PluginClassLoaderGroup.</span><code><a href="../PluginClassLoaderGroup.html#getClassByName(java.lang.String,boolean,io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">getClassByName</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;name,
boolean&nbsp;resolve,
<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;requester)</code></div>
<div class="col-last even-row-color">
<div class="block">Attempts to find/load a class from this plugin class loader group using the passed fully qualified name
in any of the classloaders that are part of this group.</div>
</div>
<div class="col-first odd-row-color"><code><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#registerAccessBackedGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader,io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess)" class="member-name-link">registerAccessBackedGroup</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader,
<a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a>&nbsp;access)</code></div>
<div class="col-last odd-row-color">
<div class="block">Registers a paper configured classloader into a new, access backed group.</div>
</div>
<div class="col-first even-row-color"><code><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#registerOpenGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">registerOpenGroup</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader)</code></div>
<div class="col-last even-row-color">
<div class="block">Registers a paper configured plugin classloader into a new open group, with full access to the global
plugin class loader group.</div>
</div>
<div class="col-first odd-row-color"><code>boolean</code></div>
<div class="col-second odd-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#registerUnsafePlugin(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">registerUnsafePlugin</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;pluginLoader)</code></div>
<div class="col-last odd-row-color">
<div class="block">Registers a configured plugin class loader directly into the global group without adding it to
any existing groups.</div>
</div>
<div class="col-first even-row-color"><code>void</code></div>
<div class="col-second even-row-color"><span class="type-name-label">PluginClassLoaderGroup.</span><code><a href="../PluginClassLoaderGroup.html#remove(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">remove</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</code></div>
<div class="col-last even-row-color">
<div class="block">Removes a configured plugin classloader from this class loader group.</div>
</div>
<div class="col-first odd-row-color"><code>void</code></div>
<div class="col-second odd-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#unregisterClassloader(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">unregisterClassloader</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;configuredPluginClassLoader)</code></div>
<div class="col-last odd-row-color">
<div class="block">Unregisters a configured class loader from this storage.</div>
</div>
</div>
</section>
</li>
<li>
<section class="detail" id="org.bukkit.plugin.java">
<h2>Uses of <a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a> in <a href="../../../../../../../org/bukkit/plugin/java/package-summary.html">org.bukkit.plugin.java</a></h2>
<div class="caption"><span>Classes in <a href="../../../../../../../org/bukkit/plugin/java/package-summary.html">org.bukkit.plugin.java</a> that implement <a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>final class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="../../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" class="type-name-link" title="class in org.bukkit.plugin.java">PluginClassLoader</a></code></div>
<div class="col-last even-row-color">
<div class="block">A ClassLoader for plugins, to allow shared classes across multiple plugins</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,85 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Uses of Interface io.papermc.paper.plugin.provider.classloader.PaperClassLoaderStorage (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="use: package: io.papermc.paper.plugin.provider.classloader, interface: PaperClassLoaderStorage">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Interface io.papermc.paper.plugin.provider.classloader.PaperClassLoaderStorage" class="title">Uses of Interface<br>io.papermc.paper.plugin.provider.classloader.PaperClassLoaderStorage</h1>
</div>
<div class="caption"><span>Packages that use <a href="../PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#io.papermc.paper.plugin.provider.classloader">io.papermc.paper.plugin.provider.classloader</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="io.papermc.paper.plugin.provider.classloader">
<h2>Uses of <a href="../PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a> in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a> that return <a href="../PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static <a href="../PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#instance()" class="member-name-link">instance</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Access to the shared instance of the <code>PaperClassLoaderStorageAccess</code>.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,123 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Uses of Interface io.papermc.paper.plugin.provider.classloader.PluginClassLoaderGroup (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="use: package: io.papermc.paper.plugin.provider.classloader, interface: PluginClassLoaderGroup">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">Class</a></li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Interface io.papermc.paper.plugin.provider.classloader.PluginClassLoaderGroup" class="title">Uses of Interface<br>io.papermc.paper.plugin.provider.classloader.PluginClassLoaderGroup</h1>
</div>
<div class="caption"><span>Packages that use <a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#io.papermc.paper.plugin.provider.classloader">io.papermc.paper.plugin.provider.classloader</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="#org.bukkit.plugin.java">org.bukkit.plugin.java</a></div>
<div class="col-last odd-row-color">
<div class="block">Classes for handling <a href="../../../../../../../org/bukkit/plugin/Plugin.html" title="interface in org.bukkit.plugin"><code>plugins</code></a> written in
java.</div>
</div>
</div>
<section class="class-uses">
<ul class="block-list">
<li>
<section class="detail" id="io.papermc.paper.plugin.provider.classloader">
<h2>Uses of <a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a> in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a></h2>
<div class="caption"><span>Methods in <a href="../package-summary.html">io.papermc.paper.plugin.provider.classloader</a> that return <a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="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> <a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">ConfiguredPluginClassLoader.</span><code><a href="../ConfiguredPluginClassLoader.html#getGroup()" class="member-name-link">getGroup</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Get the plugin classloader group
that is used by the underlying classloader</div>
</div>
<div class="col-first odd-row-color"><code><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#registerAccessBackedGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader,io.papermc.paper.plugin.provider.classloader.ClassLoaderAccess)" class="member-name-link">registerAccessBackedGroup</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader,
<a href="../ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a>&nbsp;access)</code></div>
<div class="col-last odd-row-color">
<div class="block">Registers a paper configured classloader into a new, access backed group.</div>
</div>
<div class="col-first even-row-color"><code><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#registerOpenGroup(io.papermc.paper.plugin.provider.classloader.ConfiguredPluginClassLoader)" class="member-name-link">registerOpenGroup</a><wbr>(<a href="../ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a>&nbsp;classLoader)</code></div>
<div class="col-last even-row-color">
<div class="block">Registers a paper configured plugin classloader into a new open group, with full access to the global
plugin class loader group.</div>
</div>
<div class="col-first odd-row-color"><code><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">PaperClassLoaderStorage.</span><code><a href="../PaperClassLoaderStorage.html#registerSpigotGroup(org.bukkit.plugin.java.PluginClassLoader)" class="member-name-link">registerSpigotGroup</a><wbr>(<a href="../../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" title="class in org.bukkit.plugin.java">PluginClassLoader</a>&nbsp;pluginClassLoader)</code></div>
<div class="col-last odd-row-color">
<div class="block">Registers a legacy spigot <a href="../../../../../../../org/bukkit/plugin/java/PluginClassLoader.html" title="class in org.bukkit.plugin.java"><code>PluginClassLoader</code></a> into the loader storage, creating a group wrapping
the single plugin class loader with transitive access to the global group.</div>
</div>
</div>
</section>
</li>
<li>
<section class="detail" id="org.bukkit.plugin.java">
<h2>Uses of <a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a> in <a href="../../../../../../../org/bukkit/plugin/java/package-summary.html">org.bukkit.plugin.java</a></h2>
<div class="caption"><span>Methods in <a href="../../../../../../../org/bukkit/plugin/java/package-summary.html">org.bukkit.plugin.java</a> that return <a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="../PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></code></div>
<div class="col-second even-row-color"><span class="type-name-label">PluginClassLoader.</span><code><a href="../../../../../../../org/bukkit/plugin/java/PluginClassLoader.html#getGroup()" class="member-name-link">getGroup</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,99 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>io.papermc.paper.plugin.provider.classloader (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="declaration: package: io.papermc.paper.plugin.provider.classloader">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#package">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li>Description&nbsp;|&nbsp;</li>
<li>Related Packages&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Package io.papermc.paper.plugin.provider.classloader" class="title">Package io.papermc.paper.plugin.provider.classloader</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">io.papermc.paper.plugin.provider.classloader</span></div>
<section class="summary">
<ul class="summary-list">
<li>
<div id="class-summary">
<div class="caption"><span>Interfaces</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab1"><a href="ClassLoaderAccess.html" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></div>
<div class="col-last even-row-color class-summary class-summary-tab1">
<div class="block">The class loader access interface is an <b>internal</b> representation of a class accesses' ability to see types
from other <a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">The configured plugin class loader represents an <b>internal</b> abstraction over the classloaders used by the server
to load and access a plugins classes during runtime.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab1"><a href="PaperClassLoaderStorage.html" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></div>
<div class="col-last even-row-color class-summary class-summary-tab1">
<div class="block">The plugin classloader storage is an <b>internal</b> type that is used to manage existing classloaders on the server.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="PluginClassLoaderGroup.html" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">A plugin classloader group represents a group of classloaders that a plugins classloader may access.</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,79 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>io.papermc.paper.plugin.provider.classloader Class Hierarchy (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="tree: package: io.papermc.paper.plugin.provider.classloader">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
<script type="text/javascript">var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#tree">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package io.papermc.paper.plugin.provider.classloader</h1>
<span class="package-hierarchy-label">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<section class="hierarchy">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" class="type-name-link external-link" title="class or interface in java.lang">AutoCloseable</a>
<ul>
<li class="circle">java.io.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html" class="type-name-link external-link" title="class or interface in java.io">Closeable</a>
<ul>
<li class="circle">io.papermc.paper.plugin.provider.classloader.<a href="ConfiguredPluginClassLoader.html" class="type-name-link" title="interface in io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a></li>
</ul>
</li>
</ul>
</li>
<li class="circle">io.papermc.paper.plugin.provider.classloader.<a href="ClassLoaderAccess.html" class="type-name-link" title="interface in io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></li>
<li class="circle">io.papermc.paper.plugin.provider.classloader.<a href="PaperClassLoaderStorage.html" class="type-name-link" title="interface in io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></li>
<li class="circle">io.papermc.paper.plugin.provider.classloader.<a href="PluginClassLoaderGroup.html" class="type-name-link" title="interface in io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,119 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Uses of Package io.papermc.paper.plugin.provider.classloader (Scissors-API 1.19.4-R0.1-SNAPSHOT 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="description" content="use: package: io.papermc.paper.plugin.provider.classloader">
<meta name="generator" content="javadoc/PackageUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-use-page">
<script type="text/javascript">var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#use">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Uses of Package io.papermc.paper.plugin.provider.classloader" class="title">Uses of Package<br>io.papermc.paper.plugin.provider.classloader</h1>
</div>
<div class="caption"><span>Packages that use <a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="#io.papermc.paper.plugin.provider.classloader">io.papermc.paper.plugin.provider.classloader</a></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><a href="#org.bukkit.plugin.java">org.bukkit.plugin.java</a></div>
<div class="col-last odd-row-color">
<div class="block">Classes for handling <a href="../../../../../../org/bukkit/plugin/Plugin.html" title="interface in org.bukkit.plugin"><code>plugins</code></a> written in
java.</div>
</div>
</div>
<section class="package-uses">
<ul class="block-list">
<li>
<section class="detail" id="io.papermc.paper.plugin.provider.classloader">
<div class="caption"><span>Classes in <a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a> used by <a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="class-use/ClassLoaderAccess.html#io.papermc.paper.plugin.provider.classloader">ClassLoaderAccess</a></div>
<div class="col-last even-row-color">
<div class="block">The class loader access interface is an <b>internal</b> representation of a class accesses' ability to see types
from other <a href="ConfiguredPluginClassLoader.html" title="interface in io.papermc.paper.plugin.provider.classloader"><code>ConfiguredPluginClassLoader</code></a>.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/ConfiguredPluginClassLoader.html#io.papermc.paper.plugin.provider.classloader">ConfiguredPluginClassLoader</a></div>
<div class="col-last odd-row-color">
<div class="block">The configured plugin class loader represents an <b>internal</b> abstraction over the classloaders used by the server
to load and access a plugins classes during runtime.</div>
</div>
<div class="col-first even-row-color"><a href="class-use/PaperClassLoaderStorage.html#io.papermc.paper.plugin.provider.classloader">PaperClassLoaderStorage</a></div>
<div class="col-last even-row-color">
<div class="block">The plugin classloader storage is an <b>internal</b> type that is used to manage existing classloaders on the server.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/PluginClassLoaderGroup.html#io.papermc.paper.plugin.provider.classloader">PluginClassLoaderGroup</a></div>
<div class="col-last odd-row-color">
<div class="block">A plugin classloader group represents a group of classloaders that a plugins classloader may access.</div>
</div>
</div>
</section>
</li>
<li>
<section class="detail" id="org.bukkit.plugin.java">
<div class="caption"><span>Classes in <a href="package-summary.html">io.papermc.paper.plugin.provider.classloader</a> used by <a href="../../../../../../org/bukkit/plugin/java/package-summary.html">org.bukkit.plugin.java</a></span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="class-use/ConfiguredPluginClassLoader.html#org.bukkit.plugin.java">ConfiguredPluginClassLoader</a></div>
<div class="col-last even-row-color">
<div class="block">The configured plugin class loader represents an <b>internal</b> abstraction over the classloaders used by the server
to load and access a plugins classes during runtime.</div>
</div>
<div class="col-first odd-row-color"><a href="class-use/PluginClassLoaderGroup.html#org.bukkit.plugin.java">PluginClassLoaderGroup</a></div>
<div class="col-last odd-row-color">
<div class="block">A plugin classloader group represents a group of classloaders that a plugins classloader may access.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>