Procházet zdrojové kódy

BETA: Unimplementing Trove.

Reviewed by: xban1x, Nos, UnAfraid
Zoey76 před 11 roky
rodič
revize
83868a4649

+ 14 - 17
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/BotReportTable.java

@@ -6,6 +6,7 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.Calendar;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.logging.Level;
@@ -28,14 +29,12 @@ import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
-import gnu.trove.map.hash.TIntLongHashMap;
-
 /**
  * @author BiggBoss
  */
 public final class BotReportTable
 {
-	static final Logger _log = Logger.getLogger(BotReportTable.class.getName());
+	private static final Logger _log = Logger.getLogger(BotReportTable.class.getName());
 	
 	private static final int COLUMN_BOT_ID = 1;
 	private static final int COLUMN_REPORTER_ID = 2;
@@ -51,7 +50,7 @@ public final class BotReportTable
 	private static final String SQL_INSERT_REPORTED_CHAR_DATA = "INSERT INTO bot_reported_char_data VALUES (?,?,?)";
 	private static final String SQL_CLEAR_REPORTED_CHAR_DATA = "DELETE FROM bot_reported_char_data";
 	
-	private TIntLongHashMap _ipRegistry;
+	private Map<Integer, Long> _ipRegistry;
 	private Map<Integer, ReporterCharData> _charRegistry;
 	private Map<Integer, ReportedCharData> _reports;
 	private Map<Integer, PunishHolder> _punishments;
@@ -60,7 +59,7 @@ public final class BotReportTable
 	{
 		if (Config.BOTREPORT_ENABLE)
 		{
-			_ipRegistry = new TIntLongHashMap();
+			_ipRegistry = new HashMap<>();
 			_charRegistry = new ConcurrentHashMap<>();
 			_reports = new ConcurrentHashMap<>();
 			_punishments = new ConcurrentHashMap<>();
@@ -173,8 +172,8 @@ public final class BotReportTable
 			st = con.prepareStatement(SQL_INSERT_REPORTED_CHAR_DATA);
 			for (Map.Entry<Integer, ReportedCharData> entrySet : _reports.entrySet())
 			{
-				TIntLongHashMap reportTable = entrySet.getValue()._reporters;
-				for (int reporterId : reportTable.keys())
+				Map<Integer, Long> reportTable = entrySet.getValue()._reporters;
+				for (int reporterId : reportTable.keySet())
 				{
 					st.setInt(1, entrySet.getKey());
 					st.setInt(2, reporterId);
@@ -437,18 +436,16 @@ public final class BotReportTable
 	
 	/**
 	 * Checks and return if the abstrat barrier specified by an integer (map key) has accomplished the waiting time
-	 * @param map (a TIntLongHashMap to study (Int = barrier, Long = fully qualified unix time)
+	 * @param map (a Map to study (Int = barrier, Long = fully qualified unix time)
 	 * @param objectId (an existent map key)
 	 * @return true if the time has passed.
 	 */
-	private static boolean timeHasPassed(TIntLongHashMap map, int objectId)
+	private static boolean timeHasPassed(Map<Integer, Long> map, int objectId)
 	{
-		long time;
-		if ((time = map.get(objectId)) != map.getNoEntryValue())
+		if (map.containsKey(objectId))
 		{
-			return (System.currentTimeMillis() - time) > Config.BOTREPORT_REPORT_DELAY;
+			return (System.currentTimeMillis() - map.get(objectId)) > Config.BOTREPORT_REPORT_DELAY;
 		}
-		
 		return true;
 	}
 	
@@ -493,11 +490,11 @@ public final class BotReportTable
 	 */
 	private final class ReportedCharData
 	{
-		TIntLongHashMap _reporters;
+		Map<Integer, Long> _reporters;
 		
 		ReportedCharData()
 		{
-			_reporters = new TIntLongHashMap();
+			_reporters = new HashMap<>();
 		}
 		
 		int getReportCount()
@@ -507,7 +504,7 @@ public final class BotReportTable
 		
 		boolean alredyReportedBy(int objectId)
 		{
-			return _reporters.contains(objectId);
+			return _reporters.containsKey(objectId);
 		}
 		
 		void addReporter(int objectId, long reportTime)
@@ -522,7 +519,7 @@ public final class BotReportTable
 				return false;
 			}
 			
-			for (int reporterId : _reporters.keys())
+			for (int reporterId : _reporters.keySet())
 			{
 				if (clan.isMember(reporterId))
 				{

+ 4 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java

@@ -49,8 +49,6 @@ import com.l2jserver.gameserver.model.interfaces.ISkillsHolder;
 import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 /**
  * This class loads and manage the characters and pledges skills trees.<br>
  * Here can be found the following skill trees:<br>
@@ -92,8 +90,8 @@ public final class SkillTreesData extends DocumentParser
 	private static final Map<Integer, L2SkillLearn> _gameMasterAuraSkillTree = new HashMap<>();
 	
 	// Checker, sorted arrays of hash codes
-	private TIntObjectHashMap<int[]> _skillsByClassIdHashCodes; // Occupation skills
-	private TIntObjectHashMap<int[]> _skillsByRaceHashCodes; // Race-specific Transformations
+	private Map<Integer, int[]> _skillsByClassIdHashCodes; // Occupation skills
+	private Map<Integer, int[]> _skillsByRaceHashCodes; // Race-specific Transformations
 	private int[] _allSkillsHashCodes; // Fishing, Collection, Transformations, Common Skills.
 	
 	private boolean _loading = true;
@@ -1093,7 +1091,7 @@ public final class SkillTreesData extends DocumentParser
 		// Class specific skills:
 		Map<Integer, L2SkillLearn> tempMap;
 		final Set<ClassId> keySet = _classSkillTrees.keySet();
-		_skillsByClassIdHashCodes = new TIntObjectHashMap<>(keySet.size());
+		_skillsByClassIdHashCodes = new HashMap<>(keySet.size());
 		for (ClassId cls : keySet)
 		{
 			i = 0;
@@ -1110,7 +1108,7 @@ public final class SkillTreesData extends DocumentParser
 		
 		// Race specific skills from Fishing and Transformation skill trees.
 		final List<Integer> list = new ArrayList<>();
-		_skillsByRaceHashCodes = new TIntObjectHashMap<>(PcRace.values().length);
+		_skillsByRaceHashCodes = new HashMap<>(PcRace.values().length);
 		for (PcRace r : PcRace.values())
 		{
 			for (L2SkillLearn s : _fishingSkillTree.values())

+ 8 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonEffectsTable.java

@@ -18,13 +18,13 @@
  */
 package com.l2jserver.gameserver.datatables;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.skills.Skill;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 /**
  * @author Nyaran
  */
@@ -35,16 +35,16 @@ public class SummonEffectsTable
 	// -> key: charObjectId, value: classIndex Map
 	// --> key: classIndex, value: servitors Map
 	// ---> key: servitorSkillId, value: Effects list
-	private final TIntObjectHashMap<TIntObjectHashMap<TIntObjectHashMap<List<SummonEffect>>>> _servitorEffects = new TIntObjectHashMap<>();
+	private final Map<Integer, Map<Integer, Map<Integer, List<SummonEffect>>>> _servitorEffects = new HashMap<>();
 	
-	public TIntObjectHashMap<TIntObjectHashMap<TIntObjectHashMap<List<SummonEffect>>>> getServitorEffectsOwner()
+	public Map<Integer, Map<Integer, Map<Integer, List<SummonEffect>>>> getServitorEffectsOwner()
 	{
 		return _servitorEffects;
 	}
 	
-	public TIntObjectHashMap<List<SummonEffect>> getServitorEffects(L2PcInstance owner)
+	public Map<Integer, List<SummonEffect>> getServitorEffects(L2PcInstance owner)
 	{
-		final TIntObjectHashMap<TIntObjectHashMap<List<SummonEffect>>> servitorMap = _servitorEffects.get(owner.getObjectId());
+		final Map<Integer, Map<Integer, List<SummonEffect>>> servitorMap = _servitorEffects.get(owner.getObjectId());
 		if (servitorMap == null)
 		{
 			return null;
@@ -53,9 +53,9 @@ public class SummonEffectsTable
 	}
 	
 	/** Pets **/
-	private final TIntObjectHashMap<List<SummonEffect>> _petEffects = new TIntObjectHashMap<>(); // key: petItemObjectId, value: Effects list
+	private final Map<Integer, List<SummonEffect>> _petEffects = new HashMap<>(); // key: petItemObjectId, value: Effects list
 	
-	public TIntObjectHashMap<List<SummonEffect>> getPetEffects()
+	public Map<Integer, List<SummonEffect>> getPetEffects()
 	{
 		return _petEffects;
 	}
@@ -82,9 +82,6 @@ public class SummonEffectsTable
 		}
 	}
 	
-	/**
-	 * @return
-	 */
 	public static SummonEffectsTable getInstance()
 	{
 		return SingletonHolder._instance;

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/idfactory/CompactionIDFactory.java

@@ -45,7 +45,7 @@ public class CompactionIDFactory extends IdFactory
 		{
 			// con.createStatement().execute("drop table if exists tmp_obj_id");
 			
-			int[] tmp_obj_ids = extractUsedObjectIDTable();
+			Integer[] tmp_obj_ids = extractUsedObjectIDTable();
 			
 			int N = tmp_obj_ids.length;
 			for (int idx = 0; idx < N; idx++)
@@ -62,7 +62,7 @@ public class CompactionIDFactory extends IdFactory
 		}
 	}
 	
-	private int insertUntil(int[] tmp_obj_ids, int idx, int N, Connection con) throws SQLException
+	private int insertUntil(Integer[] tmp_obj_ids, int idx, int N, Connection con) throws SQLException
 	{
 		int id = tmp_obj_ids[idx];
 		if (id == _curOID)

+ 8 - 17
L2J_Server_BETA/java/com/l2jserver/gameserver/idfactory/IdFactory.java

@@ -23,14 +23,15 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 
-import gnu.trove.list.array.TIntArrayList;
-
 /**
  * This class ...
  * @version $Revision: 1.3.2.1.2.7 $ $Date: 2005/04/11 10:06:12 $
@@ -342,30 +343,21 @@ public abstract class IdFactory
 	 * @throws Exception
 	 * @throws SQLException
 	 */
-	protected final int[] extractUsedObjectIDTable() throws Exception
+	protected final Integer[] extractUsedObjectIDTable() throws Exception
 	{
+		final List<Integer> temp = new ArrayList<>();
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			Statement s = con.createStatement())
 		{
-			final TIntArrayList temp = new TIntArrayList();
 			
-			String ensureCapacityQuery = "SELECT ";
 			String extractUsedObjectIdsQuery = "";
 			
 			for (String[] tblClmn : ID_EXTRACTS)
 			{
-				ensureCapacityQuery += "(SELECT COUNT(*) FROM " + tblClmn[0] + ") + ";
 				extractUsedObjectIdsQuery += "SELECT " + tblClmn[1] + " FROM " + tblClmn[0] + " UNION ";
 			}
-			ensureCapacityQuery = ensureCapacityQuery.substring(0, ensureCapacityQuery.length() - 3); // Remove the last " + "
-			extractUsedObjectIdsQuery = extractUsedObjectIdsQuery.substring(0, extractUsedObjectIdsQuery.length() - 7); // Remove the last " UNION "
-			
-			try (ResultSet rs = s.executeQuery(ensureCapacityQuery))
-			{
-				rs.next();
-				temp.ensureCapacity(rs.getInt(1));
-			}
 			
+			extractUsedObjectIdsQuery = extractUsedObjectIdsQuery.substring(0, extractUsedObjectIdsQuery.length() - 7); // Remove the last " UNION "
 			try (ResultSet rs = s.executeQuery(extractUsedObjectIdsQuery))
 			{
 				while (rs.next())
@@ -373,10 +365,9 @@ public abstract class IdFactory
 					temp.add(rs.getInt(1));
 				}
 			}
-			
-			temp.sort();
-			return temp.toArray();
 		}
+		Collections.sort(temp);
+		return temp.toArray(new Integer[temp.size()]);
 	}
 	
 	public boolean isInitialized()

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/idfactory/StackIDFactory.java

@@ -48,7 +48,7 @@ public class StackIDFactory extends IdFactory
 		{
 			// con.createStatement().execute("drop table if exists tmp_obj_id");
 			
-			int[] tmp_obj_ids = extractUsedObjectIDTable();
+			Integer[] tmp_obj_ids = extractUsedObjectIDTable();
 			if (tmp_obj_ids.length > 0)
 			{
 				_curOID = tmp_obj_ids[tmp_obj_ids.length - 1];
@@ -71,7 +71,7 @@ public class StackIDFactory extends IdFactory
 		}
 	}
 	
-	private int insertUntil(int[] tmp_obj_ids, int idx, int N, Connection con) throws SQLException
+	private int insertUntil(Integer[] tmp_obj_ids, int idx, int N, Connection con) throws SQLException
 	{
 		int id = tmp_obj_ids[idx];
 		if (id == _tempOID)

+ 12 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DimensionalRiftManager.java

@@ -22,6 +22,8 @@ import java.io.File;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -48,15 +50,14 @@ import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
-import gnu.trove.map.hash.TByteObjectHashMap;
-
 /**
+ * Dimensional Rift manager.
  * @author kombat
  */
 public final class DimensionalRiftManager
 {
 	private static Logger _log = Logger.getLogger(DimensionalRiftManager.class.getName());
-	private final TByteObjectHashMap<TByteObjectHashMap<DimensionalRiftRoom>> _rooms = new TByteObjectHashMap<>(7);
+	private final Map<Byte, Map<Byte, DimensionalRiftRoom>> _rooms = new HashMap<>(7);
 	private final int DIMENSIONAL_FRAGMENT_ITEM_ID = 7079;
 	
 	public static DimensionalRiftManager getInstance()
@@ -101,7 +102,7 @@ public final class DimensionalRiftManager
 				
 				if (!_rooms.containsKey(type))
 				{
-					_rooms.put(type, new TByteObjectHashMap<DimensionalRiftRoom>(9));
+					_rooms.put(type, new HashMap<Byte, DimensionalRiftRoom>(9));
 				}
 				
 				_rooms.get(type).put(room_id, new DimensionalRiftRoom(type, room_id, xMin, xMax, yMin, yMax, z1, z2, xT, yT, zT, isBossRoom));
@@ -112,12 +113,12 @@ public final class DimensionalRiftManager
 			_log.log(Level.WARNING, "Can't load Dimension Rift zones. " + e.getMessage(), e);
 		}
 		
-		int typeSize = _rooms.keys().length;
+		int typeSize = _rooms.keySet().size();
 		int roomSize = 0;
 		
-		for (byte b : _rooms.keys())
+		for (byte b : _rooms.keySet())
 		{
-			roomSize += _rooms.get(b).keys().length;
+			roomSize += _rooms.get(b).keySet().size();
 		}
 		
 		_log.info(getClass().getSimpleName() + ": Loaded " + typeSize + " room types with " + roomSize + " rooms.");
@@ -230,9 +231,9 @@ public final class DimensionalRiftManager
 	
 	public void reload()
 	{
-		for (byte b : _rooms.keys())
+		for (byte b : _rooms.keySet())
 		{
-			for (byte i : _rooms.get(b).keys())
+			for (byte i : _rooms.get(b).keySet())
 			{
 				_rooms.get(b).get(i).getSpawns().clear();
 			}
@@ -449,7 +450,7 @@ public final class DimensionalRiftManager
 	public boolean isAllowedEnter(byte type)
 	{
 		int count = 0;
-		for (DimensionalRiftRoom room : _rooms.get(type).valueCollection())
+		for (DimensionalRiftRoom room : _rooms.get(type).values())
 		{
 			if (room.isPartyInside())
 			{
@@ -462,7 +463,7 @@ public final class DimensionalRiftManager
 	public FastList<Byte> getFreeRooms(byte type)
 	{
 		FastList<Byte> list = new FastList<>();
-		for (DimensionalRiftRoom room : _rooms.get(type).valueCollection())
+		for (DimensionalRiftRoom room : _rooms.get(type).values())
 		{
 			if (!room.isPartyInside())
 			{

+ 14 - 19
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/GrandBossManager.java

@@ -24,7 +24,9 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -44,10 +46,8 @@ import com.l2jserver.gameserver.model.interfaces.IStorable;
 import com.l2jserver.gameserver.model.zone.type.L2BossZone;
 import com.l2jserver.util.L2FastList;
 
-import gnu.trove.map.hash.TIntIntHashMap;
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 /**
+ * Grand Boss manager.
  * @author DaRkRaGe Revised by Emperorc
  */
 public final class GrandBossManager implements IStorable
@@ -60,13 +60,13 @@ public final class GrandBossManager implements IStorable
 	
 	protected static Logger _log = Logger.getLogger(GrandBossManager.class.getName());
 	
-	protected static Map<Integer, L2GrandBossInstance> _bosses;
+	protected static Map<Integer, L2GrandBossInstance> _bosses = new FastMap<>();
 	
-	protected static TIntObjectHashMap<StatsSet> _storedInfo;
+	protected static Map<Integer, StatsSet> _storedInfo = new HashMap<>();
 	
-	private TIntIntHashMap _bossStatus;
+	private final Map<Integer, Integer> _bossStatus = new HashMap<>();
 	
-	private L2FastList<L2BossZone> _zones;
+	private final L2FastList<L2BossZone> _zones = new L2FastList<>();
 	
 	protected GrandBossManager()
 	{
@@ -75,11 +75,6 @@ public final class GrandBossManager implements IStorable
 	
 	private void init()
 	{
-		_zones = new L2FastList<>();
-		
-		_bosses = new FastMap<>();
-		_storedInfo = new TIntObjectHashMap<>();
-		_bossStatus = new TIntIntHashMap();
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			Statement s = con.createStatement();
 			ResultSet rs = s.executeQuery("SELECT * from grandboss_data ORDER BY boss_id"))
@@ -333,16 +328,16 @@ public final class GrandBossManager implements IStorable
 					}
 				}
 			}
-			for (Integer bossId : _storedInfo.keys())
+			for (Entry<Integer, StatsSet> e : _storedInfo.entrySet())
 			{
-				final L2GrandBossInstance boss = _bosses.get(bossId);
-				StatsSet info = _storedInfo.get(bossId);
+				final L2GrandBossInstance boss = _bosses.get(e.getKey());
+				StatsSet info = e.getValue();
 				if ((boss == null) || (info == null))
 				{
 					try (PreparedStatement update = con.prepareStatement(UPDATE_GRAND_BOSS_DATA2))
 					{
-						update.setInt(1, _bossStatus.get(bossId));
-						update.setInt(2, bossId);
+						update.setInt(1, _bossStatus.get(e.getKey()));
+						update.setInt(2, e.getKey());
 						update.executeUpdate();
 						update.clearParameters();
 					}
@@ -365,8 +360,8 @@ public final class GrandBossManager implements IStorable
 						}
 						update.setDouble(6, hp);
 						update.setDouble(7, mp);
-						update.setInt(8, _bossStatus.get(bossId));
-						update.setInt(9, bossId);
+						update.setInt(8, _bossStatus.get(e.getKey()));
+						update.setInt(9, e.getKey());
 						update.executeUpdate();
 						update.clearParameters();
 					}

+ 4 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/Elementals.java

@@ -18,16 +18,17 @@
  */
 package com.l2jserver.gameserver.model;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.skills.funcs.FuncAdd;
 import com.l2jserver.gameserver.model.skills.funcs.LambdaConst;
 import com.l2jserver.gameserver.model.stats.Stats;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 public final class Elementals
 {
-	private static final TIntObjectHashMap<ElementalItems> TABLE = new TIntObjectHashMap<>();
+	private static final Map<Integer, ElementalItems> TABLE = new HashMap<>();
 	
 	static
 	{

+ 13 - 16
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2EnchantSkillLearn.java

@@ -18,20 +18,17 @@
  */
 package com.l2jserver.gameserver.model;
 
+import java.util.Set;
+import java.util.TreeMap;
+
 import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
 import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
 
-import gnu.trove.map.hash.TIntIntHashMap;
-
-/**
- * This class ...
- * @version $Revision: 1.2.4.2 $ $Date: 2005/03/27 15:29:33 $
- */
 public final class L2EnchantSkillLearn
 {
 	private final int _id;
 	private final int _baseLvl;
-	private final TIntIntHashMap _enchantRoutes = new TIntIntHashMap();
+	private final TreeMap<Integer, Integer> _enchantRoutes = new TreeMap<>();
 	
 	public L2EnchantSkillLearn(int id, int baseLvl)
 	{
@@ -77,12 +74,12 @@ public final class L2EnchantSkillLearn
 	
 	public L2EnchantSkillGroup getFirstRouteGroup()
 	{
-		return EnchantSkillGroupsData.getInstance().getEnchantSkillGroupById(_enchantRoutes.values()[0]);
+		return EnchantSkillGroupsData.getInstance().getEnchantSkillGroupById(_enchantRoutes.firstEntry().getValue());
 	}
 	
-	public int[] getAllRoutes()
+	public Set<Integer> getAllRoutes()
 	{
-		return _enchantRoutes.keys();
+		return _enchantRoutes.keySet();
 	}
 	
 	public int getMinSkillLevel(int level)
@@ -96,12 +93,12 @@ public final class L2EnchantSkillLearn
 	
 	public boolean isMaxEnchant(int level)
 	{
-		int enchantType = L2EnchantSkillLearn.getEnchantRoute(level);
-		if ((enchantType < 1) || !_enchantRoutes.contains(enchantType))
+		int enchantType = getEnchantRoute(level);
+		if ((enchantType < 1) || !_enchantRoutes.containsKey(enchantType))
 		{
 			return false;
 		}
-		int index = L2EnchantSkillLearn.getEnchantIndex(level);
+		int index = getEnchantIndex(level);
 		
 		if ((index + 1) >= EnchantSkillGroupsData.getInstance().getEnchantSkillGroupById(_enchantRoutes.get(enchantType)).getEnchantGroupDetails().size())
 		{
@@ -112,12 +109,12 @@ public final class L2EnchantSkillLearn
 	
 	public EnchantSkillHolder getEnchantSkillHolder(int level)
 	{
-		int enchantType = L2EnchantSkillLearn.getEnchantRoute(level);
-		if ((enchantType < 1) || !_enchantRoutes.contains(enchantType))
+		int enchantType = getEnchantRoute(level);
+		if ((enchantType < 1) || !_enchantRoutes.containsKey(enchantType))
 		{
 			return null;
 		}
-		int index = L2EnchantSkillLearn.getEnchantIndex(level);
+		int index = getEnchantIndex(level);
 		L2EnchantSkillGroup group = EnchantSkillGroupsData.getInstance().getEnchantSkillGroupById(_enchantRoutes.get(enchantType));
 		
 		if (index < 0)

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java

@@ -1045,7 +1045,7 @@ public class L2PetInstance extends L2Summon
 		}
 		
 		// Clear list for overwrite
-		if (SummonEffectsTable.getInstance().getPetEffects().contains(getControlObjectId()))
+		if (SummonEffectsTable.getInstance().getPetEffects().containsKey(getControlObjectId()))
 		{
 			SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()).clear();
 		}
@@ -1104,7 +1104,7 @@ public class L2PetInstance extends L2Summon
 					ps2.setInt(5, ++buff_index);
 					ps2.execute();
 					
-					if (!SummonEffectsTable.getInstance().getPetEffects().contains(getControlObjectId()))
+					if (!SummonEffectsTable.getInstance().getPetEffects().containsKey(getControlObjectId()))
 					{
 						SummonEffectsTable.getInstance().getPetEffects().put(getControlObjectId(), new FastList<SummonEffect>());
 					}
@@ -1126,7 +1126,7 @@ public class L2PetInstance extends L2Summon
 			PreparedStatement ps1 = con.prepareStatement(RESTORE_SKILL_SAVE);
 			PreparedStatement ps2 = con.prepareStatement(DELETE_SKILL_SAVE))
 		{
-			if (!SummonEffectsTable.getInstance().getPetEffects().contains(getControlObjectId()))
+			if (!SummonEffectsTable.getInstance().getPetEffects().containsKey(getControlObjectId()))
 			{
 				ps1.setInt(1, getControlObjectId());
 				try (ResultSet rset = ps1.executeQuery())
@@ -1143,7 +1143,7 @@ public class L2PetInstance extends L2Summon
 						
 						if (skill.hasEffects(EffectScope.GENERAL))
 						{
-							if (!SummonEffectsTable.getInstance().getPetEffects().contains(getControlObjectId()))
+							if (!SummonEffectsTable.getInstance().getPetEffects().containsKey(getControlObjectId()))
 							{
 								SummonEffectsTable.getInstance().getPetEffects().put(getControlObjectId(), new FastList<SummonEffect>());
 							}

+ 16 - 16
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java

@@ -21,7 +21,9 @@ package com.l2jserver.gameserver.model.actor.instance;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.Future;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -49,8 +51,6 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SetSummonRemainTime;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 /**
  * @author UnAfraid
  */
@@ -233,7 +233,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 	public final void stopSkillEffects(boolean removed, int skillId)
 	{
 		super.stopSkillEffects(removed, skillId);
-		final TIntObjectHashMap<List<SummonEffect>> servitorEffects = SummonEffectsTable.getInstance().getServitorEffects(getOwner());
+		final Map<Integer, List<SummonEffect>> servitorEffects = SummonEffectsTable.getInstance().getServitorEffects(getOwner());
 		if (servitorEffects != null)
 		{
 			final List<SummonEffect> effects = servitorEffects.get(getReferenceSkill());
@@ -279,7 +279,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 		}
 		
 		// Clear list for overwrite
-		if (SummonEffectsTable.getInstance().getServitorEffectsOwner().contains(getOwner().getObjectId()) && SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).contains(getOwner().getClassIndex()) && SummonEffectsTable.getInstance().getServitorEffects(getOwner()).contains(getReferenceSkill()))
+		if (SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) && SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) && SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
 		{
 			SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).clear();
 		}
@@ -344,15 +344,15 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 						ps2.execute();
 						
 						// XXX: Rework me!
-						if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().contains(getOwner().getObjectId()))
+						if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()))
 						{
-							SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new TIntObjectHashMap<TIntObjectHashMap<List<SummonEffect>>>());
+							SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<Integer, Map<Integer, List<SummonEffect>>>());
 						}
-						if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).contains(getOwner().getClassIndex()))
+						if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()))
 						{
-							SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new TIntObjectHashMap<List<SummonEffect>>());
+							SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<Integer, List<SummonEffect>>());
 						}
-						if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).contains(getReferenceSkill()))
+						if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
 						{
 							SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), new FastList<SummonEffect>());
 						}
@@ -378,7 +378,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 		
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
 		{
-			if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().contains(getOwner().getObjectId()) || !SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).contains(getOwner().getClassIndex()) || !SummonEffectsTable.getInstance().getServitorEffects(getOwner()).contains(getReferenceSkill()))
+			if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) || !SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) || !SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
 			{
 				try (PreparedStatement statement = con.prepareStatement(RESTORE_SKILL_SAVE))
 				{
@@ -400,15 +400,15 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 							// XXX: Rework me!
 							if (skill.hasEffects(EffectScope.GENERAL))
 							{
-								if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().contains(getOwner().getObjectId()))
+								if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()))
 								{
-									SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new TIntObjectHashMap<TIntObjectHashMap<List<SummonEffect>>>());
+									SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<Integer, Map<Integer, List<SummonEffect>>>());
 								}
