package com.earth2me.essentials.perm; import java.util.Arrays; import java.util.List; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder; import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; public class GroupManagerHandler implements IPermissionsHandler { private final transient GroupManager groupManager; public GroupManagerHandler(final Plugin permissionsPlugin) { groupManager = ((GroupManager)permissionsPlugin); } @Override public String getGroup(final Player base) { final AnjoPermissionsHandler handler = getHandler(base); if (handler == null) { return null; } return handler.getGroup(base.getName()); } @Override public List<String> getGroups(final Player base) { final AnjoPermissionsHandler handler = getHandler(base); if (handler == null) { return null; } return Arrays.asList(handler.getGroups(base.getName())); } @Override public boolean canBuild(final Player base, final String group) { final AnjoPermissionsHandler handler = getHandler(base); if (handler == null) { return false; } return handler.canUserBuild(base.getName()); } @Override public boolean inGroup(final Player base, final String group) { AnjoPermissionsHandler handler = getHandler(base); if (handler == null) { return false; } return handler.inGroup(base.getName(), group); } @Override public boolean hasPermission(final Player base, final String node) { AnjoPermissionsHandler handler = getHandler(base); if (handler == null) { return false; } return handler.has(base, node); } @Override public String getPrefix(final Player base) { AnjoPermissionsHandler handler = getHandler(base); if (handler == null) { return null; } return handler.getUserPrefix(base.getName()); } @Override public String getSuffix(final Player base) { AnjoPermissionsHandler handler = getHandler(base); if (handler == null) { return null; } return handler.getUserSuffix(base.getName()); } private AnjoPermissionsHandler getHandler(final Player base) { final WorldsHolder holder = groupManager.getWorldsHolder(); if (holder == null) { return null; } try { return holder.getWorldPermissions(base); } catch (NullPointerException ex) { return null; } } }