diff --git a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java index ab2332528..c5653b0ad 100644 --- a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java +++ b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java @@ -134,6 +134,17 @@ public class PermissionsHandler implements IPermissionsHandler return; } + final Plugin simplyPermsPlugin = pluginManager.getPlugin("SimplyPerms"); + if (simplyPermsPlugin != null && simplyPermsPlugin.isEnabled()) + { + if (!(handler instanceof SimplyPermsHandler)) + { + LOGGER.log(Level.INFO, "Essentials: Using SimplyPerms based permissions."); + handler = new SimplyPermsHandler(simplyPermsPlugin); + } + return; + } + final Plugin privPlugin = pluginManager.getPlugin("Privileges"); if (privPlugin != null && privPlugin.isEnabled()) { diff --git a/Essentials/src/com/earth2me/essentials/perm/SimplyPermsHandler.java b/Essentials/src/com/earth2me/essentials/perm/SimplyPermsHandler.java new file mode 100644 index 000000000..cdd9ffa93 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/perm/SimplyPermsHandler.java @@ -0,0 +1,53 @@ +package com.earth2me.essentials.perm; + +import java.util.List; + +import net.crystalyx.bukkit.simplyperms.SimplyAPI; +import net.crystalyx.bukkit.simplyperms.SimplyPlugin; + +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + +public class SimplyPermsHandler extends SuperpermsHandler { + + private final transient SimplyAPI api; + + public SimplyPermsHandler(final Plugin plugin) { + this.api = ((SimplyPlugin) plugin).getAPI(); + } + + @Override + public String getGroup(final Player base) + { + final List groups = api.getPlayerGroups(base.getName()); + if (groups == null || groups.isEmpty()) return null; + return groups.get(0); + } + + @Override + public List getGroups(final Player base) + { + return api.getPlayerGroups(base.getName()); + } + + @Override + public boolean inGroup(final Player base, final String group) + { + final List groups = api.getPlayerGroups(base.getName()); + for (String group1 : groups) + { + if (group1.equalsIgnoreCase(group)) + { + return true; + } + } + return false; + } + + @Override + public boolean canBuild(Player base, String group) + { + return hasPermission(base, "essentials.build") || hasPermission(base, "permissions.allow.build"); + } + +}