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.ChunkPopulateEvent;
|
||||||
import cn.nukkit.event.level.ChunkUnloadEvent;
|
import cn.nukkit.event.level.ChunkUnloadEvent;
|
||||||
import cn.nukkit.event.player.*;
|
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.redstone.RedstoneUpdateEvent;
|
||||||
import cn.nukkit.event.server.ServerCommandEvent;
|
import cn.nukkit.event.server.ServerCommandEvent;
|
||||||
import cn.nukkit.event.server.ServerStopEvent;
|
import cn.nukkit.event.server.ServerStopEvent;
|
||||||
@@ -39,6 +41,7 @@ import cn.nukkit.math.Vector3;
|
|||||||
import cn.nukkit.network.protocol.UpdateBlockPacket;
|
import cn.nukkit.network.protocol.UpdateBlockPacket;
|
||||||
import cn.nukkit.scheduler.AsyncTask;
|
import cn.nukkit.scheduler.AsyncTask;
|
||||||
import com.reider745.InnerCoreServer;
|
import com.reider745.InnerCoreServer;
|
||||||
|
import com.reider745.api.ZoteOnly;
|
||||||
import com.reider745.hooks.ServerHooks;
|
import com.reider745.hooks.ServerHooks;
|
||||||
import com.reider745.hooks.network.RakNetPlayerSessionHooks;
|
import com.reider745.hooks.network.RakNetPlayerSessionHooks;
|
||||||
import com.reider745.item.ItemMethod;
|
import com.reider745.item.ItemMethod;
|
||||||
@@ -46,6 +49,7 @@ import com.reider745.world.BiomesMethods;
|
|||||||
import com.reider745.world.FakeDimensions;
|
import com.reider745.world.FakeDimensions;
|
||||||
import com.zhekasmirnov.apparatus.mcpe.NativeWorkbench;
|
import com.zhekasmirnov.apparatus.mcpe.NativeWorkbench;
|
||||||
import com.zhekasmirnov.apparatus.multiplayer.Network;
|
import com.zhekasmirnov.apparatus.multiplayer.Network;
|
||||||
|
import com.zhekasmirnov.innercore.api.runtime.Callback;
|
||||||
import oshi.hardware.NetworkIF;
|
import oshi.hardware.NetworkIF;
|
||||||
|
|
||||||
import java.util.*;
|
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: onPathNavigationDone
|
||||||
|
|
||||||
// TODO: onBlockSpawnResources
|
// TODO: onBlockSpawnResources
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.reider745.hooks;
|
|||||||
import cn.nukkit.Server;
|
import cn.nukkit.Server;
|
||||||
import cn.nukkit.level.generator.Normal;
|
import cn.nukkit.level.generator.Normal;
|
||||||
import cn.nukkit.network.protocol.ProtocolInfo;
|
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.Config;
|
||||||
import cn.nukkit.utils.Utils;
|
import cn.nukkit.utils.Utils;
|
||||||
|
|
||||||
@@ -18,6 +20,8 @@ import com.reider745.event.EventListener;
|
|||||||
import com.zhekasmirnov.horizon.runtime.logger.Logger;
|
import com.zhekasmirnov.horizon.runtime.logger.Logger;
|
||||||
import com.zhekasmirnov.innercore.api.NativeCallback;
|
import com.zhekasmirnov.innercore.api.NativeCallback;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
@Hooks(className = "cn.nukkit.Server")
|
@Hooks(className = "cn.nukkit.Server")
|
||||||
public class ServerHooks {
|
public class ServerHooks {
|
||||||
public static InnerCoreServer innerCoreServer = new InnerCoreServer();
|
public static InnerCoreServer innerCoreServer = new InnerCoreServer();
|
||||||
@@ -113,4 +117,9 @@ public class ServerHooks {
|
|||||||
public static String getVersion(Server server) {
|
public static String getVersion(Server server) {
|
||||||
return 'v' + Utils.getVersionByProtocol(ProtocolInfo.v1_16_200);
|
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