PluginManager

public class PluginManager

Class PluginManager. Provides pluginmanager functionality for the Hytale server.

java.lang.Object > PluginManager

Field Summary

state

private PluginState state

Field state.

loadOrder

private List loadOrder

Field loadOrder.

pluginListPageManager

public PluginListPageManager pluginListPageManager

Field pluginListPageManager.

identifier

final PluginIdentifier identifier

Field identifier.

modConfig

final HytaleServerConfig.ModConfig modConfig

Field modConfig.

plugin

final PendingLoadPlugin plugin

Field plugin.

iterator

final Iterator iterator

Field iterator.

pendingLoadPlugin

final PendingLoadPlugin pendingLoadPlugin

Field pendingLoadPlugin.

preLoadFutures

final ObjectArrayList> preLoadFutures

Field preLoadFutures.

plugin2

final PluginBase plugin2

Field plugin2.

future

final CompletableFuture future

Field future.

sb

final StringBuilder sb

Field sb.

requiredVersion

final SemverRange requiredVersion

Field requiredVersion.

msg

final String msg

Field msg.

list

final List list

Field list.

serverVersion

final Semver serverVersion

Field serverVersion.

serverVersionRange

final SemverRange serverVersionRange

Field serverVersionRange.

pendingDependency

final PendingLoadPlugin pendingDependency

Field pendingDependency.

loadedBase

final PluginBase loadedBase

Field loadedBase.

expectedVersion

final SemverRange expectedVersion

Field expectedVersion.

url

final URL url

Field url.

pluginClassLoader

final PluginClassLoader pluginClassLoader

Field pluginClassLoader.

resource

final URL resource

Field resource.

reader

final InputStreamReader reader

Field reader.

rawJsonReader

final RawJsonReader rawJsonReader

Field rawJsonReader.

extraInfo

final ExtraInfo extraInfo

Field extraInfo.

manifest

final PluginManifest manifest

Field manifest.

uri

final URI uri

Field uri.

classLoader

final ClassLoader classLoader

Field classLoader.

manifestUrls

final HashSet manifestUrls

Field manifestUrls.

connection

final URLConnection connection

Field connection.

buffer

final char[] buffer

Field buffer.

classpathUrl

final URL classpathUrl

Field classpathUrl.

path

final Path path

Field path.

pluginUri

final URI pluginUri

Field pluginUri.

classpathUrl2

final URL classpathUrl2

Field classpathUrl2.

pluginClassLoader2

final PluginClassLoader pluginClassLoader2

Field pluginClassLoader2.

manifestsUrl

final URL manifestsUrl

Field manifestsUrl.

reader2

final InputStreamReader reader2

Field reader2.

rawJsonReader2

final RawJsonReader rawJsonReader2

Field rawJsonReader2.

extraInfo2

final ExtraInfo extraInfo2

Field extraInfo2.

manifests

final PluginManifest[] manifests

Field manifests.

path2

final Path path2

Field path2.

pluginClassLoader3

final PluginClassLoader pluginClassLoader3

Field pluginClassLoader3.

result

final boolean result

Field result.

stream

final InputStream stream

Field stream.

load

final boolean load

Field load.

plugin3

final PendingLoadJavaPlugin plugin3

Field plugin3.

load2

final boolean load2

Field load2.

manifest3

final PluginManifest manifest3

Field manifest3.

pendingLoadJavaPlugin

final PendingLoadJavaPlugin pendingLoadJavaPlugin

Field pendingLoadJavaPlugin.

load3

final boolean load3

Field load3.

value

final Boolean value

Field value.

value2

final Boolean value2

Field value2.

urlClassLoader

final URLClassLoader urlClassLoader

Field urlClassLoader.

preload

final CompletableFuture preload

Field preload.

prev

final boolean prev

Field prev.

dependenciesOnManifest

final Set dependenciesOnManifest

Field dependenciesOnManifest.

dependency

final PluginBase dependency

Field dependency.

pluginBase

