public static ResidencePermissions load(ClaimedResidence res, Map<String, Object> root) throws Exception { ResidencePermissions newperms = new ResidencePermissions(res); // newperms.owner = (String) root.get("Owner"); if (root.containsKey("OwnerUUID")) { newperms.ownerUUID = UUID.fromString((String) root.get("OwnerUUID")); // get owner UUID // String name = Residence.getPlayerName(newperms.ownerUUID); //try to find the current name // of the owner newperms.ownerLastKnownName = (String) root.get("OwnerLastKnownName"); // otherwise load last known name from file if (newperms.ownerLastKnownName.equalsIgnoreCase("Server land") || newperms.ownerLastKnownName.equalsIgnoreCase(Residence.getServerLandname())) { newperms.ownerUUID = UUID.fromString(Residence.getServerLandUUID()); // UUID for server land newperms.ownerLastKnownName = Residence.getServerLandname(); } else if (newperms .ownerUUID .toString() .equals(Residence.getTempUserUUID())) // check for fake UUID { UUID realUUID = Residence.getPlayerUUID( newperms .ownerLastKnownName); // try to find the real UUID of the player if possible now if (realUUID != null) newperms.ownerUUID = realUUID; } } else if (root.containsKey("Owner")) // convert old owner name save format into uuid format { String owner = (String) root.get("Owner"); newperms.ownerLastKnownName = owner; newperms.ownerUUID = Residence.getPlayerUUID(owner); if (newperms.ownerUUID == null) newperms.ownerUUID = UUID.fromString( Residence .getTempUserUUID()); // set fake UUID until we can find real one for last known // player } else { newperms.ownerUUID = UUID.fromString( Residence .getServerLandUUID()); // cant determine owner name or UUID... setting zero UUID // which is server land newperms.ownerLastKnownName = Residence.getServerLandname(); } newperms.world = (String) root.get("World"); FlagPermissions.load(root, newperms); if (newperms.getOwner() == null || newperms.world == null || newperms.playerFlags == null || newperms.groupFlags == null || newperms.cuboidFlags == null) throw new Exception("Invalid Residence Permissions..."); return newperms; }