FSHook/src/com/kallendorf/fshook/PluginLoadAspect.aj
2022-11-10 00:06:01 +01:00

37 lines
977 B
Plaintext

package com.kallendorf.fshook;
import java.util.Collection;
import de.espirit.common.bootstrap.Bootstrap;
import de.espirit.firstspirit.access.BaseContext;
import de.espirit.firstspirit.client.plugin.JavaClientEditorialToolbarItemsPlugin;
import de.espirit.firstspirit.client.plugin.Plugins;
import de.espirit.firstspirit.io.ServerConnection;
import de.espirit.firstspirit.client.plugin.Plugin;
public aspect PluginLoadAspect {
pointcut main(): execution(void Bootstrap.main(String[]));
before(): main(){
System.out.println("Hooked It!");
}
Collection around(ServerConnection con, Class cls, BaseContext context):
call(* Plugins.getPlugins(ServerConnection, Class, BaseContext))
&& args(con,cls,context)
{
System.out.println("Hooking Plugins: "+cls);
Collection col=proceed(con,cls,context);
for(Plugin p: CustomLoader.pluginsToLoad){
if(cls.isInstance(p)) {
System.out.println("Loaded "+p);
col.add(p);
}
}
return col;
}
}