mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-06-17 06:03:53 +00:00
WEPIF Improvement: code clean out, hardcoding removal and refactoring. Added Service discovery to PluginPermissionsResolver
This commit is contained in:
@ -26,34 +26,37 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import com.nijikokun.bukkit.Permissions.Permissions;
|
||||
import com.sk89q.bukkit.migration.PermissionsResolverManager.MissingPluginException;
|
||||
import org.bukkit.util.config.Configuration;
|
||||
|
||||
public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
private Server server;
|
||||
private Permissions api;
|
||||
|
||||
public static PermissionsResolver factory(Server server, Configuration config) {
|
||||
PluginManager pluginManager = server.getPluginManager();
|
||||
|
||||
Plugin plugin = pluginManager.getPlugin("Permissions");
|
||||
|
||||
// Check if plugin is loaded and have Permissions interface
|
||||
if(plugin == null || !(plugin instanceof Permissions)){
|
||||
return null;
|
||||
}
|
||||
|
||||
// Check for fake permissions
|
||||
if(config.getBoolean("ignore-nijiperms-bridges", true) && isFakeNijiPerms(plugin)){
|
||||
return null;
|
||||
}
|
||||
|
||||
return new NijiPermissionsResolver(server, (Permissions)plugin);
|
||||
}
|
||||
|
||||
public void load() {
|
||||
|
||||
}
|
||||
|
||||
public NijiPermissionsResolver(Server server, boolean ignoreBridges)
|
||||
throws PluginAccessException, MissingPluginException {
|
||||
public NijiPermissionsResolver(Server server, Permissions plugin) {
|
||||
this.server = server;
|
||||
PluginManager manager = server.getPluginManager();
|
||||
|
||||
Plugin plugin = manager.getPlugin("Permissions");
|
||||
if (plugin == null) {
|
||||
throw new MissingPluginException();
|
||||
}
|
||||
if (!checkRealNijiPerms(ignoreBridges)) {
|
||||
throw new MissingPluginException();
|
||||
}
|
||||
|
||||
try {
|
||||
api = (Permissions)plugin;
|
||||
} catch (ClassCastException e) {
|
||||
throw new PluginAccessException();
|
||||
}
|
||||
this.api = plugin;
|
||||
}
|
||||
|
||||
@SuppressWarnings("static-access")
|
||||
@ -129,6 +132,7 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
private static final long serialVersionUID = 7044832912491608706L;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static boolean checkRealNijiPerms(boolean ignoreBridges) {
|
||||
if (!ignoreBridges) {
|
||||
return true;
|
||||
@ -139,4 +143,14 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
}
|
||||
return permsCommand.getPlugin().getDescription().getName().equals("Permissions");
|
||||
}
|
||||
|
||||
public static boolean isFakeNijiPerms(Plugin plugin){
|
||||
PluginCommand permsCommand = Bukkit.getServer().getPluginCommand("permissions");
|
||||
|
||||
return !(permsCommand.getPlugin().equals(plugin));
|
||||
}
|
||||
|
||||
public String getDetectionMessage() {
|
||||
return "Permissions plugin detected! Using Permissions plugin for permissions.";
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user