|
|
|
@ -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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|