Files
TabooLib/src/main/java/me/skymc/taboolib/common/function/TFunctionLoader.java
2018-11-23 10:58:23 +08:00

50 lines
1.8 KiB
Java

package me.skymc.taboolib.common.function;
import com.ilummc.tlib.logger.TLogger;
import me.skymc.taboolib.TabooLib;
import me.skymc.taboolib.TabooLibLoader;
import org.bukkit.plugin.Plugin;
import java.lang.reflect.Method;
/**
* @Author sky
* @Since 2018-09-08 14:00
*/
public class TFunctionLoader implements TabooLibLoader.Loader {
@Override
public void load(Plugin plugin, Class<?> pluginClass) {
if (pluginClass.isAnnotationPresent(TFunction.class)) {
TFunction function = pluginClass.getAnnotation(TFunction.class);
try {
Method method = pluginClass.getDeclaredMethod(function.enable());
method.setAccessible(true);
method.invoke(null);
TabooLib.debug("Function " + pluginClass.getSimpleName() + " loaded. (" + plugin.getName() + ")");
} catch (NoSuchMethodException ignore) {
} catch (Exception e) {
TLogger.getGlobalLogger().warn("TFunction load Failed: " + pluginClass.getName());
e.printStackTrace();
}
}
}
@Override
public void unload(Plugin plugin, Class<?> pluginClass) {
if (pluginClass.isAnnotationPresent(TFunction.class)) {
TFunction function = pluginClass.getAnnotation(TFunction.class);
try {
Method method = pluginClass.getDeclaredMethod(function.disable());
method.setAccessible(true);
method.invoke(null);
TabooLib.debug("Function " + pluginClass.getSimpleName() + " unloaded. (" + plugin.getName() + ")");
} catch (NoSuchMethodException ignore) {
} catch (Exception e) {
TLogger.getGlobalLogger().warn("TFunction unload Failed: " + pluginClass.getName());
e.printStackTrace();
}
}
}
}