Feat: added callbacks PluginEnable/Disable & added PluginClassLoader to rhino
This commit is contained in:
@@ -21,6 +21,8 @@ import cn.nukkit.event.level.ChunkLoadEvent;
|
||||
import cn.nukkit.event.level.ChunkPopulateEvent;
|
||||
import cn.nukkit.event.level.ChunkUnloadEvent;
|
||||
import cn.nukkit.event.player.*;
|
||||
import cn.nukkit.event.plugin.PluginDisableEvent;
|
||||
import cn.nukkit.event.plugin.PluginEnableEvent;
|
||||
import cn.nukkit.event.redstone.RedstoneUpdateEvent;
|
||||
import cn.nukkit.event.server.ServerCommandEvent;
|
||||
import cn.nukkit.event.server.ServerStopEvent;
|
||||
@@ -39,6 +41,7 @@ import cn.nukkit.math.Vector3;
|
||||
import cn.nukkit.network.protocol.UpdateBlockPacket;
|
||||
import cn.nukkit.scheduler.AsyncTask;
|
||||
import com.reider745.InnerCoreServer;
|
||||
import com.reider745.api.ZoteOnly;
|
||||
import com.reider745.hooks.ServerHooks;
|
||||
import com.reider745.hooks.network.RakNetPlayerSessionHooks;
|
||||
import com.reider745.item.ItemMethod;
|
||||
@@ -46,6 +49,7 @@ import com.reider745.world.BiomesMethods;
|
||||
import com.reider745.world.FakeDimensions;
|
||||
import com.zhekasmirnov.apparatus.mcpe.NativeWorkbench;
|
||||
import com.zhekasmirnov.apparatus.multiplayer.Network;
|
||||
import com.zhekasmirnov.innercore.api.runtime.Callback;
|
||||
import oshi.hardware.NetworkIF;
|
||||
|
||||
import java.util.*;
|
||||
@@ -606,6 +610,18 @@ public class EventListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@ZoteOnly
|
||||
@EventHandler
|
||||
public void onPluginEnable(PluginEnableEvent event) {
|
||||
Callback.invokeCallback("PluginEnable", event.getPlugin());
|
||||
}
|
||||
|
||||
@ZoteOnly
|
||||
@EventHandler
|
||||
public void onPluginDisable(PluginDisableEvent event) {
|
||||
Callback.invokeCallback("PluginDisable", event.getPlugin());
|
||||
}
|
||||
|
||||
// TODO: onPathNavigationDone
|
||||
|
||||
// TODO: onBlockSpawnResources
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.reider745.hooks;
|
||||
import cn.nukkit.Server;
|
||||
import cn.nukkit.level.generator.Normal;
|
||||
import cn.nukkit.network.protocol.ProtocolInfo;
|
||||
import cn.nukkit.plugin.JavaPluginLoader;
|
||||
import cn.nukkit.plugin.PluginClassLoader;
|
||||
import cn.nukkit.utils.Config;
|
||||
import cn.nukkit.utils.Utils;
|
||||
|
||||
@@ -18,6 +20,8 @@ import com.reider745.event.EventListener;
|
||||
import com.zhekasmirnov.horizon.runtime.logger.Logger;
|
||||
import com.zhekasmirnov.innercore.api.NativeCallback;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@Hooks(className = "cn.nukkit.Server")
|
||||
public class ServerHooks {
|
||||
public static InnerCoreServer innerCoreServer = new InnerCoreServer();
|
||||
@@ -113,4 +117,9 @@ public class ServerHooks {
|
||||
public static String getVersion(Server server) {
|
||||
return 'v' + Utils.getVersionByProtocol(ProtocolInfo.v1_16_200);
|
||||
}
|
||||
|
||||
@Inject(type = TypeHook.AFTER, method = "<init>", className = "cn.nukkit.plugin.PluginClassLoader")
|
||||
public static void newPluginClassLoader(PluginClassLoader self, JavaPluginLoader loader, ClassLoader parent, File file) {
|
||||
RhinoOverrides.ClassLoaderPool.addClassLoader(self);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user