package forgeperms.impl;
import pex.permissions.IPermissions;
import pex.permissions.PermissionGroup;
import pex.permissions.PermissionUser;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ModContainer;
import forgeperms.api.IChatManager;
public class StandardChat implements IChatManager {
public String loadError = "Unknown";
int pexOn = 0;
IPermissions pex = null;
private boolean pexAvailable() {
if (pexOn == 0) {
for (ModContainer cont : Loader.instance().getModList()) {
if (cont.getModId().equalsIgnoreCase("PermissionsEx")) {
// Log.info("Found PEx");
if (cont.getMod() instanceof IPermissions) {
pex = (IPermissions) cont.getMod();
}
break;
}
}
pexOn = pex == null ? 2 : 1;
}
return pexOn == 1;
}
@Override
public String getName() {
return "StandardChat";
}
@Override
public boolean load() {
if (pexAvailable()) {
return true;
} else {
loadError = "PermissionsEX was not found";
return false;
}
}
@Override
public String getLoadError() {
return loadError;
}
@Override
public String getPlayerPrefix(String world, String player) {
if (!pexAvailable()) {
return "";
}
return pex.prefix(player, world);
}
@Override
public String getPlayerSuffix(String world, String player) {
if (!pexAvailable()) {
return "";
}
return pex.suffix(player, world);
}
@Override
public void setPlayerPrefix(String world, String player, String prefix) {
if (!pexAvailable()) {
return;
}
pex.getUser(player).setPrefix(prefix, world);
}
@Override
public void setPlayerSuffix(String world, String player, String suffix) {
if (!pexAvailable()) {
return;
}
pex.getUser(player).setSuffix(suffix, world);
}
@Override
public String getGroupPrefix(String world, String group) {
if (!pexAvailable()) {
return "";
}
return pex.getGroup(group).getPrefix(world);
}
@Override
public String getGroupSuffix(String world, String group) {
if (!pexAvailable()) {
return "";
}
return pex.getGroup(group).getSuffix(world);
}
@Override
public void setGroupPrefix(String world, String group, String prefix) {
if (!pexAvailable()) {
return;
}
pex.getGroup(group).setPrefix(prefix, world);
}
@Override
public void setGroupSuffix(String world, String group, String suffix) {
if (!pexAvailable()) {
return;
}
pex.getGroup(group).setSuffix(suffix, world);
}
@Override
public boolean playerInGroup(String world, String player, String group) {
if (!pexAvailable()) {
return false;
}
return ((PermissionUser) pex.getUser(player)).inGroup(group, world);
}
@Override
public String[] getPlayerGroups(String world, String player) {
if (!pexAvailable()) {
return null;
}
return ((PermissionUser) pex.getUser(player)).getGroupsNames(world);
}
@Override
public String getPrimaryGroup(String world, String player) {
if (!pexAvailable()) {
return "";
}
PermissionUser user = (PermissionUser) pex.getUser(player);
if (user == null) {
return null;
} else if (user.getGroupsNames(world).length > 0) {
return user.getGroupsNames(world)[0];
} else {
return null;
}
}
@Override
public String getPlayerInfoString(String world, String playerName, String node, String defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return defaultValue;
return user.getOption(node, world, defaultValue);
}
@Override
public int getPlayerInfoInteger(String world, String playerName, String node, int defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return defaultValue;
return user.getOptionInteger(node, world, defaultValue);
}
@Override
public double getPlayerInfoDouble(String world, String playerName, String node, double defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return defaultValue;
return user.getOptionDouble(node, world, defaultValue);
}
@Override
public boolean getPlayerInfoBoolean(String world, String playerName, String node, boolean defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return defaultValue;
return user.getOptionBoolean(node, world, defaultValue);
}
@Override
public void setPlayerInfoString(String world, String playerName, String node, String value) {
if (!pexAvailable()) {
return;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return;
user.setOption(node, value, world);
}
@Override
public void setPlayerInfoInteger(String world, String playerName, String node, int value) {
if (!pexAvailable()) {
return;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return;
user.setOption(node, String.valueOf(value), world);
}
@Override
public void setPlayerInfoDouble(String world, String playerName, String node, double value) {
if (!pexAvailable()) {
return;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return;
user.setOption(node, String.valueOf(value), world);
}
@Override
public void setPlayerInfoBoolean(String world, String playerName, String node, boolean value) {
if (!pexAvailable()) {
return;
}
PermissionUser user = (PermissionUser) pex.getUser(playerName);
if (user == null)
return;
user.setOption(node, String.valueOf(value), world);
}
@Override
public String getGroupInfoString(String world, String groupName, String node, String defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return defaultValue;
return group.getOption(node, world, defaultValue);
}
@Override
public int getGroupInfoInteger(String world, String groupName, String node, int defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return defaultValue;
return group.getOptionInteger(node, world, defaultValue);
}
@Override
public double getGroupInfoDouble(String world, String groupName, String node, double defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return defaultValue;
return group.getOptionDouble(node, world, defaultValue);
}
@Override
public boolean getGroupInfoBoolean(String world, String groupName, String node, boolean defaultValue) {
if (!pexAvailable()) {
return defaultValue;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return defaultValue;
return group.getOptionBoolean(node, world, defaultValue);
}
@Override
public void setGroupInfoString(String world, String groupName, String node, String value) {
if (!pexAvailable()) {
return;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return;
group.setOption(node, value, world);
}
@Override
public void setGroupInfoInteger(String world, String groupName, String node, int value) {
if (!pexAvailable()) {
return;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return;
group.setOption(node, String.valueOf(value), world);
}
@Override
public void setGroupInfoDouble(String world, String groupName, String node, double value) {
if (!pexAvailable()) {
return;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return;
group.setOption(node, String.valueOf(value), world);
}
@Override
public void setGroupInfoBoolean(String world, String groupName, String node, boolean value) {
if (!pexAvailable()) {
return;
}
PermissionGroup group = (PermissionGroup) pex.getGroup(groupName);
if (group == null)
return;
group.setOption(node, String.valueOf(value), world);
}
}