PendingLoadJavaPlugin class
Пакет: com.hypixel.hytale.server.core.plugin.pending
Файл: com/hypixel/hytale/server/core/plugin/pending/PendingLoadJavaPlugin.java
extends: PendingLoadPlugin
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
HytaleLogger |
LOGGER |
|
PluginManifest |
var1 |
|
Class |
var2 |
|
Constructor |
var3 |
|
Path |
var4 |
|
JavaPluginInit |
var5 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
setClassLoadervoid setClassLoader(@Nonnull PluginClassLoader var1) |
abstract |
|
super super(var1, var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.plugin.pending;
class="kw">import com.hypixel.hytale.common.plugin.PluginManifest;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import com.hypixel.hytale.server.core.plugin.PluginClassLoader;
class="kw">import com.hypixel.hytale.server.core.plugin.PluginManager;
class="kw">import java.lang.reflect.Constructor;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class PendingLoadJavaPlugin class="kw">extends PendingLoadPlugin {
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
@Nonnull
class="kw">private PluginClassLoader urlClassLoader;
class="kw">public PendingLoadJavaPlugin(@Nullable Path var1, @Nonnull PluginManifest var2, @Nonnull PluginClassLoader var3) {
super(var1, var2);
this.urlClassLoader = var3;
}
@Nonnull
@Override
class="kw">public PendingLoadPlugin createSubPendingLoadPlugin(@Nonnull PluginManifest var1) {
class="kw">return new PendingLoadJavaPlugin(this.getPath(), var1, this.urlClassLoader);
}
@Override
class="kw">public boolean isCoreMod() {
class="kw">return this.urlClassLoader.isInServerClassPath();
}
@Nonnull
class="kw">public PluginClassLoader getClassLoader() {
class="kw">return this.urlClassLoader;
}
class="kw">public void setClassLoader(@Nonnull PluginClassLoader var1) {
this.urlClassLoader = var1;
}
@Nonnull
class="kw">public JavaPlugin load() class="kw">throws Exception {
PluginManifest var1 = this.getManifest();
Class var2 = this.urlClassLoader.loadLocalClass(var1.getMain());
if (JavaPlugin.class.isAssignableFrom(var2)) {
Constructor var3 = var2.getConstructor(JavaPluginInit.class);
Path var4 = PluginManager.MODS_PATH.resolve(var1.getGroup() + "_" + var1.getName());
JavaPluginInit var5 = new JavaPluginInit(var1, var4, this.getPath(), this.urlClassLoader);
class="kw">return (JavaPlugin)var3.newInstance(var5);
} else {
throw new ClassCastException(var1.getMain() + " does not extend JavaPlugin");
}
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "PendingLoadJavaPlugin{" + super.toString() + "}";
}
}