WEPIF Improvement: code clean out, hardcoding removal and refactoring. Added Service discovery to PluginPermissionsResolver

This commit is contained in:
t3hk0d3
2011-09-27 07:40:18 +04:00
committed by zml2008
parent 102e5f142e
commit 4f80e78a7e
9 changed files with 188 additions and 128 deletions

View File

@@ -19,12 +19,37 @@
package com.sk89q.bukkit.migration;
import org.bukkit.Server;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.util.config.Configuration;
public class PluginPermissionsResolver implements PermissionsResolver {
protected PermissionsProvider resolver;
protected Plugin plugin;
public PluginPermissionsResolver(PermissionsProvider resolver) {
public static PermissionsResolver factory(Server server, Configuration config){
// Looking for service
RegisteredServiceProvider<PermissionsProvider> serviceProvider = server.getServicesManager().getRegistration(PermissionsProvider.class);
if(serviceProvider != null){
return new PluginPermissionsResolver(serviceProvider.getProvider(), serviceProvider.getPlugin());
}
// Looking for plugin
for (Plugin plugin : server.getPluginManager().getPlugins()) {
if(plugin instanceof PermissionsProvider){
return new PluginPermissionsResolver((PermissionsProvider)plugin, plugin);
}
}
return null;
}
public PluginPermissionsResolver(PermissionsProvider resolver, Plugin permissionsPlugin) {
this.resolver = resolver;
this.plugin = permissionsPlugin;
}
public void load() {
@@ -46,4 +71,8 @@ public class PluginPermissionsResolver implements PermissionsResolver {
return resolver.getGroups(player);
}
public String getDetectionMessage() {
return "Using plugin '" + this.plugin.getDescription().getName() + "' for permissions.";
}
}