Sync with L2jServer HighFive Mar 25th 2015.

This commit is contained in:
MobiusDev 2015-03-25 06:48:51 +00:00
parent e0c66b1412
commit 82606870c0
194 changed files with 2619 additions and 2869 deletions

View File

@ -166,8 +166,8 @@ public class MC_Show extends AbstractNpcAI
}
}
private static Map<String, ShoutInfo> talks = new HashMap<>();
private static Map<String, WalkInfo> walks = new HashMap<>();
private static final Map<String, ShoutInfo> TALKS = new HashMap<>();
private static final Map<String, WalkInfo> WALKS = new HashMap<>();
private MC_Show()
{
@ -180,112 +180,112 @@ public class MC_Show extends AbstractNpcAI
private void load()
{
// TODO put this stuff in Routes.xml
talks.put("1", new ShoutInfo(MESSAGES[1], "2", 1000));
talks.put("2", new ShoutInfo(MESSAGES[2], "3", 6000));
talks.put("3", new ShoutInfo(MESSAGES[3], "4", 4000));
talks.put("4", new ShoutInfo(MESSAGES[4], "5", 5000));
talks.put("5", new ShoutInfo(MESSAGES[5], "6", 3000));
talks.put("8", new ShoutInfo(MESSAGES[9], "9", 5000));
talks.put("9", new ShoutInfo(MESSAGES[10], "10", 5000));
talks.put("12", new ShoutInfo(MESSAGES[12], "13", 5000));
talks.put("13", new ShoutInfo(MESSAGES[13], "14", 5000));
talks.put("15", new ShoutInfo(MESSAGES[14], "16", 5000));
talks.put("16", new ShoutInfo(MESSAGES[15], "17", 5000));
talks.put("18", new ShoutInfo(MESSAGES[17], "19", 5000));
talks.put("19", new ShoutInfo(MESSAGES[18], "20", 5000));
talks.put("21", new ShoutInfo(MESSAGES[19], "22", 5000));
talks.put("22", new ShoutInfo(MESSAGES[20], "23", 400));
talks.put("25", new ShoutInfo(MESSAGES[21], "26", 5000));
talks.put("26", new ShoutInfo(MESSAGES[22], "27", 5400));
TALKS.put("1", new ShoutInfo(MESSAGES[1], "2", 1000));
TALKS.put("2", new ShoutInfo(MESSAGES[2], "3", 6000));
TALKS.put("3", new ShoutInfo(MESSAGES[3], "4", 4000));
TALKS.put("4", new ShoutInfo(MESSAGES[4], "5", 5000));
TALKS.put("5", new ShoutInfo(MESSAGES[5], "6", 3000));
TALKS.put("8", new ShoutInfo(MESSAGES[9], "9", 5000));
TALKS.put("9", new ShoutInfo(MESSAGES[10], "10", 5000));
TALKS.put("12", new ShoutInfo(MESSAGES[12], "13", 5000));
TALKS.put("13", new ShoutInfo(MESSAGES[13], "14", 5000));
TALKS.put("15", new ShoutInfo(MESSAGES[14], "16", 5000));
TALKS.put("16", new ShoutInfo(MESSAGES[15], "17", 5000));
TALKS.put("18", new ShoutInfo(MESSAGES[17], "19", 5000));
TALKS.put("19", new ShoutInfo(MESSAGES[18], "20", 5000));
TALKS.put("21", new ShoutInfo(MESSAGES[19], "22", 5000));
TALKS.put("22", new ShoutInfo(MESSAGES[20], "23", 400));
TALKS.put("25", new ShoutInfo(MESSAGES[21], "26", 5000));
TALKS.put("26", new ShoutInfo(MESSAGES[22], "27", 5400));
walks.put("npc1_1", new WalkInfo(new Location(-56546, -56384, -2008, 0), "npc1_2", 1200));
walks.put("npc1_2", new WalkInfo(new Location(-56597, -56384, -2008, 0), "npc1_3", 1200));
walks.put("npc1_3", new WalkInfo(new Location(-56596, -56428, -2008, 0), "npc1_4", 1200));
walks.put("npc1_4", new WalkInfo(new Location(-56593, -56474, -2008, 0), "npc1_5", 1000));
walks.put("npc1_5", new WalkInfo(new Location(-56542, -56474, -2008, 0), "npc1_6", 1000));
walks.put("npc1_6", new WalkInfo(new Location(-56493, -56473, -2008, 0), "npc1_7", 2000));
walks.put("npc1_7", new WalkInfo(new Location(-56495, -56425, -2008, 0), "npc1_1", 4000));
walks.put("npc2_1", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc2_2", 1200));
walks.put("npc2_2", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc2_3", 1200));
walks.put("npc2_3", new WalkInfo(new Location(-56603, -56247, -2008, 0), "npc2_4", 1200));
walks.put("npc2_4", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc2_5", 1000));
walks.put("npc2_5", new WalkInfo(new Location(-56553, -56202, -2008, 0), "npc2_6", 1100));
walks.put("npc2_6", new WalkInfo(new Location(-56504, -56200, -2008, 0), "npc2_7", 2000));
walks.put("npc2_7", new WalkInfo(new Location(-56503, -56243, -2008, 0), "npc2_1", 4000));
walks.put("npc3_1", new WalkInfo(new Location(-56500, -56290, -2008, 0), "npc3_2", 1200));
walks.put("npc3_2", new WalkInfo(new Location(-56551, -56313, -2008, 0), "npc3_3", 1200));
walks.put("npc3_3", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc3_4", 1200));
walks.put("npc3_4", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc3_5", 1200));
walks.put("npc3_5", new WalkInfo(new Location(-56653, -56250, -2008, 0), "npc3_6", 1200));
walks.put("npc3_6", new WalkInfo(new Location(-56654, -56204, -2008, 0), "npc3_7", 1200));
walks.put("npc3_7", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc3_8", 1200));
walks.put("npc3_8", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc3_9", 1200));
walks.put("npc3_9", new WalkInfo(new Location(-56503, -56200, -2008, 0), "npc3_10", 1200));
walks.put("npc3_10", new WalkInfo(new Location(-56502, -56244, -2008, 0), "npc3_1", 900));
walks.put("npc4_1", new WalkInfo(new Location(-56495, -56381, -2008, 0), "npc4_2", 1200));
walks.put("npc4_2", new WalkInfo(new Location(-56548, -56383, -2008, 0), "npc4_3", 1200));
walks.put("npc4_3", new WalkInfo(new Location(-56597, -56383, -2008, 0), "npc4_4", 1200));
walks.put("npc4_4", new WalkInfo(new Location(-56643, -56385, -2008, 0), "npc4_5", 1200));
walks.put("npc4_5", new WalkInfo(new Location(-56639, -56436, -2008, 0), "npc4_6", 1200));
walks.put("npc4_6", new WalkInfo(new Location(-56639, -56473, -2008, 0), "npc4_7", 1200));
walks.put("npc4_7", new WalkInfo(new Location(-56589, -56473, -2008, 0), "npc4_8", 1200));
walks.put("npc4_8", new WalkInfo(new Location(-56541, -56473, -2008, 0), "npc4_9", 1200));
walks.put("npc4_9", new WalkInfo(new Location(-56496, -56473, -2008, 0), "npc4_10", 1200));
walks.put("npc4_10", new WalkInfo(new Location(-56496, -56429, -2008, 0), "npc4_1", 900));
walks.put("npc5_1", new WalkInfo(new Location(-56549, -56335, -2008, 0), "npc5_2", 1000));
walks.put("npc5_2", new WalkInfo(new Location(-56599, -56337, -2008, 0), "npc5_3", 2000));
walks.put("npc5_3", new WalkInfo(new Location(-56649, -56341, -2008, 0), "npc5_4", 26000));
walks.put("npc5_4", new WalkInfo(new Location(-56600, -56341, -2008, 0), "npc5_5", 1000));
walks.put("npc5_5", new WalkInfo(new Location(-56553, -56341, -2008, 0), "npc5_6", 1000));
walks.put("npc5_6", new WalkInfo(new Location(-56508, -56331, -2008, 0), "npc5_2", 8000));
walks.put("npc6_1", new WalkInfo(new Location(-56595, -56428, -2008, 0), "npc6_2", 1000));
walks.put("npc6_2", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc6_3", 1000));
walks.put("npc6_3", new WalkInfo(new Location(-56648, -56384, -2008, 0), "npc6_4", 1000));
walks.put("npc6_4", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc6_5", 1000));
walks.put("npc6_5", new WalkInfo(new Location(-56644, -56475, -2008, 0), "npc6_6", 1000));
walks.put("npc6_6", new WalkInfo(new Location(-56595, -56473, -2008, 0), "npc6_7", 1000));
walks.put("npc6_7", new WalkInfo(new Location(-56542, -56473, -2008, 0), "npc6_8", 1000));
walks.put("npc6_8", new WalkInfo(new Location(-56492, -56472, -2008, 0), "npc6_9", 1200));
walks.put("npc6_9", new WalkInfo(new Location(-56495, -56426, -2008, 0), "npc6_10", 2000));
walks.put("npc6_10", new WalkInfo(new Location(-56540, -56426, -2008, 0), "npc6_1", 3000));
walks.put("npc7_1", new WalkInfo(new Location(-56603, -56249, -2008, 0), "npc7_2", 1000));
walks.put("npc7_2", new WalkInfo(new Location(-56601, -56294, -2008, 0), "npc7_3", 1000));
walks.put("npc7_3", new WalkInfo(new Location(-56651, -56295, -2008, 0), "npc7_4", 1000));
walks.put("npc7_4", new WalkInfo(new Location(-56653, -56248, -2008, 0), "npc7_5", 1000));
walks.put("npc7_5", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc7_6", 1000));
walks.put("npc7_6", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc7_7", 1000));
walks.put("npc7_7", new WalkInfo(new Location(-56504, -56201, -2008, 0), "npc7_8", 1000));
walks.put("npc7_8", new WalkInfo(new Location(-56502, -56247, -2008, 0), "npc7_9", 1200));
walks.put("npc7_9", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_10", 2000));
walks.put("npc7_10", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_1", 3000));
walks.put("npc8_1", new WalkInfo(new Location(-56493, -56426, -2008, 0), "npc8_2", 1000));
walks.put("npc8_2", new WalkInfo(new Location(-56497, -56381, -2008, 0), "npc8_3", 1200));
walks.put("npc8_3", new WalkInfo(new Location(-56544, -56381, -2008, 0), "npc8_4", 1200));
walks.put("npc8_4", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc8_5", 1200));
walks.put("npc8_5", new WalkInfo(new Location(-56594, -56428, -2008, 0), "npc8_6", 900));
walks.put("npc8_6", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc8_7", 1200));
walks.put("npc8_7", new WalkInfo(new Location(-56647, -56384, -2008, 0), "npc8_8", 1200));
walks.put("npc8_8", new WalkInfo(new Location(-56649, -56362, -2008, 0), "npc8_9", 9200));
walks.put("npc8_9", new WalkInfo(new Location(-56654, -56429, -2008, 0), "npc8_10", 1200));
walks.put("npc8_10", new WalkInfo(new Location(-56644, -56474, -2008, 0), "npc8_11", 900));
walks.put("npc8_11", new WalkInfo(new Location(-56593, -56473, -2008, 0), "npc8_12", 1100));
walks.put("npc8_12", new WalkInfo(new Location(-56543, -56472, -2008, 0), "npc8_13", 1200));
walks.put("npc8_13", new WalkInfo(new Location(-56491, -56471, -2008, 0), "npc8_1", 1200));
walks.put("npc9_1", new WalkInfo(new Location(-56505, -56246, -2008, 0), "npc9_2", 1000));
walks.put("npc9_2", new WalkInfo(new Location(-56504, -56291, -2008, 0), "npc9_3", 1200));
walks.put("npc9_3", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc9_4", 1200));
walks.put("npc9_4", new WalkInfo(new Location(-56600, -56292, -2008, 0), "npc9_5", 1200));
walks.put("npc9_5", new WalkInfo(new Location(-56603, -56248, -2008, 0), "npc9_6", 900));
walks.put("npc9_6", new WalkInfo(new Location(-56653, -56249, -2008, 0), "npc9_7", 1200));
walks.put("npc9_7", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc9_8", 1200));
walks.put("npc9_8", new WalkInfo(new Location(-56650, -56316, -2008, 0), "npc9_9", 9200));
walks.put("npc9_9", new WalkInfo(new Location(-56660, -56250, -2008, 0), "npc9_10", 1200));
walks.put("npc9_10", new WalkInfo(new Location(-56656, -56205, -2008, 0), "npc9_11", 900));
walks.put("npc9_11", new WalkInfo(new Location(-56606, -56204, -2008, 0), "npc9_12", 1100));
walks.put("npc9_12", new WalkInfo(new Location(-56554, -56203, -2008, 0), "npc9_13", 1200));
walks.put("npc9_13", new WalkInfo(new Location(-56506, -56203, -2008, 0), "npc9_1", 1200));
walks.put("24", new WalkInfo(new Location(-56730, -56340, -2008, 0), "25", 1800));
walks.put("27", new WalkInfo(new Location(-56702, -56340, -2008, 0), "29", 1800));
WALKS.put("npc1_1", new WalkInfo(new Location(-56546, -56384, -2008, 0), "npc1_2", 1200));
WALKS.put("npc1_2", new WalkInfo(new Location(-56597, -56384, -2008, 0), "npc1_3", 1200));
WALKS.put("npc1_3", new WalkInfo(new Location(-56596, -56428, -2008, 0), "npc1_4", 1200));
WALKS.put("npc1_4", new WalkInfo(new Location(-56593, -56474, -2008, 0), "npc1_5", 1000));
WALKS.put("npc1_5", new WalkInfo(new Location(-56542, -56474, -2008, 0), "npc1_6", 1000));
WALKS.put("npc1_6", new WalkInfo(new Location(-56493, -56473, -2008, 0), "npc1_7", 2000));
WALKS.put("npc1_7", new WalkInfo(new Location(-56495, -56425, -2008, 0), "npc1_1", 4000));
WALKS.put("npc2_1", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc2_2", 1200));
WALKS.put("npc2_2", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc2_3", 1200));
WALKS.put("npc2_3", new WalkInfo(new Location(-56603, -56247, -2008, 0), "npc2_4", 1200));
WALKS.put("npc2_4", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc2_5", 1000));
WALKS.put("npc2_5", new WalkInfo(new Location(-56553, -56202, -2008, 0), "npc2_6", 1100));
WALKS.put("npc2_6", new WalkInfo(new Location(-56504, -56200, -2008, 0), "npc2_7", 2000));
WALKS.put("npc2_7", new WalkInfo(new Location(-56503, -56243, -2008, 0), "npc2_1", 4000));
WALKS.put("npc3_1", new WalkInfo(new Location(-56500, -56290, -2008, 0), "npc3_2", 1200));
WALKS.put("npc3_2", new WalkInfo(new Location(-56551, -56313, -2008, 0), "npc3_3", 1200));
WALKS.put("npc3_3", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc3_4", 1200));
WALKS.put("npc3_4", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc3_5", 1200));
WALKS.put("npc3_5", new WalkInfo(new Location(-56653, -56250, -2008, 0), "npc3_6", 1200));
WALKS.put("npc3_6", new WalkInfo(new Location(-56654, -56204, -2008, 0), "npc3_7", 1200));
WALKS.put("npc3_7", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc3_8", 1200));
WALKS.put("npc3_8", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc3_9", 1200));
WALKS.put("npc3_9", new WalkInfo(new Location(-56503, -56200, -2008, 0), "npc3_10", 1200));
WALKS.put("npc3_10", new WalkInfo(new Location(-56502, -56244, -2008, 0), "npc3_1", 900));
WALKS.put("npc4_1", new WalkInfo(new Location(-56495, -56381, -2008, 0), "npc4_2", 1200));
WALKS.put("npc4_2", new WalkInfo(new Location(-56548, -56383, -2008, 0), "npc4_3", 1200));
WALKS.put("npc4_3", new WalkInfo(new Location(-56597, -56383, -2008, 0), "npc4_4", 1200));
WALKS.put("npc4_4", new WalkInfo(new Location(-56643, -56385, -2008, 0), "npc4_5", 1200));
WALKS.put("npc4_5", new WalkInfo(new Location(-56639, -56436, -2008, 0), "npc4_6", 1200));
WALKS.put("npc4_6", new WalkInfo(new Location(-56639, -56473, -2008, 0), "npc4_7", 1200));
WALKS.put("npc4_7", new WalkInfo(new Location(-56589, -56473, -2008, 0), "npc4_8", 1200));
WALKS.put("npc4_8", new WalkInfo(new Location(-56541, -56473, -2008, 0), "npc4_9", 1200));
WALKS.put("npc4_9", new WalkInfo(new Location(-56496, -56473, -2008, 0), "npc4_10", 1200));
WALKS.put("npc4_10", new WalkInfo(new Location(-56496, -56429, -2008, 0), "npc4_1", 900));
WALKS.put("npc5_1", new WalkInfo(new Location(-56549, -56335, -2008, 0), "npc5_2", 1000));
WALKS.put("npc5_2", new WalkInfo(new Location(-56599, -56337, -2008, 0), "npc5_3", 2000));
WALKS.put("npc5_3", new WalkInfo(new Location(-56649, -56341, -2008, 0), "npc5_4", 26000));
WALKS.put("npc5_4", new WalkInfo(new Location(-56600, -56341, -2008, 0), "npc5_5", 1000));
WALKS.put("npc5_5", new WalkInfo(new Location(-56553, -56341, -2008, 0), "npc5_6", 1000));
WALKS.put("npc5_6", new WalkInfo(new Location(-56508, -56331, -2008, 0), "npc5_2", 8000));
WALKS.put("npc6_1", new WalkInfo(new Location(-56595, -56428, -2008, 0), "npc6_2", 1000));
WALKS.put("npc6_2", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc6_3", 1000));
WALKS.put("npc6_3", new WalkInfo(new Location(-56648, -56384, -2008, 0), "npc6_4", 1000));
WALKS.put("npc6_4", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc6_5", 1000));
WALKS.put("npc6_5", new WalkInfo(new Location(-56644, -56475, -2008, 0), "npc6_6", 1000));
WALKS.put("npc6_6", new WalkInfo(new Location(-56595, -56473, -2008, 0), "npc6_7", 1000));
WALKS.put("npc6_7", new WalkInfo(new Location(-56542, -56473, -2008, 0), "npc6_8", 1000));
WALKS.put("npc6_8", new WalkInfo(new Location(-56492, -56472, -2008, 0), "npc6_9", 1200));
WALKS.put("npc6_9", new WalkInfo(new Location(-56495, -56426, -2008, 0), "npc6_10", 2000));
WALKS.put("npc6_10", new WalkInfo(new Location(-56540, -56426, -2008, 0), "npc6_1", 3000));
WALKS.put("npc7_1", new WalkInfo(new Location(-56603, -56249, -2008, 0), "npc7_2", 1000));
WALKS.put("npc7_2", new WalkInfo(new Location(-56601, -56294, -2008, 0), "npc7_3", 1000));
WALKS.put("npc7_3", new WalkInfo(new Location(-56651, -56295, -2008, 0), "npc7_4", 1000));
WALKS.put("npc7_4", new WalkInfo(new Location(-56653, -56248, -2008, 0), "npc7_5", 1000));
WALKS.put("npc7_5", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc7_6", 1000));
WALKS.put("npc7_6", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc7_7", 1000));
WALKS.put("npc7_7", new WalkInfo(new Location(-56504, -56201, -2008, 0), "npc7_8", 1000));
WALKS.put("npc7_8", new WalkInfo(new Location(-56502, -56247, -2008, 0), "npc7_9", 1200));
WALKS.put("npc7_9", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_10", 2000));
WALKS.put("npc7_10", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_1", 3000));
WALKS.put("npc8_1", new WalkInfo(new Location(-56493, -56426, -2008, 0), "npc8_2", 1000));
WALKS.put("npc8_2", new WalkInfo(new Location(-56497, -56381, -2008, 0), "npc8_3", 1200));
WALKS.put("npc8_3", new WalkInfo(new Location(-56544, -56381, -2008, 0), "npc8_4", 1200));
WALKS.put("npc8_4", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc8_5", 1200));
WALKS.put("npc8_5", new WalkInfo(new Location(-56594, -56428, -2008, 0), "npc8_6", 900));
WALKS.put("npc8_6", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc8_7", 1200));
WALKS.put("npc8_7", new WalkInfo(new Location(-56647, -56384, -2008, 0), "npc8_8", 1200));
WALKS.put("npc8_8", new WalkInfo(new Location(-56649, -56362, -2008, 0), "npc8_9", 9200));
WALKS.put("npc8_9", new WalkInfo(new Location(-56654, -56429, -2008, 0), "npc8_10", 1200));
WALKS.put("npc8_10", new WalkInfo(new Location(-56644, -56474, -2008, 0), "npc8_11", 900));
WALKS.put("npc8_11", new WalkInfo(new Location(-56593, -56473, -2008, 0), "npc8_12", 1100));
WALKS.put("npc8_12", new WalkInfo(new Location(-56543, -56472, -2008, 0), "npc8_13", 1200));
WALKS.put("npc8_13", new WalkInfo(new Location(-56491, -56471, -2008, 0), "npc8_1", 1200));
WALKS.put("npc9_1", new WalkInfo(new Location(-56505, -56246, -2008, 0), "npc9_2", 1000));
WALKS.put("npc9_2", new WalkInfo(new Location(-56504, -56291, -2008, 0), "npc9_3", 1200));
WALKS.put("npc9_3", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc9_4", 1200));
WALKS.put("npc9_4", new WalkInfo(new Location(-56600, -56292, -2008, 0), "npc9_5", 1200));
WALKS.put("npc9_5", new WalkInfo(new Location(-56603, -56248, -2008, 0), "npc9_6", 900));
WALKS.put("npc9_6", new WalkInfo(new Location(-56653, -56249, -2008, 0), "npc9_7", 1200));
WALKS.put("npc9_7", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc9_8", 1200));
WALKS.put("npc9_8", new WalkInfo(new Location(-56650, -56316, -2008, 0), "npc9_9", 9200));
WALKS.put("npc9_9", new WalkInfo(new Location(-56660, -56250, -2008, 0), "npc9_10", 1200));
WALKS.put("npc9_10", new WalkInfo(new Location(-56656, -56205, -2008, 0), "npc9_11", 900));
WALKS.put("npc9_11", new WalkInfo(new Location(-56606, -56204, -2008, 0), "npc9_12", 1100));
WALKS.put("npc9_12", new WalkInfo(new Location(-56554, -56203, -2008, 0), "npc9_13", 1200));
WALKS.put("npc9_13", new WalkInfo(new Location(-56506, -56203, -2008, 0), "npc9_1", 1200));
WALKS.put("24", new WalkInfo(new Location(-56730, -56340, -2008, 0), "25", 1800));
WALKS.put("27", new WalkInfo(new Location(-56702, -56340, -2008, 0), "29", 1800));
}
private void scheduleTimer()
@ -487,18 +487,18 @@ public class MC_Show extends AbstractNpcAI
}
else
{
if (talks.containsKey(event))
if (TALKS.containsKey(event))
{
final ShoutInfo si = talks.get(event);
final ShoutInfo si = TALKS.get(event);
if (si != null)
{
autoChat(npc, si.getNpcStringId(), ChatType.NPC_SHOUT);
startQuestTimer(si.getNextEvent(), si.getTime(), npc, null);
}
}
else if (walks.containsKey(event))
else if (WALKS.containsKey(event))
{
final WalkInfo wi = walks.get(event);
final WalkInfo wi = WALKS.get(event);
if (wi != null)
{
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, wi.getCharPos());

View File

@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import quests.Q00020_BringUpWithLove.Q00020_BringUpWithLove;
import ai.npc.AbstractNpcAI;
@ -104,8 +105,8 @@ public final class BeastFarm extends AbstractNpcAI
18900
};
private static Map<Integer, Integer> _FeedInfo = new HashMap<>();
private static Map<Integer, GrowthCapableMob> _GrowthCapableMobs = new HashMap<>();
private static final Map<Integer, Integer> FEED_INFO = new ConcurrentHashMap<>();
private static final Map<Integer, GrowthCapableMob> GROWTH_CAPABLE_MONSTERS = new HashMap<>();
private static List<TamedBeast> TAMED_BEAST_DATA = new ArrayList<>();
private BeastFarm()
@ -124,23 +125,23 @@ public final class BeastFarm extends AbstractNpcAI
temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18869);
temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18878);
temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18879);
_GrowthCapableMobs.put(18873, temp);
GROWTH_CAPABLE_MONSTERS.put(18873, temp);
temp = new GrowthCapableMob(40, 1, 18869);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18876);
_GrowthCapableMobs.put(18874, temp);
GROWTH_CAPABLE_MONSTERS.put(18874, temp);
temp = new GrowthCapableMob(40, 1, 18869);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18877);
_GrowthCapableMobs.put(18875, temp);
GROWTH_CAPABLE_MONSTERS.put(18875, temp);
temp = new GrowthCapableMob(25, 2, 18869);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18878);
_GrowthCapableMobs.put(18876, temp);
GROWTH_CAPABLE_MONSTERS.put(18876, temp);
temp = new GrowthCapableMob(25, 2, 18869);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18879);
_GrowthCapableMobs.put(18877, temp);
GROWTH_CAPABLE_MONSTERS.put(18877, temp);
// Cougar
temp = new GrowthCapableMob(100, 0, 18870);
@ -150,23 +151,23 @@ public final class BeastFarm extends AbstractNpcAI
temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18870);
temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18885);
temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18886);
_GrowthCapableMobs.put(18880, temp);
GROWTH_CAPABLE_MONSTERS.put(18880, temp);
temp = new GrowthCapableMob(40, 1, 18870);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18883);
_GrowthCapableMobs.put(18881, temp);
GROWTH_CAPABLE_MONSTERS.put(18881, temp);
temp = new GrowthCapableMob(40, 1, 18870);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18884);
_GrowthCapableMobs.put(18882, temp);
GROWTH_CAPABLE_MONSTERS.put(18882, temp);
temp = new GrowthCapableMob(25, 2, 18870);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18885);
_GrowthCapableMobs.put(18883, temp);
GROWTH_CAPABLE_MONSTERS.put(18883, temp);
temp = new GrowthCapableMob(25, 2, 18870);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18886);
_GrowthCapableMobs.put(18884, temp);
GROWTH_CAPABLE_MONSTERS.put(18884, temp);
// Buffalo
temp = new GrowthCapableMob(100, 0, 18871);
@ -176,23 +177,23 @@ public final class BeastFarm extends AbstractNpcAI
temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18871);
temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18892);
temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18893);
_GrowthCapableMobs.put(18887, temp);
GROWTH_CAPABLE_MONSTERS.put(18887, temp);
temp = new GrowthCapableMob(40, 1, 18871);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18890);
_GrowthCapableMobs.put(18888, temp);
GROWTH_CAPABLE_MONSTERS.put(18888, temp);
temp = new GrowthCapableMob(40, 1, 18871);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18891);
_GrowthCapableMobs.put(18889, temp);
GROWTH_CAPABLE_MONSTERS.put(18889, temp);
temp = new GrowthCapableMob(25, 2, 18871);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18892);
_GrowthCapableMobs.put(18890, temp);
GROWTH_CAPABLE_MONSTERS.put(18890, temp);
temp = new GrowthCapableMob(25, 2, 18871);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18893);
_GrowthCapableMobs.put(18891, temp);
GROWTH_CAPABLE_MONSTERS.put(18891, temp);
// Grendel
temp = new GrowthCapableMob(100, 0, 18872);
@ -202,23 +203,23 @@ public final class BeastFarm extends AbstractNpcAI
temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18872);
temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18899);
temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18900);
_GrowthCapableMobs.put(18894, temp);
GROWTH_CAPABLE_MONSTERS.put(18894, temp);
temp = new GrowthCapableMob(40, 1, 18872);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18897);
_GrowthCapableMobs.put(18895, temp);
GROWTH_CAPABLE_MONSTERS.put(18895, temp);
temp = new GrowthCapableMob(40, 1, 18872);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18898);
_GrowthCapableMobs.put(18896, temp);
GROWTH_CAPABLE_MONSTERS.put(18896, temp);
temp = new GrowthCapableMob(25, 2, 18872);
temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18899);
_GrowthCapableMobs.put(18897, temp);
GROWTH_CAPABLE_MONSTERS.put(18897, temp);
temp = new GrowthCapableMob(25, 2, 18872);
temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18900);
_GrowthCapableMobs.put(18898, temp);
GROWTH_CAPABLE_MONSTERS.put(18898, temp);
// Tamed beasts data
TAMED_BEAST_DATA.add(new TamedBeast("%name% of Focus", new SkillHolder(6432, 1), new SkillHolder(6668, 1)));
@ -232,11 +233,11 @@ public final class BeastFarm extends AbstractNpcAI
public void spawnNext(L2Npc npc, L2PcInstance player, int nextNpcId, int food)
{
// remove the feedinfo of the mob that got despawned, if any
if (_FeedInfo.containsKey(npc.getObjectId()))
if (FEED_INFO.containsKey(npc.getObjectId()))
{
if (_FeedInfo.get(npc.getObjectId()) == player.getObjectId())
if (FEED_INFO.get(npc.getObjectId()) == player.getObjectId())
{
_FeedInfo.remove(npc.getObjectId());
FEED_INFO.remove(npc.getObjectId());
}
}
// despawn the old mob
@ -289,7 +290,7 @@ public final class BeastFarm extends AbstractNpcAI
L2Attackable nextNpc = (L2Attackable) addSpawn(nextNpcId, npc);
// register the player in the feedinfo for the mob that just spawned
_FeedInfo.put(nextNpc.getObjectId(), player.getObjectId());
FEED_INFO.put(nextNpc.getObjectId(), player.getObjectId());
nextNpc.setRunning();
nextNpc.addDamageHate(player, 0, 99999);
nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
@ -319,19 +320,19 @@ public final class BeastFarm extends AbstractNpcAI
// first gather some values on local variables
int objectId = npc.getObjectId();
int growthLevel = 3; // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3)
if (_GrowthCapableMobs.containsKey(npcId))
if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId))
{
growthLevel = _GrowthCapableMobs.get(npcId).getGrowthLevel();
growthLevel = GROWTH_CAPABLE_MONSTERS.get(npcId).getGrowthLevel();
}
// prevent exploit which allows 2 players to simultaneously raise the same 0-growth beast
// If the mob is at 0th level (when it still listens to all feeders) lock it to the first feeder!
if ((growthLevel == 0) && _FeedInfo.containsKey(objectId))
if ((growthLevel == 0) && FEED_INFO.containsKey(objectId))
{
return super.onSkillSee(npc, caster, skill, targets, isSummon);
}
_FeedInfo.put(objectId, caster.getObjectId());
FEED_INFO.put(objectId, caster.getObjectId());
// display the social action of the beast eating the food.
npc.broadcastSocialAction(2);
@ -347,22 +348,22 @@ public final class BeastFarm extends AbstractNpcAI
}
// if this pet can't grow, it's all done.
if (_GrowthCapableMobs.containsKey(npcId))
if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId))
{
// do nothing if this mob doesn't eat the specified food (food gets consumed but has no effect).
int newNpcId = _GrowthCapableMobs.get(npcId).getLeveledNpcId(skillId);
int newNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getLeveledNpcId(skillId);
if (newNpcId == -1)
{
if (growthLevel == 0)
{
_FeedInfo.remove(objectId);
FEED_INFO.remove(objectId);
npc.setRunning();
((L2Attackable) npc).addDamageHate(caster, 0, 1);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, caster);
}
return super.onSkillSee(npc, caster, skill, targets, isSummon);
}
else if ((growthLevel > 0) && (_FeedInfo.get(objectId) != caster.getObjectId()))
else if ((growthLevel > 0) && (FEED_INFO.get(objectId) != caster.getObjectId()))
{
// check if this is the same player as the one who raised it from growth 0.
// if no, then do not allow a chance to raise the pet (food gets consumed but has no effect).
@ -382,9 +383,9 @@ public final class BeastFarm extends AbstractNpcAI
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
// remove the feedinfo of the mob that got killed, if any
if (_FeedInfo.containsKey(npc.getObjectId()))
if (FEED_INFO.containsKey(npc.getObjectId()))
{
_FeedInfo.remove(npc.getObjectId());
FEED_INFO.remove(npc.getObjectId());
}
return super.onKill(npc, killer, isSummon);
}

View File

@ -20,6 +20,7 @@ package ai.group_template;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import quests.Q00020_BringUpWithLove.Q00020_BringUpWithLove;
import quests.Q00655_AGrandPlanForTamingWildBeasts.Q00655_AGrandPlanForTamingWildBeasts;
@ -129,8 +130,8 @@ public final class FeedableBeasts extends AbstractNpcAI
NpcStringId.ANIMALS_NEED_LOVE_TOO
};
private static Map<Integer, Integer> _FeedInfo = new HashMap<>();
private static Map<Integer, GrowthCapableMob> _GrowthCapableMobs = new HashMap<>();
private static final Map<Integer, Integer> FEED_INFO = new ConcurrentHashMap<>();
private static final Map<Integer, GrowthCapableMob> GROWTH_CAPABLE_MONSTERS = new HashMap<>();
// all mobs that grow by eating
private static class GrowthCapableMob
@ -221,139 +222,139 @@ public final class FeedableBeasts extends AbstractNpcAI
temp = new GrowthCapableMob(0, 100);
temp.addMobs(GOLDEN_SPICE, Kookabura_0_Gold);
temp.addMobs(CRYSTAL_SPICE, Kookabura_0_Crystal);
_GrowthCapableMobs.put(21451, temp);
GROWTH_CAPABLE_MONSTERS.put(21451, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(GOLDEN_SPICE, Kookabura_1_Gold_1);
_GrowthCapableMobs.put(21452, temp);
_GrowthCapableMobs.put(21454, temp);
GROWTH_CAPABLE_MONSTERS.put(21452, temp);
GROWTH_CAPABLE_MONSTERS.put(21454, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(GOLDEN_SPICE, Kookabura_1_Gold_2);
_GrowthCapableMobs.put(21453, temp);
_GrowthCapableMobs.put(21455, temp);
GROWTH_CAPABLE_MONSTERS.put(21453, temp);
GROWTH_CAPABLE_MONSTERS.put(21455, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(CRYSTAL_SPICE, Kookabura_1_Crystal_1);
_GrowthCapableMobs.put(21456, temp);
_GrowthCapableMobs.put(21458, temp);
GROWTH_CAPABLE_MONSTERS.put(21456, temp);
GROWTH_CAPABLE_MONSTERS.put(21458, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(CRYSTAL_SPICE, Kookabura_1_Crystal_2);
_GrowthCapableMobs.put(21457, temp);
_GrowthCapableMobs.put(21459, temp);
GROWTH_CAPABLE_MONSTERS.put(21457, temp);
GROWTH_CAPABLE_MONSTERS.put(21459, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(GOLDEN_SPICE, Kookabura_2_1);
_GrowthCapableMobs.put(21460, temp);
_GrowthCapableMobs.put(21462, temp);
GROWTH_CAPABLE_MONSTERS.put(21460, temp);
GROWTH_CAPABLE_MONSTERS.put(21462, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(GOLDEN_SPICE, Kookabura_2_2);
_GrowthCapableMobs.put(21461, temp);
_GrowthCapableMobs.put(21463, temp);
GROWTH_CAPABLE_MONSTERS.put(21461, temp);
GROWTH_CAPABLE_MONSTERS.put(21463, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(CRYSTAL_SPICE, Kookabura_2_1);
_GrowthCapableMobs.put(21464, temp);
_GrowthCapableMobs.put(21466, temp);
GROWTH_CAPABLE_MONSTERS.put(21464, temp);
GROWTH_CAPABLE_MONSTERS.put(21466, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(CRYSTAL_SPICE, Kookabura_2_2);
_GrowthCapableMobs.put(21465, temp);
_GrowthCapableMobs.put(21467, temp);
GROWTH_CAPABLE_MONSTERS.put(21465, temp);
GROWTH_CAPABLE_MONSTERS.put(21467, temp);
// Alpen Buffalo
temp = new GrowthCapableMob(0, 100);
temp.addMobs(GOLDEN_SPICE, Buffalo_0_Gold);
temp.addMobs(CRYSTAL_SPICE, Buffalo_0_Crystal);
_GrowthCapableMobs.put(21470, temp);
GROWTH_CAPABLE_MONSTERS.put(21470, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(GOLDEN_SPICE, Buffalo_1_Gold_1);
_GrowthCapableMobs.put(21471, temp);
_GrowthCapableMobs.put(21473, temp);
GROWTH_CAPABLE_MONSTERS.put(21471, temp);
GROWTH_CAPABLE_MONSTERS.put(21473, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(GOLDEN_SPICE, Buffalo_1_Gold_2);
_GrowthCapableMobs.put(21472, temp);
_GrowthCapableMobs.put(21474, temp);
GROWTH_CAPABLE_MONSTERS.put(21472, temp);
GROWTH_CAPABLE_MONSTERS.put(21474, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(CRYSTAL_SPICE, Buffalo_1_Crystal_1);
_GrowthCapableMobs.put(21475, temp);
_GrowthCapableMobs.put(21477, temp);
GROWTH_CAPABLE_MONSTERS.put(21475, temp);
GROWTH_CAPABLE_MONSTERS.put(21477, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(CRYSTAL_SPICE, Buffalo_1_Crystal_2);
_GrowthCapableMobs.put(21476, temp);
_GrowthCapableMobs.put(21478, temp);
GROWTH_CAPABLE_MONSTERS.put(21476, temp);
GROWTH_CAPABLE_MONSTERS.put(21478, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(GOLDEN_SPICE, Buffalo_2_1);
_GrowthCapableMobs.put(21479, temp);
_GrowthCapableMobs.put(21481, temp);
GROWTH_CAPABLE_MONSTERS.put(21479, temp);
GROWTH_CAPABLE_MONSTERS.put(21481, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(GOLDEN_SPICE, Buffalo_2_2);
_GrowthCapableMobs.put(21480, temp);
_GrowthCapableMobs.put(21482, temp);
GROWTH_CAPABLE_MONSTERS.put(21480, temp);
GROWTH_CAPABLE_MONSTERS.put(21482, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(CRYSTAL_SPICE, Buffalo_2_1);
_GrowthCapableMobs.put(21483, temp);
_GrowthCapableMobs.put(21485, temp);
GROWTH_CAPABLE_MONSTERS.put(21483, temp);
GROWTH_CAPABLE_MONSTERS.put(21485, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(CRYSTAL_SPICE, Buffalo_2_2);
_GrowthCapableMobs.put(21484, temp);
_GrowthCapableMobs.put(21486, temp);
GROWTH_CAPABLE_MONSTERS.put(21484, temp);
GROWTH_CAPABLE_MONSTERS.put(21486, temp);
// Alpen Cougar
temp = new GrowthCapableMob(0, 100);
temp.addMobs(GOLDEN_SPICE, Cougar_0_Gold);
temp.addMobs(CRYSTAL_SPICE, Cougar_0_Crystal);
_GrowthCapableMobs.put(21489, temp);
GROWTH_CAPABLE_MONSTERS.put(21489, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(GOLDEN_SPICE, Cougar_1_Gold_1);
_GrowthCapableMobs.put(21490, temp);
_GrowthCapableMobs.put(21492, temp);
GROWTH_CAPABLE_MONSTERS.put(21490, temp);
GROWTH_CAPABLE_MONSTERS.put(21492, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(GOLDEN_SPICE, Cougar_1_Gold_2);
_GrowthCapableMobs.put(21491, temp);
_GrowthCapableMobs.put(21493, temp);
GROWTH_CAPABLE_MONSTERS.put(21491, temp);
GROWTH_CAPABLE_MONSTERS.put(21493, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(CRYSTAL_SPICE, Cougar_1_Crystal_1);
_GrowthCapableMobs.put(21494, temp);
_GrowthCapableMobs.put(21496, temp);
GROWTH_CAPABLE_MONSTERS.put(21494, temp);
GROWTH_CAPABLE_MONSTERS.put(21496, temp);
temp = new GrowthCapableMob(1, 40);
temp.addMobs(CRYSTAL_SPICE, Cougar_1_Crystal_2);
_GrowthCapableMobs.put(21495, temp);
_GrowthCapableMobs.put(21497, temp);
GROWTH_CAPABLE_MONSTERS.put(21495, temp);
GROWTH_CAPABLE_MONSTERS.put(21497, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(GOLDEN_SPICE, Cougar_2_1);
_GrowthCapableMobs.put(21498, temp);
_GrowthCapableMobs.put(21500, temp);
GROWTH_CAPABLE_MONSTERS.put(21498, temp);
GROWTH_CAPABLE_MONSTERS.put(21500, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(GOLDEN_SPICE, Cougar_2_2);
_GrowthCapableMobs.put(21499, temp);
_GrowthCapableMobs.put(21501, temp);
GROWTH_CAPABLE_MONSTERS.put(21499, temp);
GROWTH_CAPABLE_MONSTERS.put(21501, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(CRYSTAL_SPICE, Cougar_2_1);
_GrowthCapableMobs.put(21502, temp);
_GrowthCapableMobs.put(21504, temp);
GROWTH_CAPABLE_MONSTERS.put(21502, temp);
GROWTH_CAPABLE_MONSTERS.put(21504, temp);
temp = new GrowthCapableMob(2, 25);
temp.addMobs(CRYSTAL_SPICE, Cougar_2_2);
_GrowthCapableMobs.put(21503, temp);
_GrowthCapableMobs.put(21505, temp);
GROWTH_CAPABLE_MONSTERS.put(21503, temp);
GROWTH_CAPABLE_MONSTERS.put(21505, temp);
}
private void spawnNext(L2Npc npc, int growthLevel, L2PcInstance player, int food)
@ -369,11 +370,11 @@ public final class FeedableBeasts extends AbstractNpcAI
{
if (player.getClassId().isMage())
{
nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 1, 1);
nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 1, 1);
}
else
{
nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 1, 0);
nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 1, 0);
}
}
else
@ -382,26 +383,26 @@ public final class FeedableBeasts extends AbstractNpcAI
// that is a stronger-than-normal animal that attacks its feeder
if (getRandom(5) == 0)
{
nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 0, 1);
nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 0, 1);
}
else
{
nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 0, 0);
nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 0, 0);
}
}
}
else
{
// all other levels of growth are straight-forward
nextNpcId = _GrowthCapableMobs.get(npcId).getRandomMob(food);
nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getRandomMob(food);
}
// remove the feedinfo of the mob that got despawned, if any
if (_FeedInfo.containsKey(npc.getObjectId()))
if (FEED_INFO.containsKey(npc.getObjectId()))
{
if (_FeedInfo.get(npc.getObjectId()) == player.getObjectId())
if (FEED_INFO.get(npc.getObjectId()) == player.getObjectId())
{
_FeedInfo.remove(npc.getObjectId());
FEED_INFO.remove(npc.getObjectId());
}
}
// despawn the old mob
@ -476,7 +477,7 @@ public final class FeedableBeasts extends AbstractNpcAI
}
// register the player in the feedinfo for the mob that just spawned
_FeedInfo.put(nextNpc.getObjectId(), player.getObjectId());
FEED_INFO.put(nextNpc.getObjectId(), player.getObjectId());
nextNpc.setRunning();
nextNpc.addDamageHate(player, 0, 99999);
nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
@ -491,9 +492,9 @@ public final class FeedableBeasts extends AbstractNpcAI
if (MAD_COW_POLYMORPH.containsKey(npc.getId()))
{
// remove the feed info from the previous mob
if (_FeedInfo.get(npc.getObjectId()) == player.getObjectId())
if (FEED_INFO.get(npc.getObjectId()) == player.getObjectId())
{
_FeedInfo.remove(npc.getObjectId());
FEED_INFO.remove(npc.getObjectId());
}
// despawn the mad cow
npc.deleteMe();
@ -501,7 +502,7 @@ public final class FeedableBeasts extends AbstractNpcAI
L2Attackable nextNpc = (L2Attackable) addSpawn(MAD_COW_POLYMORPH.get(npc.getId()), npc);
// register the player in the feedinfo for the mob that just spawned
_FeedInfo.put(nextNpc.getObjectId(), player.getObjectId());
FEED_INFO.put(nextNpc.getObjectId(), player.getObjectId());
nextNpc.setRunning();
nextNpc.addDamageHate(player, 0, 99999);
nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
@ -531,19 +532,19 @@ public final class FeedableBeasts extends AbstractNpcAI
// first gather some values on local variables
int objectId = npc.getObjectId();
int growthLevel = 3; // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3)
if (_GrowthCapableMobs.containsKey(npcId))
if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId))
{
growthLevel = _GrowthCapableMobs.get(npcId).getGrowthLevel();
growthLevel = GROWTH_CAPABLE_MONSTERS.get(npcId).getGrowthLevel();
}
// prevent exploit which allows 2 players to simultaneously raise the same 0-growth beast
// If the mob is at 0th level (when it still listens to all feeders) lock it to the first feeder!
if ((growthLevel == 0) && _FeedInfo.containsKey(objectId))
if ((growthLevel == 0) && FEED_INFO.containsKey(objectId))
{
return super.onSkillSee(npc, caster, skill, targets, isSummon);
}
_FeedInfo.put(objectId, caster.getObjectId());
FEED_INFO.put(objectId, caster.getObjectId());
int food = 0;
if (skillId == SKILL_GOLDEN_SPICE)
@ -559,10 +560,10 @@ public final class FeedableBeasts extends AbstractNpcAI
npc.broadcastSocialAction(2);
// if this pet can't grow, it's all done.
if (_GrowthCapableMobs.containsKey(npcId))
if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId))
{
// do nothing if this mob doesn't eat the specified food (food gets consumed but has no effect).
if (_GrowthCapableMobs.get(npcId).getMob(food, 0, 0) == null)
if (GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 0, 0) == null)
{
return super.onSkillSee(npc, caster, skill, targets, isSummon);
}
@ -579,7 +580,7 @@ public final class FeedableBeasts extends AbstractNpcAI
npc.broadcastPacket(packet);
}
if ((growthLevel > 0) && (_FeedInfo.get(objectId) != caster.getObjectId()))
if ((growthLevel > 0) && (FEED_INFO.get(objectId) != caster.getObjectId()))
{
// check if this is the same player as the one who raised it from growth 0.
// if no, then do not allow a chance to raise the pet (food gets consumed but has no effect).
@ -587,7 +588,7 @@ public final class FeedableBeasts extends AbstractNpcAI
}
// Polymorph the mob, with a certain chance, given its current growth level
if (getRandom(100) < _GrowthCapableMobs.get(npcId).getChance())
if (getRandom(100) < GROWTH_CAPABLE_MONSTERS.get(npcId).getChance())
{
spawnNext(npc, growthLevel, caster, food);
}
@ -614,9 +615,9 @@ public final class FeedableBeasts extends AbstractNpcAI
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
// remove the feedinfo of the mob that got killed, if any
if (_FeedInfo.containsKey(npc.getObjectId()))
if (FEED_INFO.containsKey(npc.getObjectId()))
{
_FeedInfo.remove(npc.getObjectId());
FEED_INFO.remove(npc.getObjectId());
}
return super.onKill(npc, killer, isSummon);
}

View File

@ -33,7 +33,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
*/
public final class RandomSpawn extends AbstractNpcAI
{
private static Map<Integer, Location[]> SPAWN_POINTS = new HashMap<>();
private static final Map<Integer, Location[]> SPAWN_POINTS = new HashMap<>();
static
{
// Keltas

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,6 @@
*/
package ai.individual;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@ -43,8 +42,8 @@ public final class DarkWaterDragon extends AbstractNpcAI
private static final int FAFURION = 18482;
private static final int DETRACTOR1 = 22270;
private static final int DETRACTOR2 = 22271;
private static Set<Integer> SECOND_SPAWN = new HashSet<>(); // Used to track if second Shades were already spawned
private static Set<Integer> MY_TRACKING_SET = new HashSet<>(); // Used to track instances of npcs
private static final Set<Integer> SECOND_SPAWN = ConcurrentHashMap.newKeySet(); // Used to track if second Shades were already spawned
private static Set<Integer> MY_TRACKING_SET = ConcurrentHashMap.newKeySet(); // Used to track instances of npcs
private static Map<Integer, L2PcInstance> ID_MAP = new ConcurrentHashMap<>(); // Used to track instances of npcs
private DarkWaterDragon()

View File

@ -18,8 +18,8 @@
*/
package ai.individual;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import ai.npc.AbstractNpcAI;
@ -72,7 +72,7 @@ public final class Orfen extends AbstractNpcAI
private static final int RIBA_IREN = 29018;
private static boolean _IsTeleported;
private static List<L2Attackable> _Minions = new ArrayList<>();
private static final List<L2Attackable> MINIONS = new CopyOnWriteArrayList<>();
private static L2BossZone ZONE;
private static final byte ALIVE = 0;
@ -158,16 +158,16 @@ public final class Orfen extends AbstractNpcAI
L2Attackable mob;
mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x + 100, y + 100, npc.getZ(), 0, false, 0);
mob.setIsRaidMinion(true);
_Minions.add(mob);
MINIONS.add(mob);
mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x + 100, y - 100, npc.getZ(), 0, false, 0);
mob.setIsRaidMinion(true);
_Minions.add(mob);
MINIONS.add(mob);
mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x - 100, y + 100, npc.getZ(), 0, false, 0);
mob.setIsRaidMinion(true);
_Minions.add(mob);
MINIONS.add(mob);
mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x - 100, y - 100, npc.getZ(), 0, false, 0);
mob.setIsRaidMinion(true);
_Minions.add(mob);
MINIONS.add(mob);
startQuestTimer("check_minion_loc", 10000, npc, null, true);
}
@ -208,9 +208,9 @@ public final class Orfen extends AbstractNpcAI
}
else if (event.equalsIgnoreCase("check_minion_loc"))
{
for (int i = 0; i < _Minions.size(); i++)
for (int i = 0; i < MINIONS.size(); i++)
{
L2Attackable mob = _Minions.get(i);
L2Attackable mob = MINIONS.get(i);
if (!npc.isInsideRadius(mob, 3000, false, false))
{
mob.teleToLocation(npc.getLocation());
@ -221,21 +221,21 @@ public final class Orfen extends AbstractNpcAI
}
else if (event.equalsIgnoreCase("despawn_minions"))
{
for (int i = 0; i < _Minions.size(); i++)
for (int i = 0; i < MINIONS.size(); i++)
{
L2Attackable mob = _Minions.get(i);
L2Attackable mob = MINIONS.get(i);
if (mob != null)
{
mob.decayMe();
}
}
_Minions.clear();
MINIONS.clear();
}
else if (event.equalsIgnoreCase("spawn_minion"))
{
L2Attackable mob = (L2Attackable) addSpawn(RAIKEL_LEOS, npc.getX(), npc.getY(), npc.getZ(), 0, false, 0);
mob.setIsRaidMinion(true);
_Minions.add(mob);
MINIONS.add(mob);
}
return super.onAdvEvent(event, npc, player);
}
@ -344,7 +344,7 @@ public final class Orfen extends AbstractNpcAI
}
else if ((GrandBossManager.getInstance().getBossStatus(ORFEN) == ALIVE) && (npc.getId() == RAIKEL_LEOS))
{
_Minions.remove(npc);
MINIONS.remove(npc);
startQuestTimer("spawn_minion", 360000, npc, null);
}
return super.onKill(npc, killer, isSummon);

View File

@ -18,8 +18,8 @@
*/
package ai.individual;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ScheduledFuture;
import ai.npc.AbstractNpcAI;
@ -83,7 +83,7 @@ public final class QueenAnt extends AbstractNpcAI
L2MonsterInstance _queen = null;
private L2MonsterInstance _larva = null;
private final List<L2MonsterInstance> _nurses = new ArrayList<>(5);
private final List<L2MonsterInstance> _nurses = new CopyOnWriteArrayList<>();
ScheduledFuture<?> _task = null;
private QueenAnt()

View File

@ -18,8 +18,8 @@
*/
package ai.individual;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import ai.npc.AbstractNpcAI;
@ -54,7 +54,7 @@ public final class SinWardens extends AbstractNpcAI
22438
};
private final Map<Integer, Integer> killedMinionsCount = new HashMap<>();
private final Map<Integer, Integer> killedMinionsCount = new ConcurrentHashMap<>();
private SinWardens()
{

View File

@ -29,12 +29,12 @@ import org.w3c.dom.Node;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.L2Territory;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.util.Rnd;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Tar Beetle zone spawn

View File

@ -29,7 +29,6 @@ import org.w3c.dom.Node;
import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.CategoryType;
import com.l2jserver.gameserver.enums.MailType;
import com.l2jserver.gameserver.instancemanager.MailManager;
@ -57,6 +56,7 @@ import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.network.serverpackets.mentoring.ExMentorList;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Mentor Guide.

View File

@ -28,8 +28,8 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -30,8 +30,7 @@ import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.util.Util;
/**
* Newbie Travel Token AI.<br>
* Original Jython script by DrLecter.
* Newbie Travel Token AI.
* @author Plim
*/
public final class NewbieTravelToken extends AbstractNpcAI

View File

@ -53,8 +53,8 @@ public class EnergySeeds extends AbstractNpcAI
private static final int RATE = 1;
private static final int RESPAWN = 480000;
private static final int RANDOM_RESPAWN_OFFSET = 180000;
private static Map<Integer, ESSpawn> _spawns = new HashMap<>();
protected static Map<L2Npc, Integer> _spawnedNpcs = new ConcurrentHashMap<>();
private static final Map<Integer, ESSpawn> SPAWNS = new HashMap<>();
protected static final Map<L2Npc, Integer> _spawnedNpcs = new ConcurrentHashMap<>();
private static final int TEMPORARY_TELEPORTER = 32602;
// @formatter:off
@ -128,9 +128,9 @@ public class EnergySeeds extends AbstractNpcAI
npc.deleteMe();
if (_spawnedNpcs.containsKey(npc) && _spawns.containsKey(_spawnedNpcs.get(npc)))
if (_spawnedNpcs.containsKey(npc) && SPAWNS.containsKey(_spawnedNpcs.get(npc)))
{
ESSpawn spawn = _spawns.get(_spawnedNpcs.get(npc));
ESSpawn spawn = SPAWNS.get(_spawnedNpcs.get(npc));
spawn.scheduleRespawn(RESPAWN + getRandom(RANDOM_RESPAWN_OFFSET));
_spawnedNpcs.remove(npc);
if (isSeedActive(spawn._seedId))
@ -239,9 +239,9 @@ public class EnergySeeds extends AbstractNpcAI
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
if (_spawnedNpcs.containsKey(npc) && _spawns.containsKey(_spawnedNpcs.get(npc)))
if (_spawnedNpcs.containsKey(npc) && SPAWNS.containsKey(_spawnedNpcs.get(npc)))
{
_spawns.get(_spawnedNpcs.get(npc)).scheduleRespawn(RESPAWN + getRandom(RANDOM_RESPAWN_OFFSET));
SPAWNS.get(_spawnedNpcs.get(npc)).scheduleRespawn(RESPAWN + getRandom(RANDOM_RESPAWN_OFFSET));
_spawnedNpcs.remove(npc);
}
return super.onKill(npc, player, isSummon);
@ -273,7 +273,7 @@ public class EnergySeeds extends AbstractNpcAI
public void startAI()
{
// spawn all NPCs
for (ESSpawn spawn : _spawns.values())
for (ESSpawn spawn : SPAWNS.values())
{
if (isSeedActive(spawn._seedId))
{
@ -285,7 +285,7 @@ public class EnergySeeds extends AbstractNpcAI
public void startAI(GraciaSeeds type)
{
// spawn all NPCs
for (ESSpawn spawn : _spawns.values())
for (ESSpawn spawn : SPAWNS.values())
{
if (spawn._seedId == type)
{
@ -298,7 +298,7 @@ public class EnergySeeds extends AbstractNpcAI
{
for (L2Npc seed : _spawnedNpcs.keySet())
{
if (type == _spawns.get(_spawnedNpcs.get(seed))._seedId)
if (type == SPAWNS.get(_spawnedNpcs.get(seed))._seedId)
{
seed.deleteMe();
}
@ -361,336 +361,336 @@ public class EnergySeeds extends AbstractNpcAI
// Seed of Destruction
// Temporary Teleporters
//@formatter:off
_spawns.put(1, new ESSpawn(1, GraciaSeeds.DESTRUCTION, new Location(-245790,220320,-12104), new int[]{TEMPORARY_TELEPORTER}));
_spawns.put(2, new ESSpawn(2, GraciaSeeds.DESTRUCTION, new Location(-249770,207300,-11952), new int[]{TEMPORARY_TELEPORTER}));
SPAWNS.put(1, new ESSpawn(1, GraciaSeeds.DESTRUCTION, new Location(-245790,220320,-12104), new int[]{TEMPORARY_TELEPORTER}));
SPAWNS.put(2, new ESSpawn(2, GraciaSeeds.DESTRUCTION, new Location(-249770,207300,-11952), new int[]{TEMPORARY_TELEPORTER}));
//Energy Seeds
_spawns.put(3, new ESSpawn(3, GraciaSeeds.DESTRUCTION, new Location(-248360,219272,-12448), new int[]{18678,18679,18680}));
_spawns.put(4, new ESSpawn(4, GraciaSeeds.DESTRUCTION, new Location(-249448,219256,-12448), new int[]{18678,18679,18680}));
_spawns.put(5, new ESSpawn(5, GraciaSeeds.DESTRUCTION, new Location(-249432,220872,-12448), new int[]{18678,18679,18680}));
_spawns.put(6, new ESSpawn(6, GraciaSeeds.DESTRUCTION, new Location(-248360,220888,-12448), new int[]{18678,18679,18680}));
SPAWNS.put(3, new ESSpawn(3, GraciaSeeds.DESTRUCTION, new Location(-248360,219272,-12448), new int[]{18678,18679,18680}));
SPAWNS.put(4, new ESSpawn(4, GraciaSeeds.DESTRUCTION, new Location(-249448,219256,-12448), new int[]{18678,18679,18680}));
SPAWNS.put(5, new ESSpawn(5, GraciaSeeds.DESTRUCTION, new Location(-249432,220872,-12448), new int[]{18678,18679,18680}));
SPAWNS.put(6, new ESSpawn(6, GraciaSeeds.DESTRUCTION, new Location(-248360,220888,-12448), new int[]{18678,18679,18680}));
_spawns.put(7, new ESSpawn(7, GraciaSeeds.DESTRUCTION, new Location(-250088,219256,-12448), new int[]{18681,18682}));
_spawns.put(8, new ESSpawn(8, GraciaSeeds.DESTRUCTION, new Location(-250600,219272,-12448), new int[]{18681,18682}));
_spawns.put(9, new ESSpawn(9, GraciaSeeds.DESTRUCTION, new Location(-250584,220904,-12448), new int[]{18681,18682}));
_spawns.put(10, new ESSpawn(10, GraciaSeeds.DESTRUCTION, new Location(-250072,220888,-12448), new int[]{18681,18682}));
SPAWNS.put(7, new ESSpawn(7, GraciaSeeds.DESTRUCTION, new Location(-250088,219256,-12448), new int[]{18681,18682}));
SPAWNS.put(8, new ESSpawn(8, GraciaSeeds.DESTRUCTION, new Location(-250600,219272,-12448), new int[]{18681,18682}));
SPAWNS.put(9, new ESSpawn(9, GraciaSeeds.DESTRUCTION, new Location(-250584,220904,-12448), new int[]{18681,18682}));
SPAWNS.put(10, new ESSpawn(10, GraciaSeeds.DESTRUCTION, new Location(-250072,220888,-12448), new int[]{18681,18682}));
_spawns.put(11, new ESSpawn(11, GraciaSeeds.DESTRUCTION, new Location(-253096,217704,-12296), new int[]{18683,18678}));
_spawns.put(12, new ESSpawn(12, GraciaSeeds.DESTRUCTION, new Location(-253112,217048,-12288), new int[]{18683,18678}));
_spawns.put(13, new ESSpawn(13, GraciaSeeds.DESTRUCTION, new Location(-251448,217032,-12288), new int[]{18683,18678}));
_spawns.put(14, new ESSpawn(14, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18683,18678}));
SPAWNS.put(11, new ESSpawn(11, GraciaSeeds.DESTRUCTION, new Location(-253096,217704,-12296), new int[]{18683,18678}));
SPAWNS.put(12, new ESSpawn(12, GraciaSeeds.DESTRUCTION, new Location(-253112,217048,-12288), new int[]{18683,18678}));
SPAWNS.put(13, new ESSpawn(13, GraciaSeeds.DESTRUCTION, new Location(-251448,217032,-12288), new int[]{18683,18678}));
SPAWNS.put(14, new ESSpawn(14, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18683,18678}));
_spawns.put(15, new ESSpawn(15, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18679,18680}));
_spawns.put(16, new ESSpawn(16, GraciaSeeds.DESTRUCTION, new Location(-251416,217016,-12280), new int[]{18679,18680}));
_spawns.put(17, new ESSpawn(17, GraciaSeeds.DESTRUCTION, new Location(-249752,217016,-12280), new int[]{18679,18680}));
_spawns.put(18, new ESSpawn(18, GraciaSeeds.DESTRUCTION, new Location(-249736,217688,-12296), new int[]{18679,18680}));
SPAWNS.put(15, new ESSpawn(15, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18679,18680}));
SPAWNS.put(16, new ESSpawn(16, GraciaSeeds.DESTRUCTION, new Location(-251416,217016,-12280), new int[]{18679,18680}));
SPAWNS.put(17, new ESSpawn(17, GraciaSeeds.DESTRUCTION, new Location(-249752,217016,-12280), new int[]{18679,18680}));
SPAWNS.put(18, new ESSpawn(18, GraciaSeeds.DESTRUCTION, new Location(-249736,217688,-12296), new int[]{18679,18680}));
_spawns.put(19, new ESSpawn(19, GraciaSeeds.DESTRUCTION, new Location(-252472,215208,-12120), new int[]{18681,18682}));
_spawns.put(20, new ESSpawn(20, GraciaSeeds.DESTRUCTION, new Location(-252552,216760,-12248), new int[]{18681,18682}));
_spawns.put(21, new ESSpawn(21, GraciaSeeds.DESTRUCTION, new Location(-253160,216744,-12248), new int[]{18681,18682}));
_spawns.put(22, new ESSpawn(22, GraciaSeeds.DESTRUCTION, new Location(-253128,215160,-12096), new int[]{18681,18682}));
SPAWNS.put(19, new ESSpawn(19, GraciaSeeds.DESTRUCTION, new Location(-252472,215208,-12120), new int[]{18681,18682}));
SPAWNS.put(20, new ESSpawn(20, GraciaSeeds.DESTRUCTION, new Location(-252552,216760,-12248), new int[]{18681,18682}));
SPAWNS.put(21, new ESSpawn(21, GraciaSeeds.DESTRUCTION, new Location(-253160,216744,-12248), new int[]{18681,18682}));
SPAWNS.put(22, new ESSpawn(22, GraciaSeeds.DESTRUCTION, new Location(-253128,215160,-12096), new int[]{18681,18682}));
_spawns.put(23, new ESSpawn(23, GraciaSeeds.DESTRUCTION, new Location(-250392,215208,-12120), new int[]{18683,18678}));
_spawns.put(24, new ESSpawn(24, GraciaSeeds.DESTRUCTION, new Location(-250264,216744,-12248), new int[]{18683,18678}));
_spawns.put(25, new ESSpawn(25, GraciaSeeds.DESTRUCTION, new Location(-249720,216744,-12248), new int[]{18683,18678}));
_spawns.put(26, new ESSpawn(26, GraciaSeeds.DESTRUCTION, new Location(-249752,215128,-12096), new int[]{18683,18678}));
SPAWNS.put(23, new ESSpawn(23, GraciaSeeds.DESTRUCTION, new Location(-250392,215208,-12120), new int[]{18683,18678}));
SPAWNS.put(24, new ESSpawn(24, GraciaSeeds.DESTRUCTION, new Location(-250264,216744,-12248), new int[]{18683,18678}));
SPAWNS.put(25, new ESSpawn(25, GraciaSeeds.DESTRUCTION, new Location(-249720,216744,-12248), new int[]{18683,18678}));
SPAWNS.put(26, new ESSpawn(26, GraciaSeeds.DESTRUCTION, new Location(-249752,215128,-12096), new int[]{18683,18678}));
_spawns.put(27, new ESSpawn(27, GraciaSeeds.DESTRUCTION, new Location(-250280,216760,-12248), new int[]{18679,18680,18681}));
_spawns.put(28, new ESSpawn(28, GraciaSeeds.DESTRUCTION, new Location(-250344,216152,-12248), new int[]{18679,18680,18681}));
_spawns.put(29, new ESSpawn(29, GraciaSeeds.DESTRUCTION, new Location(-252504,216152,-12248), new int[]{18679,18680,18681}));
_spawns.put(30, new ESSpawn(30, GraciaSeeds.DESTRUCTION, new Location(-252520,216792,-12248), new int[]{18679,18680,18681}));
SPAWNS.put(27, new ESSpawn(27, GraciaSeeds.DESTRUCTION, new Location(-250280,216760,-12248), new int[]{18679,18680,18681}));
SPAWNS.put(28, new ESSpawn(28, GraciaSeeds.DESTRUCTION, new Location(-250344,216152,-12248), new int[]{18679,18680,18681}));
SPAWNS.put(29, new ESSpawn(29, GraciaSeeds.DESTRUCTION, new Location(-252504,216152,-12248), new int[]{18679,18680,18681}));
SPAWNS.put(30, new ESSpawn(30, GraciaSeeds.DESTRUCTION, new Location(-252520,216792,-12248), new int[]{18679,18680,18681}));
_spawns.put(31, new ESSpawn(31, GraciaSeeds.DESTRUCTION, new Location(-242520,217272,-12384), new int[]{18681,18682,18683}));
_spawns.put(32, new ESSpawn(32, GraciaSeeds.DESTRUCTION, new Location(-241432,217288,-12384), new int[]{18681,18682,18683}));
_spawns.put(33, new ESSpawn(33, GraciaSeeds.DESTRUCTION, new Location(-241432,218936,-12384), new int[]{18681,18682,18683}));
_spawns.put(34, new ESSpawn(34, GraciaSeeds.DESTRUCTION, new Location(-242536,218936,-12384), new int[]{18681,18682,18683}));
SPAWNS.put(31, new ESSpawn(31, GraciaSeeds.DESTRUCTION, new Location(-242520,217272,-12384), new int[]{18681,18682,18683}));
SPAWNS.put(32, new ESSpawn(32, GraciaSeeds.DESTRUCTION, new Location(-241432,217288,-12384), new int[]{18681,18682,18683}));
SPAWNS.put(33, new ESSpawn(33, GraciaSeeds.DESTRUCTION, new Location(-241432,218936,-12384), new int[]{18681,18682,18683}));
SPAWNS.put(34, new ESSpawn(34, GraciaSeeds.DESTRUCTION, new Location(-242536,218936,-12384), new int[]{18681,18682,18683}));
_spawns.put(35, new ESSpawn(35, GraciaSeeds.DESTRUCTION, new Location(-240808,217272,-12384), new int[]{18678,18679}));
_spawns.put(36, new ESSpawn(36, GraciaSeeds.DESTRUCTION, new Location(-240280,217272,-12384), new int[]{18678,18679}));
_spawns.put(37, new ESSpawn(37, GraciaSeeds.DESTRUCTION, new Location(-240280,218952,-12384), new int[]{18678,18679}));
_spawns.put(38, new ESSpawn(38, GraciaSeeds.DESTRUCTION, new Location(-240792,218936,-12384), new int[]{18678,18679}));
SPAWNS.put(35, new ESSpawn(35, GraciaSeeds.DESTRUCTION, new Location(-240808,217272,-12384), new int[]{18678,18679}));
SPAWNS.put(36, new ESSpawn(36, GraciaSeeds.DESTRUCTION, new Location(-240280,217272,-12384), new int[]{18678,18679}));
SPAWNS.put(37, new ESSpawn(37, GraciaSeeds.DESTRUCTION, new Location(-240280,218952,-12384), new int[]{18678,18679}));
SPAWNS.put(38, new ESSpawn(38, GraciaSeeds.DESTRUCTION, new Location(-240792,218936,-12384), new int[]{18678,18679}));
_spawns.put(39, new ESSpawn(39, GraciaSeeds.DESTRUCTION, new Location(-239576,217240,-12640), new int[]{18680,18681,18682}));
_spawns.put(40, new ESSpawn(40, GraciaSeeds.DESTRUCTION, new Location(-239560,216168,-12640), new int[]{18680,18681,18682}));
_spawns.put(41, new ESSpawn(41, GraciaSeeds.DESTRUCTION, new Location(-237896,216152,-12640), new int[]{18680,18681,18682}));
_spawns.put(42, new ESSpawn(42, GraciaSeeds.DESTRUCTION, new Location(-237912,217256,-12640), new int[]{18680,18681,18682}));
SPAWNS.put(39, new ESSpawn(39, GraciaSeeds.DESTRUCTION, new Location(-239576,217240,-12640), new int[]{18680,18681,18682}));
SPAWNS.put(40, new ESSpawn(40, GraciaSeeds.DESTRUCTION, new Location(-239560,216168,-12640), new int[]{18680,18681,18682}));
SPAWNS.put(41, new ESSpawn(41, GraciaSeeds.DESTRUCTION, new Location(-237896,216152,-12640), new int[]{18680,18681,18682}));
SPAWNS.put(42, new ESSpawn(42, GraciaSeeds.DESTRUCTION, new Location(-237912,217256,-12640), new int[]{18680,18681,18682}));
_spawns.put(43, new ESSpawn(43, GraciaSeeds.DESTRUCTION, new Location(-237896,215528,-12640), new int[]{18683,18678}));
_spawns.put(44, new ESSpawn(44, GraciaSeeds.DESTRUCTION, new Location(-239560,215528,-12640), new int[]{18683,18678}));
_spawns.put(45, new ESSpawn(45, GraciaSeeds.DESTRUCTION, new Location(-239560,214984,-12640), new int[]{18683,18678}));
_spawns.put(46, new ESSpawn(46, GraciaSeeds.DESTRUCTION, new Location(-237896,215000,-12640), new int[]{18683,18678}));
SPAWNS.put(43, new ESSpawn(43, GraciaSeeds.DESTRUCTION, new Location(-237896,215528,-12640), new int[]{18683,18678}));
SPAWNS.put(44, new ESSpawn(44, GraciaSeeds.DESTRUCTION, new Location(-239560,215528,-12640), new int[]{18683,18678}));
SPAWNS.put(45, new ESSpawn(45, GraciaSeeds.DESTRUCTION, new Location(-239560,214984,-12640), new int[]{18683,18678}));
SPAWNS.put(46, new ESSpawn(46, GraciaSeeds.DESTRUCTION, new Location(-237896,215000,-12640), new int[]{18683,18678}));
_spawns.put(47, new ESSpawn(47, GraciaSeeds.DESTRUCTION, new Location(-237896,213640,-12768), new int[]{18678,18679,18680}));
_spawns.put(48, new ESSpawn(48, GraciaSeeds.DESTRUCTION, new Location(-239560,213640,-12768), new int[]{18678,18679,18680}));
_spawns.put(49, new ESSpawn(49, GraciaSeeds.DESTRUCTION, new Location(-239544,212552,-12768), new int[]{18678,18679,18680}));
_spawns.put(50, new ESSpawn(50, GraciaSeeds.DESTRUCTION, new Location(-237912,212552,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(47, new ESSpawn(47, GraciaSeeds.DESTRUCTION, new Location(-237896,213640,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(48, new ESSpawn(48, GraciaSeeds.DESTRUCTION, new Location(-239560,213640,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(49, new ESSpawn(49, GraciaSeeds.DESTRUCTION, new Location(-239544,212552,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(50, new ESSpawn(50, GraciaSeeds.DESTRUCTION, new Location(-237912,212552,-12768), new int[]{18678,18679,18680}));
_spawns.put(51, new ESSpawn(51, GraciaSeeds.DESTRUCTION, new Location(-237912,211912,-12768), new int[]{18681,18682}));
_spawns.put(52, new ESSpawn(52, GraciaSeeds.DESTRUCTION, new Location(-237912,211400,-12768), new int[]{18681,18682}));
_spawns.put(53, new ESSpawn(53, GraciaSeeds.DESTRUCTION, new Location(-239560,211400,-12768), new int[]{18681,18682}));
_spawns.put(54, new ESSpawn(54, GraciaSeeds.DESTRUCTION, new Location(-239560,211912,-12768), new int[]{18681,18682}));
SPAWNS.put(51, new ESSpawn(51, GraciaSeeds.DESTRUCTION, new Location(-237912,211912,-12768), new int[]{18681,18682}));
SPAWNS.put(52, new ESSpawn(52, GraciaSeeds.DESTRUCTION, new Location(-237912,211400,-12768), new int[]{18681,18682}));
SPAWNS.put(53, new ESSpawn(53, GraciaSeeds.DESTRUCTION, new Location(-239560,211400,-12768), new int[]{18681,18682}));
SPAWNS.put(54, new ESSpawn(54, GraciaSeeds.DESTRUCTION, new Location(-239560,211912,-12768), new int[]{18681,18682}));
_spawns.put(55, new ESSpawn(55, GraciaSeeds.DESTRUCTION, new Location(-241960,214536,-12512), new int[]{18683,18678,18679}));
_spawns.put(56, new ESSpawn(56, GraciaSeeds.DESTRUCTION, new Location(-241976,213448,-12512), new int[]{18683,18678,18679}));
_spawns.put(57, new ESSpawn(57, GraciaSeeds.DESTRUCTION, new Location(-243624,213448,-12512), new int[]{18683,18678,18679}));
_spawns.put(58, new ESSpawn(58, GraciaSeeds.DESTRUCTION, new Location(-243624,214520,-12512), new int[]{18683,18678,18679}));
SPAWNS.put(55, new ESSpawn(55, GraciaSeeds.DESTRUCTION, new Location(-241960,214536,-12512), new int[]{18683,18678,18679}));
SPAWNS.put(56, new ESSpawn(56, GraciaSeeds.DESTRUCTION, new Location(-241976,213448,-12512), new int[]{18683,18678,18679}));
SPAWNS.put(57, new ESSpawn(57, GraciaSeeds.DESTRUCTION, new Location(-243624,213448,-12512), new int[]{18683,18678,18679}));
SPAWNS.put(58, new ESSpawn(58, GraciaSeeds.DESTRUCTION, new Location(-243624,214520,-12512), new int[]{18683,18678,18679}));
_spawns.put(59, new ESSpawn(59, GraciaSeeds.DESTRUCTION, new Location(-241976,212808,-12504), new int[]{18680,18681}));
_spawns.put(60, new ESSpawn(60, GraciaSeeds.DESTRUCTION, new Location(-241960,212280,-12504), new int[]{18680,18681}));
_spawns.put(61, new ESSpawn(61, GraciaSeeds.DESTRUCTION, new Location(-243624,212264,-12504), new int[]{18680,18681}));
_spawns.put(62, new ESSpawn(62, GraciaSeeds.DESTRUCTION, new Location(-243624,212792,-12504), new int[]{18680,18681}));
SPAWNS.put(59, new ESSpawn(59, GraciaSeeds.DESTRUCTION, new Location(-241976,212808,-12504), new int[]{18680,18681}));
SPAWNS.put(60, new ESSpawn(60, GraciaSeeds.DESTRUCTION, new Location(-241960,212280,-12504), new int[]{18680,18681}));
SPAWNS.put(61, new ESSpawn(61, GraciaSeeds.DESTRUCTION, new Location(-243624,212264,-12504), new int[]{18680,18681}));
SPAWNS.put(62, new ESSpawn(62, GraciaSeeds.DESTRUCTION, new Location(-243624,212792,-12504), new int[]{18680,18681}));
_spawns.put(63, new ESSpawn(63, GraciaSeeds.DESTRUCTION, new Location(-243640,210920,-12640), new int[]{18682,18683,18678}));
_spawns.put(64, new ESSpawn(64, GraciaSeeds.DESTRUCTION, new Location(-243624,209832,-12640), new int[]{18682,18683,18678}));
_spawns.put(65, new ESSpawn(65, GraciaSeeds.DESTRUCTION, new Location(-241976,209832,-12640), new int[]{18682,18683,18678}));
_spawns.put(66, new ESSpawn(66, GraciaSeeds.DESTRUCTION, new Location(-241976,210920,-12640), new int[]{18682,18683,18678}));
SPAWNS.put(63, new ESSpawn(63, GraciaSeeds.DESTRUCTION, new Location(-243640,210920,-12640), new int[]{18682,18683,18678}));
SPAWNS.put(64, new ESSpawn(64, GraciaSeeds.DESTRUCTION, new Location(-243624,209832,-12640), new int[]{18682,18683,18678}));
SPAWNS.put(65, new ESSpawn(65, GraciaSeeds.DESTRUCTION, new Location(-241976,209832,-12640), new int[]{18682,18683,18678}));
SPAWNS.put(66, new ESSpawn(66, GraciaSeeds.DESTRUCTION, new Location(-241976,210920,-12640), new int[]{18682,18683,18678}));
_spawns.put(67, new ESSpawn(67, GraciaSeeds.DESTRUCTION, new Location(-241976,209192,-12640), new int[]{18679,18680}));
_spawns.put(68, new ESSpawn(68, GraciaSeeds.DESTRUCTION, new Location(-241976,208664,-12640), new int[]{18679,18680}));
_spawns.put(69, new ESSpawn(69, GraciaSeeds.DESTRUCTION, new Location(-243624,208664,-12640), new int[]{18679,18680}));
_spawns.put(70, new ESSpawn(70, GraciaSeeds.DESTRUCTION, new Location(-243624,209192,-12640), new int[]{18679,18680}));
SPAWNS.put(67, new ESSpawn(67, GraciaSeeds.DESTRUCTION, new Location(-241976,209192,-12640), new int[]{18679,18680}));
SPAWNS.put(68, new ESSpawn(68, GraciaSeeds.DESTRUCTION, new Location(-241976,208664,-12640), new int[]{18679,18680}));
SPAWNS.put(69, new ESSpawn(69, GraciaSeeds.DESTRUCTION, new Location(-243624,208664,-12640), new int[]{18679,18680}));
SPAWNS.put(70, new ESSpawn(70, GraciaSeeds.DESTRUCTION, new Location(-243624,209192,-12640), new int[]{18679,18680}));
_spawns.put(71, new ESSpawn(71, GraciaSeeds.DESTRUCTION, new Location(-241256,208664,-12896), new int[]{18681,18682,18683}));
_spawns.put(72, new ESSpawn(72, GraciaSeeds.DESTRUCTION, new Location(-240168,208648,-12896), new int[]{18681,18682,18683}));
_spawns.put(73, new ESSpawn(73, GraciaSeeds.DESTRUCTION, new Location(-240168,207000,-12896), new int[]{18681,18682,18683}));
_spawns.put(74, new ESSpawn(74, GraciaSeeds.DESTRUCTION, new Location(-241256,207000,-12896), new int[]{18681,18682,18683}));
SPAWNS.put(71, new ESSpawn(71, GraciaSeeds.DESTRUCTION, new Location(-241256,208664,-12896), new int[]{18681,18682,18683}));
SPAWNS.put(72, new ESSpawn(72, GraciaSeeds.DESTRUCTION, new Location(-240168,208648,-12896), new int[]{18681,18682,18683}));
SPAWNS.put(73, new ESSpawn(73, GraciaSeeds.DESTRUCTION, new Location(-240168,207000,-12896), new int[]{18681,18682,18683}));
SPAWNS.put(74, new ESSpawn(74, GraciaSeeds.DESTRUCTION, new Location(-241256,207000,-12896), new int[]{18681,18682,18683}));
_spawns.put(75, new ESSpawn(75, GraciaSeeds.DESTRUCTION, new Location(-239528,208648,-12896), new int[]{18678,18679}));
_spawns.put(76, new ESSpawn(76, GraciaSeeds.DESTRUCTION, new Location(-238984,208664,-12896), new int[]{18678,18679}));
_spawns.put(77, new ESSpawn(77, GraciaSeeds.DESTRUCTION, new Location(-239000,207000,-12896), new int[]{18678,18679}));
_spawns.put(78, new ESSpawn(78, GraciaSeeds.DESTRUCTION, new Location(-239512,207000,-12896), new int[]{18678,18679}));
SPAWNS.put(75, new ESSpawn(75, GraciaSeeds.DESTRUCTION, new Location(-239528,208648,-12896), new int[]{18678,18679}));
SPAWNS.put(76, new ESSpawn(76, GraciaSeeds.DESTRUCTION, new Location(-238984,208664,-12896), new int[]{18678,18679}));
SPAWNS.put(77, new ESSpawn(77, GraciaSeeds.DESTRUCTION, new Location(-239000,207000,-12896), new int[]{18678,18679}));
SPAWNS.put(78, new ESSpawn(78, GraciaSeeds.DESTRUCTION, new Location(-239512,207000,-12896), new int[]{18678,18679}));
_spawns.put(79, new ESSpawn(79, GraciaSeeds.DESTRUCTION, new Location(-245064,213144,-12384), new int[]{18680,18681,18682}));
_spawns.put(80, new ESSpawn(80, GraciaSeeds.DESTRUCTION, new Location(-245064,212072,-12384), new int[]{18680,18681,18682}));
_spawns.put(81, new ESSpawn(81, GraciaSeeds.DESTRUCTION, new Location(-246696,212072,-12384), new int[]{18680,18681,18682}));
_spawns.put(82, new ESSpawn(82, GraciaSeeds.DESTRUCTION, new Location(-246696,213160,-12384), new int[]{18680,18681,18682}));
SPAWNS.put(79, new ESSpawn(79, GraciaSeeds.DESTRUCTION, new Location(-245064,213144,-12384), new int[]{18680,18681,18682}));
SPAWNS.put(80, new ESSpawn(80, GraciaSeeds.DESTRUCTION, new Location(-245064,212072,-12384), new int[]{18680,18681,18682}));
SPAWNS.put(81, new ESSpawn(81, GraciaSeeds.DESTRUCTION, new Location(-246696,212072,-12384), new int[]{18680,18681,18682}));
SPAWNS.put(82, new ESSpawn(82, GraciaSeeds.DESTRUCTION, new Location(-246696,213160,-12384), new int[]{18680,18681,18682}));
_spawns.put(83, new ESSpawn(83, GraciaSeeds.DESTRUCTION, new Location(-245064,211416,-12384), new int[]{18683,18678}));
_spawns.put(84, new ESSpawn(84, GraciaSeeds.DESTRUCTION, new Location(-245048,210904,-12384), new int[]{18683,18678}));
_spawns.put(85, new ESSpawn(85, GraciaSeeds.DESTRUCTION, new Location(-246712,210888,-12384), new int[]{18683,18678}));
_spawns.put(86, new ESSpawn(86, GraciaSeeds.DESTRUCTION, new Location(-246712,211416,-12384), new int[]{18683,18678}));
SPAWNS.put(83, new ESSpawn(83, GraciaSeeds.DESTRUCTION, new Location(-245064,211416,-12384), new int[]{18683,18678}));
SPAWNS.put(84, new ESSpawn(84, GraciaSeeds.DESTRUCTION, new Location(-245048,210904,-12384), new int[]{18683,18678}));
SPAWNS.put(85, new ESSpawn(85, GraciaSeeds.DESTRUCTION, new Location(-246712,210888,-12384), new int[]{18683,18678}));
SPAWNS.put(86, new ESSpawn(86, GraciaSeeds.DESTRUCTION, new Location(-246712,211416,-12384), new int[]{18683,18678}));
_spawns.put(87, new ESSpawn(87, GraciaSeeds.DESTRUCTION, new Location(-245048,209544,-12512), new int[]{18679,18680,18681}));
_spawns.put(88, new ESSpawn(88, GraciaSeeds.DESTRUCTION, new Location(-245064,208456,-12512), new int[]{18679,18680,18681}));
_spawns.put(89, new ESSpawn(89, GraciaSeeds.DESTRUCTION, new Location(-246696,208456,-12512), new int[]{18679,18680,18681}));
_spawns.put(90, new ESSpawn(90, GraciaSeeds.DESTRUCTION, new Location(-246712,209544,-12512), new int[]{18679,18680,18681}));
SPAWNS.put(87, new ESSpawn(87, GraciaSeeds.DESTRUCTION, new Location(-245048,209544,-12512), new int[]{18679,18680,18681}));
SPAWNS.put(88, new ESSpawn(88, GraciaSeeds.DESTRUCTION, new Location(-245064,208456,-12512), new int[]{18679,18680,18681}));
SPAWNS.put(89, new ESSpawn(89, GraciaSeeds.DESTRUCTION, new Location(-246696,208456,-12512), new int[]{18679,18680,18681}));
SPAWNS.put(90, new ESSpawn(90, GraciaSeeds.DESTRUCTION, new Location(-246712,209544,-12512), new int[]{18679,18680,18681}));
_spawns.put(91, new ESSpawn(91, GraciaSeeds.DESTRUCTION, new Location(-245048,207816,-12512), new int[]{18682,18683}));
_spawns.put(92, new ESSpawn(92, GraciaSeeds.DESTRUCTION, new Location(-245048,207288,-12512), new int[]{18682,18683}));
_spawns.put(93, new ESSpawn(93, GraciaSeeds.DESTRUCTION, new Location(-246696,207304,-12512), new int[]{18682,18683}));
_spawns.put(94, new ESSpawn(94, GraciaSeeds.DESTRUCTION, new Location(-246712,207816,-12512), new int[]{18682,18683}));
SPAWNS.put(91, new ESSpawn(91, GraciaSeeds.DESTRUCTION, new Location(-245048,207816,-12512), new int[]{18682,18683}));
SPAWNS.put(92, new ESSpawn(92, GraciaSeeds.DESTRUCTION, new Location(-245048,207288,-12512), new int[]{18682,18683}));
SPAWNS.put(93, new ESSpawn(93, GraciaSeeds.DESTRUCTION, new Location(-246696,207304,-12512), new int[]{18682,18683}));
SPAWNS.put(94, new ESSpawn(94, GraciaSeeds.DESTRUCTION, new Location(-246712,207816,-12512), new int[]{18682,18683}));
_spawns.put(95, new ESSpawn(95, GraciaSeeds.DESTRUCTION, new Location(-244328,207272,-12768), new int[]{18678,18679,18680}));
_spawns.put(96, new ESSpawn(96, GraciaSeeds.DESTRUCTION, new Location(-243256,207256,-12768), new int[]{18678,18679,18680}));
_spawns.put(97, new ESSpawn(97, GraciaSeeds.DESTRUCTION, new Location(-243256,205624,-12768), new int[]{18678,18679,18680}));
_spawns.put(98, new ESSpawn(98, GraciaSeeds.DESTRUCTION, new Location(-244328,205608,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(95, new ESSpawn(95, GraciaSeeds.DESTRUCTION, new Location(-244328,207272,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(96, new ESSpawn(96, GraciaSeeds.DESTRUCTION, new Location(-243256,207256,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(97, new ESSpawn(97, GraciaSeeds.DESTRUCTION, new Location(-243256,205624,-12768), new int[]{18678,18679,18680}));
SPAWNS.put(98, new ESSpawn(98, GraciaSeeds.DESTRUCTION, new Location(-244328,205608,-12768), new int[]{18678,18679,18680}));
_spawns.put(99, new ESSpawn(99, GraciaSeeds.DESTRUCTION, new Location(-242616,207272,-12768), new int[]{18681,18682}));
_spawns.put(100, new ESSpawn(100, GraciaSeeds.DESTRUCTION, new Location(-242104,207272,-12768), new int[]{18681,18682}));
_spawns.put(101, new ESSpawn(101, GraciaSeeds.DESTRUCTION, new Location(-242088,205624,-12768), new int[]{18681,18682}));
_spawns.put(102, new ESSpawn(102, GraciaSeeds.DESTRUCTION, new Location(-242600,205608,-12768), new int[]{18681,18682}));
SPAWNS.put(99, new ESSpawn(99, GraciaSeeds.DESTRUCTION, new Location(-242616,207272,-12768), new int[]{18681,18682}));
SPAWNS.put(100, new ESSpawn(100, GraciaSeeds.DESTRUCTION, new Location(-242104,207272,-12768), new int[]{18681,18682}));
SPAWNS.put(101, new ESSpawn(101, GraciaSeeds.DESTRUCTION, new Location(-242088,205624,-12768), new int[]{18681,18682}));
SPAWNS.put(102, new ESSpawn(102, GraciaSeeds.DESTRUCTION, new Location(-242600,205608,-12768), new int[]{18681,18682}));
// Seed of Annihilation
_spawns.put(103, new ESSpawn(103, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184519,183007,-10456), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(104, new ESSpawn(104, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184873,181445,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(105, new ESSpawn(105, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180962,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(106, new ESSpawn(106, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185321,181641,-10448), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(107, new ESSpawn(107, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184035,182775,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(108, new ESSpawn(108, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185433,181935,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(109, new ESSpawn(109, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183309,183007,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(110, new ESSpawn(110, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181886,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(111, new ESSpawn(111, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180392,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(112, new ESSpawn(112, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183793,183239,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(113, new ESSpawn(113, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184245,180848,-10464), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(114, new ESSpawn(114, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-182704,183761,-10528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(115, new ESSpawn(115, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184705,181886,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(116, new ESSpawn(116, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184304,181076,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(117, new ESSpawn(117, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183596,180430,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(118, new ESSpawn(118, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184422,181038,-10480), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(119, new ESSpawn(119, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181543,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(120, new ESSpawn(120, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184398,182891,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(121, new ESSpawn(121, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182848,-10584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(122, new ESSpawn(122, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178104,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(123, new ESSpawn(123, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177274,182284,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(124, new ESSpawn(124, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177772,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(125, new ESSpawn(125, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181532,180364,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(126, new ESSpawn(126, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181802,180276,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(127, new ESSpawn(127, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,180444,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(128, new ESSpawn(128, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182190,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(129, new ESSpawn(129, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177357,181908,-10576), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(130, new ESSpawn(130, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178747,179534,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(131, new ESSpawn(131, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,179534,-10392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(132, new ESSpawn(132, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178853,180094,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(133, new ESSpawn(133, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181937,179660,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(134, new ESSpawn(134, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-180992,179572,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(135, new ESSpawn(135, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185552,179252,-10368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(136, new ESSpawn(136, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178913,-10400), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(137, new ESSpawn(137, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184768,178348,-10312), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(138, new ESSpawn(138, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178574,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(139, new ESSpawn(139, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185062,178913,-10384), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(140, new ESSpawn(140, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181397,179484,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(141, new ESSpawn(141, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181667,179044,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(142, new ESSpawn(142, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185258,177896,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(143, new ESSpawn(143, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183506,176570,-10280), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(144, new ESSpawn(144, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183719,176804,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(145, new ESSpawn(145, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183648,177116,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(146, new ESSpawn(146, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183932,176492,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(147, new ESSpawn(147, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183861,176570,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(148, new ESSpawn(148, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183790,175946,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(149, new ESSpawn(149, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178641,179604,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(150, new ESSpawn(150, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178959,179814,-10432), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(151, new ESSpawn(151, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176367,178456,-10376), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(152, new ESSpawn(152, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175845,177172,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(153, new ESSpawn(153, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175323,177600,-10248), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(154, new ESSpawn(154, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174975,177172,-10216), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(155, new ESSpawn(155, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176019,178242,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(156, new ESSpawn(156, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174801,178456,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(103, new ESSpawn(103, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184519,183007,-10456), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(104, new ESSpawn(104, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184873,181445,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(105, new ESSpawn(105, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180962,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(106, new ESSpawn(106, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185321,181641,-10448), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(107, new ESSpawn(107, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184035,182775,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(108, new ESSpawn(108, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185433,181935,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(109, new ESSpawn(109, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183309,183007,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(110, new ESSpawn(110, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181886,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(111, new ESSpawn(111, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180392,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(112, new ESSpawn(112, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183793,183239,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(113, new ESSpawn(113, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184245,180848,-10464), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(114, new ESSpawn(114, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-182704,183761,-10528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(115, new ESSpawn(115, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184705,181886,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(116, new ESSpawn(116, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184304,181076,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(117, new ESSpawn(117, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183596,180430,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(118, new ESSpawn(118, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184422,181038,-10480), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(119, new ESSpawn(119, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181543,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(120, new ESSpawn(120, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184398,182891,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(121, new ESSpawn(121, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182848,-10584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(122, new ESSpawn(122, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178104,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(123, new ESSpawn(123, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177274,182284,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(124, new ESSpawn(124, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177772,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(125, new ESSpawn(125, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181532,180364,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(126, new ESSpawn(126, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181802,180276,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(127, new ESSpawn(127, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,180444,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(128, new ESSpawn(128, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182190,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(129, new ESSpawn(129, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177357,181908,-10576), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(130, new ESSpawn(130, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178747,179534,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(131, new ESSpawn(131, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,179534,-10392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(132, new ESSpawn(132, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178853,180094,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(133, new ESSpawn(133, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181937,179660,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(134, new ESSpawn(134, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-180992,179572,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(135, new ESSpawn(135, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185552,179252,-10368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(136, new ESSpawn(136, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178913,-10400), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(137, new ESSpawn(137, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184768,178348,-10312), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(138, new ESSpawn(138, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178574,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(139, new ESSpawn(139, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185062,178913,-10384), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(140, new ESSpawn(140, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181397,179484,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(141, new ESSpawn(141, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181667,179044,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(142, new ESSpawn(142, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185258,177896,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(143, new ESSpawn(143, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183506,176570,-10280), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(144, new ESSpawn(144, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183719,176804,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(145, new ESSpawn(145, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183648,177116,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(146, new ESSpawn(146, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183932,176492,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(147, new ESSpawn(147, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183861,176570,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(148, new ESSpawn(148, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183790,175946,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(149, new ESSpawn(149, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178641,179604,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(150, new ESSpawn(150, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178959,179814,-10432), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(151, new ESSpawn(151, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176367,178456,-10376), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(152, new ESSpawn(152, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175845,177172,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(153, new ESSpawn(153, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175323,177600,-10248), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(154, new ESSpawn(154, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174975,177172,-10216), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(155, new ESSpawn(155, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176019,178242,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(156, new ESSpawn(156, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174801,178456,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(157, new ESSpawn(157, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185648,183384,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(158, new ESSpawn(158, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186740,180908,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(159, new ESSpawn(159, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185297,184658,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(160, new ESSpawn(160, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185697,181601,-15488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(161, new ESSpawn(161, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186684,182744,-15536), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(162, new ESSpawn(162, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184908,183384,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(163, new ESSpawn(163, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185572,-15784), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(164, new ESSpawn(164, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185796,182616,-15608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(165, new ESSpawn(165, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184970,184385,-15648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(166, new ESSpawn(166, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185995,180809,-15512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(167, new ESSpawn(167, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182872,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(168, new ESSpawn(168, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185624,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(169, new ESSpawn(169, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184486,185774,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(170, new ESSpawn(170, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186496,184112,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(171, new ESSpawn(171, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184232,185976,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(172, new ESSpawn(172, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185673,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(173, new ESSpawn(173, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185733,184203,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(174, new ESSpawn(174, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185079,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(175, new ESSpawn(175, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184803,180710,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(176, new ESSpawn(176, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186293,180413,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(177, new ESSpawn(177, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182936,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(178, new ESSpawn(178, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184356,180611,-15496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(179, new ESSpawn(179, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185375,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(180, new ESSpawn(180, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184867,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(181, new ESSpawn(181, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180553,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(182, new ESSpawn(182, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180422,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(183, new ESSpawn(183, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181863,181138,-15120), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(184, new ESSpawn(184, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181732,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(185, new ESSpawn(185, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180684,180397,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(186, new ESSpawn(186, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-182256,180682,-15112), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(187, new ESSpawn(187, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,179492,-15392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(188, new ESSpawn(188, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(189, new ESSpawn(189, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186028,178856,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(190, new ESSpawn(190, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185224,179068,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(191, new ESSpawn(191, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(192, new ESSpawn(192, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(193, new ESSpawn(193, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180619,178855,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(194, new ESSpawn(194, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180255,177892,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(195, new ESSpawn(195, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185804,176472,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(196, new ESSpawn(196, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184580,176370,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(197, new ESSpawn(197, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184308,176166,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(198, new ESSpawn(198, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-183764,177186,-15304), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(199, new ESSpawn(199, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180801,177571,-15144), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(200, new ESSpawn(200, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184716,176064,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(201, new ESSpawn(201, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184444,175452,-15296), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(202, new ESSpawn(202, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,177464,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(203, new ESSpawn(203, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,178213,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(204, new ESSpawn(204, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-179982,178320,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(205, new ESSpawn(205, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176925,177757,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(206, new ESSpawn(206, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176164,179282,-15720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(207, new ESSpawn(207, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,177613,-15800), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(208, new ESSpawn(208, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175418,178117,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(209, new ESSpawn(209, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176103,177829,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(210, new ESSpawn(210, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175966,177325,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(211, new ESSpawn(211, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174778,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(212, new ESSpawn(212, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,178261,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(213, new ESSpawn(213, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176038,179192,-15736), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(214, new ESSpawn(214, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175660,179462,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(215, new ESSpawn(215, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175912,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(216, new ESSpawn(216, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175156,180182,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(217, new ESSpawn(217, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182059,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(218, new ESSpawn(218, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175590,181478,-15640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(219, new ESSpawn(219, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174510,181561,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(220, new ESSpawn(220, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182391,-15688), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(221, new ESSpawn(221, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174105,182806,-15672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(222, new ESSpawn(222, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174645,182806,-15712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(157, new ESSpawn(157, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185648,183384,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(158, new ESSpawn(158, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186740,180908,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(159, new ESSpawn(159, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185297,184658,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(160, new ESSpawn(160, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185697,181601,-15488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(161, new ESSpawn(161, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186684,182744,-15536), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(162, new ESSpawn(162, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184908,183384,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(163, new ESSpawn(163, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185572,-15784), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(164, new ESSpawn(164, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185796,182616,-15608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(165, new ESSpawn(165, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184970,184385,-15648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(166, new ESSpawn(166, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185995,180809,-15512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(167, new ESSpawn(167, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182872,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(168, new ESSpawn(168, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185624,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(169, new ESSpawn(169, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184486,185774,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(170, new ESSpawn(170, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186496,184112,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(171, new ESSpawn(171, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184232,185976,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(172, new ESSpawn(172, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185673,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(173, new ESSpawn(173, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185733,184203,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(174, new ESSpawn(174, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185079,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(175, new ESSpawn(175, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184803,180710,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(176, new ESSpawn(176, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186293,180413,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(177, new ESSpawn(177, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182936,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(178, new ESSpawn(178, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184356,180611,-15496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(179, new ESSpawn(179, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185375,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(180, new ESSpawn(180, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184867,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(181, new ESSpawn(181, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180553,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(182, new ESSpawn(182, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180422,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(183, new ESSpawn(183, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181863,181138,-15120), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(184, new ESSpawn(184, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181732,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(185, new ESSpawn(185, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180684,180397,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(186, new ESSpawn(186, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-182256,180682,-15112), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(187, new ESSpawn(187, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,179492,-15392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(188, new ESSpawn(188, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(189, new ESSpawn(189, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186028,178856,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(190, new ESSpawn(190, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185224,179068,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(191, new ESSpawn(191, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(192, new ESSpawn(192, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(193, new ESSpawn(193, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180619,178855,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(194, new ESSpawn(194, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180255,177892,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(195, new ESSpawn(195, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185804,176472,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(196, new ESSpawn(196, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184580,176370,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(197, new ESSpawn(197, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184308,176166,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(198, new ESSpawn(198, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-183764,177186,-15304), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(199, new ESSpawn(199, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180801,177571,-15144), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(200, new ESSpawn(200, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184716,176064,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(201, new ESSpawn(201, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184444,175452,-15296), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(202, new ESSpawn(202, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,177464,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(203, new ESSpawn(203, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,178213,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(204, new ESSpawn(204, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-179982,178320,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(205, new ESSpawn(205, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176925,177757,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(206, new ESSpawn(206, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176164,179282,-15720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(207, new ESSpawn(207, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,177613,-15800), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(208, new ESSpawn(208, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175418,178117,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(209, new ESSpawn(209, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176103,177829,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(210, new ESSpawn(210, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175966,177325,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(211, new ESSpawn(211, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174778,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(212, new ESSpawn(212, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,178261,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(213, new ESSpawn(213, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176038,179192,-15736), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(214, new ESSpawn(214, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175660,179462,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(215, new ESSpawn(215, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175912,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(216, new ESSpawn(216, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175156,180182,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(217, new ESSpawn(217, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182059,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(218, new ESSpawn(218, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175590,181478,-15640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(219, new ESSpawn(219, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174510,181561,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(220, new ESSpawn(220, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182391,-15688), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(221, new ESSpawn(221, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174105,182806,-15672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(222, new ESSpawn(222, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174645,182806,-15712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(223, new ESSpawn(223, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214962,182403,-10992), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(224, new ESSpawn(224, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-215019,182493,-11000), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(225, new ESSpawn(225, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211374,180793,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(226, new ESSpawn(226, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211198,180661,-11680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(227, new ESSpawn(227, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213097,178936,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(228, new ESSpawn(228, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213517,178936,-12712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(229, new ESSpawn(229, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214105,179191,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(230, new ESSpawn(230, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213769,179446,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(231, new ESSpawn(231, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214021,179344,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(232, new ESSpawn(232, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210582,180595,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(233, new ESSpawn(233, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210934,180661,-11696), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(234, new ESSpawn(234, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207058,178460,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(235, new ESSpawn(235, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207454,179151,-11368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(236, new ESSpawn(236, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207422,181365,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(237, new ESSpawn(237, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207358,180627,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(238, new ESSpawn(238, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207230,180996,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(239, new ESSpawn(239, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208515,184160,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(240, new ESSpawn(240, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207613,184000,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(241, new ESSpawn(241, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208597,183760,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(242, new ESSpawn(242, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206710,176142,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(243, new ESSpawn(243, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206361,178136,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(244, new ESSpawn(244, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206178,178630,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(245, new ESSpawn(245, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205738,178715,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(246, new ESSpawn(246, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206442,178205,-12648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(247, new ESSpawn(247, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206585,178874,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(248, new ESSpawn(248, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206073,179366,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(249, new ESSpawn(249, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206009,178628,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(250, new ESSpawn(250, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206155,181301,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(251, new ESSpawn(251, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206595,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(252, new ESSpawn(252, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(253, new ESSpawn(253, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181471,-12640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(254, new ESSpawn(254, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206974,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(255, new ESSpawn(255, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206304,175130,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(256, new ESSpawn(256, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206886,175802,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(257, new ESSpawn(257, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207238,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(258, new ESSpawn(258, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,174857,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(259, new ESSpawn(259, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,175039,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(260, new ESSpawn(260, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205976,174584,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(261, new ESSpawn(261, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207367,184320,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(262, new ESSpawn(262, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219002,180419,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(263, new ESSpawn(263, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,182790,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(264, new ESSpawn(264, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,183343,-12600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(265, new ESSpawn(265, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186247,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(266, new ESSpawn(266, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186083,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(267, new ESSpawn(267, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-217574,185796,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(268, new ESSpawn(268, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219178,181051,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(269, new ESSpawn(269, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220171,180313,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(270, new ESSpawn(270, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219293,183738,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(271, new ESSpawn(271, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219381,182553,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(272, new ESSpawn(272, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219600,183024,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(273, new ESSpawn(273, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219940,182680,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(274, new ESSpawn(274, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219260,183884,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(275, new ESSpawn(275, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219855,183540,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(276, new ESSpawn(276, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218946,186575,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(277, new ESSpawn(277, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219882,180103,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(278, new ESSpawn(278, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219266,179787,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(279, new ESSpawn(279, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178337,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(280, new ESSpawn(280, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,179875,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(281, new ESSpawn(281, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,180021,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(282, new ESSpawn(282, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219989,179437,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(283, new ESSpawn(283, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219078,178298,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(284, new ESSpawn(284, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218684,178954,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(285, new ESSpawn(285, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219089,178456,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(286, new ESSpawn(286, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220266,177623,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(287, new ESSpawn(287, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178025,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(288, new ESSpawn(288, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219142,177044,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(289, new ESSpawn(289, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219690,177895,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(290, new ESSpawn(290, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219754,177623,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(291, new ESSpawn(291, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218791,177830,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(292, new ESSpawn(292, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218904,176219,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(293, new ESSpawn(293, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218768,176384,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(294, new ESSpawn(294, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177626,-11320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(295, new ESSpawn(295, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177792,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(296, new ESSpawn(296, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219880,175901,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(297, new ESSpawn(297, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219210,176054,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(298, new ESSpawn(298, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219850,175991,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(299, new ESSpawn(299, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219079,175021,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(300, new ESSpawn(300, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218812,174229,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
_spawns.put(301, new ESSpawn(301, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218723,174669,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(223, new ESSpawn(223, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214962,182403,-10992), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(224, new ESSpawn(224, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-215019,182493,-11000), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(225, new ESSpawn(225, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211374,180793,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(226, new ESSpawn(226, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211198,180661,-11680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(227, new ESSpawn(227, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213097,178936,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(228, new ESSpawn(228, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213517,178936,-12712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(229, new ESSpawn(229, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214105,179191,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(230, new ESSpawn(230, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213769,179446,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(231, new ESSpawn(231, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214021,179344,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(232, new ESSpawn(232, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210582,180595,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(233, new ESSpawn(233, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210934,180661,-11696), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(234, new ESSpawn(234, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207058,178460,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(235, new ESSpawn(235, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207454,179151,-11368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(236, new ESSpawn(236, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207422,181365,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(237, new ESSpawn(237, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207358,180627,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(238, new ESSpawn(238, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207230,180996,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(239, new ESSpawn(239, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208515,184160,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(240, new ESSpawn(240, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207613,184000,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(241, new ESSpawn(241, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208597,183760,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(242, new ESSpawn(242, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206710,176142,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(243, new ESSpawn(243, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206361,178136,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(244, new ESSpawn(244, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206178,178630,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(245, new ESSpawn(245, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205738,178715,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(246, new ESSpawn(246, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206442,178205,-12648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(247, new ESSpawn(247, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206585,178874,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(248, new ESSpawn(248, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206073,179366,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(249, new ESSpawn(249, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206009,178628,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(250, new ESSpawn(250, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206155,181301,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(251, new ESSpawn(251, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206595,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(252, new ESSpawn(252, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(253, new ESSpawn(253, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181471,-12640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(254, new ESSpawn(254, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206974,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(255, new ESSpawn(255, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206304,175130,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(256, new ESSpawn(256, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206886,175802,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(257, new ESSpawn(257, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207238,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(258, new ESSpawn(258, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,174857,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(259, new ESSpawn(259, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,175039,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(260, new ESSpawn(260, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205976,174584,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(261, new ESSpawn(261, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207367,184320,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(262, new ESSpawn(262, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219002,180419,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(263, new ESSpawn(263, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,182790,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(264, new ESSpawn(264, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,183343,-12600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(265, new ESSpawn(265, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186247,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(266, new ESSpawn(266, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186083,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(267, new ESSpawn(267, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-217574,185796,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(268, new ESSpawn(268, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219178,181051,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(269, new ESSpawn(269, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220171,180313,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(270, new ESSpawn(270, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219293,183738,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(271, new ESSpawn(271, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219381,182553,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(272, new ESSpawn(272, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219600,183024,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(273, new ESSpawn(273, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219940,182680,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(274, new ESSpawn(274, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219260,183884,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(275, new ESSpawn(275, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219855,183540,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(276, new ESSpawn(276, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218946,186575,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(277, new ESSpawn(277, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219882,180103,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(278, new ESSpawn(278, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219266,179787,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(279, new ESSpawn(279, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178337,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(280, new ESSpawn(280, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,179875,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(281, new ESSpawn(281, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,180021,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(282, new ESSpawn(282, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219989,179437,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(283, new ESSpawn(283, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219078,178298,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(284, new ESSpawn(284, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218684,178954,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(285, new ESSpawn(285, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219089,178456,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(286, new ESSpawn(286, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220266,177623,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(287, new ESSpawn(287, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178025,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(288, new ESSpawn(288, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219142,177044,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(289, new ESSpawn(289, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219690,177895,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(290, new ESSpawn(290, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219754,177623,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(291, new ESSpawn(291, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218791,177830,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(292, new ESSpawn(292, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218904,176219,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(293, new ESSpawn(293, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218768,176384,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(294, new ESSpawn(294, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177626,-11320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(295, new ESSpawn(295, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177792,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(296, new ESSpawn(296, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219880,175901,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(297, new ESSpawn(297, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219210,176054,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(298, new ESSpawn(298, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219850,175991,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(299, new ESSpawn(299, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219079,175021,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(300, new ESSpawn(300, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218812,174229,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
SPAWNS.put(301, new ESSpawn(301, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218723,174669,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
//@formatter:on
}

View File

@ -41,7 +41,7 @@ import com.l2jserver.gameserver.util.Util;
*/
public class SeedOfAnnihilation extends AbstractNpcAI
{
private static final Map<Integer, Location> _teleportZones = new HashMap<>();
private static final Map<Integer, Location> TELEPORT_ZONES = new HashMap<>();
private static final int ANNIHILATION_FURNACE = 18928;
// Strength, Agility, Wisdom
@ -71,17 +71,17 @@ public class SeedOfAnnihilation extends AbstractNpcAI
static
{
_teleportZones.put(60002, new Location(-213175, 182648, -10992));
_teleportZones.put(60003, new Location(-181217, 186711, -10528));
_teleportZones.put(60004, new Location(-180211, 182984, -15152));
_teleportZones.put(60005, new Location(-179275, 186802, -10720));
TELEPORT_ZONES.put(60002, new Location(-213175, 182648, -10992));
TELEPORT_ZONES.put(60003, new Location(-181217, 186711, -10528));
TELEPORT_ZONES.put(60004, new Location(-180211, 182984, -15152));
TELEPORT_ZONES.put(60005, new Location(-179275, 186802, -10720));
}
public SeedOfAnnihilation()
{
super(SeedOfAnnihilation.class.getSimpleName(), "gracia/AI");
loadSeedRegionData();
for (int i : _teleportZones.keySet())
for (int i : TELEPORT_ZONES.keySet())
{
addEnterZoneId(i);
}
@ -340,9 +340,9 @@ public class SeedOfAnnihilation extends AbstractNpcAI
@Override
public String onEnterZone(L2Character character, L2ZoneType zone)
{
if (_teleportZones.containsKey(zone.getId()))
if (TELEPORT_ZONES.containsKey(zone.getId()))
{
Location teleLoc = _teleportZones.get(zone.getId());
Location teleLoc = TELEPORT_ZONES.get(zone.getId());
character.teleToLocation(teleLoc, false);
}
return super.onEnterZone(character, zone);

View File

@ -247,7 +247,7 @@ public class AdminBuffs implements IAdminCommandHandler
}
else
{
effects.addAll(target.getEffectList().getPassives().values());
effects.addAll(target.getEffectList().getPassives());
}
if ((page > ((effects.size() / PAGE_LIMIT) + 1)) || (page < 1))

View File

@ -292,8 +292,7 @@ public final class AdminCHSiege implements IAdminCommandHandler
}
else
{
ClanHallSiegeEngine siegable = hall.getSiege();
siegable.getAttackers().clear();
hall.getSiege().getAttackers().clear();
}
}
else if (split[0].equals(COMMANDS[7]))

View File

@ -43,9 +43,23 @@ public final class MagicalAttackMp extends AbstractEffect
@Override
public boolean calcSuccess(BuffInfo info)
{
if (info.getEffected().isInvul() || !Formulas.calcMagicAffected(info.getEffector(), info.getEffected(), info.getSkill()))
if (info.getEffected().isInvul())
{
info.getEffector().sendPacket(SystemMessageId.YOU_HAVE_MISSED);
return false;
}
if (!Formulas.calcMagicAffected(info.getEffector(), info.getEffected(), info.getSkill()))
{
if (info.getEffector().isPlayer())
{
info.getEffector().sendPacket(SystemMessageId.YOUR_ATTACK_HAS_FAILED);
}
if (info.getEffected().isPlayer())
{
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_RESISTED_C2_S_MAGIC);
sm.addCharName(info.getEffected());
sm.addCharName(info.getEffector());
info.getEffected().sendPacket(sm);
}
return false;
}
return true;
@ -102,4 +116,4 @@ public final class MagicalAttackMp extends AbstractEffect
activeChar.sendPacket(sm2);
}
}
}
}

View File

@ -22,9 +22,17 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.GameTimeController;
@ -194,6 +202,53 @@ public class DebugHandler implements ITelnetHandler
sb.append('\n');
}
sb.append('\n');
sb.append("## Threads Information ##\n");
Map<Thread, StackTraceElement[]> allThread = Thread.getAllStackTraces();
final List<Entry<Thread, StackTraceElement[]>> entries = new ArrayList<>(allThread.entrySet());
Collections.sort(entries, (e1, e2) -> e1.getKey().getName().compareTo(e2.getKey().getName()));
for (Entry<Thread, StackTraceElement[]> entry : entries)
{
StackTraceElement[] stes = entry.getValue();
Thread t = entry.getKey();
sb.append("--------------\n");
sb.append(t.toString() + " (" + t.getId() + ")\n");
sb.append("State: " + t.getState() + '\n');
sb.append("isAlive: " + t.isAlive() + " | isDaemon: " + t.isDaemon() + " | isInterrupted: " + t.isInterrupted() + '\n');
sb.append('\n');
for (StackTraceElement ste : stes)
{
sb.append(ste.toString());
sb.append('\n');
}
sb.append('\n');
}
sb.append('\n');
ThreadMXBean mbean = ManagementFactory.getThreadMXBean();
long[] ids = findDeadlockedThreads(mbean);
if ((ids != null) && (ids.length > 0))
{
Thread[] threads = new Thread[ids.length];
for (int i = 0; i < threads.length; i++)
{
threads[i] = findMatchingThread(mbean.getThreadInfo(ids[i]));
}
sb.append("Deadlocked Threads:\n");
sb.append("-------------------\n");
for (Thread thread : threads)
{
System.err.println(thread);
for (StackTraceElement ste : thread.getStackTrace())
{
sb.append("\t" + ste);
sb.append('\n');
}
}
}
sb.append("\n\n## Thread Pool Manager Statistics ##\n");
for (String line : ThreadPoolManager.getInstance().getStats())
{
@ -252,6 +307,29 @@ public class DebugHandler implements ITelnetHandler
return false;
}
private long[] findDeadlockedThreads(ThreadMXBean mbean)
{
// JDK 1.5 only supports the findMonitorDeadlockedThreads()
// method, so you need to comment out the following three lines
if (mbean.isSynchronizerUsageSupported())
{
return mbean.findDeadlockedThreads();
}
return mbean.findMonitorDeadlockedThreads();
}
private Thread findMatchingThread(ThreadInfo inf)
{
for (Thread thread : Thread.getAllStackTraces().keySet())
{
if (thread.getId() == inf.getThreadId())
{
return thread;
}
}
throw new IllegalStateException("Deadlocked Thread not found");
}
public String getServerStatus()
{
int playerCount = 0, objectCount = 0;

View File

@ -249,7 +249,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
}
case WHITELIST:
{
for (BuffInfo info : player.getEffectList().getBuffs().values())
for (BuffInfo info : player.getEffectList().getBuffs())
{
if (!inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
@ -259,7 +259,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
for (L2Summon summon : player.getServitors().values())
{
for (BuffInfo info : summon.getEffectList().getBuffs().values())
for (BuffInfo info : summon.getEffectList().getBuffs())
{
if (!inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
@ -271,7 +271,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
final L2Summon pet = player.getPet();
if (pet != null)
{
for (BuffInfo info : pet.getEffectList().getBuffs().values())
for (BuffInfo info : pet.getEffectList().getBuffs())
{
if (!inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
@ -283,7 +283,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
}
case BLACKLIST:
{
for (BuffInfo info : player.getEffectList().getBuffs().values())
for (BuffInfo info : player.getEffectList().getBuffs())
{
if (inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
@ -293,7 +293,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
for (L2Summon summon : player.getServitors().values())
{
for (BuffInfo info : summon.getEffectList().getBuffs().values())
for (BuffInfo info : summon.getEffectList().getBuffs())
{
if (inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
@ -305,7 +305,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
final L2Summon pet = player.getPet();
if (pet != null)
{
for (BuffInfo info : pet.getEffectList().getBuffs().values())
for (BuffInfo info : pet.getEffectList().getBuffs())
{
if (inst.getBuffExceptionList().contains(info.getSkill().getId()))
{

View File

@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
@ -107,7 +108,7 @@ public final class CrystalCaverns extends AbstractInstance
0,
0
}; // 0: not spawned, 1: spawned, 2: cleared
public Map<L2DoorInstance, L2PcInstance> openedDoors = new HashMap<>();
public Map<L2DoorInstance, L2PcInstance> openedDoors = new ConcurrentHashMap<>();
public Map<Integer, Map<L2Npc, Boolean>> npcList2 = new HashMap<>();
public Map<L2Npc, L2Npc> oracles = new HashMap<>();
public List<L2Npc> keyKeepers = new ArrayList<>();
@ -1378,27 +1379,24 @@ public final class CrystalCaverns extends AbstractInstance
{
return "";
}
CrystalGolem cryGolem = world.crystalGolems.get(npc);
List<L2Object> crystals = new ArrayList<>();
int minDist = 300000;
for (L2Object object : L2World.getInstance().getVisibleObjects(npc, 300))
{
if ((object instanceof L2ItemInstance) && (object.getId() == CRYSTALFOOD))
if (object.isItem() && (object.getId() == CRYSTALFOOD))
{
crystals.add(object);
}
}
int minDist = 300000;
for (L2Object crystal : crystals)
{
int dx = npc.getX() - crystal.getX();
int dy = npc.getY() - crystal.getY();
int d = (dx * dx) + (dy * dy);
if (d < minDist)
{
minDist = d;
cryGolem.foodItem = (L2ItemInstance) crystal;
int dx = npc.getX() - object.getX();
int dy = npc.getY() - object.getY();
int d = (dx * dx) + (dy * dy);
if (d < minDist)
{
minDist = d;
cryGolem.foodItem = (L2ItemInstance) object;
}
}
}
if (minDist != 300000)
{
startQuestTimer("getFood", 2000, npc, null);

View File

@ -21,7 +21,9 @@ package instances.DarkCloudMansion;
import instances.AbstractInstance;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.InstanceManager;
@ -46,7 +48,7 @@ public final class DarkCloudMansion extends AbstractInstance
{
protected class DMCWorld extends InstanceWorld
{
protected HashMap<String, DMCRoom> rooms = new HashMap<>();
protected Map<String, DMCRoom> rooms = new ConcurrentHashMap<>();
}
// NPCs
@ -230,7 +232,7 @@ public final class DarkCloudMansion extends AbstractInstance
protected static class DMCRoom
{
public ArrayList<DMCNpc> npcList = new ArrayList<>();
public List<DMCNpc> npcList = new ArrayList<>();
public int counter = 0;
public int reset = 0;
public int founded = 0;

View File

@ -22,6 +22,7 @@ import instances.AbstractInstance;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import quests.Q00196_SevenSignsSealOfTheEmperor.Q00196_SevenSignsSealOfTheEmperor;
@ -47,8 +48,8 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
protected class DNPWorld extends InstanceWorld
{
protected final ArrayList<L2Npc> anakimGroup = new ArrayList<>();
protected final ArrayList<L2Npc> lilithGroup = new ArrayList<>();
protected final List<L2Npc> anakimGroup = new ArrayList<>();
protected final List<L2Npc> lilithGroup = new ArrayList<>();
protected int countKill = 0;
}
@ -180,7 +181,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
teleportPlayer(player, ENTER, world.getInstanceId());
}
private void makeCast(L2Npc npc, ArrayList<L2Npc> targets)
private void makeCast(L2Npc npc, List<L2Npc> targets)
{
npc.setTarget(targets.get(getRandom(targets.size())));
if (SKILLS.containsKey(npc.getId()))

View File

@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.locks.Lock;
@ -82,10 +83,10 @@ import com.l2jserver.gameserver.util.Util;
*/
public final class FinalEmperialTomb extends AbstractInstance
{
private class FETWorld extends InstanceWorld
protected class FETWorld extends InstanceWorld
{
protected Lock lock = new ReentrantLock();
protected CopyOnWriteArrayList<L2Npc> npcList = new CopyOnWriteArrayList<>();
protected List<L2Npc> npcList = new CopyOnWriteArrayList<>();
protected int darkChoirPlayerCount = 0;
protected FrintezzaSong OnSong = null;
protected ScheduledFuture<?> songTask = null;
@ -98,17 +99,13 @@ public final class FinalEmperialTomb extends AbstractInstance
protected L2Npc scarletDummy = null;
protected L2GrandBossInstance frintezza = null;
protected L2GrandBossInstance activeScarlet = null;
protected List<L2MonsterInstance> demons = new ArrayList<>();
protected Map<L2MonsterInstance, Integer> portraits = new HashMap<>();
protected List<L2MonsterInstance> demons = new CopyOnWriteArrayList<>();
protected Map<L2MonsterInstance, Integer> portraits = new ConcurrentHashMap<>();
protected int scarlet_x = 0;
protected int scarlet_y = 0;
protected int scarlet_z = 0;
protected int scarlet_h = 0;
protected int scarlet_a = 0;
protected FETWorld()
{
}
}
protected static class FETSpawn
@ -298,11 +295,9 @@ public final class FinalEmperialTomb extends AbstractInstance
_log.severe("[Final Emperial Tomb] Missing flag in npc List npcId: " + npcId + ", skipping");
continue;
}
int flag = Integer.parseInt(attrs.getNamedItem("flag").getNodeValue());
if (!_spawnList.containsKey(flag))
{
_spawnList.put(flag, new ArrayList<FETSpawn>());
}
_spawnList.putIfAbsent(flag, new ArrayList<FETSpawn>());
for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
{
@ -848,7 +843,7 @@ public final class FinalEmperialTomb extends AbstractInstance
if ((_world.frintezza != null) && !_world.frintezza.isDead() && (_world.activeScarlet != null) && !_world.activeScarlet.isDead())
{
List<L2Character> targetList = new ArrayList<>();
final List<L2Character> targetList = new ArrayList<>();
if (skill.hasEffectType(L2EffectType.STUN) || skill.isDebuff())
{
for (int objId : _world.getAllowed())
@ -879,7 +874,7 @@ public final class FinalEmperialTomb extends AbstractInstance
{
targetList.add(_world.activeScarlet);
}
if (targetList.size() > 0)
if (!targetList.isEmpty())
{
_world.frintezza.doCast(skill, targetList.get(0), targetList.toArray(new L2Character[targetList.size()]));
}

View File

@ -19,7 +19,6 @@
package instances.KaraphonHabitat;
import instances.AbstractInstance;
import quests.Q10745_TheSecretIngredients.Q10745_TheSecretIngredients;
import com.l2jserver.gameserver.instancemanager.InstanceManager;

View File

@ -994,7 +994,6 @@
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="30" />
<set name="abnormalType" val="FORCE_MEDITATION" />
<set name="blockedInOlympiad" val="true" />
<set name="effectPoint" val="1" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1430" />

View File

@ -60,7 +60,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
import com.l2jserver.gameserver.model.L2World;
@ -71,6 +70,7 @@ import com.l2jserver.gameserver.util.FloodProtectorConfig;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.PropertiesParser;
import com.l2jserver.util.StringUtil;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class loads all the game server related configurations from files.<br>

View File

@ -18,8 +18,8 @@
*/
package com.l2jserver.gameserver;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.l2jserver.Config;
import com.l2jserver.gameserver.enums.ItemLocation;
@ -29,7 +29,7 @@ import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
public final class ItemsAutoDestroy
{
private final List<L2ItemInstance> _items = new CopyOnWriteArrayList<>();
private final Map<Integer, L2ItemInstance> _items = new ConcurrentHashMap<>();
protected ItemsAutoDestroy()
{
@ -44,22 +44,22 @@ public final class ItemsAutoDestroy
public synchronized void addItem(L2ItemInstance item)
{
item.setDropTime(System.currentTimeMillis());
_items.add(item);
_items.put(item.getObjectId(), item);
}
public synchronized void removeItems()
{
if (_items.isEmpty())
final long curtime = System.currentTimeMillis();
for (L2ItemInstance item : _items.values())
{
return;
}
long curtime = System.currentTimeMillis();
for (L2ItemInstance item : _items)
{
if ((item == null) || (item.getDropTime() == 0) || (item.getItemLocation() != ItemLocation.VOID))
if (item == null)
{
_items.remove(item);
continue;
}
if ((item.getDropTime() == 0) || (item.getItemLocation() != ItemLocation.VOID))
{
_items.remove(item.getObjectId());
}
else
{
@ -69,7 +69,7 @@ public final class ItemsAutoDestroy
{
L2World.getInstance().removeVisibleObject(item, item.getWorldRegion());
L2World.getInstance().removeObject(item);
_items.remove(item);
_items.remove(item.getObjectId());
if (Config.SAVE_DROPPED_ITEM)
{
ItemsOnGroundManager.getInstance().removeObject(item);
@ -82,7 +82,7 @@ public final class ItemsAutoDestroy
{
L2World.getInstance().removeVisibleObject(item, item.getWorldRegion());
L2World.getInstance().removeObject(item);
_items.remove(item);
_items.remove(item.getObjectId());
if (Config.SAVE_DROPPED_ITEM)
{
ItemsOnGroundManager.getInstance().removeObject(item);
@ -97,7 +97,7 @@ public final class ItemsAutoDestroy
{
L2World.getInstance().removeVisibleObject(item, item.getWorldRegion());
L2World.getInstance().removeObject(item);
_items.remove(item);
_items.remove(item.getObjectId());
if (Config.SAVE_DROPPED_ITEM)
{
ItemsOnGroundManager.getInstance().removeObject(item);

View File

@ -39,6 +39,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
@ -134,7 +135,7 @@ public class LoginServerThread extends Thread
_reserveHost = Config.RESERVE_HOST_ON_LOGIN;
_subnets = Config.GAME_SERVER_SUBNETS;
_hosts = Config.GAME_SERVER_HOSTS;
_waitingClients = new ArrayList<>();
_waitingClients = new CopyOnWriteArrayList<>();
_maxPlayer = Config.MAXIMUM_ONLINE_USERS;
}

View File

@ -61,6 +61,7 @@ public class RecipeController
protected RecipeController()
{
// Prevent external initialization.
}
public void requestBookOpen(L2PcInstance player, boolean isDwarvenCraft)

View File

@ -451,16 +451,9 @@ public final class L2ControllableMobAI extends L2AttackableAI
double dy, dx;
double dblAggroRange = aggroRange * aggroRange;
List<L2Character> potentialTarget = new ArrayList<>();
Collection<L2Object> objs = npc.getKnownList().getKnownObjects().values();
for (L2Object obj : objs)
final List<L2Character> potentialTarget = new ArrayList<>();
for (L2Character obj : npc.getKnownList().getKnownCharacters())
{
if (!(obj instanceof L2Character))
{
continue;
}
npcX = npc.getX();
npcY = npc.getY();
targetX = obj.getX();
@ -474,8 +467,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
continue;
}
L2Character target = (L2Character) obj;
L2Character target = obj;
if (checkAutoAttackCondition(target))
{
potentialTarget.add(target);

View File

@ -22,9 +22,9 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -48,8 +48,8 @@ public class Forum
public static final int CLANMEMBERONLY = 2;
public static final int OWNERONLY = 3;
private final List<Forum> _children;
private final Map<Integer, Topic> _topic;
private final List<Forum> _children = new ArrayList<>();
private final Map<Integer, Topic> _topic = new ConcurrentHashMap<>();
private final int _forumId;
private String _forumName;
private int _forumType;
@ -68,8 +68,6 @@ public class Forum
{
_forumId = Forumid;
_fParent = FParent;
_children = new ArrayList<>();
_topic = new HashMap<>();
}
/**
@ -88,8 +86,6 @@ public class Forum
_forumPerm = perm;
_fParent = parent;
_ownerID = OwnerID;
_children = new ArrayList<>();
_topic = new HashMap<>();
parent._children.add(this);
ForumsBBSManager.getInstance().addForum(this);
_loaded = true;
@ -151,7 +147,7 @@ public class Forum
{
while (rs.next())
{
Forum f = new Forum(rs.getInt("forum_id"), this);
final Forum f = new Forum(rs.getInt("forum_id"), this);
_children.add(f);
ForumsBBSManager.getInstance().addForum(f);
}
@ -208,14 +204,7 @@ public class Forum
public Forum getChildByName(String name)
{
vload();
for (Forum f : _children)
{
if (f.getName().equals(name))
{
return f;
}
}
return null;
return _children.stream().filter(f -> f.getName().equals(name)).findFirst().orElse(null);
}
/**

View File

@ -47,7 +47,7 @@ public class Post
public String postTxt;
}
private final List<CPost> _post;
private final List<CPost> _post = new ArrayList<>();
/**
* @param _PostOwner
@ -59,8 +59,7 @@ public class Post
*/
public Post(String _PostOwner, int _PostOwnerID, long date, int tid, int _PostForumID, String txt)
{
_post = new ArrayList<>();
CPost cp = new CPost();
final CPost cp = new CPost();
cp.postId = 0;
cp.postOwner = _PostOwner;
cp.postOwnerId = _PostOwnerID;
@ -73,6 +72,11 @@ public class Post
}
public Post(Topic t)
{
load(t);
}
public void insertindb(CPost cp)
{
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
@ -93,23 +97,9 @@ public class Post
}
}
public Post(Topic t)
{
_post = new ArrayList<>();
load(t);
}
public CPost getCPost(int id)
{
int i = 0;
for (CPost cp : _post)
{
if (i++ == id)
{
return cp;
}
}
return null;
return _post.get(id);
}
public void deleteme(Topic t)
@ -142,7 +132,7 @@ public class Post
{
while (rs.next())
{
CPost cp = new CPost();
final CPost cp = new CPost();
cp.postId = rs.getInt("post_id");
cp.postOwner = rs.getString("post_owner_name");
cp.postOwnerId = rs.getInt("post_ownerid");

View File

@ -63,10 +63,7 @@ public class ForumsBBSManager extends BaseBBSManager
*/
public void initRoot()
{
for (Forum f : _table)
{
f.vload();
}
_table.forEach(f -> f.vload());
_log.info("Loaded " + _table.size() + " forums. Last forum id used: " + _lastid);
}
@ -101,14 +98,7 @@ public class ForumsBBSManager extends BaseBBSManager
*/
public Forum getForumByName(String name)
{
for (Forum f : _table)
{
if (f.getName().equals(name))
{
return f;
}
}
return null;
return _table.stream().filter(f -> f.getName().equals(name)).findFirst().orElse(null);
}
/**
@ -143,14 +133,7 @@ public class ForumsBBSManager extends BaseBBSManager
*/
public Forum getForumByID(int idf)
{
for (Forum f : _table)
{
if (f.getID() == idf)
{
return f;
}
}
return null;
return _table.stream().filter(f -> f.getID() == idf).findFirst().orElse(null);
}
@Override

View File

@ -20,10 +20,10 @@ package com.l2jserver.gameserver.communitybbs.Manager;
import java.text.DateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;
import com.l2jserver.gameserver.communitybbs.BB.Forum;
import com.l2jserver.gameserver.communitybbs.BB.Post;
@ -35,7 +35,7 @@ import com.l2jserver.util.StringUtil;
public class PostBBSManager extends BaseBBSManager
{
private final Map<Topic, Post> _postByTopic = new HashMap<>();
private final Map<Topic, Post> _postByTopic = new ConcurrentHashMap<>();
public Post getGPosttByTopic(Topic t)
{

View File

@ -19,13 +19,13 @@
package com.l2jserver.gameserver.communitybbs.Manager;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import com.l2jserver.gameserver.communitybbs.BB.Forum;
import com.l2jserver.gameserver.communitybbs.BB.Post;
@ -37,13 +37,12 @@ import com.l2jserver.util.StringUtil;
public class TopicBBSManager extends BaseBBSManager
{
private final List<Topic> _table;
private final Map<Forum, Integer> _maxId;
private final List<Topic> _table = new CopyOnWriteArrayList<>();
private final Map<Forum, Integer> _maxId = new HashMap<>();
protected TopicBBSManager()
{
_table = new ArrayList<>();
_maxId = new ConcurrentHashMap<>();
// Prevent external initialization.
}
public void addTopic(Topic tt)

View File

@ -378,8 +378,8 @@ public class ClanTable
public void storeclanswars(int clanId1, int clanId2)
{
final L2Clan clan1 = ClanTable.getInstance().getClan(clanId1);
final L2Clan clan2 = ClanTable.getInstance().getClan(clanId2);
final L2Clan clan1 = getClan(clanId1);
final L2Clan clan2 = getClan(clanId2);
EventDispatcher.getInstance().notifyEventAsync(new OnClanWarStart(clan1, clan2));
@ -419,8 +419,8 @@ public class ClanTable
public void deleteclanswars(int clanId1, int clanId2)
{
L2Clan clan1 = ClanTable.getInstance().getClan(clanId1);
L2Clan clan2 = ClanTable.getInstance().getClan(clanId2);
L2Clan clan1 = getClan(clanId1);
L2Clan clan2 = getClan(clanId2);
EventDispatcher.getInstance().notifyEventAsync(new OnClanWarFinish(clan1, clan2));

View File

@ -27,8 +27,8 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.holders.RangeAbilityPointsHolder;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -30,7 +30,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.L2AccessLevel;
import com.l2jserver.gameserver.model.L2AdminCommandAccessRight;
import com.l2jserver.gameserver.model.StatsSet;
@ -38,6 +37,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Loads administrator access levels and commands.

View File

@ -26,13 +26,13 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.items.appearance.AppearanceStone;
import com.l2jserver.gameserver.model.items.appearance.AppearanceTargetType;
import com.l2jserver.gameserver.model.items.type.CrystalType;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid
@ -109,7 +109,7 @@ public class AppearanceItemData implements IXmlReader
}
case "bodyPart":
{
final int part = ItemTable._slots.get(c.getTextContent());
final int part = ItemTable.SLOTS.get(c.getTextContent());
stone.addBodyPart(part);
break;
}

View File

@ -25,10 +25,10 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.L2ArmorSet;
import com.l2jserver.gameserver.model.holders.ArmorsetSkillHolder;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Loads armor set bonuses.

View File

@ -25,12 +25,12 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.enums.Sex;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.beautyshop.BeautyData;
import com.l2jserver.gameserver.model.beautyshop.BeautyItem;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author Sdw

View File

@ -33,11 +33,11 @@ import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.model.buylist.L2BuyList;
import com.l2jserver.gameserver.model.buylist.Product;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.util.data.xml.IXmlReader;
import com.l2jserver.util.file.filter.NumericNameFilter;
/**

View File

@ -29,9 +29,9 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.CastleSide;
import com.l2jserver.gameserver.model.holders.CastleSpawnHolder;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author St3eT

View File

@ -29,8 +29,8 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.CategoryType;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Loads the category data with Class or NPC IDs.

View File

@ -25,9 +25,9 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.model.base.ClassInfo;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Loads the the list of classes and it's info.

View File

@ -30,13 +30,13 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.instancemanager.InstanceManager;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.actor.templates.L2DoorTemplate;
import com.l2jserver.gameserver.pathfinding.AbstractNodeLoc;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Loads doors.

View File

@ -26,11 +26,11 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.items.enchant.EnchantScroll;
import com.l2jserver.gameserver.model.items.enchant.EnchantSupportItem;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Loads item enchant data.

View File

@ -26,7 +26,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.model.holders.RangeChanceHolder;
import com.l2jserver.gameserver.model.items.L2Item;
@ -34,6 +33,7 @@ import com.l2jserver.gameserver.model.items.enchant.EnchantItemGroup;
import com.l2jserver.gameserver.model.items.enchant.EnchantRateItem;
import com.l2jserver.gameserver.model.items.enchant.EnchantScrollGroup;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid
@ -117,7 +117,7 @@ public final class EnchantItemGroupsData implements IXmlReader
final NamedNodeMap attrs = z.getAttributes();
if (attrs.getNamedItem("slot") != null)
{
rateGroup.addSlot(ItemTable._slots.get(parseString(attrs, "slot")));
rateGroup.addSlot(ItemTable.SLOTS.get(parseString(attrs, "slot")));
}
if (attrs.getNamedItem("magicWeapon") != null)
{

View File

@ -27,7 +27,6 @@ import java.util.Map;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.enums.StatFunction;
import com.l2jserver.gameserver.model.items.L2Item;
@ -35,6 +34,7 @@ import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.items.type.CrystalType;
import com.l2jserver.gameserver.model.stats.Stats;
import com.l2jserver.gameserver.model.stats.functions.FuncTemplate;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Enchant HP Bonus Data.

View File

@ -25,10 +25,10 @@ import java.util.logging.Level;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.options.EnchantOptions;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -27,13 +27,13 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.L2EnchantSkillGroup;
import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Enchant Groups information.

View File

@ -25,7 +25,7 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Experience points for each level for players and pets.

View File

@ -27,9 +27,9 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.fishing.L2Fish;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Fish information.

View File

@ -25,9 +25,9 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.fishing.L2FishingMonster;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Fishing Monsters information.

View File

@ -25,9 +25,9 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.fishing.L2FishingRod;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Fishing Rods information.

View File

@ -27,10 +27,10 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.model.items.L2Henna;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the henna related information.<br>

View File

@ -24,8 +24,8 @@ import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class load, holds and calculates the hit condition bonuses.

View File

@ -28,10 +28,10 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.model.items.PcItemTemplate;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Initial Equipment information.<br>

View File

@ -27,7 +27,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.MacroType;
import com.l2jserver.gameserver.enums.ShortcutType;
import com.l2jserver.gameserver.model.Macro;
@ -37,6 +36,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.network.serverpackets.ShortCutRegister;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Initial Shortcuts information.<br>

View File

@ -26,9 +26,9 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.CrystalizationData;
import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -26,7 +26,7 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -31,7 +31,6 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -45,6 +44,7 @@ import com.l2jserver.gameserver.network.serverpackets.MultiSellList;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.network.serverpackets.UserInfo;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.data.xml.IXmlReader;
import com.l2jserver.util.file.filter.NumericNameFilter;
public final class MultisellData implements IXmlReader

View File

@ -36,7 +36,6 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.enums.AISkillScope;
import com.l2jserver.gameserver.model.StatsSet;
@ -51,6 +50,7 @@ import com.l2jserver.gameserver.model.holders.MinionHolder;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* NPC data parser.

View File

@ -26,13 +26,13 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.options.Options;
import com.l2jserver.gameserver.model.options.OptionsSkillHolder;
import com.l2jserver.gameserver.model.options.OptionsSkillType;
import com.l2jserver.gameserver.model.stats.Stats;
import com.l2jserver.gameserver.model.stats.functions.FuncTemplate;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -25,11 +25,11 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.MountType;
import com.l2jserver.gameserver.model.L2PetData;
import com.l2jserver.gameserver.model.L2PetLevelData;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class parse and hold all pet parameters.<br>

View File

@ -28,11 +28,11 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.templates.L2PcTemplate;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Loads player's base stats.

View File

@ -24,7 +24,7 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class holds the Player Xp Percent Lost Data for each level for players.

View File

@ -27,7 +27,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -35,6 +34,7 @@ import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.model.primeshop.PrimeShopGroup;
import com.l2jserver.gameserver.model.primeshop.PrimeShopItem;
import com.l2jserver.gameserver.network.serverpackets.primeshop.ExBRProductInfo;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author Gnacik, UnAfraid

View File

@ -27,12 +27,12 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.L2RecipeInstance;
import com.l2jserver.gameserver.model.L2RecipeList;
import com.l2jserver.gameserver.model.L2RecipeStatInstance;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* The Class RecipeData.

View File

@ -26,7 +26,7 @@ import java.util.logging.Level;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author NosBit

View File

@ -28,7 +28,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.VehiclePathPoint;
@ -37,6 +36,7 @@ import com.l2jserver.gameserver.model.actor.templates.L2CharTemplate;
import com.l2jserver.gameserver.model.shuttle.L2ShuttleData;
import com.l2jserver.gameserver.model.shuttle.L2ShuttleEngine;
import com.l2jserver.gameserver.model.shuttle.L2ShuttleStop;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -27,10 +27,10 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.SiegeScheduleDate;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -26,8 +26,8 @@ import java.util.Map;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Holds all skill learn data for all npcs.

View File

@ -36,7 +36,6 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.enums.CategoryType;
import com.l2jserver.gameserver.enums.Race;
@ -54,6 +53,7 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.interfaces.ISkillsHolder;
import com.l2jserver.gameserver.model.skills.CommonSkill;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class loads and manage the characters and pledges skills trees.<br>

View File

@ -26,10 +26,10 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance;
import com.l2jserver.gameserver.model.actor.templates.L2CharTemplate;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* This class loads and holds all static object data.

View File

@ -26,11 +26,11 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.teleporter.TeleportHolder;
import com.l2jserver.gameserver.model.teleporter.TeleportLocation;
import com.l2jserver.gameserver.model.teleporter.TeleportType;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -26,7 +26,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.transform.Transform;
@ -36,6 +35,7 @@ import com.l2jserver.gameserver.model.holders.AdditionalItemHolder;
import com.l2jserver.gameserver.model.holders.AdditionalSkillHolder;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.network.serverpackets.ExBasicActionList;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author UnAfraid

View File

@ -27,8 +27,8 @@ import java.util.logging.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.ActionKey;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* UI Data parser.

View File

@ -36,7 +36,7 @@ public class EventDroplist
/**
* The table containing all DataDrop object
*/
private static final List<DateDrop> _allNpcDateDrops = new ArrayList<>();
private static final List<DateDrop> ALL_NPC_DATE_DROPS = new ArrayList<>();
public static class DateDrop
{
@ -75,7 +75,7 @@ public class EventDroplist
*/
public void addGlobalDrop(int[] itemIdList, int[] count, int chance, DateRange dateRange)
{
_allNpcDateDrops.add(new DateDrop(dateRange, new EventDrop(itemIdList, count[0], count[1], chance)));
ALL_NPC_DATE_DROPS.add(new DateDrop(dateRange, new EventDrop(itemIdList, count[0], count[1], chance)));
}
/**
@ -87,7 +87,7 @@ public class EventDroplist
*/
public void addGlobalDrop(int itemId, long min, long max, int chance, DateRange dateRange)
{
_allNpcDateDrops.add(new DateDrop(dateRange, new EventDrop(itemId, min, max, chance)));
ALL_NPC_DATE_DROPS.add(new DateDrop(dateRange, new EventDrop(itemId, min, max, chance)));
}
/**
@ -97,7 +97,7 @@ public class EventDroplist
*/
public void addGlobalDrop(DateRange dateRange, EventDrop eventDrop)
{
_allNpcDateDrops.add(new DateDrop(dateRange, eventDrop));
ALL_NPC_DATE_DROPS.add(new DateDrop(dateRange, eventDrop));
}
/**
@ -107,7 +107,7 @@ public class EventDroplist
{
final List<DateDrop> list = new ArrayList<>();
final Date currentDate = new Date();
for (DateDrop drop : _allNpcDateDrops)
for (DateDrop drop : ALL_NPC_DATE_DROPS)
{
if (drop._dateRange.isWithinRange(currentDate))
{

View File

@ -60,53 +60,53 @@ public class ItemTable
private static Logger LOGGER = Logger.getLogger(ItemTable.class.getName());
private static Logger LOGGER_ITEMS = Logger.getLogger("item");
public static final Map<String, Integer> _slots = new HashMap<>();
public static final Map<String, Integer> SLOTS = new HashMap<>();
private L2Item[] _allTemplates;
private final Map<Integer, L2EtcItem> _etcItems;
private final Map<Integer, L2Armor> _armors;
private final Map<Integer, L2Weapon> _weapons;
private final Map<Integer, L2EtcItem> _etcItems = new HashMap<>();
private final Map<Integer, L2Armor> _armors = new HashMap<>();
private final Map<Integer, L2Weapon> _weapons = new HashMap<>();
static
{
_slots.put("shirt", L2Item.SLOT_UNDERWEAR);
_slots.put("lbracelet", L2Item.SLOT_L_BRACELET);
_slots.put("rbracelet", L2Item.SLOT_R_BRACELET);
_slots.put("talisman", L2Item.SLOT_DECO);
_slots.put("chest", L2Item.SLOT_CHEST);
_slots.put("fullarmor", L2Item.SLOT_FULL_ARMOR);
_slots.put("head", L2Item.SLOT_HEAD);
_slots.put("hair", L2Item.SLOT_HAIR);
_slots.put("hairall", L2Item.SLOT_HAIRALL);
_slots.put("underwear", L2Item.SLOT_UNDERWEAR);
_slots.put("back", L2Item.SLOT_BACK);
_slots.put("neck", L2Item.SLOT_NECK);
_slots.put("legs", L2Item.SLOT_LEGS);
_slots.put("feet", L2Item.SLOT_FEET);
_slots.put("gloves", L2Item.SLOT_GLOVES);
_slots.put("chest,legs", L2Item.SLOT_CHEST | L2Item.SLOT_LEGS);
_slots.put("belt", L2Item.SLOT_BELT);
_slots.put("rhand", L2Item.SLOT_R_HAND);
_slots.put("lhand", L2Item.SLOT_L_HAND);
_slots.put("lrhand", L2Item.SLOT_LR_HAND);
_slots.put("rear;lear", L2Item.SLOT_R_EAR | L2Item.SLOT_L_EAR);
_slots.put("rfinger;lfinger", L2Item.SLOT_R_FINGER | L2Item.SLOT_L_FINGER);
_slots.put("wolf", L2Item.SLOT_WOLF);
_slots.put("greatwolf", L2Item.SLOT_GREATWOLF);
_slots.put("hatchling", L2Item.SLOT_HATCHLING);
_slots.put("strider", L2Item.SLOT_STRIDER);
_slots.put("babypet", L2Item.SLOT_BABYPET);
_slots.put("brooch", L2Item.SLOT_BROOCH);
_slots.put("brooch_jewel", L2Item.SLOT_BROOCH_JEWEL);
_slots.put("none", L2Item.SLOT_NONE);
SLOTS.put("shirt", L2Item.SLOT_UNDERWEAR);
SLOTS.put("lbracelet", L2Item.SLOT_L_BRACELET);
SLOTS.put("rbracelet", L2Item.SLOT_R_BRACELET);
SLOTS.put("talisman", L2Item.SLOT_DECO);
SLOTS.put("chest", L2Item.SLOT_CHEST);
SLOTS.put("fullarmor", L2Item.SLOT_FULL_ARMOR);
SLOTS.put("head", L2Item.SLOT_HEAD);
SLOTS.put("hair", L2Item.SLOT_HAIR);
SLOTS.put("hairall", L2Item.SLOT_HAIRALL);
SLOTS.put("underwear", L2Item.SLOT_UNDERWEAR);
SLOTS.put("back", L2Item.SLOT_BACK);
SLOTS.put("neck", L2Item.SLOT_NECK);
SLOTS.put("legs", L2Item.SLOT_LEGS);
SLOTS.put("feet", L2Item.SLOT_FEET);
SLOTS.put("gloves", L2Item.SLOT_GLOVES);
SLOTS.put("chest,legs", L2Item.SLOT_CHEST | L2Item.SLOT_LEGS);
SLOTS.put("belt", L2Item.SLOT_BELT);
SLOTS.put("rhand", L2Item.SLOT_R_HAND);
SLOTS.put("lhand", L2Item.SLOT_L_HAND);
SLOTS.put("lrhand", L2Item.SLOT_LR_HAND);
SLOTS.put("rear;lear", L2Item.SLOT_R_EAR | L2Item.SLOT_L_EAR);
SLOTS.put("rfinger;lfinger", L2Item.SLOT_R_FINGER | L2Item.SLOT_L_FINGER);
SLOTS.put("wolf", L2Item.SLOT_WOLF);
SLOTS.put("greatwolf", L2Item.SLOT_GREATWOLF);
SLOTS.put("hatchling", L2Item.SLOT_HATCHLING);
SLOTS.put("strider", L2Item.SLOT_STRIDER);
SLOTS.put("babypet", L2Item.SLOT_BABYPET);
SLOTS.put("brooch", L2Item.SLOT_BROOCH);
SLOTS.put("brooch_jewel", L2Item.SLOT_BROOCH_JEWEL);
SLOTS.put("none", L2Item.SLOT_NONE);
// retail compatibility
_slots.put("onepiece", L2Item.SLOT_FULL_ARMOR);
_slots.put("hair2", L2Item.SLOT_HAIR2);
_slots.put("dhair", L2Item.SLOT_HAIRALL);
_slots.put("alldress", L2Item.SLOT_ALLDRESS);
_slots.put("deco1", L2Item.SLOT_DECO);
_slots.put("waist", L2Item.SLOT_BELT);
SLOTS.put("onepiece", L2Item.SLOT_FULL_ARMOR);
SLOTS.put("hair2", L2Item.SLOT_HAIR2);
SLOTS.put("dhair", L2Item.SLOT_HAIRALL);
SLOTS.put("alldress", L2Item.SLOT_ALLDRESS);
SLOTS.put("deco1", L2Item.SLOT_DECO);
SLOTS.put("waist", L2Item.SLOT_BELT);
}
/**
@ -119,9 +119,6 @@ public class ItemTable
protected ItemTable()
{
_etcItems = new HashMap<>();
_armors = new HashMap<>();
_weapons = new HashMap<>();
load();
}

View File

@ -37,13 +37,13 @@ import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Spawn data retriever.

View File

@ -148,12 +148,11 @@ public abstract class DocumentBase
protected final Logger _log = Logger.getLogger(getClass().getName());
private final File _file;
protected Map<String, String[]> _tables;
protected final Map<String, String[]> _tables = new HashMap<>();
protected DocumentBase(File pFile)
{
_file = pFile;
_tables = new HashMap<>();
}
public Document parse()
@ -184,7 +183,7 @@ public abstract class DocumentBase
protected void resetTable()
{
_tables = new HashMap<>();
_tables.clear();
}
protected void setTable(String name, String[] table)
@ -1189,9 +1188,9 @@ public abstract class DocumentBase
{
int old = mask;
String item = st.nextToken().trim();
if (ItemTable._slots.containsKey(item))
if (ItemTable.SLOTS.containsKey(item))
{
mask |= ItemTable._slots.get(item);
mask |= ItemTable.SLOTS.get(item);
}
if (old == mask)

View File

@ -176,9 +176,6 @@ public final class DocumentItem extends DocumentBase
}
}
/**
* @return
*/
public List<L2Item> getItemList()
{
return _itemsInFile;

View File

@ -18,8 +18,8 @@
*/
package com.l2jserver.gameserver.instancemanager;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.l2jserver.Config;
import com.l2jserver.gameserver.model.L2World;
@ -32,7 +32,7 @@ import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
public class BoatManager
{
private final Map<Integer, L2BoatInstance> _boats = new HashMap<>();
private final Map<Integer, L2BoatInstance> _boats = new ConcurrentHashMap<>();
private final boolean[] _docksBusy = new boolean[3];
public static final int TALKING_ISLAND = 1;
@ -103,11 +103,12 @@ public class BoatManager
npcDat.set("basePDef", 100);
npcDat.set("baseMDef", 100);
L2BoatInstance boat = new L2BoatInstance(new L2CharTemplate(npcDat));
_boats.put(boat.getObjectId(), boat);
final L2BoatInstance boat = new L2BoatInstance(new L2CharTemplate(npcDat));
boat.setHeading(heading);
boat.setXYZInvisible(x, y, z);
boat.spawnMe();
_boats.put(boat.getObjectId(), boat);
return boat;
}

View File

@ -45,7 +45,7 @@ public final class CHSiegeManager
private static final Logger _log = Logger.getLogger(CHSiegeManager.class.getName());
private static final String SQL_LOAD_HALLS = "SELECT * FROM siegable_clanhall";
private final HashMap<Integer, SiegableHall> _siegableHalls = new HashMap<>();
private final Map<Integer, SiegableHall> _siegableHalls = new HashMap<>();
protected CHSiegeManager()
{
@ -86,7 +86,7 @@ public final class CHSiegeManager
}
}
public HashMap<Integer, SiegableHall> getConquerableHalls()
public Map<Integer, SiegableHall> getConquerableHalls()
{
return _siegableHalls;
}

View File

@ -42,7 +42,7 @@ public final class CastleManager implements InstanceListManager
{
private static final Logger _log = Logger.getLogger(CastleManager.class.getName());
private List<Castle> _castles;
private final List<Castle> _castles = new ArrayList<>();
private final Map<Integer, Long> _castleSiegeDate = new ConcurrentHashMap<>();
@ -72,9 +72,9 @@ public final class CastleManager implements InstanceListManager
{
double distance;
Castle castle;
for (int i = 0; i < getCastles().size(); i++)
for (int i = 0; i < _castles.size(); i++)
{
castle = getCastles().get(i);
castle = _castles.get(i);
if (castle == null)
{
continue;
@ -92,7 +92,7 @@ public final class CastleManager implements InstanceListManager
public final Castle getCastleById(int castleId)
{
for (Castle temp : getCastles())
for (Castle temp : _castles)
{
if (temp.getResidenceId() == castleId)
{
@ -104,7 +104,7 @@ public final class CastleManager implements InstanceListManager
public final Castle getCastleByOwner(L2Clan clan)
{
for (Castle temp : getCastles())
for (Castle temp : _castles)
{
if (temp.getOwnerId() == clan.getId())
{
@ -116,7 +116,7 @@ public final class CastleManager implements InstanceListManager
public final Castle getCastle(String name)
{
for (Castle temp : getCastles())
for (Castle temp : _castles)
{
if (temp.getName().equalsIgnoreCase(name.trim()))
{
@ -128,7 +128,7 @@ public final class CastleManager implements InstanceListManager
public final Castle getCastle(int x, int y, int z)
{
for (Castle temp : getCastles())
for (Castle temp : _castles)
{
if (temp.checkIfInZone(x, y, z))
{
@ -146,9 +146,9 @@ public final class CastleManager implements InstanceListManager
public final int getCastleIndex(int castleId)
{
Castle castle;
for (int i = 0; i < getCastles().size(); i++)
for (int i = 0; i < _castles.size(); i++)
{
castle = getCastles().get(i);
castle = _castles.get(i);
if ((castle != null) && (castle.getResidenceId() == castleId))
{
return i;
@ -165,9 +165,9 @@ public final class CastleManager implements InstanceListManager
public final int getCastleIndex(int x, int y, int z)
{
Castle castle;
for (int i = 0; i < getCastles().size(); i++)
for (int i = 0; i < _castles.size(); i++)
{
castle = getCastles().get(i);
castle = _castles.get(i);
if ((castle != null) && castle.checkIfInZone(x, y, z))
{
return i;
@ -178,17 +178,13 @@ public final class CastleManager implements InstanceListManager
public final List<Castle> getCastles()
{
if (_castles == null)
{
_castles = new ArrayList<>();
}
return _castles;
}
public boolean hasOwnedCastle()
{
boolean hasOwnedCastle = false;
for (Castle castle : getCastles())
for (Castle castle : _castles)
{
if (castle.getOwnerId() > 0)
{
@ -279,9 +275,9 @@ public final class CastleManager implements InstanceListManager
{
while (rs.next())
{
getCastles().add(new Castle(rs.getInt("id")));
_castles.add(new Castle(rs.getInt("id")));
}
_log.info(getClass().getSimpleName() + ": Loaded: " + getCastles().size() + " castles");
_log.info(getClass().getSimpleName() + ": Loaded: " + _castles.size() + " castles");
}
catch (Exception e)
{

View File

@ -40,7 +40,6 @@ import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.enums.ManorMode;
import com.l2jserver.gameserver.model.CropProcure;
import com.l2jserver.gameserver.model.L2Clan;
@ -53,6 +52,7 @@ import com.l2jserver.gameserver.model.interfaces.IStorable;
import com.l2jserver.gameserver.model.itemcontainer.ItemContainer;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.util.Rnd;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* Castle manor system.

View File

@ -23,6 +23,7 @@ import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -44,9 +45,9 @@ public final class ClanHallManager
{
protected static final Logger _log = Logger.getLogger(ClanHallManager.class.getName());
private final Map<Integer, AuctionableHall> _clanHall;
private final Map<Integer, AuctionableHall> _freeClanHall;
private final Map<Integer, AuctionableHall> _allAuctionableClanHalls;
private final Map<Integer, AuctionableHall> _clanHall = new ConcurrentHashMap<>();
private final Map<Integer, AuctionableHall> _freeClanHall = new ConcurrentHashMap<>();
private final Map<Integer, AuctionableHall> _allAuctionableClanHalls = new HashMap<>();
private static Map<Integer, ClanHall> _allClanHalls = new HashMap<>();
private boolean _loaded = false;
@ -57,9 +58,6 @@ public final class ClanHallManager
protected ClanHallManager()
{
_clanHall = new HashMap<>();
_freeClanHall = new HashMap<>();
_allAuctionableClanHalls = new HashMap<>();
load();
}
@ -216,7 +214,7 @@ public final class ClanHallManager
*/
public final ClanHall getClanHall(int x, int y, int z)
{
for (ClanHall temp : getAllClanHalls().values())
for (ClanHall temp : _allClanHalls.values())
{
if (temp.checkIfInZone(x, y, z))
{
@ -313,4 +311,4 @@ public final class ClanHallManager
{
protected static final ClanHallManager _instance = new ClanHallManager();
}
}
}

View File

@ -21,7 +21,8 @@ package com.l2jserver.gameserver.instancemanager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -37,7 +38,7 @@ public final class CoupleManager
{
private static final Logger _log = Logger.getLogger(CoupleManager.class.getName());
private ArrayList<Couple> _couples;
private final List<Couple> _couples = new CopyOnWriteArrayList<>();
protected CoupleManager()
{
@ -46,7 +47,7 @@ public final class CoupleManager
public void reload()
{
getCouples().clear();
_couples.clear();
load();
}
@ -84,15 +85,15 @@ public final class CoupleManager
{
if ((player1.getPartnerId() == 0) && (player2.getPartnerId() == 0))
{
int _player1id = player1.getObjectId();
int _player2id = player2.getObjectId();
int player1id = player1.getObjectId();
int player2id = player2.getObjectId();
Couple _new = new Couple(player1, player2);
getCouples().add(_new);
player1.setPartnerId(_player2id);
player2.setPartnerId(_player1id);
player1.setCoupleId(_new.getId());
player2.setCoupleId(_new.getId());
Couple couple = new Couple(player1, player2);
getCouples().add(couple);
player1.setPartnerId(player2id);
player2.setPartnerId(player1id);
player1.setCoupleId(couple.getId());
player2.setCoupleId(couple.getId());
}
}
}
@ -138,12 +139,8 @@ public final class CoupleManager
return -1;
}
public final ArrayList<Couple> getCouples()
public final List<Couple> getCouples()
{
if (_couples == null)
{
_couples = new ArrayList<>();
}
return _couples;
}

View File

@ -19,9 +19,9 @@
package com.l2jserver.gameserver.instancemanager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -38,9 +38,9 @@ public final class DayNightSpawnManager
private static Logger _log = Logger.getLogger(DayNightSpawnManager.class.getName());
private final List<L2Spawn> _dayCreatures;
private final List<L2Spawn> _nightCreatures;
private final Map<L2Spawn, L2RaidBossInstance> _bosses;
private final List<L2Spawn> _dayCreatures = new ArrayList<>();
private final List<L2Spawn> _nightCreatures = new ArrayList<>();
private final Map<L2Spawn, L2RaidBossInstance> _bosses = new ConcurrentHashMap<>();
// private static int _currentState; // 0 = Day, 1 = Night
@ -51,9 +51,7 @@ public final class DayNightSpawnManager
protected DayNightSpawnManager()
{
_dayCreatures = new ArrayList<>();
_nightCreatures = new ArrayList<>();
_bosses = new HashMap<>();
// Prevent external initialization.
}
public void addDayCreature(L2Spawn spawnDat)
@ -202,7 +200,6 @@ public final class DayNightSpawnManager
{
boss = (L2RaidBossInstance) spawn.doSpawn();
RaidBossSpawnManager.getInstance().notifySpawnNightBoss(boss);
_bosses.remove(spawn);
_bosses.put(spawn, boss);
continue;
}
@ -257,8 +254,6 @@ public final class DayNightSpawnManager
return raidboss;
}
_bosses.put(spawnDat, null);
return null;
}

View File

@ -36,7 +36,7 @@ public final class FortManager implements InstanceListManager
{
protected static final Logger _log = Logger.getLogger(FortManager.class.getName());
private List<Fort> _forts;
private final List<Fort> _forts = new ArrayList<>();
public final int findNearestFortIndex(L2Object obj)
{
@ -50,9 +50,9 @@ public final class FortManager implements InstanceListManager
{
double distance;
Fort fort;
for (int i = 0; i < getForts().size(); i++)
for (int i = 0; i < _forts.size(); i++)
{
fort = getForts().get(i);
fort = _forts.get(i);
if (fort == null)
{
continue;
@ -70,7 +70,7 @@ public final class FortManager implements InstanceListManager
public final Fort getFortById(int fortId)
{
for (Fort f : getForts())
for (Fort f : _forts)
{
if (f.getResidenceId() == fortId)
{
@ -82,7 +82,7 @@ public final class FortManager implements InstanceListManager
public final Fort getFortByOwner(L2Clan clan)
{
for (Fort f : getForts())
for (Fort f : _forts)
{
if (f.getOwnerClan() == clan)
{
@ -94,7 +94,7 @@ public final class FortManager implements InstanceListManager
public final Fort getFort(String name)
{
for (Fort f : getForts())
for (Fort f : _forts)
{
if (f.getName().equalsIgnoreCase(name.trim()))
{
@ -106,7 +106,7 @@ public final class FortManager implements InstanceListManager
public final Fort getFort(int x, int y, int z)
{
for (Fort f : getForts())
for (Fort f : _forts)
{
if (f.checkIfInZone(x, y, z))
{
@ -124,9 +124,9 @@ public final class FortManager implements InstanceListManager
public final int getFortIndex(int fortId)
{
Fort fort;
for (int i = 0; i < getForts().size(); i++)
for (int i = 0; i < _forts.size(); i++)
{
fort = getForts().get(i);
fort = _forts.get(i);
if ((fort != null) && (fort.getResidenceId() == fortId))
{
return i;
@ -143,9 +143,9 @@ public final class FortManager implements InstanceListManager
public final int getFortIndex(int x, int y, int z)
{
Fort fort;
for (int i = 0; i < getForts().size(); i++)
for (int i = 0; i < _forts.size(); i++)
{
fort = getForts().get(i);
fort = _forts.get(i);
if ((fort != null) && fort.checkIfInZone(x, y, z))
{
return i;
@ -156,10 +156,6 @@ public final class FortManager implements InstanceListManager
public final List<Fort> getForts()
{
if (_forts == null)
{
_forts = new ArrayList<>();
}
return _forts;
}
@ -172,11 +168,11 @@ public final class FortManager implements InstanceListManager
{
while (rs.next())
{
getForts().add(new Fort(rs.getInt("id")));
_forts.add(new Fort(rs.getInt("id")));
}
_log.info(getClass().getSimpleName() + ": Loaded: " + getForts().size() + " fortress");
for (Fort fort : getForts())
_log.info(getClass().getSimpleName() + ": Loaded: " + _forts.size() + " fortress");
for (Fort fort : _forts)
{
fort.getSiege().getSiegeGuardManager().loadSiegeGuard();
}

View File

@ -23,6 +23,8 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -35,7 +37,7 @@ public final class FortSiegeGuardManager
private static final Logger _log = Logger.getLogger(FortSiegeGuardManager.class.getName());
private final Fort _fort;
private final HashMap<Integer, ArrayList<L2Spawn>> _siegeGuards = new HashMap<>();
private final Map<Integer, List<L2Spawn>> _siegeGuards = new HashMap<>();
public FortSiegeGuardManager(Fort fort)
{
@ -49,7 +51,7 @@ public final class FortSiegeGuardManager
{
try
{
final ArrayList<L2Spawn> monsterList = getSiegeGuardSpawn().get(getFort().getResidenceId());
final List<L2Spawn> monsterList = _siegeGuards.get(getFort().getResidenceId());
if (monsterList != null)
{
for (L2Spawn spawnDat : monsterList)
@ -79,8 +81,7 @@ public final class FortSiegeGuardManager
{
try
{
final ArrayList<L2Spawn> monsterList = getSiegeGuardSpawn().get(getFort().getResidenceId());
final List<L2Spawn> monsterList = _siegeGuards.get(getFort().getResidenceId());
if (monsterList != null)
{
for (L2Spawn spawnDat : monsterList)
@ -112,7 +113,7 @@ public final class FortSiegeGuardManager
ps.setInt(1, fortId);
try (ResultSet rs = ps.executeQuery())
{
ArrayList<L2Spawn> siegeGuardSpawns = new ArrayList<>();
final List<L2Spawn> siegeGuardSpawns = new ArrayList<>();
while (rs.next())
{
final L2Spawn spawn = new L2Spawn(rs.getInt("npcId"));
@ -140,7 +141,7 @@ public final class FortSiegeGuardManager
return _fort;
}
public final HashMap<Integer, ArrayList<L2Spawn>> getSiegeGuardSpawn()
public final Map<Integer, List<L2Spawn>> getSiegeGuardSpawn()
{
return _siegeGuards;
}

View File

@ -25,10 +25,11 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -53,15 +54,15 @@ public final class FortSiegeManager
private int _attackerMaxClans = 500; // Max number of clans
// Fort Siege settings
private HashMap<Integer, ArrayList<FortSiegeSpawn>> _commanderSpawnList;
private HashMap<Integer, ArrayList<CombatFlag>> _flagList;
private Map<Integer, List<FortSiegeSpawn>> _commanderSpawnList;
private Map<Integer, List<CombatFlag>> _flagList;
private boolean _justToTerritory = true; // Changeable in fortsiege.properties
private int _flagMaxCount = 1; // Changeable in fortsiege.properties
private int _siegeClanMinLevel = 4; // Changeable in fortsiege.properties
private int _siegeLength = 60; // Time in minute. Changeable in fortsiege.properties
private int _countDownLength = 10; // Time in minute. Changeable in fortsiege.properties
private int _suspiciousMerchantRespawnDelay = 180; // Time in minute. Changeable in fortsiege.properties
private List<FortSiege> _sieges;
private final List<FortSiege> _sieges = new ArrayList<>();
protected FortSiegeManager()
{
@ -137,13 +138,13 @@ public final class FortSiegeManager
_suspiciousMerchantRespawnDelay = Integer.decode(siegeSettings.getProperty("SuspiciousMerchantRespawnDelay", "180"));
// Siege spawns settings
_commanderSpawnList = new HashMap<>();
_flagList = new HashMap<>();
_commanderSpawnList = new ConcurrentHashMap<>();
_flagList = new ConcurrentHashMap<>();
for (Fort fort : FortManager.getInstance().getForts())
{
ArrayList<FortSiegeSpawn> _commanderSpawns = new ArrayList<>();
ArrayList<CombatFlag> _flagSpawns = new ArrayList<>();
List<FortSiegeSpawn> commanderSpawns = new ArrayList<>();
List<CombatFlag> flagSpawns = new ArrayList<>();
for (int i = 1; i < 5; i++)
{
final String _spawnParams = siegeSettings.getProperty(fort.getName().replace(" ", "") + "Commander" + i, "");
@ -161,7 +162,7 @@ public final class FortSiegeManager
int heading = Integer.parseInt(st.nextToken());
int npc_id = Integer.parseInt(st.nextToken());
_commanderSpawns.add(new FortSiegeSpawn(fort.getResidenceId(), x, y, z, heading, npc_id, i));
commanderSpawns.add(new FortSiegeSpawn(fort.getResidenceId(), x, y, z, heading, npc_id, i));
}
catch (Exception e)
{
@ -169,7 +170,7 @@ public final class FortSiegeManager
}
}
_commanderSpawnList.put(fort.getResidenceId(), _commanderSpawns);
_commanderSpawnList.put(fort.getResidenceId(), commanderSpawns);
for (int i = 1; i < 4; i++)
{
@ -187,33 +188,25 @@ public final class FortSiegeManager
int z = Integer.parseInt(st.nextToken());
int flag_id = Integer.parseInt(st.nextToken());
_flagSpawns.add(new CombatFlag(fort.getResidenceId(), x, y, z, 0, flag_id));
flagSpawns.add(new CombatFlag(fort.getResidenceId(), x, y, z, 0, flag_id));
}
catch (Exception e)
{
_log.warning("Error while loading flag(s) for " + fort.getName() + " fort.");
}
}
_flagList.put(fort.getResidenceId(), _flagSpawns);
_flagList.put(fort.getResidenceId(), flagSpawns);
}
}
public final ArrayList<FortSiegeSpawn> getCommanderSpawnList(int _fortId)
public final List<FortSiegeSpawn> getCommanderSpawnList(int _fortId)
{
if (_commanderSpawnList.containsKey(_fortId))
{
return _commanderSpawnList.get(_fortId);
}
return null;
return _commanderSpawnList.get(_fortId);
}
public final ArrayList<CombatFlag> getFlagList(int _fortId)
public final List<CombatFlag> getFlagList(int _fortId)
{
if (_flagList.containsKey(_fortId))
{
return _flagList.get(_fortId);
}
return null;
return _flagList.get(_fortId);
}
public final int getAttackerMaxClans()
@ -270,19 +263,11 @@ public final class FortSiegeManager
public final List<FortSiege> getSieges()
{
if (_sieges == null)
{
_sieges = new ArrayList<>();
}
return _sieges;
}
public final void addSiege(FortSiege fortSiege)
{
if (_sieges == null)
{
_sieges = new ArrayList<>();
}
_sieges.add(fortSiege);
}
@ -300,7 +285,7 @@ public final class FortSiegeManager
final Fort fort = FortManager.getInstance().getFort(player);
final ArrayList<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
final List<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
for (CombatFlag cf : fcf)
{
if (cf.getCombatFlagInstance() == item)
@ -347,9 +332,7 @@ public final class FortSiegeManager
public void dropCombatFlag(L2PcInstance player, int fortId)
{
final Fort fort = FortManager.getInstance().getFortById(fortId);
final ArrayList<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
final List<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
for (CombatFlag cf : fcf)
{
if (cf.getPlayerObjectId() == player.getObjectId())

View File

@ -24,10 +24,12 @@ import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ScheduledFuture;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -120,9 +122,9 @@ public final class FourSepulchersManager
};
// @formatter:on
protected Map<Integer, Boolean> _archonSpawned = new HashMap<>();
protected Map<Integer, Boolean> _hallInUse = new HashMap<>();
protected Map<Integer, L2PcInstance> _challengers = new HashMap<>();
protected Map<Integer, Boolean> _archonSpawned = new ConcurrentHashMap<>();
protected Map<Integer, Boolean> _hallInUse = new ConcurrentHashMap<>();
protected Map<Integer, L2PcInstance> _challengers = new ConcurrentHashMap<>();
protected Map<Integer, int[]> _startHallSpawns = new HashMap<>();
protected Map<Integer, Integer> _hallGateKeepers = new HashMap<>();
protected Map<Integer, Integer> _keyBoxNpc = new HashMap<>();
@ -143,7 +145,7 @@ public final class FourSepulchersManager
protected List<L2Spawn> _managers;
protected List<L2Spawn> _dukeFinalSpawns;
protected List<L2Spawn> _emperorsGraveSpawns;
protected List<L2Npc> _allMobs = new ArrayList<>();
protected List<L2Npc> _allMobs = new CopyOnWriteArrayList<>();
private long _attackTimeEnd = 0;
private long _coolDownTimeEnd = 0;
@ -260,19 +262,15 @@ public final class FourSepulchersManager
_hallInUse.put(31923, false);
_hallInUse.put(31924, false);
if (_archonSpawned.size() != 0)
for (int npcId : _archonSpawned.keySet())
{
Set<Integer> npcIdSet = _archonSpawned.keySet();
for (int npcId : npcIdSet)
{
_archonSpawned.put(npcId, false);
}
_archonSpawned.put(npcId, false);
}
}
protected void spawnManagers()
{
_managers = new ArrayList<>();
_managers = new CopyOnWriteArrayList<>();
for (int npcId = 31921; npcId <= 31924; npcId++)
{
@ -972,7 +970,7 @@ public final class FourSepulchersManager
if (Config.FS_PARTY_MEMBER_COUNT > 1)
{
List<L2PcInstance> members = new ArrayList<>();
final List<L2PcInstance> members = new LinkedList<>();
for (L2PcInstance mem : player.getParty().getMembers())
{
if (!mem.isDead() && Util.checkIfInRange(700, player, mem, true))
@ -1006,7 +1004,7 @@ public final class FourSepulchersManager
}
if ((Config.FS_PARTY_MEMBER_COUNT <= 1) && player.isInParty())
{
List<L2PcInstance> members = new ArrayList<>();
final List<L2PcInstance> members = new LinkedList<>();
for (L2PcInstance mem : player.getParty().getMembers())
{
if (!mem.isDead() && Util.checkIfInRange(700, player, mem, true))
@ -1084,9 +1082,8 @@ public final class FourSepulchersManager
return;
}
List<L2Spawn> monsterList;
List<L2SepulcherMonsterInstance> mobs = new ArrayList<>();
final List<L2SepulcherMonsterInstance> mobs = new CopyOnWriteArrayList<>();
final List<L2Spawn> monsterList;
if (Rnd.get(2) == 0)
{
monsterList = _physicalMonsters.get(npcId);
@ -1366,11 +1363,6 @@ public final class FourSepulchersManager
{
for (L2Npc mob : _allMobs)
{
if (mob == null)
{
continue;
}
try
{
if (mob.getSpawn() != null)

View File

@ -29,6 +29,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -59,13 +61,13 @@ public final class GrandBossManager implements IStorable
protected static Logger _log = Logger.getLogger(GrandBossManager.class.getName());
protected static Map<Integer, L2GrandBossInstance> _bosses = new HashMap<>();
protected static final Map<Integer, L2GrandBossInstance> BOSSES = new ConcurrentHashMap<>();
protected static Map<Integer, StatsSet> _storedInfo = new HashMap<>();
private final Map<Integer, Integer> _bossStatus = new HashMap<>();
private final List<L2BossZone> _zones = new ArrayList<>();
private final List<L2BossZone> _zones = new CopyOnWriteArrayList<>();
protected GrandBossManager()
{
@ -276,13 +278,13 @@ public final class GrandBossManager implements IStorable
{
if (boss != null)
{
_bosses.put(boss.getId(), boss);
BOSSES.put(boss.getId(), boss);
}
}
public L2GrandBossInstance getBoss(int bossId)
{
return _bosses.get(bossId);
return BOSSES.get(bossId);
}
public StatsSet getStatsSet(int bossId)
@ -329,7 +331,7 @@ public final class GrandBossManager implements IStorable
}
for (Entry<Integer, StatsSet> e : _storedInfo.entrySet())
{
final L2GrandBossInstance boss = _bosses.get(e.getKey());
final L2GrandBossInstance boss = BOSSES.get(e.getKey());
StatsSet info = e.getValue();
if ((boss == null) || (info == null))
{
@ -379,7 +381,7 @@ public final class GrandBossManager implements IStorable
{
try (Connection con = L2DatabaseFactory.getInstance().getConnection())
{
L2GrandBossInstance boss = _bosses.get(bossId);
L2GrandBossInstance boss = BOSSES.get(bossId);
StatsSet info = _storedInfo.get(bossId);
if (statusOnly || (boss == null) || (info == null))
@ -428,7 +430,7 @@ public final class GrandBossManager implements IStorable
{
storeMe();
_bosses.clear();
BOSSES.clear();
_storedInfo.clear();
_bossStatus.clear();
_zones.clear();

View File

@ -24,28 +24,29 @@ import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.Instance;
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author evill33t, GodKratos
*/
public final class InstanceManager implements IXmlReader
{
private static final Map<Integer, Instance> _instanceList = new HashMap<>();
private final Map<Integer, InstanceWorld> _instanceWorlds = new HashMap<>();
private static final Map<Integer, Instance> INSTANCES = new ConcurrentHashMap<>();
private final Map<Integer, InstanceWorld> _instanceWorlds = new ConcurrentHashMap<>();
private int _dynamic = 300000;
// InstanceId Names
private static final Map<Integer, String> _instanceIdNames = new HashMap<>();
private final Map<Integer, Map<Integer, Long>> _playerInstanceTimes = new HashMap<>();
private final Map<Integer, Map<Integer, Long>> _playerInstanceTimes = new ConcurrentHashMap<>();
// SQL Queries
private static final String ADD_INSTANCE_TIME = "INSERT INTO character_instance_time (charId,instanceId,time) values (?,?,?) ON DUPLICATE KEY UPDATE time=?";
private static final String RESTORE_INSTANCE_TIMES = "SELECT instanceId,time FROM character_instance_time WHERE charId=?";
@ -54,10 +55,10 @@ public final class InstanceManager implements IXmlReader
protected InstanceManager()
{
// Creates the multiverse.
_instanceList.put(-1, new Instance(-1, "multiverse"));
INSTANCES.put(-1, new Instance(-1, "multiverse"));
LOGGER.info(getClass().getSimpleName() + ": Multiverse Instance created.");
// Creates the universe.
_instanceList.put(0, new Instance(0, "universe"));
INSTANCES.put(0, new Instance(0, "universe"));
LOGGER.info(getClass().getSimpleName() + ": Universe Instance created.");
load();
}
@ -166,7 +167,7 @@ public final class InstanceManager implements IXmlReader
{
return; // already restored
}
_playerInstanceTimes.put(playerObjId, new HashMap<Integer, Long>());
_playerInstanceTimes.put(playerObjId, new ConcurrentHashMap<>());
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement(RESTORE_INSTANCE_TIMES))
{
@ -270,18 +271,15 @@ public final class InstanceManager implements IXmlReader
{
return;
}
final Instance temp = _instanceList.get(instanceid);
final Instance temp = INSTANCES.get(instanceid);
if (temp != null)
{
temp.removeNpcs();
temp.removePlayers();
temp.removeDoors();
temp.cancelTimer();
_instanceList.remove(instanceid);
if (_instanceWorlds.containsKey(instanceid))
{
_instanceWorlds.remove(instanceid);
}
INSTANCES.remove(instanceid);
_instanceWorlds.remove(instanceid);
}
}
@ -291,7 +289,7 @@ public final class InstanceManager implements IXmlReader
*/
public Instance getInstance(int instanceid)
{
return _instanceList.get(instanceid);
return INSTANCES.get(instanceid);
}
/**
@ -299,7 +297,7 @@ public final class InstanceManager implements IXmlReader
*/
public Map<Integer, Instance> getInstances()
{
return _instanceList;
return INSTANCES;
}
/**
@ -308,7 +306,7 @@ public final class InstanceManager implements IXmlReader
*/
public int getPlayerInstance(int objectId)
{
for (Instance temp : _instanceList.values())
for (Instance temp : INSTANCES.values())
{
if (temp == null)
{
@ -336,7 +334,7 @@ public final class InstanceManager implements IXmlReader
}
final Instance instance = new Instance(id);
_instanceList.put(id, instance);
INSTANCES.put(id, instance);
return true;
}
@ -353,7 +351,7 @@ public final class InstanceManager implements IXmlReader
}
final Instance instance = new Instance(id);
_instanceList.put(id, instance);
INSTANCES.put(id, instance);
instance.loadInstanceTemplate(template);
return true;
}
@ -375,7 +373,7 @@ public final class InstanceManager implements IXmlReader
}
}
final Instance instance = new Instance(_dynamic);
_instanceList.put(_dynamic, instance);
INSTANCES.put(_dynamic, instance);
if (template != null)
{
instance.loadInstanceTemplate(template);

View File

@ -23,8 +23,8 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -43,7 +43,7 @@ public final class ItemsOnGroundManager implements Runnable
{
private static final Logger _log = Logger.getLogger(ItemsOnGroundManager.class.getName());
private final List<L2ItemInstance> _items = new ArrayList<>();
private final List<L2ItemInstance> _items = new CopyOnWriteArrayList<>();
protected ItemsOnGroundManager()
{

View File

@ -27,7 +27,6 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.model.L2MapRegion;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.Location;
@ -42,6 +41,7 @@ import com.l2jserver.gameserver.model.entity.Instance;
import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
import com.l2jserver.gameserver.model.zone.type.L2ClanHallZone;
import com.l2jserver.gameserver.model.zone.type.L2RespawnZone;
import com.l2jserver.util.data.xml.IXmlReader;
/**
* @author Nyaran

View File

@ -21,7 +21,6 @@ package com.l2jserver.gameserver.instancemanager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
@ -49,7 +48,7 @@ public final class MercTicketManager
{
private static final Logger _log = Logger.getLogger(MercTicketManager.class.getName());
private static final List<L2ItemInstance> _droppedTickets = new CopyOnWriteArrayList<>();
private static final List<L2ItemInstance> DROPPED_TICKETS = new CopyOnWriteArrayList<>();
// TODO: move all these values into siege.properties
// max tickets per merc type = 10 + (castleid * 2)?
@ -139,7 +138,7 @@ public final class MercTicketManager
public void reload()
{
_droppedTickets.clear();
DROPPED_TICKETS.clear();
load();
}
@ -194,7 +193,7 @@ public final class MercTicketManager
dropticket.dropMe(null, x, y, z);
dropticket.setDropTime(0); // avoids it from being removed by the auto item destroyer
L2World.getInstance().storeObject(dropticket);
_droppedTickets.add(dropticket);
DROPPED_TICKETS.add(dropticket);
}
break;
}
@ -203,7 +202,7 @@ public final class MercTicketManager
rs.close();
s.close();
_log.info(getClass().getSimpleName() + ": Loaded: " + _droppedTickets.size() + " Mercenary Tickets");
_log.info(getClass().getSimpleName() + ": Loaded: " + DROPPED_TICKETS.size() + " Mercenary Tickets");
}
catch (Exception e)
{
@ -235,7 +234,7 @@ public final class MercTicketManager
}
int count = 0;
for (L2ItemInstance ticket : _droppedTickets)
for (L2ItemInstance ticket : DROPPED_TICKETS)
{
if ((ticket != null) && (ticket.getId() == itemId))
{
@ -268,7 +267,7 @@ public final class MercTicketManager
}
int count = 0;
for (L2ItemInstance ticket : _droppedTickets)
for (L2ItemInstance ticket : DROPPED_TICKETS)
{
if ((ticket != null) && (getTicketCastleId(ticket.getId()) == castleId))
{
@ -289,7 +288,7 @@ public final class MercTicketManager
public boolean isTooCloseToAnotherTicket(int x, int y, int z)
{
for (L2ItemInstance item : _droppedTickets)
for (L2ItemInstance item : DROPPED_TICKETS)
{
double dx = x - item.getX();
double dy = y - item.getY();
@ -339,7 +338,7 @@ public final class MercTicketManager
dropticket.setDropTime(0); // avoids it from beeing removed by the auto item destroyer
L2World.getInstance().storeObject(dropticket); // add to the world
// and keep track of this ticket in the list
_droppedTickets.add(dropticket);
DROPPED_TICKETS.add(dropticket);
return NPC_IDS[i];
}
@ -370,15 +369,13 @@ public final class MercTicketManager
*/
public void deleteTickets(int castleId)
{
Iterator<L2ItemInstance> it = _droppedTickets.iterator();
while (it.hasNext())
for (L2ItemInstance item : DROPPED_TICKETS)
{
L2ItemInstance item = it.next();
if ((item != null) && (getTicketCastleId(item.getId()) == castleId))
{
item.decayMe();
L2World.getInstance().removeObject(item);
it.remove();
DROPPED_TICKETS.remove(item);
}
}
}
@ -409,7 +406,7 @@ public final class MercTicketManager
(new SiegeGuardManager(castle)).removeMerc(npcId, item.getX(), item.getY(), item.getZ());
}
_droppedTickets.remove(item);
DROPPED_TICKETS.remove(item);
}
public int[] getItemIds()
@ -419,7 +416,7 @@ public final class MercTicketManager
public final List<L2ItemInstance> getDroppedTickets()
{
return _droppedTickets;
return DROPPED_TICKETS;
}
/**

Some files were not shown because too many files have changed in this diff Show More