From 50bdb2332a411c33014de9043d1f47ecfdb2e460 Mon Sep 17 00:00:00 2001 From: TomyLobo Date: Mon, 5 Dec 2011 04:20:38 +0100 Subject: [PATCH] Removed LegacyPluginPermissionsResolver. Wrapping at the PermissionsProvider level instead, which removes some code duplication and fixes 2 warnings :) --- .../LegacyPluginPermissionsResolver.java | 103 ------------------ .../LegacyPermissionsProviderWrapper.java | 62 +++++++++++ .../wepif/PermissionsResolverManager.java | 2 - .../wepif/PluginPermissionsResolver.java | 5 + 4 files changed, 67 insertions(+), 105 deletions(-) delete mode 100644 src/main/java/com/sk89q/bukkit/migration/LegacyPluginPermissionsResolver.java create mode 100644 src/main/java/com/sk89q/wepif/LegacyPermissionsProviderWrapper.java diff --git a/src/main/java/com/sk89q/bukkit/migration/LegacyPluginPermissionsResolver.java b/src/main/java/com/sk89q/bukkit/migration/LegacyPluginPermissionsResolver.java deleted file mode 100644 index 5bab6a30f..000000000 --- a/src/main/java/com/sk89q/bukkit/migration/LegacyPluginPermissionsResolver.java +++ /dev/null @@ -1,103 +0,0 @@ -// $Id$ -/* - * WorldEdit - * Copyright (C) 2010, 2011 sk89q - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.sk89q.bukkit.migration; - -import com.sk89q.util.yaml.YAMLProcessor; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.RegisteredServiceProvider; - -import java.util.List; - -@Deprecated -public class LegacyPluginPermissionsResolver implements com.sk89q.wepif.PermissionsResolver { - - protected PermissionsProvider resolver; - protected Plugin plugin; - - public static com.sk89q.wepif.PermissionsResolver factory(Server server, YAMLProcessor config) { - // Looking for service - RegisteredServiceProvider serviceProvider = server.getServicesManager().getRegistration(PermissionsProvider.class); - - if (serviceProvider != null) { - return new LegacyPluginPermissionsResolver(serviceProvider.getProvider(), serviceProvider.getPlugin()); - } - - // Looking for plugin - for (Plugin plugin : server.getPluginManager().getPlugins()) { - if (plugin instanceof PermissionsProvider) { - return new LegacyPluginPermissionsResolver((PermissionsProvider) plugin, plugin); - } - } - - return null; - } - - public LegacyPluginPermissionsResolver(PermissionsProvider resolver, Plugin permissionsPlugin) { - this.resolver = resolver; - this.plugin = permissionsPlugin; - } - - public void load() { - } - - public boolean hasPermission(String name, String permission) { - return resolver.hasPermission(name, permission); - } - - public boolean hasPermission(String worldName, String name, String permission) { - return resolver.hasPermission(worldName, name, permission); - } - - public boolean inGroup(String player, String group) { - return resolver.inGroup(player, group); - } - - public String[] getGroups(String player) { - return resolver.getGroups(player); - } - - public boolean hasPermission(OfflinePlayer player, String permission) { - return hasPermission(player.getName(), permission); - } - - public boolean hasPermission(String worldName, OfflinePlayer player, String permission) { - return hasPermission(worldName, player.getName(), permission); - } - - public boolean inGroup(OfflinePlayer player, String group) { - return inGroup(player.getName(), group); - } - - public String[] getGroups(OfflinePlayer player) { - return getGroups(player.getName()); - } - - public String getDetectionMessage() { - String author = "the author"; - List authors = plugin.getDescription().getAuthors(); - if (authors != null && authors.size() > 0) { - author = authors.get(0); - } - return "Using legacy plugin '" + this.plugin.getDescription().getName() + "' for permissions. Bug " + author + " to update it! "; - } - -} diff --git a/src/main/java/com/sk89q/wepif/LegacyPermissionsProviderWrapper.java b/src/main/java/com/sk89q/wepif/LegacyPermissionsProviderWrapper.java new file mode 100644 index 000000000..49cc3ffe7 --- /dev/null +++ b/src/main/java/com/sk89q/wepif/LegacyPermissionsProviderWrapper.java @@ -0,0 +1,62 @@ +package com.sk89q.wepif; + +import org.bukkit.OfflinePlayer; +import org.bukkit.plugin.Plugin; + +@SuppressWarnings("deprecation") +public class LegacyPermissionsProviderWrapper implements PermissionsProvider { + private final com.sk89q.bukkit.migration.PermissionsProvider legacyPermissionsProvider; + + static PermissionsProvider wrap(Plugin plugin) { + if (!(plugin instanceof com.sk89q.bukkit.migration.PermissionsProvider)) { + return null; + } + + final com.sk89q.bukkit.migration.PermissionsProvider legacyPermissionsProvider = (com.sk89q.bukkit.migration.PermissionsProvider) plugin; + return new LegacyPermissionsProviderWrapper(legacyPermissionsProvider); + } + + private LegacyPermissionsProviderWrapper(com.sk89q.bukkit.migration.PermissionsProvider legacyPermissionsProvider) { + this.legacyPermissionsProvider = legacyPermissionsProvider; + } + + @Override + public boolean hasPermission(String name, String permission) { + return legacyPermissionsProvider.hasPermission(name, permission); + } + + @Override + public boolean hasPermission(String worldName, String name, String permission) { + return legacyPermissionsProvider.hasPermission(worldName, name, permission); + } + + @Override + public boolean inGroup(String player, String group) { + return legacyPermissionsProvider.inGroup(player, group); + } + + @Override + public String[] getGroups(String player) { + return legacyPermissionsProvider.getGroups(player); + } + + @Override + public boolean hasPermission(OfflinePlayer player, String permission) { + return legacyPermissionsProvider.hasPermission(player.getName(), permission); + } + + @Override + public boolean hasPermission(String worldName, OfflinePlayer player, String permission) { + return legacyPermissionsProvider.hasPermission(worldName, player.getName(), permission); + } + + @Override + public boolean inGroup(OfflinePlayer player, String group) { + return legacyPermissionsProvider.inGroup(player.getName(), group); + } + + @Override + public String[] getGroups(OfflinePlayer player) { + return legacyPermissionsProvider.getGroups(player.getName()); + } +} diff --git a/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java b/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java index abbb5ccbd..2f7257476 100644 --- a/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java +++ b/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java @@ -19,7 +19,6 @@ package com.sk89q.wepif; -import com.sk89q.bukkit.migration.LegacyPluginPermissionsResolver; import com.sk89q.util.yaml.YAMLFormat; import com.sk89q.util.yaml.YAMLProcessor; import org.bukkit.OfflinePlayer; @@ -86,7 +85,6 @@ public class PermissionsResolverManager implements PermissionsResolver { @SuppressWarnings("unchecked") protected Class[] availableResolvers = new Class[] { PluginPermissionsResolver.class, - LegacyPluginPermissionsResolver.class, PermissionsExResolver.class, NijiPermissionsResolver.class, DinnerPermsResolver.class, diff --git a/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java b/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java index 12f58af75..9b0f56889 100644 --- a/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java +++ b/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java @@ -43,6 +43,11 @@ public class PluginPermissionsResolver implements PermissionsResolver { if (plugin instanceof PermissionsProvider) { return new PluginPermissionsResolver((PermissionsProvider) plugin, plugin); } + + final PermissionsProvider legacyPermissionsProvider = LegacyPermissionsProviderWrapper.wrap(plugin); + if (legacyPermissionsProvider != null) { + return new PluginPermissionsResolver(legacyPermissionsProvider, plugin); + } } return null;