public boolean playerInGroup(String worldName, String playerName, String groupName) {
AnjoPermissionsHandler handler;
if (worldName == null)
handler = this.groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(playerName);
else {
handler = this.groupManager.getWorldsHolder().getWorldPermissions(worldName);
}
if (handler == null) {
return false;
}
return handler.inGroup(playerName, groupName);
}
public boolean playerAddGroup(String worldName, String playerName, String groupName) {
OverloadedWorldHolder owh;
if (worldName == null) {
owh = this.groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName);
} else {
owh = this.groupManager.getWorldsHolder().getWorldData(worldName);
}
if (owh == null) {
return false;
}
User user = owh.getUser(playerName);
if (user == null) {
return false;
}
Group group = owh.getGroup(groupName);
if (group == null) {
return false;
}
if (user.getGroup().equals(owh.getDefaultGroup())) {
user.setGroup(group);
} else if (group.getInherits().contains(user.getGroup().getName().toLowerCase())){
user.setGroup(group);
}else {
user.setGroup(group);
}
Player p = Bukkit.getPlayer(playerName);
if (p != null) {
GroupManager.BukkitPermissions.updatePermissions(p);
}
return true;
}
public boolean playerRemoveGroup(String worldName, String playerName, String groupName) {
OverloadedWorldHolder owh;
if (worldName == null)
owh = this.groupManager.getWorldsHolder().getWorldDataByPlayerName(playerName);
else {
owh = this.groupManager.getWorldsHolder().getWorldData(worldName);
}
if (owh == null) {
return false;
}
User user = owh.getUser(playerName);
if (user == null) {
return false;
}
boolean success = false;
if (user.getGroup().getName().equalsIgnoreCase(groupName)) {
user.setGroup(owh.getDefaultGroup());
success = true;
} else {
Group group = owh.getGroup(groupName);
if (group != null) {
success = user.removeSubGroup(group);
}
}
if (success) {
Player p = Bukkit.getPlayer(playerName);
if (p != null) {
GroupManager.BukkitPermissions.updatePermissions(p);
}
}
return success;
} |