final PluginBase pluginBase

Field pluginBase.

loadClass

final Class loadClass

Field loadClass.

resource2

final URL resource2

Field resource2.

results

final ObjectArrayList results

Field results.

javaPlugin

final JavaPlugin javaPlugin

Field javaPlugin.

Method Detail

get

static PluginManager get ()

Method get.

PluginManager

public public PluginManager ()

Method PluginManager.

PluginBridgeClassLoader

public new PluginBridgeClassLoader (this, PluginManager.class.getClassLoader()

Method PluginBridgeClassLoader.

Parameters:
this this
PluginManager.class.getClassLoader( PluginManager.class.getClassLoader(

registerCorePlugin

public void registerCorePlugin (@Nonnull final PluginManifest builder)

Method registerCorePlugin.

Parameters:
@Nonnull final PluginManifest builder

PendingLoadJavaPlugin

public new PendingLoadJavaPlugin (null, builder, this.corePluginClassLoader)

Method PendingLoadJavaPlugin.

Parameters:
null null
builder builder
this.corePluginClassLoader this.corePluginClassLoader

canLoadOnBoot

private boolean canLoadOnBoot (@Nonnull final PluginManifest manifest)

Method canLoadOnBoot.

Parameters:
@Nonnull final PluginManifest manifest

setup

public void setup ()

Method setup.

IllegalStateException

public new IllegalStateException ("Expected PluginState.NONE but found " + String.valueOf(this.state)

Method IllegalStateException.

Parameters:
"Expected PluginState.NONE but found " + String.valueOf(this.state

PluginCommand

public new PluginCommand ()

Method PluginCommand.

start

public void start ()

Method start.

shutdown

public void shutdown ()

Method shutdown.

getState

public PluginState getState ()

Method getState.

getBridgeClassLoader

public PluginBridgeClassLoader getBridgeClassLoader ()

Method getBridgeClassLoader.

validatePluginDeps

private void validatePluginDeps (@Nonnull final PendingLoadPlugin pendingLoadPlugin, @Nullable final Map pending)

Method validatePluginDeps.

Parameters:
@Nonnull final PendingLoadPlugin pendingLoadPlugin
@Nullable final Map pending

MissingPluginDependencyException

public new MissingPluginDependencyException (String.format("Failed to load '%s' because version of server does not satisfy '%s'! ", pendingLoadPlugin.getIdentifier()

Method MissingPluginDependencyException.

Parameters:
String.format("Failed to load '%s' because version of server does not satisfy '%s'! "
pendingLoadPlugin.getIdentifier( pendingLoadPlugin.getIdentifier(

loadPluginsFromDirectory

private void loadPluginsFromDirectory (@Nonnull final Map pending, @Nonnull final Path path, final boolean create, @Nonnull final Map bootRejectMap)

Method loadPluginsFromDirectory.

Parameters:
@Nonnull final Map pending
@Nonnull final Path path
final boolean create
@Nonnull final Map bootRejectMap

loadPendingJavaPlugin

private PendingLoadJavaPlugin loadPendingJavaPlugin (@Nonnull final Path file)

Method loadPendingJavaPlugin.

Parameters:
@Nonnull final Path file

InputStreamReader

public new InputStreamReader (stream, StandardCharsets.UTF_8)

Method InputStreamReader.

Parameters:
stream stream
StandardCharsets.UTF_8 StandardCharsets.UTF_8

loadPluginsInClasspath

private void loadPluginsInClasspath (@Nonnull final Map pending, @Nonnull final Map rejectedBootList)

Method loadPluginsInClasspath.

Parameters:
@Nonnull final Map pending
@Nonnull final Map rejectedBootList

getPlugins

public List getPlugins ()

Method getPlugins.

getPlugin

public PluginBase getPlugin (final PluginIdentifier identifier)

Method getPlugin.

Parameters:
final PluginIdentifier identifier

hasPlugin

public boolean hasPlugin (final PluginIdentifier identifier, @Nonnull final SemverRange range)

Method hasPlugin.

Parameters:
final PluginIdentifier identifier
@Nonnull final SemverRange range

reload

public boolean reload (@Nonnull final PluginIdentifier identifier)

Method reload.

Parameters:
@Nonnull final PluginIdentifier identifier

unload

public boolean unload (@Nonnull final PluginIdentifier identifier)

Method unload.

Parameters:
@Nonnull final PluginIdentifier identifier

unloadJavaPlugin

protected void unloadJavaPlugin (final JavaPlugin plugin)

Method unloadJavaPlugin.

Parameters:
final JavaPlugin plugin

load

public boolean load (@Nonnull final PluginIdentifier identifier)

Method load.

Parameters:
@Nonnull final PluginIdentifier identifier

findAndLoadPlugin

private boolean findAndLoadPlugin (final PluginIdentifier identifier)

Method findAndLoadPlugin.

Parameters:
final PluginIdentifier identifier

findPluginInDirectory

private Boolean findPluginInDirectory (@Nonnull final PluginIdentifier identifier, @Nonnull final Path modsPath)

Method findPluginInDirectory.

Parameters:
@Nonnull final PluginIdentifier identifier
@Nonnull final Path modsPath

loadManifest

static PluginManifest loadManifest (@Nonnull final Path file)

Method loadManifest.

Parameters:
@Nonnull final Path file

URLClassLoader

public new URLClassLoader (new URL[] { file.toUri()

Method URLClassLoader.

Parameters:
new URL[] { file.toUri(

PluginSetupEvent

public new PluginSetupEvent (plugin)

Method PluginSetupEvent.

Parameters:
plugin plugin

dependenciesMatchState

private boolean dependenciesMatchState (final PluginBase plugin, final PluginState requiredState, final PluginState stage)

Method dependenciesMatchState.

Parameters:
final PluginBase plugin
final PluginState requiredState
final PluginState stage

loadPendingPlugin

static void loadPendingPlugin (@Nonnull final Map pending, @Nonnull final PendingLoadPlugin plugin)

Method loadPendingPlugin.

Parameters:
@Nonnull final Map pending
@Nonnull final PendingLoadPlugin plugin

getAvailablePlugins

public PluginManifest> getAvailablePlugins ()

Method getAvailablePlugins.

getSessionSettingsComponentType

public PluginListPageManager.SessionSettings> getSessionSettingsComponentType ()

Method getSessionSettingsComponentType.

loadClass

protected Class loadClass (@Nonnull final String name, final boolean resolve)

Method loadClass.

Parameters:
@Nonnull final String name
final boolean resolve

loadClass0

public Class loadClass0 (@Nonnull final String name, final PluginClassLoader pluginClassLoader)

Method loadClass0.

Parameters:
@Nonnull final String name
final PluginClassLoader pluginClassLoader

tryGetClass

static Class tryGetClass (@Nonnull final String name, final PluginClassLoader pluginClassLoader, final PluginBase pluginBase)

Method tryGetClass.

Parameters:
@Nonnull final String name
final PluginClassLoader pluginClassLoader
final PluginBase pluginBase

getResource0

public URL getResource0 (@Nonnull final String name, @Nullable final PluginClassLoader pluginClassLoader)

Method getResource0.

Parameters:
@Nonnull final String name
@Nullable final PluginClassLoader pluginClassLoader

getResources0

public Enumeration getResources0 (@Nonnull final String name, @Nullable final PluginClassLoader pluginClassLoader)

Method getResources0.

Parameters:
@Nonnull final String name
@Nullable final PluginClassLoader pluginClassLoader

tryGetResource

static URL tryGetResource (@Nonnull final String name, @Nullable final PluginClassLoader pluginClassLoader, @Nullable final PluginBase pluginBase)

Method tryGetResource.

Parameters:
@Nonnull final String name
@Nullable final PluginClassLoader pluginClassLoader
@Nullable final PluginBase pluginBase