模块 mxlib.common.plugin.class_definer
Plugin Class bytecode overrider.
If you want to use this module. Let MXLib load first.
(Rename MXBukkitLib.jar to 0.MXBukkitLib.jar)
Then let your plugin load after MXLib.
(Rename YourPlugin.jar to 1.YourPlugin.jar)
Use it in static{}
block. NOT onEnable() OR onLoad() block.
BukkitHookToolkit.PluginPreLoadEvent.handlers.register(event->{
System.out.println("Plugin load: " + event.getTarget());
event.getJar().getJarStreamGetEventHandlers().register(resourceLoadEvent->{
if(resourceLoadEvent.getPath().getName().endsWith(".class")) {
resourceLoadEvent.resolve(source->{
// @NotNull InputStream resolve(@NotNull InputStreamSuppler stream) throws IOException;
ClassReader reader = new ClassReader(source);
ClassWriter writer = new ClassWriter(0);
// Do class editing here.
return new ByteArrayInputStream(writer.toByteArray());
});
}
});
});
-
-
程序包
程序包 已导出到模块 已打开到模块 说明 cn.mcres.karlatemp.mxlib.common.plugin_class_definer 全部模块 全部模块
-