TabooLib v4.6-R2

+ Fixed some bugs for TDependencyInjector in DISABLE-INJECT mode.
+ Fixed some bugs for TInject in HOT-RELOAD mode.
+ Add TPluginLoadEvent.
+ Add TPluginEnableEvent.
This commit is contained in:
坏黑
2018-11-02 18:12:56 +08:00
parent 289de88b69
commit a4c35a3028
7 changed files with 116 additions and 27 deletions

View File

@@ -24,19 +24,6 @@ public class TDependencyInjector {
private static List<String> injected = new ArrayList<>();
public static Dependency[] getDependencies(Object o) {
Dependency[] dependencies = new Dependency[0];
Dependencies d = o.getClass().getAnnotation(Dependencies.class);
if (d != null) {
dependencies = d.value();
}
Dependency d2 = o.getClass().getAnnotation(Dependency.class);
if (d2 != null) {
dependencies = new Dependency[]{d2};
}
return dependencies;
}
static void injectOnEnable(Plugin plugin) {
inject(plugin, plugin);
}
@@ -45,6 +32,10 @@ public class TDependencyInjector {
eject(plugin, plugin);
}
public static boolean injected(Plugin plugin) {
return injected.contains(plugin.getName());
}
public static void inject(Plugin plugin, Object o) {
if (!injected.contains(plugin.getName())) {
injected.add(plugin.getName());
@@ -64,6 +55,19 @@ public class TDependencyInjector {
}
}
public static Dependency[] getDependencies(Object o) {
Dependency[] dependencies = new Dependency[0];
Dependencies d = o.getClass().getAnnotation(Dependencies.class);
if (d != null) {
dependencies = d.value();
}
Dependency d2 = o.getClass().getAnnotation(Dependency.class);
if (d2 != null) {
dependencies = new Dependency[]{d2};
}
return dependencies;
}
private static void ejectConfig(Plugin plugin, Object o) {
for (Field field : Ref.getDeclaredFields(o.getClass())) {
TConfig config;