Handle permission check failures better.

This commit is contained in:
KHobbits 2012-03-15 23:15:19 +00:00
parent 5c280e7cb7
commit adf3755abb
3 changed files with 27 additions and 8 deletions

View File

@ -139,8 +139,10 @@ public class Essentials extends JavaPlugin implements IEssentials
final int versionNumber = Integer.parseInt(versionMatch.group(1)); final int versionNumber = Integer.parseInt(versionMatch.group(1));
if (versionNumber < BUKKIT_VERSION && versionNumber > 100) if (versionNumber < BUKKIT_VERSION && versionNumber > 100)
{ {
LOGGER.log(Level.SEVERE, "* ! * ! * ! * ! * ! * ! * ! * ! * ! *");
LOGGER.log(Level.SEVERE, _("notRecommendedBukkit")); LOGGER.log(Level.SEVERE, _("notRecommendedBukkit"));
LOGGER.log(Level.SEVERE, _("requiredBukkit", Integer.toString(BUKKIT_VERSION))); LOGGER.log(Level.SEVERE, _("requiredBukkit", Integer.toString(BUKKIT_VERSION)));
LOGGER.log(Level.SEVERE, "* ! * ! * ! * ! * ! * ! * ! * ! * ! *");
this.setEnabled(false); this.setEnabled(false);
return; return;
} }

View File

@ -71,8 +71,14 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
return false; return false;
} }
try {
return ess.getPermissionsHandler().hasPermission(base, node); return ess.getPermissionsHandler().hasPermission(base, node);
} }
catch (Exception ex) {
ess.getLogger().log(Level.SEVERE, "Permission System Error: " + ess.getPermissionsHandler().getName() + " returned: " + ex.getMessage());
return false;
}
}
public void healCooldown() throws Exception public void healCooldown() throws Exception
{ {

View File

@ -3,6 +3,7 @@ package com.earth2me.essentials.perm;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder;
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler; import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
@ -20,7 +21,7 @@ public class GroupManagerHandler implements IPermissionsHandler
@Override @Override
public String getGroup(final Player base) public String getGroup(final Player base)
{ {
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base); final AnjoPermissionsHandler handler = getHandler(base);
if (handler == null) if (handler == null)
{ {
return null; return null;
@ -31,7 +32,7 @@ public class GroupManagerHandler implements IPermissionsHandler
@Override @Override
public List<String> getGroups(final Player base) public List<String> getGroups(final Player base)
{ {
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base); final AnjoPermissionsHandler handler = getHandler(base);
if (handler == null) if (handler == null)
{ {
return null; return null;
@ -42,7 +43,7 @@ public class GroupManagerHandler implements IPermissionsHandler
@Override @Override
public boolean canBuild(final Player base, final String group) public boolean canBuild(final Player base, final String group)
{ {
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base); final AnjoPermissionsHandler handler = getHandler(base);
if (handler == null) if (handler == null)
{ {
return false; return false;
@ -53,7 +54,7 @@ public class GroupManagerHandler implements IPermissionsHandler
@Override @Override
public boolean inGroup(final Player base, final String group) public boolean inGroup(final Player base, final String group)
{ {
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base); AnjoPermissionsHandler handler = getHandler(base);
if (handler == null) if (handler == null)
{ {
return false; return false;
@ -64,7 +65,7 @@ public class GroupManagerHandler implements IPermissionsHandler
@Override @Override
public boolean hasPermission(final Player base, final String node) public boolean hasPermission(final Player base, final String node)
{ {
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base); AnjoPermissionsHandler handler = getHandler(base);
if (handler == null) if (handler == null)
{ {
return false; return false;
@ -75,7 +76,7 @@ public class GroupManagerHandler implements IPermissionsHandler
@Override @Override
public String getPrefix(final Player base) public String getPrefix(final Player base)
{ {
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base); AnjoPermissionsHandler handler = getHandler(base);
if (handler == null) if (handler == null)
{ {
return null; return null;
@ -86,11 +87,21 @@ public class GroupManagerHandler implements IPermissionsHandler
@Override @Override
public String getSuffix(final Player base) public String getSuffix(final Player base)
{ {
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base); AnjoPermissionsHandler handler = getHandler(base);
if (handler == null) if (handler == null)
{ {
return null; return null;
} }
return handler.getUserSuffix(base.getName()); return handler.getUserSuffix(base.getName());
} }
private AnjoPermissionsHandler getHandler(final Player base)
{
final WorldsHolder holder = groupManager.getWorldsHolder();
if (holder == null)
{
return null;
}
return holder.getWorldPermissions(base);
}
} }