-								if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).contains(getOwner().getClassIndex()))
+								if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()))
 								{
-									SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new TIntObjectHashMap<List<SummonEffect>>());
+									SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<Integer, List<SummonEffect>>());
 								}
-								if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).contains(getReferenceSkill()))
+								if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
 								{
 									SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), new FastList<SummonEffect>());
 								}
@@ -434,7 +434,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 		}
 		finally
 		{
-			if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().contains(getOwner().getObjectId()) || !SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).contains(getOwner().getClassIndex()) || !SummonEffectsTable.getInstance().getServitorEffects(getOwner()).contains(getReferenceSkill()))
+			if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) || !SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) || !SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
 			{
 				return;
 			}

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Fort.java

@@ -23,8 +23,10 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
@@ -65,8 +67,6 @@ import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 import com.l2jserver.gameserver.network.serverpackets.PledgeShowInfoUpdate;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
-import gnu.trove.map.hash.TIntIntHashMap;
-
 public final class Fort extends AbstractResidence
 {
 	protected static final Logger _log = Logger.getLogger(Fort.class.getName());
@@ -91,7 +91,7 @@ public final class Fort extends AbstractResidence
 	private final FastList<L2Spawn> _npcCommanders = new FastList<>();
 	private final FastList<L2Spawn> _specialEnvoys = new FastList<>();
 	
-	private final TIntIntHashMap _envoyCastles = new TIntIntHashMap(2);
+	private final Map<Integer, Integer> _envoyCastles = new HashMap<>(2);
 	private final Set<Integer> _availableCastles = new HashSet<>(1);
 	
 	/** Fortress Functions */

+ 12 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/model/itemauction/ItemAuctionInstance.java

@@ -25,8 +25,11 @@ import java.sql.SQLException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Comparator;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -50,8 +53,6 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.util.Rnd;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 public final class ItemAuctionInstance
 {
 	protected static final Logger _log = Logger.getLogger(ItemAuctionInstance.class.getName());
@@ -81,7 +82,7 @@ public final class ItemAuctionInstance
 	
 	private final int _instanceId;
 	private final AtomicInteger _auctionIds;
-	private final TIntObjectHashMap<ItemAuction> _auctions;
+	private final Map<Integer, ItemAuction> _auctions;
 	private final ArrayList<AuctionItem> _items;
 	private final AuctionDateGenerator _dateGenerator;
 	
@@ -93,7 +94,7 @@ public final class ItemAuctionInstance
 	{
 		_instanceId = instanceId;
 		_auctionIds = auctionIds;
-		_auctions = new TIntObjectHashMap<>();
+		_auctions = new HashMap<>();
 		_items = new ArrayList<>();
 		
 		final NamedNodeMap nanode = node.getAttributes();
@@ -246,7 +247,7 @@ public final class ItemAuctionInstance
 	
 	final void checkAndSetCurrentAndNextAuction()
 	{
-		final ItemAuction[] auctions = _auctions.values(new ItemAuction[0]);
+		final ItemAuction[] auctions = _auctions.values().toArray(new ItemAuction[_auctions.size()]);
 		
 		ItemAuction currentAuction = null;
 		ItemAuction nextAuction = null;
@@ -301,7 +302,7 @@ public final class ItemAuctionInstance
 			{
 				Arrays.sort(auctions, itemAuctionComparator);
 				
-				// just to make sure we won`t skip any auction because of little different times
+				// just to make sure we won't skip any auction because of little different times
 				final long currentTime = System.currentTimeMillis();
 				
 				for (final ItemAuction auction : auctions)
@@ -366,8 +367,8 @@ public final class ItemAuctionInstance
 	
 	public final ItemAuction[] getAuctionsByBidder(final int bidderObjId)
 	{
-		final ItemAuction[] auctions = getAuctions();
-		final ArrayList<ItemAuction> stack = new ArrayList<>(auctions.length);
+		final Collection<ItemAuction> auctions = getAuctions();
+		final ArrayList<ItemAuction> stack = new ArrayList<>(auctions.size());
 		for (final ItemAuction auction : getAuctions())
 		{
 			if (auction.getAuctionState() != ItemAuctionState.CREATED)
@@ -382,13 +383,13 @@ public final class ItemAuctionInstance
 		return stack.toArray(new ItemAuction[stack.size()]);
 	}
 	
-	public final ItemAuction[] getAuctions()
+	public final Collection<ItemAuction> getAuctions()
 	{
-		final ItemAuction[] auctions;
+		final Collection<ItemAuction> auctions;
 		
 		synchronized (_auctions)
 		{
-			auctions = _auctions.values(new ItemAuction[0]);
+			auctions = _auctions.values();
 		}
 		
 		return auctions;

+ 13 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/model/olympiad/Olympiad.java

@@ -25,6 +25,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Calendar;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Properties;
@@ -48,8 +49,6 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.util.L2FastList;
 
-import gnu.trove.map.hash.TIntIntHashMap;
-
 /**
  * @author godson
  */
@@ -60,7 +59,7 @@ public class Olympiad
 	
 	private static final Map<Integer, StatsSet> _nobles = new FastMap<>();
 	protected static L2FastList<StatsSet> _heroesToBe;
-	private static final TIntIntHashMap _noblesRank = new TIntIntHashMap();
+	private static final Map<Integer, Integer> _noblesRank = new HashMap<>();
 	
 	public static final String OLYMPIAD_HTML_PATH = "data/html/olympiad/";
 	private static final String OLYMPIAD_LOAD_DATA = "SELECT current_cycle, period, olympiad_end, validation_end, " + "next_weekly_change FROM olympiad_data WHERE id = 0";
@@ -318,7 +317,7 @@ public class Olympiad
 	public void loadNoblesRank()
 	{
 		_noblesRank.clear();
-		TIntIntHashMap tmpPlace = new TIntIntHashMap();
+		Map<Integer, Integer> tmpPlace = new HashMap<>();
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			PreparedStatement statement = con.prepareStatement(GET_ALL_CLASSIFIED_NOBLESS);
 			ResultSet rset = statement.executeQuery())
@@ -345,27 +344,27 @@ public class Olympiad
 			rank3++;
 			rank4++;
 		}
-		for (int charId : tmpPlace.keys())
+		for (Entry<Integer, Integer> chr : tmpPlace.entrySet())
 		{
-			if (tmpPlace.get(charId) <= rank1)
+			if (chr.getValue() <= rank1)
 			{
-				_noblesRank.put(charId, 1);
+				_noblesRank.put(chr.getKey(), 1);
 			}
-			else if (tmpPlace.get(charId) <= rank2)
+			else if (tmpPlace.get(chr.getKey()) <= rank2)
 			{
-				_noblesRank.put(charId, 2);
+				_noblesRank.put(chr.getKey(), 2);
 			}
-			else if (tmpPlace.get(charId) <= rank3)
+			else if (tmpPlace.get(chr.getKey()) <= rank3)
 			{
-				_noblesRank.put(charId, 3);
+				_noblesRank.put(chr.getKey(), 3);
 			}
-			else if (tmpPlace.get(charId) <= rank4)
+			else if (tmpPlace.get(chr.getKey()) <= rank4)
 			{
-				_noblesRank.put(charId, 4);
+				_noblesRank.put(chr.getKey(), 4);
 			}
 			else
 			{
-				_noblesRank.put(charId, 5);
+				_noblesRank.put(chr.getKey(), 5);
 			}
 		}
 	}