|  |  |  | @ -306,91 +306,103 @@ public class City extends AbstractWorldObject {@@ -306,91 +306,103 @@ public class City extends AbstractWorldObject { | 
			
		
	
		
			
				
					|  |  |  |  |             if (city.parentZone == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 continue; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (city.parentZone.guild_zone && city.isOpen() && city.getTOL().rank > 4) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // Filter Lore cities
 | 
			
		
	
		
			
				
					|  |  |  |  |             if(repledge && city.getGuild().equals(playerCharacter.guild)){ | 
			
		
	
		
			
				
					|  |  |  |  |                 //can't repledge to a guild you're already part of
 | 
			
		
	
		
			
				
					|  |  |  |  |                 continue; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (ConfigManager.MB_RULESET.getValue().equals("LORE")) { | 
			
		
	
		
			
				
					|  |  |  |  |             if (city.parentZone.guild_zone) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (!repledge) | 
			
		
	
		
			
				
					|  |  |  |  |                         if (!city.getGuild().charter.equals(playerCharacter.guild.charter)) | 
			
		
	
		
			
				
					|  |  |  |  |                             continue; | 
			
		
	
		
			
				
					|  |  |  |  |                     else | 
			
		
	
		
			
				
					|  |  |  |  |                         if (!city.getGuild().charter.canJoin(playerCharacter)) | 
			
		
	
		
			
				
					|  |  |  |  |                             continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 if(city.getGuild().getNation().equals(playerCharacter.guild.getNation())){ | 
			
		
	
		
			
				
					|  |  |  |  |                     //players can all port and repledge inside their own nation
 | 
			
		
	
		
			
				
					|  |  |  |  |                     cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 Integer playerUUID = playerCharacter.objectUUID; | 
			
		
	
		
			
				
					|  |  |  |  |                 Integer guildUUID = playerCharacter.guildUUID; | 
			
		
	
		
			
				
					|  |  |  |  |                 Integer nationUUID = playerCharacter.guild.getNation().getObjectUUID(); | 
			
		
	
		
			
				
					|  |  |  |  |                 boolean allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                 if (city.getTOL().reverseKOS) { | 
			
		
	
		
			
				
					|  |  |  |  |                     //reverse KOS, specific values are allowed
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (city.getTOL().getCondemned().contains(playerUUID) && city.getTOL().getCondemned().get(playerUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                         //individual is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                         allowed = true; | 
			
		
	
		
			
				
					|  |  |  |  |                     } else if (city.getTOL().getCondemned().contains(guildUUID) && city.getTOL().getCondemned().get(guildUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                         //player guild is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                         allowed = true; | 
			
		
	
		
			
				
					|  |  |  |  |                     } else if (city.getTOL().getCondemned().contains(nationUUID) && city.getTOL().getCondemned().get(nationUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                         //player nation is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (city.isOpen() && city.getTOL().rank > 4) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     // Filter Lore cities
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (ConfigManager.MB_RULESET.getValue().equals("LORE")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                         if (!repledge) | 
			
		
	
		
			
				
					|  |  |  |  |                             if (!city.getGuild().charter.equals(playerCharacter.guild.charter)) | 
			
		
	
		
			
				
					|  |  |  |  |                                 continue; | 
			
		
	
		
			
				
					|  |  |  |  |                             else if (!city.getGuild().charter.canJoin(playerCharacter)) | 
			
		
	
		
			
				
					|  |  |  |  |                                 continue; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     Integer playerUUID = playerCharacter.objectUUID; | 
			
		
	
		
			
				
					|  |  |  |  |                     Integer guildUUID = playerCharacter.guildUUID; | 
			
		
	
		
			
				
					|  |  |  |  |                     Integer nationUUID = playerCharacter.guild.getNation().getObjectUUID(); | 
			
		
	
		
			
				
					|  |  |  |  |                     boolean allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     if (city.getTOL().reverseKOS) { | 
			
		
	
		
			
				
					|  |  |  |  |                         //reverse KOS, specific values are allowed
 | 
			
		
	
		
			
				
					|  |  |  |  |                         if (city.getTOL().getCondemned().contains(playerUUID) && city.getTOL().getCondemned().get(playerUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                             //individual is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                             allowed = true; | 
			
		
	
		
			
				
					|  |  |  |  |                         } else if (city.getTOL().getCondemned().contains(guildUUID) && city.getTOL().getCondemned().get(guildUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                             //player guild is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                             allowed = true; | 
			
		
	
		
			
				
					|  |  |  |  |                         } else if (city.getTOL().getCondemned().contains(nationUUID) && city.getTOL().getCondemned().get(nationUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                             //player nation is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                             allowed = true; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                         //not reverse KOS, everyone is allowed by default
 | 
			
		
	
		
			
				
					|  |  |  |  |                         allowed = true; | 
			
		
	
		
			
				
					|  |  |  |  |                         //specific values are not allowed
 | 
			
		
	
		
			
				
					|  |  |  |  |                         if (city.getTOL().getCondemned().contains(playerUUID) && city.getTOL().getCondemned().get(playerUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                             //individual is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                             allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                         } else if (city.getTOL().getCondemned().contains(guildUUID) && city.getTOL().getCondemned().get(guildUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                             //player guild is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                             allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                         } else if (city.getTOL().getCondemned().contains(nationUUID) && city.getTOL().getCondemned().get(nationUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                             //player nation is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                             allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     //not reverse KOS, everyone is allowed by default
 | 
			
		
	
		
			
				
					|  |  |  |  |                     allowed = true; | 
			
		
	
		
			
				
					|  |  |  |  |                     //specific values are not allowed
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (city.getTOL().getCondemned().contains(playerUUID) && city.getTOL().getCondemned().get(playerUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                         //individual is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                         allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } else if (city.getTOL().getCondemned().contains(guildUUID) && city.getTOL().getCondemned().get(guildUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                         //player guild is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                         allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } else if (city.getTOL().getCondemned().contains(nationUUID) && city.getTOL().getCondemned().get(nationUUID).active) { | 
			
		
	
		
			
				
					|  |  |  |  |                         //player nation is cleared for teleport/repledge
 | 
			
		
	
		
			
				
					|  |  |  |  |                         allowed = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     if (allowed) { | 
			
		
	
		
			
				
					|  |  |  |  |                         cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |                         continue; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 if (allowed) { | 
			
		
	
		
			
				
					|  |  |  |  |                     cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // Filter NPC cities
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // Filter NPC cities
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (city.isNoobIsle == 1) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (city.isNoobIsle == 1) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (playerCharacter.level < 20) | 
			
		
	
		
			
				
					|  |  |  |  |                     cities.add(city); // everyone can go to noob island if they are under level 20
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (playerCharacter.level < 20) | 
			
		
	
		
			
				
					|  |  |  |  |                         cities.add(city); // everyone can go to noob island if they are under level 20
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 continue; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // Players cannot teleport to perdition or bastion
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // Players cannot teleport to perdition or bastion
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (city.cityName.equals("Perdition") || city.cityName.equals("Bastion")) | 
			
		
	
		
			
				
					|  |  |  |  |                 continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 if (city.cityName.equals("Perdition") || city.cityName.equals("Bastion")) | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // These cities are available for anyone off noob island
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // These cities are available for anyone off noob island
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (playerCharacter.level >= 20 && (city.cityName.equals("Sea Dog's Rest") || city.cityName.equals("Khan'Ov Srekel") || city.cityName.equals("City of Khar Th'Sekt"))) { | 
			
		
	
		
			
				
					|  |  |  |  |                 cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |                 continue; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |                 if (playerCharacter.level >= 20 && (city.cityName.equals("Sea Dog's Rest") || city.cityName.equals("Khan'Ov Srekel") || city.cityName.equals("City of Khar Th'Sekt"))) { | 
			
		
	
		
			
				
					|  |  |  |  |                     cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // Add Lore cities
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // Add Lore cities
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (ConfigManager.MB_RULESET.getValue().equals("LORE")) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (ConfigManager.MB_RULESET.getValue().equals("LORE")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (repledge) { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (city.getGuild().charter.canJoin(playerCharacter)) | 
			
		
	
		
			
				
					|  |  |  |  |                     if (repledge) { | 
			
		
	
		
			
				
					|  |  |  |  |                         if (city.getGuild().charter.canJoin(playerCharacter)) | 
			
		
	
		
			
				
					|  |  |  |  |                             cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |                     } else if (city.getGuild().charter.equals(playerCharacter.guild.charter)) | 
			
		
	
		
			
				
					|  |  |  |  |                         cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |                 } else if (city.getGuild().charter.equals(playerCharacter.guild.charter)) | 
			
		
	
		
			
				
					|  |  |  |  |                     cities.add(city); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         return cities; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |