31 lines
830 B
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;
|
|
}
|
|
}
|
|
}
|