ProjectAres/Util/bukkit/src/main/java/tc/oc/commons/bukkit/inject/BukkitPluginResolver.java

31 lines
830 B
Java

package tc.oc.commons.bukkit.inject;
import javax.annotation.Nullable;
import javax.inject.Singleton;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import tc.oc.commons.core.plugin.AbstractPluginResolver;
@Singleton
public class BukkitPluginResolver extends AbstractPluginResolver<Plugin> {
@Override
public @Nullable <T extends Plugin> T getPlugin(Class<T> cls) {
try {
return (T) JavaPlugin.getPlugin(cls.asSubclass(JavaPlugin.class));
} catch(IllegalArgumentException e) {
return null;
}
}
@Override
public @Nullable Plugin getImplicitProvidingPlugin(Class<?> cls) {
try {
return JavaPlugin.getProvidingPlugin(cls);
} catch(IllegalArgumentException e) {
return null;
}
}
}