summaryrefslogtreecommitdiffstats
path: root/Essentials/src
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src')
-rw-r--r--Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java45
-rw-r--r--Essentials/src/com/earth2me/essentials/Essentials.java21
-rw-r--r--Essentials/src/com/earth2me/essentials/IEssentials.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/IPermissionsHandler.java21
-rw-r--r--Essentials/src/com/earth2me/essentials/Permissions2Handler.java48
-rw-r--r--Essentials/src/com/earth2me/essentials/Permissions3Handler.java48
-rw-r--r--Essentials/src/com/earth2me/essentials/PlayerExtension.java27
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java12
8 files changed, 189 insertions, 35 deletions
diff --git a/Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java b/Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java
new file mode 100644
index 000000000..9e3b24b0d
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java
@@ -0,0 +1,45 @@
+package com.earth2me.essentials;
+
+import org.bukkit.entity.Player;
+
+
+public class ConfigPermissionsHandler implements IPermissionsHandler
+{
+ private final transient IEssentials ess;
+
+ public ConfigPermissionsHandler(final IEssentials ess)
+ {
+ this.ess = ess;
+ }
+
+ public String getGroup(final Player base)
+ {
+ return "default";
+ }
+
+ public boolean canBuild(final Player base, final String group)
+ {
+ return true;
+ }
+
+ public boolean inGroup(final Player base, final String group)
+ {
+ return false;
+ }
+
+ public boolean hasPermission(final Player base, final String node)
+ {
+ final String[] cmds = node.split("\\.", 2);
+ return !ess.getSettings().isCommandRestricted(cmds[cmds.length - 1]);
+ }
+
+ public String getPrefix(final Player base)
+ {
+ return "";
+ }
+
+ public String getSuffix(final Player base)
+ {
+ return "";
+ }
+}
diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java
index 2dfb09344..2b30c5b02 100644
--- a/Essentials/src/com/earth2me/essentials/Essentials.java
+++ b/Essentials/src/com/earth2me/essentials/Essentials.java
@@ -62,6 +62,7 @@ public class Essentials extends JavaPlugin implements IEssentials
private final Methods paymentMethod = new Methods();
private final static boolean enableErrorLogging = false;
private final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler();
+ private IPermissionsHandler permissionsHandler;
public static IEssentials getStatic()
{
@@ -139,6 +140,20 @@ public class Essentials extends JavaPlugin implements IEssentials
logger.log(Level.INFO, Util.i18n("bukkitFormatChanged"));
}
+ Plugin permissionsPlugin = pm.getPlugin("Permissions");
+
+ if (permissionsPlugin != null)
+ {
+ if (permissionsPlugin.getDescription().getVersion().charAt(0) == '3') {
+ this.permissionsHandler = new Permissions3Handler(permissionsPlugin);
+ } else {
+ this.permissionsHandler = new Permissions2Handler(permissionsPlugin);
+ }
+ }
+ else
+ {
+ this.permissionsHandler = new ConfigPermissionsHandler(this);
+ }
final ServerListener serverListener = new EssentialsPluginListener(paymentMethod);
pm.registerEvent(Type.PLUGIN_ENABLE, serverListener, Priority.Low, this);
@@ -753,10 +768,14 @@ public class Essentials extends JavaPlugin implements IEssentials
{
return tntListener;
}
-
+
public EssentialsDependancyChecker getDependancyChecker()
{
return essDep;
}
+ public IPermissionsHandler getPermissionsHandler()
+ {
+ return permissionsHandler;
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/IEssentials.java b/Essentials/src/com/earth2me/essentials/IEssentials.java
index 10d3f16de..824de99a9 100644
--- a/Essentials/src/com/earth2me/essentials/IEssentials.java
+++ b/Essentials/src/com/earth2me/essentials/IEssentials.java
@@ -71,4 +71,6 @@ public interface IEssentials
TNTExplodeListener getTNTListener();
EssentialsDependancyChecker getDependancyChecker();
+
+ IPermissionsHandler getPermissionsHandler();
}
diff --git a/Essentials/src/com/earth2me/essentials/IPermissionsHandler.java b/Essentials/src/com/earth2me/essentials/IPermissionsHandler.java
new file mode 100644
index 000000000..a7bcc80b7
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/IPermissionsHandler.java
@@ -0,0 +1,21 @@
+package com.earth2me.essentials;
+
+import org.bukkit.entity.Player;
+
+
+public interface IPermissionsHandler
+{
+
+ String getGroup(Player base);
+
+ boolean canBuild(Player base, String group);
+
+ boolean inGroup(Player base, String group);
+
+ boolean hasPermission(Player base, String node);
+
+ String getPrefix(Player base);
+
+ String getSuffix(Player base);
+
+}
diff --git a/Essentials/src/com/earth2me/essentials/Permissions2Handler.java b/Essentials/src/com/earth2me/essentials/Permissions2Handler.java
new file mode 100644
index 000000000..c588bb5fa
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/Permissions2Handler.java
@@ -0,0 +1,48 @@
+package com.earth2me.essentials;
+
+import com.nijiko.permissions.PermissionHandler;
+import com.nijikokun.bukkit.Permissions.Permissions;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+
+
+public class Permissions2Handler implements IPermissionsHandler
+{
+ private final transient PermissionHandler permissionHandler;
+
+ Permissions2Handler(final Plugin permissionsPlugin)
+ {
+ permissionHandler = ((Permissions)permissionsPlugin).getHandler();
+ }
+
+ public String getGroup(final Player base)
+ {
+ return permissionHandler.getGroup(base.getWorld().getName(), base.getName());
+ }
+
+ public boolean canBuild(final Player base, final String group)
+ {
+ return permissionHandler.canGroupBuild(base.getWorld().getName(), getGroup(base));
+ }
+
+ public boolean inGroup(final Player base, final String group)
+ {
+ return permissionHandler.inGroup(base.getWorld().getName(), base.getName(), group);
+ }
+
+ public boolean hasPermission(final Player base, final String node)
+ {
+ return permissionHandler.permission(base, node);
+ }
+
+ public String getPrefix(final Player base)
+ {
+ return permissionHandler.getGroupPrefix(base.getWorld().getName(), getGroup(base));
+ }
+
+ public String getSuffix(final Player base)
+ {
+ return permissionHandler.getGroupSuffix(base.getWorld().getName(), getGroup(base));
+ }
+
+}
diff --git a/Essentials/src/com/earth2me/essentials/Permissions3Handler.java b/Essentials/src/com/earth2me/essentials/Permissions3Handler.java
new file mode 100644
index 000000000..99c95da0a
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/Permissions3Handler.java
@@ -0,0 +1,48 @@
+package com.earth2me.essentials;
+
+import com.nijiko.permissions.PermissionHandler;
+import com.nijikokun.bukkit.Permissions.Permissions;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+
+
+public class Permissions3Handler implements IPermissionsHandler
+{
+ private final transient PermissionHandler permissionHandler;
+
+ Permissions3Handler(final Plugin permissionsPlugin)
+ {
+ permissionHandler = ((Permissions)permissionsPlugin).getHandler();
+ }
+
+ public String getGroup(final Player base)
+ {
+ return permissionHandler.getPrimaryGroup(base.getWorld().getName(), base.getName());
+ }
+
+ public boolean canBuild(final Player base, final String group)
+ {
+ return permissionHandler.canUserBuild(base.getWorld().getName(), base.getName());
+ }
+
+ public boolean inGroup(final Player base, final String group)
+ {
+ return permissionHandler.inGroup(base.getWorld().getName(), base.getName(), group);
+ }
+
+ public boolean hasPermission(final Player base, final String node)
+ {
+ return permissionHandler.has(base, node);
+ }
+
+ public String getPrefix(final Player base)
+ {
+ return permissionHandler.getUserPrefix(base.getWorld().getName(), base.getName());
+ }
+
+ public String getSuffix(final Player base)
+ {
+ return permissionHandler.getUserSuffix(base.getWorld().getName(), base.getName());
+ }
+
+}
diff --git a/Essentials/src/com/earth2me/essentials/PlayerExtension.java b/Essentials/src/com/earth2me/essentials/PlayerExtension.java
index 901edd345..c090dff2f 100644
--- a/Essentials/src/com/earth2me/essentials/PlayerExtension.java
+++ b/Essentials/src/com/earth2me/essentials/PlayerExtension.java
@@ -53,38 +53,17 @@ public class PlayerExtension extends PlayerWrapper
public String getGroup()
{
- try
- {
- return com.nijikokun.bukkit.Permissions.Permissions.Security.getGroup(getWorld().getName(), getName());
- }
- catch (Throwable ex)
- {
- return "default";
- }
+ return ess.getPermissionsHandler().getGroup(base);
}
public boolean inGroup(String group)
{
- try
- {
- return com.nijikokun.bukkit.Permissions.Permissions.Security.inGroup(getWorld().getName(), getName(), group);
- }
- catch (Throwable ex)
- {
- return false;
- }
+ return ess.getPermissionsHandler().inGroup(base, group);
}
public boolean canBuild()
{
- try
- {
- return isOp() || com.nijikokun.bukkit.Permissions.Permissions.Security.canGroupBuild(getWorld().getName(), getGroup());
- }
- catch (Throwable ex)
- {
- return true;
- }
+ return ess.getPermissionsHandler().canBuild(base, getGroup());
}
public EntityPlayer getHandle()
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index 8365aabe3..befbf111f 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -48,16 +48,8 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{
return false;
}
-
- try
- {
- return com.nijikokun.bukkit.Permissions.Permissions.Security.permission(base, node);
- }
- catch (Throwable ex)
- {
- String[] cmds = node.split("\\.", 2);
- return !ess.getSettings().isCommandRestricted(cmds[cmds.length - 1]);
- }
+
+ return ess.getPermissionsHandler().hasPermission(this, node);
}
public void healCooldown() throws Exception