Selaa lähdekoodia

BETA: Some misc changes:
* Loggers review:
* Added getClass().getSimpleName() as prefix.
* Added some missing loggers.
* Removed useless spammy debug logs.
* !L2Manor:
* Moved to datatables as ManorData.
* XML Reading to DocumentParser.
* Other:
* Some trove -> Java maps or Javolution (When thread-safety is needed)

Rumen Nikiforov 12 vuotta sitten
vanhempi
sitoutus
69daf9c498
100 muutettua tiedostoa jossa 1298 lisäystä ja 1886 poistoa
  1. 13 15
      L2J_Server_BETA/java/com/l2jserver/gameserver/GameServer.java
  2. 2 11
      L2J_Server_BETA/java/com/l2jserver/gameserver/ItemsAutoDestroy.java
  3. 1 82
      L2J_Server_BETA/java/com/l2jserver/gameserver/LoginServerThread.java
  4. 3 32
      L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSigns.java
  5. 6 84
      L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSignsFestival.java
  6. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/Shutdown.java
  7. 0 24
      L2J_Server_BETA/java/com/l2jserver/gameserver/TradeController.java
  8. 2 20
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2PlayerAI.java
  9. 5 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/AdminTable.java
  10. 1 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ArmorSetsData.java
  11. 21 37
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/AugmentationData.java
  12. 9 12
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharNameTable.java
  13. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharSummonTable.java
  14. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharTemplateTable.java
  15. 7 30
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ClanTable.java
  16. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/DoorTable.java
  17. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantGroupsData.java
  18. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantHPBonusData.java
  19. 1 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EventDroplist.java
  20. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HelperBuffTable.java
  21. 16 17
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HerbDropTable.java
  22. 6 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ItemTable.java
  23. 0 110
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/LevelUpData.java
  24. 364 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ManorData.java
  25. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/MerchantPriceConfigTable.java
  26. 21 23
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/MultiSell.java
  27. 6 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcBufferTable.java
  28. 7 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcTable.java
  29. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcWalkerRoutesData.java
  30. 23 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/OfflineTradersTable.java
  31. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetDataTable.java
  32. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetNameTable.java
  33. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/RecipeData.java
  34. 25 19
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTable.java
  35. 14 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SpawnTable.java
  36. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/StaticObjects.java
  37. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonItemsData.java
  38. 19 25
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonSkillsTable.java
  39. 13 13
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TeleportLocationTable.java
  40. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TerritoryTable.java
  41. 11 11
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/UITable.java
  42. 2 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentEngine.java
  43. 13 13
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/AirShipManager.java
  44. 58 68
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/AntiFeedManager.java
  45. 9 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/AuctionManager.java
  46. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CHSiegeManager.java
  47. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CastleManager.java
  48. 14 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CastleManorManager.java
  49. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ClanHallManager.java
  50. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CoupleManager.java
  51. 10 28
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CursedWeaponsManager.java
  52. 1 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DayNightSpawnManager.java
  53. 8 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DimensionalRiftManager.java
  54. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DuelManager.java
  55. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FortManager.java
  56. 0 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FortSiegeGuardManager.java
  57. 35 28
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FourSepulchersManager.java
  58. 5 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/GlobalVariablesManager.java
  59. 38 18
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/GraciaSeedsManager.java
  60. 14 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/GrandBossManager.java
  61. 8 11
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/HellboundManager.java
  62. 2 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/InstanceManager.java
  63. 10 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ItemAuctionManager.java
  64. 54 66
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ItemsOnGroundManager.java
  65. 21 21
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MailManager.java
  66. 0 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MapRegionManager.java
  67. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MercTicketManager.java
  68. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/PetitionManager.java
  69. 6 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/QuestManager.java
  70. 21 18
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/RaidBossPointsManager.java
  71. 12 12
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/RaidBossSpawnManager.java
  72. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/SiegeGuardManager.java
  73. 10 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/SiegeManager.java
  74. 33 33
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/TerritoryWarManager.java
  75. 9 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/TransformationManager.java
  76. 10 15
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ZoneManager.java
  77. 1 28
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/AutoChatHandler.java
  78. 0 20
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/AutoSpawnHandler.java
  79. 0 464
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Manor.java
  80. 96 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Seed.java
  81. 4 17
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Attackable.java
  82. 17 56
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java
  83. 9 55
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  84. 2 23
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Castle.java
  85. 1 17
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/ClanHall.java
  86. 0 16
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Fort.java
  87. 7 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Instance.java
  88. 0 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/clanhall/AuctionableHall.java
  89. 9 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Item.java
  90. 7 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/Action.java
  91. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestProcureCropList.java
  92. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowCropInfo.java
  93. 9 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowCropSetting.java
  94. 9 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowManorDefaultInfo.java
  95. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowSeedInfo.java
  96. 10 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowSeedSetting.java
  97. 5 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowSellCropList.java
  98. 0 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/Task.java
  99. 25 23
      L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/TaskManager.java
  100. 24 0
      L2J_Server_BETA/java/com/l2jserver/util/CloseShieldedInputStream.java

+ 13 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/GameServer.java

@@ -57,7 +57,7 @@ import com.l2jserver.gameserver.datatables.HerbDropTable;
 import com.l2jserver.gameserver.datatables.HitConditionBonus;
 import com.l2jserver.gameserver.datatables.InitialEquipmentData;
 import com.l2jserver.gameserver.datatables.ItemTable;
-import com.l2jserver.gameserver.datatables.LevelUpData;
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.datatables.MerchantPriceConfigTable;
 import com.l2jserver.gameserver.datatables.MultiSell;
 import com.l2jserver.gameserver.datatables.NpcBufferTable;
@@ -113,7 +113,6 @@ import com.l2jserver.gameserver.instancemanager.WalkingManager;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.AutoChatHandler;
 import com.l2jserver.gameserver.model.AutoSpawnHandler;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.PartyMatchRoomList;
 import com.l2jserver.gameserver.model.PartyMatchWaitingList;
@@ -176,22 +175,22 @@ public class GameServer
 		long serverLoadStart = System.currentTimeMillis();
 		
 		gameServer = this;
-		_log.finest("used mem:" + getUsedMemoryMB() + "MB");
+		_log.finest(getClass().getSimpleName() + ": used mem:" + getUsedMemoryMB() + "MB");
 		
 		if (Config.SERVER_VERSION != null)
 		{
-			_log.info("L2J Server Version:    " + Config.SERVER_VERSION);
+			_log.info(getClass().getSimpleName() + ": L2J Server Version:    " + Config.SERVER_VERSION);
 		}
 		if (Config.DATAPACK_VERSION != null)
 		{
-			_log.info("L2J Datapack Version:  " + Config.DATAPACK_VERSION);
+			_log.info(getClass().getSimpleName() + ": L2J Datapack Version:  " + Config.DATAPACK_VERSION);
 		}
 		
 		_idFactory = IdFactory.getInstance();
 		
 		if (!_idFactory.isInitialized())
 		{
-			_log.severe("Could not read object IDs from DB. Please Check Your Data.");
+			_log.severe(getClass().getSimpleName() + ": Could not read object IDs from DB. Please Check Your Data.");
 			throw new Exception("Could not initialize the ID factory");
 		}
 		
@@ -242,7 +241,6 @@ public class GameServer
 		HitConditionBonus.getInstance();
 		CharTemplateTable.getInstance();
 		CharNameTable.getInstance();
-		LevelUpData.getInstance();
 		AdminTable.getInstance();
 		RaidBossPointsManager.getInstance();
 		PetDataTable.getInstance();
@@ -286,7 +284,7 @@ public class GameServer
 		TerritoryWarManager.getInstance();
 		CastleManorManager.getInstance();
 		MercTicketManager.getInstance();
-		L2Manor.getInstance();
+		ManorData.getInstance();
 		
 		printSection("Olympiad");
 		Olympiad.getInstance();
@@ -314,14 +312,14 @@ public class GameServer
 		
 		try
 		{
-			_log.info("Loading Server Scripts");
+			_log.info(getClass().getSimpleName() + ": Loading Server Scripts");
 			File scripts = new File(Config.DATAPACK_ROOT, "data/scripts.cfg");
 			if(!Config.ALT_DEV_NO_HANDLERS || !Config.ALT_DEV_NO_QUESTS)
 				L2ScriptEngineManager.getInstance().executeScriptList(scripts);
 		}
 		catch (IOException ioe)
 		{
-			_log.severe("Failed loading scripts.cfg, no script going to be loaded");
+			_log.severe(getClass().getSimpleName() + ": Failed loading scripts.cfg, no script going to be loaded");
 		}
 		
 		QuestManager.getInstance().report();
@@ -370,7 +368,7 @@ public class GameServer
 		KnownListUpdateTaskManager.getInstance();
 		
 		if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS)
-			OfflineTradersTable.restoreOfflineTraders();
+			OfflineTradersTable.getInstance().restoreOfflineTraders();
 		
 		if (Config.DEADLOCK_DETECTOR)
 		{
@@ -386,7 +384,7 @@ public class GameServer
 		// allocation pool
 		long freeMem = (Runtime.getRuntime().maxMemory() - Runtime.getRuntime().totalMemory() + Runtime.getRuntime().freeMemory()) / 1048576;
 		long totalMem = Runtime.getRuntime().maxMemory() / 1048576;
-		_log.info("GameServer Started, free memory " + freeMem + " Mb of " + totalMem + " Mb");
+		_log.info(getClass().getSimpleName() + ": Started, free memory " + freeMem + " Mb of " + totalMem + " Mb");
 		Toolkit.getDefaultToolkit().beep();
 		
 		_loginThread = LoginServerThread.getInstance();
@@ -413,7 +411,7 @@ public class GameServer
 			}
 			catch (UnknownHostException e1)
 			{
-				_log.log(Level.SEVERE, "WARNING: The GameServer bind address is invalid, using all avaliable IPs. Reason: " + e1.getMessage(), e1);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": WARNING: The GameServer bind address is invalid, using all avaliable IPs. Reason: " + e1.getMessage(), e1);
 			}
 		}
 		
@@ -423,7 +421,7 @@ public class GameServer
 		}
 		catch (IOException e)
 		{
-			_log.log(Level.SEVERE, "FATAL: Failed to open server socket. Reason: " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": FATAL: Failed to open server socket. Reason: " + e.getMessage(), e);
 			System.exit(1);
 		}
 		_selectorThread.start();
@@ -465,7 +463,7 @@ public class GameServer
 		}
 		else
 		{
-			_log.info("Telnet server is currently disabled.");
+			_log.info(GameServer.class.getSimpleName() + ": Telnet server is currently disabled.");
 		}
 	}
 	

+ 2 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/ItemsAutoDestroy.java

@@ -15,7 +15,6 @@
 package com.l2jserver.gameserver;
 
 import java.util.List;
-import java.util.logging.Logger;
 
 import javolution.util.FastList;
 
@@ -26,9 +25,7 @@ import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
 
 public class ItemsAutoDestroy
-{
-	private static final Logger _log = Logger.getLogger(ItemsAutoDestroy.class.getName());
-	
+{	
 	protected List<L2ItemInstance> _items = null;
 	protected static long _sleep;
 	
@@ -54,9 +51,6 @@ public class ItemsAutoDestroy
 	
 	public synchronized void removeItems()
 	{
-		if (Config.DEBUG)
-			_log.info("[ItemsAutoDestroy] : " + _items.size() + " items to check.");
-		
 		if (_items.isEmpty())
 			return;
 		
@@ -98,10 +92,7 @@ public class ItemsAutoDestroy
 						ItemsOnGroundManager.getInstance().removeObject(item);
 				}
 			}
-		}
-		
-		if (Config.DEBUG)
-			_log.info("[ItemsAutoDestroy] : " + _items.size() + " items remaining.");
+		}		
 	}
 	
 	protected class CheckItemsForDestroy extends Thread

+ 1 - 82
L2J_Server_BETA/java/com/l2jserver/gameserver/LoginServerThread.java

@@ -211,19 +211,11 @@ public class LoginServerThread extends Thread
 						break;
 					}
 					
-					if (Config.DEBUG)
-					{
-						_log.warning("[C]\n" + Util.printData(incoming));
-					}
 					int packetType = incoming[0] & 0xff;
 					switch (packetType)
 					{
 						case 0x00:
 							InitLS init = new InitLS(incoming);
-							if (Config.DEBUG)
-							{
-								_log.info("Init received");
-							}
 							if (init.getRevision() != REVISION)
 							{
 								// TODO: revision mismatch
@@ -236,10 +228,6 @@ public class LoginServerThread extends Thread
 								BigInteger modulus = new BigInteger(init.getRSAKey());
 								RSAPublicKeySpec kspec1 = new RSAPublicKeySpec(modulus, RSAKeyGenParameterSpec.F4);
 								_publicKey = (RSAPublicKey) kfac.generatePublic(kspec1);
-								if (Config.DEBUG)
-								{
-									_log.info("RSA key set up");
-								}
 							}
 							
 							catch (GeneralSecurityException e)
@@ -250,22 +238,10 @@ public class LoginServerThread extends Thread
 							// send the blowfish key through the rsa encryption
 							BlowFishKey bfk = new BlowFishKey(_blowfishKey, _publicKey);
 							sendPacket(bfk);
-							if (Config.DEBUG)
-							{
-								_log.info("Sent new blowfish key");
-							}
 							// now, only accept packet with the new encryption
 							_blowfish = new NewCrypt(_blowfishKey);
-							if (Config.DEBUG)
-							{
-								_log.info("Changed blowfish key");
-							}
 							AuthRequest ar = new AuthRequest(_requestID, _acceptAlternate, _hexID, _gamePort, _reserveHost, _maxPlayer, _subnets, _hosts);
 							sendPacket(ar);
-							if (Config.DEBUG)
-							{
-								_log.info("Sent AuthRequest to login");
-							}
 							break;
 						case 0x01:
 							LoginServerFail lsf = new LoginServerFail(incoming);
@@ -338,10 +314,6 @@ public class LoginServerThread extends Thread
 							{
 								if (par.isAuthed())
 								{
-									if (Config.DEBUG)
-									{
-										_log.info("Login accepted player " + wcToRemove.account + " waited(" + (GameTimeController.getGameTicks() - wcToRemove.timestamp) + "ms)");
-									}
 									PlayerInGame pig = new PlayerInGame(par.getAccount());
 									sendPacket(pig);
 									wcToRemove.gameClient.setState(GameClientState.AUTHED);
@@ -376,10 +348,7 @@ public class LoginServerThread extends Thread
 			}
 			catch (UnknownHostException e)
 			{
-				if (Config.DEBUG)
-				{
-					_log.log(Level.WARNING, "", e);
-				}
+				_log.log(Level.WARNING, "", e);	
 			}
 			catch (SocketException e)
 			{
@@ -423,10 +392,6 @@ public class LoginServerThread extends Thread
 	 */
 	public void addWaitingClientAndSendRequest(String acc, L2GameClient client, SessionKey key)
 	{
-		if (Config.DEBUG)
-		{
-			_log.info(String.valueOf(key));
-		}
 		WaitingClient wc = new WaitingClient(acc, client, key);
 		synchronized (_waitingClients)
 		{
@@ -440,10 +405,6 @@ public class LoginServerThread extends Thread
 		catch (IOException e)
 		{
 			_log.warning("Error while sending player auth request");
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -488,10 +449,6 @@ public class LoginServerThread extends Thread
 		catch (IOException e)
 		{
 			_log.warning("Error while sending logout packet to login");
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 		finally
 		{
@@ -523,10 +480,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -544,10 +497,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -566,10 +515,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -588,10 +533,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -658,10 +599,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -674,10 +611,6 @@ public class LoginServerThread extends Thread
 	{
 		byte[] data = sl.getContent();
 		NewCrypt.appendChecksum(data);
-		if (Config.DEBUG)
-		{
-			_log.finest("[S]\n" + Util.printData(data));
-		}
 		_blowfish.crypt(data, 0, data.length);
 		
 		int len = data.length + 2;
@@ -724,10 +657,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -744,10 +673,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -767,10 +692,6 @@ public class LoginServerThread extends Thread
 		}
 		catch (IOException e)
 		{
-			if (Config.DEBUG)
-			{
-				_log.log(Level.WARNING, "", e);
-			}
 		}
 	}
 	
@@ -860,7 +781,6 @@ public class LoginServerThread extends Thread
 	
 	private static class WaitingClient
 	{
-		public int timestamp;
 		public String account;
 		public L2GameClient gameClient;
 		public SessionKey session;
@@ -874,7 +794,6 @@ public class LoginServerThread extends Thread
 		public WaitingClient(String acc, L2GameClient client, SessionKey key)
 		{
 			account = acc;
-			timestamp = GameTimeController.getGameTicks();
 			gameClient = client;
 			session = key;
 		}

+ 3 - 32
L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSigns.java

@@ -766,10 +766,6 @@ public class SevenSigns
 					sevenDat.set("blue_stones", rs.getInt("blue_stones"));
 					sevenDat.set("ancient_adena_amount", rs.getDouble("ancient_adena_amount"));
 					sevenDat.set("contribution_score", rs.getDouble("contribution_score"));
-					
-					if (Config.DEBUG)
-						_log.info("SevenSigns: Loaded data from DB for char ID " + charObjId + " (" + sevenDat.getString("cabal") + ")");
-					
 					_signsPlayerData.put(charObjId, sevenDat);
 				}
 			}
@@ -816,10 +812,7 @@ public class SevenSigns
 	 * Should be called on period change and shutdown only.
 	 */
 	public void saveSevenSignsData()
-	{
-		if (Config.DEBUG)
-			_log.info("SevenSigns: Saving data to disk.");
-		
+	{	
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			PreparedStatement ps = con.prepareStatement(UPDATE_PLAYER))
 		{
@@ -835,10 +828,6 @@ public class SevenSigns
 				ps.setInt(8, sevenDat.getInteger("charId"));
 				ps.execute();
 				ps.clearParameters();
-				if (Config.DEBUG)
-				{
-					_log.info("SevenSigns: Updated data in database for char ID " + sevenDat.getInteger("charId") + " (" + sevenDat.getString("cabal") + ")");
-				}
 			}
 		}
 		catch (SQLException e)
@@ -902,8 +891,6 @@ public class SevenSigns
 			_lastSave = Calendar.getInstance();
 			ps.setLong(18 + SevenSignsFestival.FESTIVAL_COUNT, _lastSave.getTimeInMillis());
 			ps.execute();
-			if (Config.DEBUG)
-				_log.info("SevenSigns: Updated data in database.");
 		}
 		catch (SQLException e)
 		{
@@ -916,10 +903,7 @@ public class SevenSigns
 	 * Primarily used when beginning a new cycle, and should otherwise never be called.
 	 */
 	protected void resetPlayerData()
-	{
-		if (Config.DEBUG)
-			_log.info("SevenSigns: Resetting player data for new event period.");
-		
+	{	
 		int charObjId;
 		
 		// Reset each player's contribution data as well as seal and cabal.
@@ -979,9 +963,6 @@ public class SevenSigns
 				ps.setString(2, getCabalShortName(chosenCabal));
 				ps.setInt(3, chosenSeal);
 				ps.execute();
-				
-				if (Config.DEBUG)
-					_log.info("SevenSigns: Inserted data in DB for char ID " + currPlayerData.getInteger("charId") + " (" + currPlayerData.getString("cabal") + ")");
 			}
 			catch (SQLException e)
 			{
@@ -1187,17 +1168,7 @@ public class SevenSigns
 	 * Should only ever called at the beginning of a new cycle.
 	 */
 	protected void calcNewSealOwners()
-	{
-		if (Config.DEBUG)
-		{
-			_log.info("SevenSigns: (Avarice) Dawn = " + _signsDawnSealTotals.get(SEAL_AVARICE) + ", Dusk = "
-					+ _signsDuskSealTotals.get(SEAL_AVARICE));
-			_log.info("SevenSigns: (Gnosis) Dawn = " + _signsDawnSealTotals.get(SEAL_GNOSIS) + ", Dusk = "
-					+ _signsDuskSealTotals.get(SEAL_GNOSIS));
-			_log.info("SevenSigns: (Strife) Dawn = " + _signsDawnSealTotals.get(SEAL_STRIFE) + ", Dusk = "
-					+ _signsDuskSealTotals.get(SEAL_STRIFE));
-		}
-		
+	{	
 		for (Integer currSeal : _signsDawnSealTotals.keySet())
 		{
 			int prevSealOwner = _signsSealOwners.get(currSeal);

+ 6 - 84
L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSignsFestival.java

@@ -932,10 +932,7 @@ public class SevenSignsFestival implements SpawnListener
 	 * and past high score data from the database.
 	 */
 	protected void restoreFestivalData()
-	{
-		if (Config.DEBUG)
-			_log.info("SevenSignsFestival: Restoring festival data. Current SS Cycle: " + _signsCycle);
-		
+	{	
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			Statement s = con.createStatement();
 			ResultSet rs = s.executeQuery("SELECT festivalId, cabal, cycle, date, score, members " + "FROM seven_signs_festival"))
@@ -954,10 +951,6 @@ public class SevenSignsFestival implements SpawnListener
 				festivalDat.set("score", rs.getInt("score"));
 				festivalDat.set("members", rs.getString("members"));
 				
-				if (Config.DEBUG)
-					_log.info("SevenSignsFestival: Loaded data from DB for (Cycle = " + festivalCycle + ", Oracle = " + cabal
-							+ ", Festival = " + getFestivalName(festivalId));
-				
 				if (cabal.equals("dawn"))
 					festivalId += FESTIVAL_COUNT;
 				
@@ -1006,8 +999,6 @@ public class SevenSignsFestival implements SpawnListener
 		{
 			_log.log(Level.SEVERE, "SevenSignsFestival: Failed to load configuration: " + e.getMessage(), e);
 		}
-		if (Config.DEBUG)
-			_log.info("SevenSignsFestival: Loaded data from database.");
 	}
 	
 	/**
@@ -1019,10 +1010,7 @@ public class SevenSignsFestival implements SpawnListener
 	 * @param updateSettings
 	 */
 	public void saveFestivalData(boolean updateSettings)
-	{
-		if (Config.DEBUG)
-			_log.info("SevenSignsFestival: Saving festival data to disk.");
-		
+	{	
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			PreparedStatement psUpdate = con.prepareStatement("UPDATE seven_signs_festival SET date=?, score=?, members=? WHERE cycle=? AND cabal=? AND festivalId=?");
 			PreparedStatement psInsert = con.prepareStatement("INSERT INTO seven_signs_festival (festivalId, cabal, cycle, date, score, members) VALUES (?,?,?,?,?,?)"))
@@ -1047,8 +1035,6 @@ public class SevenSignsFestival implements SpawnListener
 					// otherwise continue with the next record to store.
 					if (psUpdate.executeUpdate() > 0)
 					{
-						if (Config.DEBUG)
-							_log.info("SevenSignsFestival: Updated data in DB (Cycle = " + festivalCycle + ", Cabal = " + cabal + ", FestID = " + festivalId + ")");
 						continue;
 					}
 					
@@ -1060,9 +1046,6 @@ public class SevenSignsFestival implements SpawnListener
 					psInsert.setString(6, festivalDat.getString("members"));
 					psInsert.execute();
 					psInsert.clearParameters();
-					
-					if (Config.DEBUG)
-						_log.info("SevenSignsFestival: Inserted data in DB (Cycle = " + festivalCycle + ", Cabal = " + cabal + ", FestID = " + festivalId + ")");
 				}
 			}
 		}
@@ -1368,10 +1351,6 @@ public class SevenSignsFestival implements SpawnListener
 					continue;
 				participants.add(player.getObjectId());
 			}
-			
-			if (Config.DEBUG)
-				_log.info("SevenSignsFestival: " + festivalParty.getMembers().size() + " have signed up to the "
-						+ SevenSigns.getCabalShortName(oracle) + " " + getFestivalName(festivalId) + " festival.");
 		}
 		
 		if (oracle == SevenSigns.CABAL_DAWN)
@@ -1460,10 +1439,6 @@ public class SevenSignsFestival implements SpawnListener
 			currData = new StatsSet();
 			currData.set("score", 0);
 			currData.set("members", "");
-			
-			if (Config.DEBUG)
-				_log.info("SevenSignsFestival: Data missing for " + SevenSigns.getCabalName(oracle) + ", FestivalID = " + festivalId
-						+ " (Current Cycle " + _signsCycle + ")");
 		}
 		
 		return currData;
@@ -1559,10 +1534,6 @@ public class SevenSignsFestival implements SpawnListener
 			currFestData.set("score", offeringScore);
 			currFestData.set("members", Util.implodeString(partyMembers, ","));
 			
-			if (Config.DEBUG)
-				_log.info("SevenSignsFestival: " + player.getName() + "'s party has the highest score (" + offeringScore + ") so far for "
-						+ SevenSigns.getCabalName(oracle) + " in " + getFestivalName(festivalId));
-			
 			// Only add the score to the cabal's overall if it's higher than the other cabal's score.
 			if (offeringScore > otherCabalHighScore)
 			{
@@ -1570,10 +1541,6 @@ public class SevenSignsFestival implements SpawnListener
 				
 				// Give this cabal the festival points, while deducting them from the other.
 				SevenSigns.getInstance().addFestivalScore(oracle, contribPoints);
-				
-				if (Config.DEBUG)
-					_log.info("SevenSignsFestival: This is the highest score overall so far for the " + getFestivalName(festivalId)
-							+ " festival!");
 			}
 			
 			saveFestivalData(true);
@@ -1715,18 +1682,12 @@ public class SevenSignsFestival implements SpawnListener
 		
 		// If the spawned NPC ID matches the ones we need, assign their instances.
 		if (npcId == 31127)
-		{
-			if (Config.DEBUG)
-				_log.warning("SevenSignsFestival: Instance found for NPC ID 31127 (" + npc.getObjectId() + ").");
-			
+		{	
 			_dawnChatGuide = npc;
 		}
 		
 		if (npcId == 31137)
-		{
-			if (Config.DEBUG)
-				_log.warning("SevenSignsFestival: Instance found for NPC ID 31137 (" + npc.getObjectId() + ").");
-			
+		{	
 			_duskChatGuide = npc;
 		}
 	}
@@ -1768,10 +1729,6 @@ public class SevenSignsFestival implements SpawnListener
 				if (SevenSigns.getInstance().getMilliToPeriodChange() < Config.ALT_FESTIVAL_CYCLE_LENGTH)
 					return;
 				
-				if (Config.DEBUG)
-					_log.info("SevenSignsFestival: Festival manager initialized. Those wishing to participate have " + getMinsToNextFestival()
-							+ " minute(s) to sign up.");
-				
 				else if (getMinsToNextFestival() == 2)
 					sendMessageToAll("Festival Guide", NpcStringId.THE_MAIN_EVENT_WILL_START_IN_2_MINUTES_PLEASE_REGISTER_NOW);
 				
@@ -1843,10 +1800,6 @@ public class SevenSignsFestival implements SpawnListener
 				setNextFestivalStart(Config.ALT_FESTIVAL_CYCLE_LENGTH);
 				sendMessageToAll("Festival Guide", NpcStringId.THE_MAIN_EVENT_IS_NOW_STARTING);
 				
-				if (Config.DEBUG)
-					_log.info("SevenSignsFestival: The current set of festivals will begin in " + (Config.ALT_FESTIVAL_FIRST_SPAWN / 60000)
-							+ " minute(s).");
-				
 				// Stand by for a short length of time before starting the festival.
 				try
 				{
@@ -1869,10 +1822,6 @@ public class SevenSignsFestival implements SpawnListener
 					festivalInst.sendMessageToParticipants(NpcStringId.THE_MAIN_EVENT_IS_NOW_STARTING);
 				}
 				
-				if (Config.DEBUG)
-					_log.info("SevenSignsFestival: Each of the festivals will end in " + (Config.ALT_FESTIVAL_LENGTH / 60000)
-							+ " minutes. New participants can signup then.");
-				
 				// After a short time period, move all idle spawns to the center of the arena.
 				try
 				{
@@ -1969,9 +1918,6 @@ public class SevenSignsFestival implements SpawnListener
 				_festivalInitialized = false;
 				
 				sendMessageToAll("Festival Witch", NpcStringId.THAT_WILL_DO_ILL_MOVE_YOU_TO_THE_OUTSIDE_SOON);
-				
-				if (Config.DEBUG)
-					_log.info("SevenSignsFestival: The next set of festivals begin in " + getMinsToNextFestival() + " minute(s).");
 			}
 			catch (Exception e)
 			{
@@ -2059,10 +2005,6 @@ public class SevenSignsFestival implements SpawnListener
 		{
 			boolean isPositive;
 			
-			if (Config.DEBUG)
-				_log.info("SevenSignsFestival: Initializing festival for " + SevenSigns.getCabalShortName(_cabal) + " ("
-						+ getFestivalName(_levelRange) + ")");
-			
 			// Teleport all players to arena and notify them.
 			if (_participants != null && !_participants.isEmpty())
 			{
@@ -2130,10 +2072,6 @@ public class SevenSignsFestival implements SpawnListener
 				
 				SpawnTable.getInstance().addNewSpawn(npcSpawn, false);
 				_witchInst = npcSpawn.doSpawn();
-				
-				if (Config.DEBUG)
-					_log.fine("SevenSignsFestival: Spawned the Festival Witch " + npcSpawn.getNpcid() + " at " + _witchSpawn._x + " "
-							+ _witchSpawn._y + " " + _witchSpawn._z);
 			}
 			catch (Exception e)
 			{
@@ -2153,11 +2091,7 @@ public class SevenSignsFestival implements SpawnListener
 		}
 		
 		protected void festivalStart()
-		{
-			if (Config.DEBUG)
-				_log.info("SevenSignsFestival: Starting festival for " + SevenSigns.getCabalShortName(_cabal) + " ("
-						+ getFestivalName(_levelRange) + ")");
-			
+		{	
 			spawnFestivalMonsters(FESTIVAL_DEFAULT_RESPAWN, 0);
 		}
 		
@@ -2165,10 +2099,6 @@ public class SevenSignsFestival implements SpawnListener
 		{
 			boolean isPositive;
 			
-			if (Config.DEBUG)
-				_log.info("SevenSignsFestival: Moving spawns to arena center for festival " + SevenSigns.getCabalShortName(_cabal) + " ("
-						+ getFestivalName(_levelRange) + ")");
-			
 			for (L2FestivalMonsterInstance festivalMob : _npcInsts)
 			{
 				if (festivalMob.isDead())
@@ -2278,10 +2208,6 @@ public class SevenSignsFestival implements SpawnListener
 						festivalMob.setOfferingBonus(5);
 					
 					_npcInsts.add(festivalMob);
-					
-					if (Config.DEBUG)
-						_log.fine("SevenSignsFestival: Spawned NPC ID " + currSpawn._npcId + " at " + currSpawn._x + " " + currSpawn._y
-								+ " " + currSpawn._z);
 				}
 				catch (Exception e)
 				{
@@ -2316,11 +2242,7 @@ public class SevenSignsFestival implements SpawnListener
 		}
 
 		protected void festivalEnd()
-		{
-			if (Config.DEBUG)
-				_log.info("SevenSignsFestival: Ending festival for " + SevenSigns.getCabalShortName(_cabal) + " ("
-						+ getFestivalName(_levelRange) + ")");
-			
+		{	
 			if (_participants != null && !_participants.isEmpty())
 			{
 				for (int participantObjId : _participants)

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/Shutdown.java

@@ -216,7 +216,7 @@ public class Shutdown extends Thread
 			{
 				if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS)
 				{
-					OfflineTradersTable.storeOffliners();
+					OfflineTradersTable.getInstance().storeOffliners();
 					_log.info("Offline Traders Table: Offline shops stored("+tc.getEstimatedTimeAndRestartCounter()+"ms).");
 				}
 			}

+ 0 - 24
L2J_Server_BETA/java/com/l2jserver/gameserver/TradeController.java

@@ -96,18 +96,6 @@ public class TradeController
 								price = ItemTable.getInstance().getTemplate(itemId).getReferencePrice();
 							}
 							
-							if (Config.DEBUG)
-							{
-								// debug
-								double diff = ((double) (price)) / ItemTable.getInstance().getTemplate(itemId).getReferencePrice();
-								if (diff < 0.8 || diff > 1.2)
-								{
-									_log.severe("PRICING DEBUG: TradeListId: " + buy1.getListId() + " -  ItemId: " + itemId + " ("
-											+ ItemTable.getInstance().getTemplate(itemId).getName() + ") diff: " + diff + " - Price: " + price
-											+ " - Reference: " + ItemTable.getInstance().getTemplate(itemId).getReferencePrice());
-								}
-							}
-							
 							item.setPrice(price);
 							
 							item.setRestoreDelay(time);
@@ -185,18 +173,6 @@ public class TradeController
 							price = ItemTable.getInstance().getTemplate(itemId).getReferencePrice();
 						}
 						
-						if (Config.DEBUG)
-						{
-							// debug
-							double diff = ((double) (price)) / ItemTable.getInstance().getTemplate(itemId).getReferencePrice();
-							if (diff < 0.8 || diff > 1.2)
-							{
-								_log.severe("PRICING DEBUG: TradeListId: " + buy1.getListId() + " -  ItemId: " + itemId + " ("
-										+ ItemTable.getInstance().getTemplate(itemId).getName() + ") diff: " + diff + " - Price: " + price
-										+ " - Reference: " + ItemTable.getInstance().getTemplate(itemId).getReferencePrice());
-							}
-						}
-						
 						item.setPrice(price);
 						
 						item.setRestoreDelay(time);

+ 2 - 20
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2PlayerAI.java

@@ -22,7 +22,6 @@ import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_MOVE_TO;
 import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_PICK_UP;
 import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_REST;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
@@ -64,13 +63,8 @@ public class L2PlayerAI extends L2PlayableAI
 	 *
 	 */
 	@Override
-	synchronized void changeIntention(CtrlIntention intention, Object arg0, Object arg1)
-	{
-		/*
-		 if (Config.DEBUG)
-		 _log.warning("L2PlayerAI: changeIntention -> " + intention + " " + arg0 + " " + arg1);
-		 */
-		
+	protected synchronized void changeIntention(CtrlIntention intention, Object arg0, Object arg1)
+	{	
 		// do nothing unless CAST intention
 		// however, forget interrupted actions when starting to use an offensive skill
 		if (intention != AI_INTENTION_CAST || (arg0 != null && ((L2Skill) arg0).isOffensive()))
@@ -152,10 +146,6 @@ public class L2PlayerAI extends L2PlayableAI
 			}
 			else
 			{
-				/*
-				 if (Config.DEBUG)
-				 _log.warning("L2PlayerAI: no previous intention set... Setting it to IDLE");
-				 */
 				// set intention to idle if skill doesn't change intention.
 				setIntention(AI_INTENTION_IDLE);
 			}
@@ -251,9 +241,6 @@ public class L2PlayerAI extends L2PlayableAI
 	private void thinkCast()
 	{
 		L2Character target = getCastTarget();
-		if (Config.DEBUG)
-			_log.warning(getClass().getSimpleName() + ": thinkCast -> Start");
-		
 		if (_skill.getTargetType() == L2TargetType.TARGET_GROUND && _actor instanceof L2PcInstance)
 		{
 			if (maybeMoveToPosition(((L2PcInstance) _actor).getCurrentSkillWorldPosition(), _actor.getMagicalAttackRange(_skill)))
@@ -331,11 +318,6 @@ public class L2PlayerAI extends L2PlayableAI
 		if (_thinking && getIntention() != AI_INTENTION_CAST) // casting must always continue
 			return;
 		
-		/*
-		 if (Config.DEBUG)
-		 _log.warning("L2PlayerAI: onEvtThink -> Check intention");
-		 */
-		
 		_thinking = true;
 		try
 		{

+ 5 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/AdminTable.java

@@ -14,7 +14,6 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -61,9 +60,9 @@ public class AdminTable extends DocumentParser
 	{
 		_accessLevels.clear();
 		_adminCommandAccessRights.clear();
-		parseFile(new File(Config.DATAPACK_ROOT, "config/accessLevels.xml"));
+		parseDatapackFile("config/accessLevels.xml");
 		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _accessLevels.size() + " Access Levels");
-		parseFile(new File(Config.DATAPACK_ROOT, "config/adminCommands.xml"));
+		parseDatapackFile("config/adminCommands.xml");
 		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _adminCommandAccessRights.size() + " Access Commands");
 	}
 	
@@ -167,11 +166,11 @@ public class AdminTable extends DocumentParser
 			{
 				acar = new L2AdminCommandAccessRight(adminCommand, true, accessLevel.getLevel());
 				_adminCommandAccessRights.put(adminCommand, acar);
-				_log.info("AdminCommandAccessRights: No rights defined for admin command " + adminCommand + " auto setting accesslevel: " + accessLevel.getLevel() + " !");
+				_log.info(getClass().getSimpleName() + ": No rights defined for admin command " + adminCommand + " auto setting accesslevel: " + accessLevel.getLevel() + " !");
 			}
 			else
 			{
-				_log.info("AdminCommandAccessRights: No rights defined for admin command " + adminCommand + " !");
+				_log.info(getClass().getSimpleName() + ": No rights defined for admin command " + adminCommand + " !");
 				return false;
 			}
 		}
@@ -188,7 +187,7 @@ public class AdminTable extends DocumentParser
 		L2AdminCommandAccessRight acar = _adminCommandAccessRights.get(command);
 		if (acar == null)
 		{
-			_log.info("AdminCommandAccessRights: No rights defined for admin command " + command + ".");
+			_log.info(getClass().getSimpleName() + ": No rights defined for admin command " + command + ".");
 			return false;
 		}
 		return acar.getRequireConfirm();

+ 1 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ArmorSetsData.java

@@ -14,14 +14,12 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.engines.DocumentParser;
 import com.l2jserver.gameserver.model.L2ArmorSet;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
@@ -45,7 +43,7 @@ public final class ArmorSetsData extends DocumentParser
 	public void load()
 	{
 		_armorSets.clear();
-		parseDirectory(new File(Config.DATAPACK_ROOT, "data/stats/armorsets"));
+		parseDirectory("data/stats/armorsets");
 		_log.info(getClass().getSimpleName() + ": Loaded " + _armorSets.size() + " Armor sets.");
 	}
 	

+ 21 - 37
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/AugmentationData.java

@@ -14,11 +14,11 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 import java.io.File;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.StringTokenizer;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -33,6 +33,7 @@ import org.w3c.dom.Node;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.L2Augmentation;
+import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
@@ -47,11 +48,6 @@ public class AugmentationData
 {
 	private static final Logger _log = Logger.getLogger(AugmentationData.class.getName());
 	
-	public static final AugmentationData getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	// stats
 	private static final int STAT_START = 1;
 	private static final int STAT_END = 14560;
@@ -109,7 +105,7 @@ public class AugmentationData
 	private final List<List<Integer>> _redSkills = new ArrayList<>(10);
 	private final List<List<Integer>> _yellowSkills = new ArrayList<>(10);
 	
-	private final TIntObjectHashMap<AugmentationSkill> _allSkills = new TIntObjectHashMap<>();
+	private final Map<Integer, SkillHolder> _allSkills = new HashMap<>();
 	
 	protected AugmentationData()
 	{		
@@ -181,31 +177,14 @@ public class AugmentationData
 		load();
 		
 		// Use size*4: since theres 4 blocks of stat-data with equivalent size
-		_log.info("AugmentationData: Loaded: " + (_augStats.get(0).size() * 4) + " augmentation stats.");
-		_log.info("AugmentationData: Loaded: " + (_augAccStats.get(0).size() * 4) + " accessory augmentation stats.");
+		_log.info(getClass().getSimpleName() + ": Loaded: " + (_augStats.get(0).size() * 4) + " augmentation stats.");
+		_log.info(getClass().getSimpleName() + ": Loaded: " + (_augAccStats.get(0).size() * 4) + " accessory augmentation stats.");
 		for (int i = 0; i < 10; i++)
 		{
-			_log.info("AugmentationData: Loaded: " + _blueSkills.get(i).size() + " blue, " + _purpleSkills.get(i).size() + " purple and " + _redSkills.get(i).size() + " red skills for lifeStoneLevel " + i);
+			_log.info(getClass().getSimpleName() + ": Loaded: " + _blueSkills.get(i).size() + " blue, " + _purpleSkills.get(i).size() + " purple and " + _redSkills.get(i).size() + " red skills for lifeStoneLevel " + i);
 		}
 	}
-	
-	public static class AugmentationSkill
-	{
-		private final int _skillId;
-		private final int _skillLevel;
-		
-		public AugmentationSkill(int skillId, int skillLevel)
-		{
-			_skillId = skillId;
-			_skillLevel = skillLevel;
-		}
 		
-		public L2Skill getSkill()
-		{
-			return SkillTable.getInstance().getInfo(_skillId, _skillLevel);
-		}
-	}
-	
 	public static class AugmentationStat
 	{
 		private final Stats _stat;
@@ -346,19 +325,19 @@ public class AugmentationData
 								_redSkills.get(k).add(augmentationId);
 							}
 							
-							_allSkills.put(augmentationId, new AugmentationSkill(skillId, skillLvL));
+							_allSkills.put(augmentationId, new SkillHolder(skillId, skillLvL));
 						}
 					}
 				}
 			}
 			if (badAugmantData != 0)
 			{
-				_log.info("AugmentationData: " + badAugmantData + " bad skill(s) were skipped.");
+				_log.info(getClass().getSimpleName() + ": " + badAugmantData + " bad skill(s) were skipped.");
 			}
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error parsing augmentation_skillmap.xml.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error parsing augmentation_skillmap.xml.", e);
 			return;
 		}
 		
@@ -376,7 +355,7 @@ public class AugmentationData
 				{
 					if (Config.DEBUG)
 					{
-						_log.info("The augmentation stat data file " + i + " is missing.");
+						_log.info(getClass().getSimpleName() + ": The augmentation stat data file " + i + " is missing.");
 					}
 					return;
 				}
@@ -438,7 +417,7 @@ public class AugmentationData
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "Error parsing augmentation_stats" + i + ".xml.", e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error parsing augmentation_stats" + i + ".xml.", e);
 				return;
 			}
 			
@@ -454,7 +433,7 @@ public class AugmentationData
 				{
 					if (Config.DEBUG)
 					{
-						_log.info("The jewel augmentation stat data file " + i + " is missing.");
+						_log.info(getClass().getSimpleName() + ": The jewel augmentation stat data file " + i + " is missing.");
 					}
 					return;
 				}
@@ -516,7 +495,7 @@ public class AugmentationData
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "Error parsing jewel augmentation_stats" + i + ".xml.", e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error parsing jewel augmentation_stats" + i + ".xml.", e);
 				return;
 			}
 		}
@@ -761,7 +740,7 @@ public class AugmentationData
 		{
 			// second augmentation (skill)
 			stat34 = base + Rnd.get(skillsLength);
-			if (_allSkills.contains(stat34))
+			if (_allSkills.containsKey(stat34))
 			{
 				skill = _allSkills.get(stat34).getSkill();
 			}
@@ -937,7 +916,7 @@ public class AugmentationData
 	 */
 	public L2Skill getAugSkillById(int augmentationId)
 	{
-		final AugmentationSkill temp = _allSkills.get(augmentationId);
+		final SkillHolder temp = _allSkills.get(augmentationId);
 		if (temp == null)
 		{
 			return null;
@@ -946,6 +925,11 @@ public class AugmentationData
 		return temp.getSkill();
 	}
 	
+	public static final AugmentationData getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final AugmentationData _instance = new AugmentationData();

+ 9 - 12
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharNameTable.java

@@ -25,11 +25,10 @@ import java.util.Map.Entry;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javolution.util.FastMap;
-
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.util.L2FastMap;
 
 /**
  * This class ...
@@ -40,13 +39,11 @@ public class CharNameTable
 {
 	private static Logger _log = Logger.getLogger(CharNameTable.class.getName());
 	
-	private final Map<Integer, String> _chars;
-	private final Map<Integer, Integer> _accessLevels;
+	private final Map<Integer, String> _chars = new L2FastMap<>();
+	private final Map<Integer, Integer> _accessLevels = new L2FastMap<>();
 	
 	protected CharNameTable()
 	{
-		_chars = new FastMap<>();
-		_accessLevels = new FastMap<>();
 		if (Config.CACHE_CHAR_NAMES)
 			loadAll();
 	}
@@ -116,7 +113,7 @@ public class CharNameTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Could not check existing char name: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not check existing char name: " + e.getMessage(), e);
 		}
 		
 		if (id > 0)
@@ -157,7 +154,7 @@ public class CharNameTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Could not check existing char id: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not check existing char id: " + e.getMessage(), e);
 		}
 		
 		if (name != null && !name.isEmpty())
@@ -192,7 +189,7 @@ public class CharNameTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Could not check existing charname: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not check existing charname: " + e.getMessage(), e);
 		}
 		return result;
 	}
@@ -214,7 +211,7 @@ public class CharNameTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Could not check existing char number: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not check existing char number: " + e.getMessage(), e);
 		}
 		return number;
 	}
@@ -239,9 +236,9 @@ public class CharNameTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Could not load char name: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not load char name: " + e.getMessage(), e);
 		}
-		_log.info(getClass().getSimpleName()+": Loaded "+_chars.size()+" char names.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _chars.size() + " char names.");
 	}
 	
 	private static class SingletonHolder

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharSummonTable.java

@@ -75,7 +75,7 @@ public class CharSummonTable
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "Error while loading saved summons", e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while loading saved summons", e);
 			}
 		}
 		
@@ -92,7 +92,7 @@ public class CharSummonTable
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "Error while loading saved summons", e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while loading saved summons", e);
 			}
 		}
 	}
@@ -125,7 +125,7 @@ public class CharSummonTable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Failed to store summon [SummonId: " + summon.getNpcId() + "] from Char [CharId: " + summon.getOwner().getObjectId() + "] data", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed to store summon [SummonId: " + summon.getNpcId() + "] from Char [CharId: " + summon.getOwner().getObjectId() + "] data", e);
 		}
 			
 	}
@@ -161,7 +161,7 @@ public class CharSummonTable
 					summonTemplate = NpcTable.getInstance().getTemplate(skill.getNpcId());
 					if (summonTemplate == null)
 					{
-						_log.warning("[CharSummonTable] Summon attemp for nonexisting Skill ID:" + skillId);
+						_log.warning(getClass().getSimpleName() + ": Summon attemp for nonexisting Skill ID:" + skillId);
 						return;
 					}
 					
@@ -189,7 +189,7 @@ public class CharSummonTable
 					if (summon.getLevel() >= ExperienceTable.getInstance().getMaxPetLevel())
 					{
 						summon.getStat().setExp(ExperienceTable.getInstance().getExpForLevel(ExperienceTable.getInstance().getMaxPetLevel()-1));
-						_log.warning("Summon (" + summon.getName() + ") NpcID: " + summon.getNpcId() + " has a level above "+ExperienceTable.getInstance().getMaxPetLevel()+". Please rectify.");
+						_log.warning(getClass().getSimpleName() + ": Summon (" + summon.getName() + ") NpcID: " + summon.getNpcId() + " has a level above "+ExperienceTable.getInstance().getMaxPetLevel()+". Please rectify.");
 					}
 					else
 					{
@@ -211,7 +211,7 @@ public class CharSummonTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "[CharSummonTable]: Summon cannot be restored: ", e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Summon cannot be restored: ", e);
 		}
 	}
 	
@@ -226,7 +226,7 @@ public class CharSummonTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "[CharSummonTable]: Summon cannot be removed: ", e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Summon cannot be removed: ", e);
 		}
 	}
 	

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharTemplateTable.java

@@ -93,11 +93,11 @@ public final class CharTemplateTable
 				final L2PcTemplate ct = new L2PcTemplate(set);
 				_charTemplates.put(ClassId.getClassId(cId), ct);
 			}
-			_log.info("CharTemplateTable: Loaded " + _charTemplates.size() + " Character Templates.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _charTemplates.size() + " Character Templates.");
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.SEVERE, "Failed loading char templates", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed loading char templates", e);
 		}
 	}
 	

+ 7 - 30
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ClanTable.java

@@ -105,7 +105,7 @@ public class ClanTable
 		{
 			_log.log(Level.SEVERE, "Error restoring ClanTable.", e);
 		}
-		_log.info("Restored " + clanCount + " clans from the database.");
+		_log.info(getClass().getSimpleName() + ": Restored " + clanCount + " clans from the database.");
 		allianceCheck();
 		restorewars();
 	}
@@ -149,7 +149,7 @@ public class ClanTable
 		
 		if (Config.DEBUG)
 		{
-			_log.fine(player.getObjectId() + "(" + player.getName() + ") requested a clan creation.");
+			_log.fine(getClass().getSimpleName() + ": " + player.getObjectId() + "(" + player.getName() + ") requested a clan creation.");
 		}
 		
 		if (10 > player.getLevel())
@@ -197,11 +197,6 @@ public class ClanTable
 		player.setPledgeClass(L2ClanMember.calculatePledgeClass(player));
 		player.setClanPrivileges(L2Clan.CP_ALL);
 		
-		if (Config.DEBUG)
-		{
-			_log.fine("New clan created: " + clan.getClanId() + " " + clan.getName());
-		}
-		
 		_clans.put(Integer.valueOf(clan.getClanId()), clan);
 		
 		// should be update packet only
@@ -338,15 +333,10 @@ public class ClanTable
 					hall.free();
 				}
 			}
-			
-			if (Config.DEBUG)
-			{
-				_log.fine("clan removed in db: " + clanId);
-			}
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error removing clan from DB.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error removing clan from DB.", e);
 		}
 	}
 	
@@ -406,7 +396,7 @@ public class ClanTable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error storing clan wars data.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error storing clan wars data.", e);
 		}
 		
 		// SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.WAR_WITH_THE_S1_CLAN_HAS_BEGUN);
@@ -437,16 +427,6 @@ public class ClanTable
 		clan2.deleteAttackerClan(clan1);
 		clan1.broadcastClanStatus();
 		clan2.broadcastClanStatus();
-		// for(L2ClanMember player: clan1.getMembers())
-		// {
-		// if(player.getPlayerInstance()!=null)
-		// player.getPlayerInstance().setWantsPeace(0);
-		// }
-		// for(L2ClanMember player: clan2.getMembers())
-		// {
-		// if(player.getPlayerInstance()!=null)
-		// player.getPlayerInstance().setWantsPeace(0);
-		// }
 		
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			PreparedStatement ps = con.prepareStatement("DELETE FROM clan_wars WHERE clan1=? AND clan2=?"))
@@ -457,7 +437,7 @@ public class ClanTable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error removing clan wars data.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error removing clan wars data.", e);
 		}
 		
 		// SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.WAR_WITH_THE_S1_CLAN_HAS_ENDED);
@@ -467,9 +447,6 @@ public class ClanTable
 		msg = SystemMessage.getSystemMessage(SystemMessageId.CLAN_S1_HAS_DECIDED_TO_STOP);
 		msg.addString(clan1.getName());
 		clan2.broadcastToOnlineMembers(msg);
-		// msg = SystemMessage.getSystemMessage(SystemMessageId.WAR_WITH_THE_S1_CLAN_HAS_ENDED);
-		// msg.addString(clan1.getName());
-		// clan2.broadcastToOnlineMembers(msg);
 	}
 	
 	public void checkSurrender(L2Clan clan1, L2Clan clan2)
@@ -512,13 +489,13 @@ public class ClanTable
 				}
 				else
 				{
-					_log.log(Level.WARNING, "[ClanTable]: restorewars one of clans is null clan1:" + clan1 + " clan2:" + clan2);
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": restorewars one of clans is null clan1:" + clan1 + " clan2:" + clan2);
 				}
 			}
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error restoring clan wars data.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error restoring clan wars data.", e);
 		}
 	}
 	

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/DoorTable.java

@@ -82,7 +82,7 @@ public class DoorTable extends DocumentParser
 			}
 		}
 		
-		_log.info("DoorTable: Loaded " + _doors.size() + " Door Templates for " + _regions.size() + " regions.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _doors.size() + " Door Templates for " + _regions.size() + " regions.");
 	}
 	
 	public void insertCollisionData(StatsSet set)

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantGroupsData.java

@@ -138,7 +138,7 @@ public class EnchantGroupsData extends DocumentParser
 			
 			return _enchantSkillGroups.get(group).getEnchantGroupDetails().size();
 		}
-		_log.log(Level.SEVERE, "Error while loading generating enchant skill id: " + skillId + "; route: " + route + "; missing group: " + group);
+		_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while loading generating enchant skill id: " + skillId + "; route: " + route + "; missing group: " + group);
 		return 0;
 	}
 	

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantHPBonusData.java

@@ -37,7 +37,7 @@ public class EnchantHPBonusData extends DocumentParser
 {
 	private final Map<Integer, List<Integer>> _armorHPBonuses = new HashMap<>();
 	
-	private static final float fullArmorModifier = 1.5f; // TODO: Config?
+	private static final float fullArmorModifier = 1.5f; // TODO: Move it to config!
 	
 	/**
 	 * Instantiates a new enchant hp bonus data.

+ 1 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EventDroplist.java

@@ -16,11 +16,9 @@ package com.l2jserver.gameserver.datatables;
 
 import java.util.Date;
 import java.util.List;
-import java.util.logging.Logger;
 
 import javolution.util.FastList;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.script.DateRange;
 import com.l2jserver.gameserver.script.EventDrop;
 
@@ -31,9 +29,7 @@ import com.l2jserver.gameserver.script.EventDrop;
  * Each Special Event has a start and end date to stop to drop extra Items automatically.
  */
 public class EventDroplist
-{
-	private static Logger _log = Logger.getLogger(EventDroplist.class.getName());
-	
+{	
 	/**
 	 * The table containing all DataDrop object
 	 */
@@ -98,10 +94,6 @@ public class EventDroplist
 		final Date currentDate = new Date();
 		for (DateDrop drop : _allNpcDateDrops)
 		{
-			if (Config.DEBUG)
-			{
-				_log.info(drop._dateRange.toString() + " Now: " + currentDate);
-			}
 			if (drop._dateRange.isWithinRange(currentDate))
 			{
 				list.add(drop);

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HelperBuffTable.java

@@ -134,11 +134,11 @@ public class HelperBuffTable
 				L2HelperBuff template = new L2HelperBuff(helperBuffDat);
 				_helperBuff.add(template);
 			}
-			_log.info("Helper Buff Table: Loaded " + _helperBuff.size() + " Templates.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _helperBuff.size() + " Templates.");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Table helper_buff_list not found : Update your DataPack! Error : " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Table helper_buff_list not found : Update your DataPack! Error : " + e.getMessage(), e);
 		}
 	}
 	

+ 16 - 17
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HerbDropTable.java

@@ -14,16 +14,16 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 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.logging.Level;
 import java.util.logging.Logger;
 
-import javolution.util.FastList;
-
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.model.L2DropCategory;
 import com.l2jserver.gameserver.model.L2DropData;
@@ -37,16 +37,10 @@ public class HerbDropTable
 {
 	private static Logger _log = Logger.getLogger(HerbDropTable.class.getName());
 	
-	private TIntObjectHashMap<FastList<L2DropCategory>> _herbGroups;
-	
-	public static HerbDropTable getInstance()
-	{
-		return SingletonHolder._instance;
-	}
+	private Map<Integer, List<L2DropCategory>> _herbGroups = new HashMap<>();
 	
 	protected HerbDropTable()
 	{
-		_herbGroups = new TIntObjectHashMap<>();
 		restoreData();
 	}
 	
@@ -62,12 +56,12 @@ public class HerbDropTable
 			while (dropData.next())
 			{
 				int groupId = dropData.getInt("groupId");
-				FastList<L2DropCategory> category;
-				if (_herbGroups.contains(groupId))
+				List<L2DropCategory> category;
+				if (_herbGroups.containsKey(groupId))
 					category = _herbGroups.get(groupId);
 				else
 				{
-					category = new FastList<>();
+					category = new ArrayList<>();
 					_herbGroups.put(groupId, category);
 				}
 				
@@ -82,7 +76,7 @@ public class HerbDropTable
 				
 				if (ItemTable.getInstance().getTemplate(dropDat.getItemId()) == null)
 				{
-					_log.warning("Herb Drop data for undefined item template! GroupId: " + groupId+" itemId: "+dropDat.getItemId());
+					_log.warning(getClass().getSimpleName() + ": Data for undefined item template! GroupId: " + groupId+" itemId: "+dropDat.getItemId());
 					continue;
 				}
 				
@@ -106,15 +100,20 @@ public class HerbDropTable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "HerbDroplistGroupsTable: Error reading Herb dropdata. ", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error reading Herb dropdata. ", e);
 		}
 	}
 	
-	public FastList<L2DropCategory> getHerbDroplist(int groupId)
+	public List<L2DropCategory> getHerbDroplist(int groupId)
 	{
 		return _herbGroups.get(groupId);
 	}
 	
+	public static HerbDropTable getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final HerbDropTable _instance = new HerbDropTable();

+ 6 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ItemTable.java

@@ -212,6 +212,10 @@ public class ItemTable
 				_weapons.put(item.getItemId(), (L2Weapon) item);
 		}
 		buildFastLookupTable(highest);
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _etcItems.size() + " Etc Items");
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _armors.size() + " Armor Items");
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _weapons.size() + " Weapon Items");
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + (_etcItems.size() + _armors.size() + _weapons.size())  + " Items in total.");
 	}
 	
 	/**
@@ -221,7 +225,7 @@ public class ItemTable
 	private void buildFastLookupTable(int size)
 	{
 		// Create a FastLookUp Table called _allTemplates of size : value of the highest item ID
-		_log.info("Highest item id used:" + size);
+		_log.info(getClass().getSimpleName() + ": Highest item id used:" + size);
 		_allTemplates = new L2Item[size + 1];
 		
 		// Insert armor item in Fast Look Up Table
@@ -304,7 +308,7 @@ public class ItemTable
 		}
 		
 		if (Config.DEBUG)
-			_log.fine("ItemTable: Item created  oid:" + item.getObjectId() + " itemid:" + itemId);
+			_log.fine(getClass().getSimpleName() + ": Item created  oid:" + item.getObjectId() + " itemid:" + itemId);
 		
 		// Add the L2ItemInstance object to _allObjects of L2world
 		L2World.getInstance().storeObject(item);

+ 0 - 110
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/LevelUpData.java

@@ -1,110 +0,0 @@
-/*
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package com.l2jserver.gameserver.datatables;
-
-import gnu.trove.map.hash.TIntObjectHashMap;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.l2jserver.L2DatabaseFactory;
-import com.l2jserver.gameserver.model.L2LvlupData;
-import com.l2jserver.gameserver.model.base.ClassId;
-
-/**
- * This class ...
- *
- * @author NightMarez
- * @version $Revision: 1.3.2.4.2.3 $ $Date: 2005/03/27 15:29:18 $
- */
-public class LevelUpData
-{
-	private static final String SELECT_ALL = "SELECT classid, defaulthpbase, defaulthpadd, defaulthpmod, defaultcpbase, defaultcpadd, defaultcpmod, defaultmpbase, defaultmpadd, defaultmpmod, class_lvl FROM lvlupgain";
-	private static final String CLASS_LVL = "class_lvl";
-	private static final String MP_MOD = "defaultmpmod";
-	private static final String MP_ADD = "defaultmpadd";
-	private static final String MP_BASE = "defaultmpbase";
-	private static final String HP_MOD = "defaulthpmod";
-	private static final String HP_ADD = "defaulthpadd";
-	private static final String HP_BASE = "defaulthpbase";
-	private static final String CP_MOD = "defaultcpmod";
-	private static final String CP_ADD = "defaultcpadd";
-	private static final String CP_BASE = "defaultcpbase";
-	private static final String CLASS_ID = "classid";
-	
-	private static Logger _log = Logger.getLogger(LevelUpData.class.getName());
-	
-	private TIntObjectHashMap<L2LvlupData> _lvlTable;
-	
-	public static LevelUpData getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
-	protected LevelUpData()
-	{
-		_lvlTable = new TIntObjectHashMap<>();
-		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
-			Statement s = con.createStatement();
-			ResultSet rs = s.executeQuery(SELECT_ALL))
-		{
-			L2LvlupData lvlDat;
-			while (rs.next())
-			{
-				lvlDat = new L2LvlupData();
-				lvlDat.setClassid(rs.getInt(CLASS_ID));
-				lvlDat.setClassLvl(rs.getInt(CLASS_LVL));
-				lvlDat.setClassHpBase(rs.getFloat(HP_BASE));
-				lvlDat.setClassHpAdd(rs.getFloat(HP_ADD));
-				lvlDat.setClassHpModifier(rs.getFloat(HP_MOD));
-				lvlDat.setClassCpBase(rs.getFloat(CP_BASE));
-				lvlDat.setClassCpAdd(rs.getFloat(CP_ADD));
-				lvlDat.setClassCpModifier(rs.getFloat(CP_MOD));
-				lvlDat.setClassMpBase(rs.getFloat(MP_BASE));
-				lvlDat.setClassMpAdd(rs.getFloat(MP_ADD));
-				lvlDat.setClassMpModifier(rs.getFloat(MP_MOD));
-				
-				_lvlTable.put(lvlDat.getClassid(), lvlDat);
-			}
-		}
-		catch (Exception e)
-		{
-			_log.log(Level.SEVERE, "Error loading Level Up data.", e);
-		}
-		_log.info("LevelUpData: Loaded " + _lvlTable.size() + " Character Level Up Templates.");
-	}
-	
-	/**
-	 * @param classId
-	 * @return
-	 */
-	public L2LvlupData getTemplate(int classId)
-	{
-		return _lvlTable.get(classId);
-	}
-	
-	public L2LvlupData getTemplate(ClassId classId)
-	{
-		return _lvlTable.get(classId.getId());
-	}
-	
-	private static class SingletonHolder
-	{
-		protected static final LevelUpData _instance = new LevelUpData();
-	}
-}

+ 364 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ManorData.java

@@ -0,0 +1,364 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.datatables;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+import com.l2jserver.gameserver.engines.DocumentParser;
+import com.l2jserver.gameserver.model.L2Seed;
+import com.l2jserver.gameserver.model.StatsSet;
+import com.l2jserver.gameserver.model.items.L2Item;
+import com.l2jserver.util.L2FastMap;
+
+/**
+ * Service class for manor
+ * @author l3x, UnAfraid
+ */
+public class ManorData extends DocumentParser
+{
+	private static Logger _log = Logger.getLogger(ManorData.class.getName());
+	
+	private static Map<Integer, L2Seed> _seeds;
+	
+	protected ManorData()
+	{
+		_seeds = new L2FastMap<>(true);
+		load();
+	}
+	
+	@Override
+	public void load()
+	{
+		_seeds.clear();
+		parseDatapackFile("data/seeds.xml");
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _seeds.size() + " Seeds");
+	}
+	
+	@Override
+	protected void parseDocument()
+	{
+		Document doc = getCurrentDocument();
+		doc.getDocumentElement().normalize();
+		StatsSet set;
+		for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
+		{
+			if ("list".equalsIgnoreCase(n.getNodeName()))
+			{
+				// castle
+				for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
+				{
+					if ("castle".equalsIgnoreCase(d.getNodeName()))
+					{
+						int castleId = parseInt(d.getAttributes(), "id");
+						// crop
+						for (Node c = d.getFirstChild(); c != null; c = c.getNextSibling())
+						{
+							if ("crop".equalsIgnoreCase(c.getNodeName()))
+							{
+								set = new StatsSet();
+								set.set("cropId", parseString(c.getAttributes(), "id"));
+								set.set("castleId", castleId);
+								
+								for (Node a = c.getFirstChild(); a != null; a = a.getNextSibling())
+								{
+									switch (a.getNodeName())
+									{
+										case "seed_id":
+										case "mature_id":
+										case "reward1":
+										case "reward2":
+										case "alternative":
+										case "level":
+										case "limit_seed":
+										case "limit_crops":
+										{
+											set.set(a.getNodeName(), parseString(a.getAttributes(), "val"));
+											break;
+										}
+									}
+								}
+								
+								L2Seed seed = new L2Seed(set);
+								_seeds.put(seed.getSeedId(), seed);
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+	
+	public Collection<L2Seed> getSeedsData()
+	{
+		return _seeds.values();
+	}
+	
+	public List<Integer> getAllCrops()
+	{
+		List<Integer> crops = new ArrayList<>();
+		
+		for (L2Seed seed : getSeedsData())
+		{
+			if (!crops.contains(seed.getCropId()) && (seed.getCropId() != 0) && !crops.contains(seed.getCropId()))
+			{
+				crops.add(seed.getCropId());
+			}
+		}
+		
+		return crops;
+	}
+	
+	public int getSeedBasicPrice(int seedId)
+	{
+		final L2Item seedItem = ItemTable.getInstance().getTemplate(seedId);
+		if (seedItem != null)
+		{
+			return seedItem.getReferencePrice();
+		}
+		return 0;
+	}
+	
+	public int getSeedBasicPriceByCrop(int cropId)
+	{
+		for (L2Seed seed : getSeedsData())
+		{
+			if (seed.getCropId() == cropId)
+			{
+				return getSeedBasicPrice(seed.getSeedId());
+			}
+		}
+		return 0;
+	}
+	
+	public int getCropBasicPrice(int cropId)
+	{
+		final L2Item cropItem = ItemTable.getInstance().getTemplate(cropId);
+		if (cropItem != null)
+		{
+			return cropItem.getReferencePrice();
+		}
+		return 0;
+	}
+	
+	public int getMatureCrop(int cropId)
+	{
+		for (L2Seed seed : getSeedsData())
+		{
+			if (seed.getCropId() == cropId)
+			{
+				return seed.getMatureId();
+			}
+		}
+		return 0;
+	}
+	
+	/**
+	 * Returns price which lord pays to buy one seed
+	 * @param seedId
+	 * @return seed price
+	 */
+	public long getSeedBuyPrice(int seedId)
+	{
+		long buyPrice = getSeedBasicPrice(seedId);
+		return (buyPrice > 0 ? buyPrice : 1);
+	}
+	
+	public int getSeedMinLevel(int seedId)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.getLevel() - 5;
+		}
+		return -1;
+	}
+	
+	public int getSeedMaxLevel(int seedId)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.getLevel() + 5;
+		}
+		return -1;
+	}
+	
+	public int getSeedLevelByCrop(int cropId)
+	{
+		for (L2Seed seed : getSeedsData())
+		{
+			if (seed.getCropId() == cropId)
+			{
+				return seed.getLevel();
+			}
+		}
+		return 0;
+	}
+	
+	public int getSeedLevel(int seedId)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.getLevel();
+		}
+		return -1;
+	}
+	
+	public boolean isAlternative(int seedId)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.isAlternative();
+		}
+		return false;
+	}
+	
+	public int getCropType(int seedId)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.getCropId();
+		}
+		return -1;
+	}
+	
+	public int getRewardItem(int cropId, int type)
+	{
+		for (L2Seed seed : getSeedsData())
+		{
+			if (seed.getCropId() == cropId)
+			{
+				return seed.getReward(type); // there can be several seeds with same crop, but reward should be the same for all.
+			}
+		}
+		return -1;
+	}
+	
+	public int getRewardItemBySeed(int seedId, int type)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.getReward(type);
+		}
+		return 0;
+	}
+	
+	/**
+	 * Return all crops which can be purchased by given castle
+	 * @param castleId
+	 * @return
+	 */
+	public List<Integer> getCropsForCastle(int castleId)
+	{
+		List<Integer> crops = new ArrayList<>();
+		
+		for (L2Seed seed : getSeedsData())
+		{
+			if ((seed.getCastleId() == castleId) && !crops.contains(seed.getCropId()))
+			{
+				crops.add(seed.getCropId());
+			}
+		}
+		
+		return crops;
+	}
+	
+	/**
+	 * Return list of seed ids, which belongs to castle with given id
+	 * @param castleId - id of the castle
+	 * @return seedIds - list of seed ids
+	 */
+	public List<Integer> getSeedsForCastle(int castleId)
+	{
+		List<Integer> seedsID = new ArrayList<>();
+		
+		for (L2Seed seed : getSeedsData())
+		{
+			if ((seed.getCastleId() == castleId) && !seedsID.contains(seed.getSeedId()))
+			{
+				seedsID.add(seed.getSeedId());
+			}
+		}
+		
+		return seedsID;
+	}
+	
+	/**
+	 * Returns castle id where seed can be sowned<br>
+	 * @param seedId
+	 * @return castleId
+	 */
+	public int getCastleIdForSeed(int seedId)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.getCastleId();
+		}
+		return 0;
+	}
+	
+	public int getSeedSaleLimit(int seedId)
+	{
+		L2Seed seed = _seeds.get(seedId);
+		
+		if (seed != null)
+		{
+			return seed.getSeedLimit();
+		}
+		return 0;
+	}
+	
+	public int getCropPuchaseLimit(int cropId)
+	{
+		for (L2Seed seed : getSeedsData())
+		{
+			if (seed.getCropId() == cropId)
+			{
+				return seed.getCropLimit();
+			}
+		}
+		return 0;
+	}
+	
+	public static ManorData getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
+	private static class SingletonHolder
+	{
+		protected static final ManorData _instance = new ManorData();
+	}
+}

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/MerchantPriceConfigTable.java

@@ -160,12 +160,12 @@ public class MerchantPriceConfigTable implements InstanceListManager
 	{
 		try
 		{
-			this.loadXML();
-			_log.info("MerchantPriceConfigTable: Loaded " + _mpcs.size() + " merchant price configs.");
+			loadXML();
+			_log.info(getClass().getSimpleName() + ": Loaded " + _mpcs.size() + " merchant price configs.");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Failed loading MerchantPriceConfigTable. Reason: " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed loading MerchantPriceConfigTable. Reason: " + e.getMessage(), e);
 		}
 	}
 	

+ 21 - 23
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/MultiSell.java

@@ -14,11 +14,11 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import gnu.trove.iterator.TIntObjectIterator;
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 import java.io.File;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -46,24 +46,18 @@ import com.l2jserver.util.file.filter.XMLFilter;
 
 public class MultiSell
 {
+	private static final Logger _log = Logger.getLogger(MultiSell.class.getName());
+
 	public static final int PAGE_SIZE = 40;
 	
 	public static final int PC_BANG_POINTS = -100;
 	public static final int CLAN_REPUTATION = -200;
 	public static final int FAME = -300;
-	
-	private static final Logger _log = Logger.getLogger(MultiSell.class.getName());
-	
-	private final TIntObjectHashMap<ListContainer> _entries;
-	
-	public static MultiSell getInstance()
-	{
-		return SingletonHolder._instance;
-	}
+		
+	private final Map<Integer, ListContainer> _entries = new HashMap<>();
 	
 	protected MultiSell()
 	{
-		_entries = new TIntObjectHashMap<>();
 		load();
 	}
 	
@@ -106,7 +100,7 @@ public class MultiSell
 		ListContainer template = _entries.get(listId);
 		if (template == null)
 		{
-			_log.warning("[MultiSell] can't find list id: " + listId + " requested by player: " + player.getName() + ", npcId:" + (npc != null ? npc.getNpcId() : 0));
+			_log.warning(getClass().getSimpleName() + ": can't find list id: " + listId + " requested by player: " + player.getName() + ", npcId:" + (npc != null ? npc.getNpcId() : 0));
 			return;
 		}
 		
@@ -232,7 +226,7 @@ public class MultiSell
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "Error loading file " + f, e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error loading file " + f, e);
 				continue;
 			}
 			
@@ -244,11 +238,11 @@ public class MultiSell
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "Error in file " + f, e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error in file " + f, e);
 			}
 		}
 		verify();
-		_log.log(Level.INFO, "MultiSell: Loaded " + _entries.size() + " lists.");
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded " + _entries.size() + " lists.");
 	}
 	
 	private final ListContainer parseDocument(Document doc)
@@ -367,7 +361,7 @@ public class MultiSell
 		File dir = new File(Config.DATAPACK_ROOT, dirname);
 		if (!dir.exists())
 		{
-			_log.log(Level.WARNING, "Dir " + dir.getAbsolutePath() + " not exists");
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Dir " + dir.getAbsolutePath() + " not exists");
 			return;
 		}
 		
@@ -379,23 +373,22 @@ public class MultiSell
 	private final void verify()
 	{
 		ListContainer list;
-		final TIntObjectIterator<ListContainer> iter = _entries.iterator();
+		final Iterator<ListContainer> iter = _entries.values().iterator();
 		while (iter.hasNext())
 		{
-			iter.advance();
-			list = iter.value();
+			list = iter.next();
 			
 			for (Entry ent : list.getEntries())
 			{
 				for (Ingredient ing : ent.getIngredients())
 				{
 					if (!verifyIngredient(ing))
-						_log.warning("[MultiSell] can't find ingredient with itemId: " + ing.getItemId() + " in list: " + list.getListId());
+						_log.warning(getClass().getSimpleName() + ": can't find ingredient with itemId: " + ing.getItemId() + " in list: " + list.getListId());
 				}
 				for (Ingredient ing : ent.getProducts())
 				{
 					if (!verifyIngredient(ing))
-						_log.warning("[MultiSell] can't find product with itemId: " + ing.getItemId() + " in list: " + list.getListId());
+						_log.warning(getClass().getSimpleName() + ": can't find product with itemId: " + ing.getItemId() + " in list: " + list.getListId());
 				}
 			}
 		}
@@ -416,6 +409,11 @@ public class MultiSell
 		return false;
 	}
 	
+	public static MultiSell getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final MultiSell _instance = new MultiSell();

+ 6 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcBufferTable.java

@@ -15,12 +15,13 @@
 package com.l2jserver.gameserver.datatables;
 
 import gnu.trove.map.hash.TIntIntHashMap;
-import gnu.trove.map.hash.TIntObjectHashMap;
 
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -31,7 +32,7 @@ public class NpcBufferTable
 {
 	private static Logger _log = Logger.getLogger(NpcBufferTable.class.getName());
 	
-	private final TIntObjectHashMap<NpcBufferSkills> _buffers = new TIntObjectHashMap<>();
+	private final Map<Integer, NpcBufferSkills> _buffers = new HashMap<>();
 	
 	private static class NpcBufferSkills
 	{
@@ -114,7 +115,7 @@ public class NpcBufferTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.SEVERE, "NpcBufferTable: Error reading npc_buffer table: " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error reading npc_buffer table: " + e.getMessage(), e);
 		}
 		
 		if (Config.CUSTOM_NPCBUFFER_TABLES)
@@ -159,10 +160,10 @@ public class NpcBufferTable
 			}
 			catch (SQLException e)
 			{
-				_log.log(Level.SEVERE, "NpcBufferTable: Error reading custom_npc_buffer table: " + e.getMessage(), e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error reading custom_npc_buffer table: " + e.getMessage(), e);
 			}
 		}
-		_log.info("NpcBufferSkillIdsTable: Loaded " + _buffers.size() + " buffers and " + skillCount + " skills.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _buffers.size() + " buffers and " + skillCount + " skills.");
 	}
 	
 	public int[] getSkillInfo(int npcId, int buffGroup)

+ 7 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcTable.java

@@ -14,13 +14,12 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -45,7 +44,7 @@ public class NpcTable
 {
 	private static final Logger _log = Logger.getLogger(NpcTable.class.getName());
 	
-	private static final TIntObjectHashMap<L2NpcTemplate> _npcs = new TIntObjectHashMap<>();
+	private static final Map<Integer, L2NpcTemplate> _npcs = new HashMap<>();
 	
 	// SQL Queries
 	private static final String SELECT_NPC_ALL = "SELECT * FROM npc ORDER BY id";
@@ -357,7 +356,7 @@ public class NpcTable
 	 */
 	public L2NpcTemplate getTemplateByName(String name)
 	{
-		for (L2NpcTemplate npcTemplate : _npcs.values(new L2NpcTemplate[0]))
+		for (L2NpcTemplate npcTemplate : _npcs.values())
 		{
 			if (npcTemplate.getName().equalsIgnoreCase(name))
 			{
@@ -377,7 +376,7 @@ public class NpcTable
 		final List<L2NpcTemplate> list = new ArrayList<>();
 		for (int lvl : lvls)
 		{
-			for (L2NpcTemplate t : _npcs.values(new L2NpcTemplate[0]))
+			for (L2NpcTemplate t : _npcs.values())
 			{
 				if (t.getLevel() == lvl)
 				{
@@ -398,7 +397,7 @@ public class NpcTable
 		final List<L2NpcTemplate> list = new ArrayList<>();
 		for (int lvl : lvls)
 		{
-			for (L2NpcTemplate t : _npcs.values(new L2NpcTemplate[0]))
+			for (L2NpcTemplate t : _npcs.values())
 			{
 				if ((t.getLevel() == lvl) && t.isType("L2Monster"))
 				{
@@ -419,7 +418,7 @@ public class NpcTable
 		final List<L2NpcTemplate> list = new ArrayList<>();
 		for (String letter : letters)
 		{
-			for (L2NpcTemplate t : _npcs.values(new L2NpcTemplate[0]))
+			for (L2NpcTemplate t : _npcs.values())
 			{
 				if (t.getName().startsWith(letter) && t.isType("L2Npc"))
 				{
@@ -440,7 +439,7 @@ public class NpcTable
 		final List<L2NpcTemplate> list = new ArrayList<>();
 		for (String classType : classTypes)
 		{
-			for (L2NpcTemplate t : _npcs.values(new L2NpcTemplate[0]))
+			for (L2NpcTemplate t : _npcs.values())
 			{
 				if (t.isType(classType))
 				{

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcWalkerRoutesData.java

@@ -87,7 +87,7 @@ public class NpcWalkerRoutesData extends DocumentParser
 								npcString = NpcStringId.getNpcStringId(node.getNodeValue());
 								if (npcString == null)
 								{
-									_log.log(Level.WARNING, "NpcWalkerRoutersTable: Unknown npcstring '" + node.getNodeValue() + ".");
+									_log.log(Level.WARNING, getClass().getSimpleName() + ": Unknown npcstring '" + node.getNodeValue() + ".");
 									continue;
 								}
 							}
@@ -99,7 +99,7 @@ public class NpcWalkerRoutesData extends DocumentParser
 									npcString = NpcStringId.getNpcStringId(parseInt(node));
 									if (npcString == null)
 									{
-										_log.log(Level.WARNING, "NpcWalkerRoutersTable: Unknown npcstring '" + node.getNodeValue() + ".");
+										_log.log(Level.WARNING, getClass().getSimpleName() + ": Unknown npcstring '" + node.getNodeValue() + ".");
 										continue;
 									}
 								}

+ 23 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/OfflineTradersTable.java

@@ -45,7 +45,7 @@ public class OfflineTradersTable
 	private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM character_offline_trade";
 	private static final String LOAD_OFFLINE_ITEMS = "SELECT * FROM character_offline_trade_items WHERE charId = ?";
 	
-	public static void storeOffliners()
+	public void storeOffliners()
 	{
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE);
@@ -122,20 +122,20 @@ public class OfflineTradersTable
 				}
 				catch (Exception e)
 				{
-					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: " + pc.getObjectId() + " " + e, e);
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while saving offline trader: " + pc.getObjectId() + " " + e, e);
 				}
 			}
-			_log.info("Offline traders stored.");
+			_log.info(getClass().getSimpleName() + ": Offline traders stored.");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING,"OfflineTradersTable[storeTradeItems()]: Error while saving offline traders: " + e,e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while saving offline traders: " + e,e);
 		}
 	}
 	
-	public static void restoreOfflineTraders()
+	public void restoreOfflineTraders()
 	{
-		_log.info("Loading offline traders...");
+		_log.info(getClass().getSimpleName() + ": Loading offline traders...");
 		int nTraders = 0;
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			Statement stm = con.createStatement();
@@ -220,7 +220,7 @@ public class OfflineTradersTable
 				}
 				catch (Exception e)
 				{
-					_log.log(Level.WARNING, "OfflineTradersTable[loadOffliners()]: Error loading trader: "+player,e);
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": Error loading trader: "+player,e);
 					if (player != null)
 					{
 						player.deleteMe();
@@ -228,7 +228,7 @@ public class OfflineTradersTable
 				}
 			}
 			
-			_log.info("Loaded: " +nTraders+ " offline trader(s)");
+			_log.info(getClass().getSimpleName() + ": Loaded: " +nTraders+ " offline trader(s)");
 			
 			try (Statement stm1 = con.createStatement())
 			{
@@ -238,7 +238,21 @@ public class OfflineTradersTable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "OfflineTradersTable[loadOffliners()]: Error while loading offline traders: ",e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while loading offline traders: ",e);
 		}
 	}
+	
+	/**
+	 * Gets the single instance of OfflineTradersTable.
+	 * @return single instance of OfflineTradersTable
+	 */
+	public static OfflineTradersTable getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
+	private static class SingletonHolder
+	{
+		protected static final OfflineTradersTable _instance = new OfflineTradersTable();
+	}
 }

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetDataTable.java

@@ -147,7 +147,7 @@ public final class PetDataTable extends DocumentParser
 	{
 		if (!_pets.containsKey(petId))
 		{
-			_log.info("Missing pet data for npcid: " + petId);
+			_log.info(getClass().getSimpleName() + ": Missing pet data for npcid: " + petId);
 		}
 		return _pets.get(petId);
 	}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetNameTable.java

@@ -58,7 +58,7 @@ public class PetNameTable
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Could not check existing petname:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not check existing petname:" + e.getMessage(), e);
 		}
 		return result;
 	}
@@ -77,7 +77,7 @@ public class PetNameTable
 		}
 		catch (PatternSyntaxException e) // case of illegal pattern
 		{
-			_log.warning("ERROR : Pet name pattern of config is wrong!");
+			_log.warning(getClass().getSimpleName() + ": Pet name pattern of config is wrong!");
 			pattern = Pattern.compile(".*");
 		}
 		Matcher regexp = pattern.matcher(name);

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/RecipeData.java

@@ -251,7 +251,7 @@ public class RecipeData extends DocumentParser
 		L2RecipeList recipeList = _recipes.get(id);
 		if ((recipeList == null) || (recipeList.getRecipes().length == 0))
 		{
-			player.sendMessage("No recipe for: " + id);
+			player.sendMessage(getClass().getSimpleName() + ": No recipe for: " + id);
 			player.isInCraftMode(false);
 			return null;
 		}

+ 25 - 19
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTable.java

@@ -16,10 +16,13 @@ package com.l2jserver.gameserver.datatables;
 
 import gnu.trove.list.array.TIntArrayList;
 import gnu.trove.map.hash.TIntIntHashMap;
-import gnu.trove.map.hash.TIntObjectHashMap;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import com.l2jserver.Config;
 import com.l2jserver.gameserver.engines.DocumentEngine;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.skills.L2Skill;
@@ -31,20 +34,12 @@ public class SkillTable
 {
 	private static Logger _log = Logger.getLogger(SkillTable.class.getName());
 	
-	private final TIntObjectHashMap<L2Skill> _skills;
-	private final TIntIntHashMap _skillMaxLevel;
-	private final TIntArrayList _enchantable;
-	
-	public static SkillTable getInstance()
-	{
-		return SingletonHolder._instance;
-	}
+	private final Map<Integer, L2Skill> _skills = new HashMap<>();
+	private final TIntIntHashMap _skillMaxLevel = new TIntIntHashMap();
+	private final TIntArrayList _enchantable = new TIntArrayList();
 	
 	protected SkillTable()
 	{
-		_skills = new TIntObjectHashMap<>();
-		_skillMaxLevel = new TIntIntHashMap();
-		_enchantable = new TIntArrayList();
 		load();
 	}
 	
@@ -61,7 +56,7 @@ public class SkillTable
 		DocumentEngine.getInstance().loadAllSkills(_skills);
 		
 		_skillMaxLevel.clear();
-		for (final L2Skill skill : _skills.values(new L2Skill[0]))
+		for (final L2Skill skill : _skills.values())
 		{
 			final int skillId = skill.getId();
 			final int skillLvl = skill.getLevel();
@@ -118,9 +113,15 @@ public class SkillTable
 		final int maxLvl = _skillMaxLevel.get(skillId);
 		// requested level too high
 		if (maxLvl > 0 && level > maxLvl)
+		{
+			if (Config.DEBUG)
+			{
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": call to unexisting skill level id: " + skillId + " requested level: " + level + " max level: " + maxLvl, new Throwable());
+			}
 			return _skills.get(getSkillHashCode(skillId, maxLvl));
+		}
 		
-		_log.warning("No skill info found for skill id " + skillId + " and skill level " + level + ".");
+		_log.warning(getClass().getSimpleName() + ": No skill info found for skill id " + skillId + " and skill level " + level + ".");
 		return null;
 	}
 	
@@ -156,11 +157,6 @@ public class SkillTable
 		return temp;
 	}
 	
-	private static class SingletonHolder
-	{
-		protected static final SkillTable _instance = new SkillTable();
-	}
-	
 	/**
 	 * Enum to hold some important references to frequently used (hardcoded) skills in core
 	 * 
@@ -197,4 +193,14 @@ public class SkillTable
 			return _holder.getSkill();
 		}
 	}
+	
+	public static SkillTable getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
+	private static class SingletonHolder
+	{
+		protected static final SkillTable _instance = new SkillTable();
+	}
 }

+ 14 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SpawnTable.java

@@ -44,11 +44,6 @@ public class SpawnTable
 	private int _npcSpawnCount;
 	private int _customSpawnCount;
 	
-	public static SpawnTable getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	protected SpawnTable()
 	{
 		_spawntable.shared();
@@ -120,7 +115,7 @@ public class SpawnTable
 				}
 				else
 				{
-					_log.warning("SpawnTable: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + ".");
+					_log.warning(getClass().getSimpleName() + ": Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + ".");
 				}
 			}
 			rset.close();
@@ -129,10 +124,10 @@ public class SpawnTable
 		catch (Exception e)
 		{
 			// problem with initializing spawn, go to next one
-			_log.log(Level.WARNING, "SpawnTable: Spawn could not be initialized: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Spawn could not be initialized: " + e.getMessage(), e);
 		}
 		
-		_log.info("SpawnTable: Loaded " + _spawntable.size() + " Npc Spawn Locations.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _spawntable.size() + " npc spawns.");
 		
 		if (Config.CUSTOM_SPAWNLIST_TABLE)
 		{
@@ -194,7 +189,7 @@ public class SpawnTable
 					}
 					else
 					{
-						_log.warning("CustomSpawnTable: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + ".");
+						_log.warning(getClass().getSimpleName() + ": Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + ".");
 					}
 				}
 				rset.close();
@@ -205,12 +200,12 @@ public class SpawnTable
 				// problem with initializing spawn, go to next one
 				_log.log(Level.WARNING, "CustomSpawnTable: Spawn could not be initialized: " + e.getMessage(), e);
 			}
-			_log.info("CustomSpawnTable: Loaded " + _customSpawnCount + " Npc Spawn Locations.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _customSpawnCount + " custom npc spawns.");
 			
 		}
 		
 		if (Config.DEBUG)
-			_log.fine("SpawnTable: Spawning completed, total number of NPCs in the world: " + (_npcSpawnCount + _customSpawnCount));
+			_log.fine(getClass().getSimpleName() + ": Spawning completed, total number of NPCs in the world: " + (_npcSpawnCount + _customSpawnCount));
 		
 	}
 	
@@ -242,7 +237,7 @@ public class SpawnTable
 			catch (Exception e)
 			{
 				// problem with storing spawn
-				_log.log(Level.WARNING, "SpawnTable: Could not store spawn in the DB:" + e.getMessage(), e);
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not store spawn in the DB:" + e.getMessage(), e);
 			}
 		}
 	}
@@ -267,7 +262,7 @@ public class SpawnTable
 			catch (Exception e)
 			{
 				// problem with deleting spawn
-				_log.log(Level.WARNING, "SpawnTable: Spawn " + spawn + " could not be removed from DB: " + e.getMessage(), e);
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Spawn " + spawn + " could not be removed from DB: " + e.getMessage(), e);
 			}
 		}
 	}
@@ -316,7 +311,12 @@ public class SpawnTable
 		}
 		
 		if (index == 0)
-			activeChar.sendMessage("No current spawns found.");
+			activeChar.sendMessage(getClass().getSimpleName() + ": No current spawns found.");
+	}
+	
+	public static SpawnTable getInstance()
+	{
+		return SingletonHolder._instance;
 	}
 	
 	private static class SingletonHolder

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/StaticObjects.java

@@ -48,7 +48,7 @@ public final class StaticObjects extends DocumentParser
 	{
 		_staticObjects.clear();
 		parseDatapackFile("data/staticObjects.xml");
-		_log.info("StaticObject: Loaded " + _staticObjects.size() + " StaticObject Templates.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _staticObjects.size() + " StaticObject Templates.");
 	}
 	
 	@Override

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonItemsData.java

@@ -14,9 +14,9 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Scanner;
 import java.util.logging.Logger;
 
@@ -29,7 +29,7 @@ import com.l2jserver.gameserver.model.L2SummonItem;
 public class SummonItemsData
 {
 	protected static final Logger _log = Logger.getLogger(SummonItemsData.class.getName());
-	private final TIntObjectHashMap<L2SummonItem> _summonitems = new TIntObjectHashMap<>();
+	private final Map<Integer, L2SummonItem> _summonitems = new HashMap<>();
 	
 	public static SummonItemsData getInstance()
 	{
@@ -75,7 +75,7 @@ public class SummonItemsData
 				}
 				catch (Exception e)
 				{
-					_log.warning("Summon items data: Error in line " + lineCount + " -> incomplete/invalid data or wrong seperator!");
+					_log.warning(getClass().getSimpleName() + ": Error in line " + lineCount + " -> incomplete/invalid data or wrong seperator!");
 					_log.warning("		" + line);
 					ok = false;
 				}
@@ -89,11 +89,11 @@ public class SummonItemsData
 				_summonitems.put(itemID, summonitem);
 			}
 			
-			_log.info("Summon items data: Loaded " + _summonitems.size() + " summon items.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _summonitems.size() + " summon items.");
 		}
 		catch (Exception e)
 		{
-			_log.warning("Summon items data: Can not find '" + Config.DATAPACK_ROOT + "/data/summon_items.csv'");
+			_log.warning(getClass().getSimpleName() + ": Can not find '" + Config.DATAPACK_ROOT + "/data/summon_items.csv'");
 			return;
 		}
 	}
@@ -108,7 +108,7 @@ public class SummonItemsData
 		int size = _summonitems.size();
 		int[] result = new int[size];
 		int i = 0;
-		for (L2SummonItem si : _summonitems.values(new L2SummonItem[0]))
+		for (L2SummonItem si : _summonitems.values())
 		{
 			result[i++] = si.getItemId();
 		}

+ 19 - 25
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonSkillsTable.java

@@ -17,41 +17,30 @@ package com.l2jserver.gameserver.datatables;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javolution.util.FastList;
-import javolution.util.FastMap;
-
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 
 public class SummonSkillsTable
 {
 	private static Logger _log = Logger.getLogger(SummonSkillsTable.class.getName());
-	private FastMap<Integer, Map<Integer, L2PetSkillLearn>> _skillTrees;
-	
-	public static SummonSkillsTable getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
-	public void reload()
-	{
-		_skillTrees.clear();
-		load();
-	}
+	private Map<Integer, Map<Integer, L2PetSkillLearn>> _skillTrees = new HashMap<>();
 	
 	protected SummonSkillsTable()
 	{
-		_skillTrees = new FastMap<>();
 		load();
 	}
 	
-	private void load()
+	public void load()
 	{
+		_skillTrees.clear();
 		int npcId = 0;
 		int count = 0;
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
@@ -64,7 +53,7 @@ public class SummonSkillsTable
 			PreparedStatement statement2 = con.prepareStatement("SELECT minLvl, skillId, skillLvl FROM pets_skills where templateId=? ORDER BY skillId, skillLvl");
 			while (petlist.next())
 			{
-				map = new FastMap<>();
+				map = new HashMap<>();
 				npcId = petlist.getInt("id");
 				statement2.setInt(1, npcId);
 				ResultSet skilltree = statement2.executeQuery();
@@ -83,7 +72,7 @@ public class SummonSkillsTable
 				skilltree.close();
 				
 				count += map.size();
-				_log.fine("PetSkillsTable: skill tree for pet " + npcId + " has " + map.size() + " skills");
+				_log.fine(getClass().getSimpleName() + ": skill tree for pet " + npcId + " has " + map.size() + " skills");
 			}
 			statement2.close();
 			petlist.close();
@@ -91,9 +80,9 @@ public class SummonSkillsTable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error while creating pet skill tree (Pet ID " + npcId + "): " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while creating pet skill tree (Pet ID " + npcId + "): " + e.getMessage(), e);
 		}
-		_log.info("PetSkillsTable: Loaded " + count + " skills.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + count + " skills.");
 	}
 	
 	public int getAvailableLevel(L2Summon cha, int skillId)
@@ -101,7 +90,7 @@ public class SummonSkillsTable
 		int lvl = 0;
 		if (!_skillTrees.containsKey(cha.getNpcId()))
 		{
-			_log.warning("Pet id " + cha.getNpcId() + " does not have any skills assigned.");
+			_log.warning(getClass().getSimpleName() + ": Pet id " + cha.getNpcId() + " does not have any skills assigned.");
 			return lvl;
 		}
 		Collection<L2PetSkillLearn> skills = _skillTrees.get(cha.getNpcId()).values();
@@ -135,12 +124,12 @@ public class SummonSkillsTable
 		return lvl;
 	}
 	
-	public FastList<Integer> getAvailableSkills(L2Summon cha)
+	public List<Integer> getAvailableSkills(L2Summon cha)
 	{
-		FastList<Integer> skillIds = new FastList<>();
+		List<Integer> skillIds = new ArrayList<>();
 		if (!_skillTrees.containsKey(cha.getNpcId()))
 		{
-			_log.warning("Pet id " + cha.getNpcId() + " does not have any skills assigned.");
+			_log.warning(getClass().getSimpleName() + ": Pet id " + cha.getNpcId() + " does not have any skills assigned.");
 			return skillIds;
 		}
 		Collection<L2PetSkillLearn> skills = _skillTrees.get(cha.getNpcId()).values();
@@ -182,6 +171,11 @@ public class SummonSkillsTable
 		}
 	}
 	
+	public static SummonSkillsTable getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final SummonSkillsTable _instance = new SummonSkillsTable();

+ 13 - 13
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TeleportLocationTable.java

@@ -14,11 +14,11 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 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;
 
@@ -35,12 +35,7 @@ public class TeleportLocationTable
 {
 	private static Logger _log = Logger.getLogger(TeleportLocationTable.class.getName());
 	
-	private TIntObjectHashMap<L2TeleportLocation> _teleports;
-	
-	public static TeleportLocationTable getInstance()
-	{
-		return SingletonHolder._instance;
-	}
+	private Map<Integer, L2TeleportLocation> _teleports = new HashMap<>();
 	
 	protected TeleportLocationTable()
 	{
@@ -49,7 +44,7 @@ public class TeleportLocationTable
 	
 	public void reloadAll()
 	{
-		_teleports = new TIntObjectHashMap<>();
+		_teleports.clear();
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection();
 			Statement s = con.createStatement();
 			ResultSet rs = s.executeQuery("SELECT id, loc_x, loc_y, loc_z, price, fornoble, itemId FROM teleport"))
@@ -69,11 +64,11 @@ public class TeleportLocationTable
 				
 				_teleports.put(teleport.getTeleId(), teleport);
 			}
-			_log.info("TeleportLocationTable: Loaded " + _teleports.size() + " Teleport Location Templates.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _teleports.size() + " Teleport Location Templates.");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error loading Teleport Table.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error loading Teleport Table.", e);
 		}
 		
 		if (Config.CUSTOM_TELEPORT_TABLE)
@@ -100,12 +95,12 @@ public class TeleportLocationTable
 				_cTeleCount = _teleports.size() - _cTeleCount;
 				if (_cTeleCount > 0)
 				{
-					_log.info("TeleportLocationTable: Loaded " + _cTeleCount + " Custom Teleport Location Templates.");
+					_log.info(getClass().getSimpleName() + ": Loaded " + _cTeleCount + " Custom Teleport Location Templates.");
 				}
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.WARNING, "Error while creating custom teleport table " + e.getMessage(), e);
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while creating custom teleport table " + e.getMessage(), e);
 			}
 		}
 	}
@@ -119,6 +114,11 @@ public class TeleportLocationTable
 		return _teleports.get(id);
 	}
 	
+	public static TeleportLocationTable getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final TeleportLocationTable _instance = new TeleportLocationTable();

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TerritoryTable.java

@@ -70,7 +70,7 @@ public class TerritoryTable
 			Integer terr = row[0];
 			if (terr == null)
 			{
-				_log.warning("Null territory!");
+				_log.warning(getClass().getSimpleName() + ": Null territory!");
 				continue;
 			}
 			

+ 11 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/UITable.java

@@ -40,17 +40,12 @@ public class UITable
 	private Map<Integer, List<ActionKey>> _storedKeys = new HashMap<>();
 	private Map<Integer, List<Integer>> _storedCategories = new HashMap<>();
 	
-	public static UITable getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	protected UITable()
 	{
 		parseCatData();
 		parseKeyData();
-		_log.info("UITable: Loaded " + _storedCategories.size() + " Categories.");
-		_log.info("UITable: Loaded " + _storedKeys.size() + " Keys.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _storedCategories.size() + " Categories.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _storedKeys.size() + " Keys.");
 	}
 	
 	private void parseCatData()
@@ -76,11 +71,11 @@ public class UITable
 		}
 		catch (FileNotFoundException e)
 		{
-			_log.warning("uicats_en.csv is missing in data folder");
+			_log.warning(getClass().getSimpleName() + ": uicats_en.csv is missing in data folder");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error while creating UI Default Categories table " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while creating UI Default Categories table " + e.getMessage(), e);
 		}
 	}
 	
@@ -111,11 +106,11 @@ public class UITable
 		}
 		catch (FileNotFoundException e)
 		{
-			_log.warning("uikeys_en.csv is missing in data folder");
+			_log.warning(getClass().getSimpleName() + ": uikeys_en.csv is missing in data folder");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error while creating UI Default Keys table " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while creating UI Default Keys table " + e.getMessage(), e);
 		}
 	}
 	
@@ -154,6 +149,11 @@ public class UITable
 		return _storedKeys;
 	}
 	
+	public static UITable getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final UITable _instance = new UITable();

+ 2 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentEngine.java

@@ -14,10 +14,9 @@
  */
 package com.l2jserver.gameserver.engines;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 import java.io.File;
 import java.util.List;
+import java.util.Map;
 import java.util.logging.Logger;
 
 import javolution.util.FastList;
@@ -82,7 +81,7 @@ public class DocumentEngine
 		return doc.getSkills();
 	}
 	
-	public void loadAllSkills(final TIntObjectHashMap<L2Skill> allSkills)
+	public void loadAllSkills(final Map<Integer, L2Skill> allSkills)
 	{
 		int count = 0;
 		for (File file : _skillFiles)

+ 13 - 13
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/AirShipManager.java

@@ -14,13 +14,13 @@
  */
 package com.l2jserver.gameserver.instancemanager;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -43,14 +43,9 @@ public class AirShipManager
 	private static final String UPDATE_DB = "UPDATE airships SET fuel=? WHERE owner_id=?";
 	
 	private L2CharTemplate _airShipTemplate = null;
-	private TIntObjectHashMap<StatsSet> _airShipsInfo = new TIntObjectHashMap<>();
-	private TIntObjectHashMap<L2AirShipInstance> _airShips = new TIntObjectHashMap<>();
-	private TIntObjectHashMap<AirShipTeleportList> _teleports = new TIntObjectHashMap<>();
-	
-	public static final AirShipManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
+	private Map<Integer, StatsSet> _airShipsInfo = new HashMap<>();
+	private Map<Integer, L2AirShipInstance> _airShips = new HashMap<>();
+	private Map<Integer, AirShipTeleportList> _teleports = new HashMap<>();
 	
 	protected AirShipManager()
 	{
@@ -156,12 +151,12 @@ public class AirShipManager
 	
 	public boolean hasAirShipLicense(int ownerId)
 	{
-		return _airShipsInfo.contains(ownerId);
+		return _airShipsInfo.containsKey(ownerId);
 	}
 	
 	public void registerLicense(int ownerId)
 	{
-		if (!_airShipsInfo.contains(ownerId))
+		if (!_airShipsInfo.containsKey(ownerId))
 		{
 			final StatsSet info = new StatsSet();
 			info.set("fuel", 600);
@@ -213,7 +208,7 @@ public class AirShipManager
 			return;
 		
 		int dockId = ship.getDockId();
-		if (!_teleports.contains(dockId))
+		if (!_teleports.containsKey(dockId))
 			return;
 		
 		final AirShipTeleportList all = _teleports.get(dockId);
@@ -306,6 +301,11 @@ public class AirShipManager
 		}
 	}
 	
+	public static final AirShipManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final AirShipManager _instance = new AirShipManager();

+ 58 - 68
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/AntiFeedManager.java

@@ -14,17 +14,17 @@
  */
 package com.l2jserver.gameserver.instancemanager;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-import gnu.trove.procedure.TObjectProcedure;
-
 import java.util.Map;
 
 import javolution.util.FastMap;
 
 import com.l2jserver.Config;
+import com.l2jserver.gameserver.model.IL2Procedure;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.L2GameClient;
+import com.l2jserver.util.L2FastMap;
+import com.l2jserver.util.L2HashMap;
 
 public class AntiFeedManager
 {
@@ -32,19 +32,12 @@ public class AntiFeedManager
 	public static final int OLYMPIAD_ID = 1;
 	public static final int TVT_ID = 2;
 	public static final int L2EVENT_ID = 3;
-
-	private final Map<Integer,Long> _lastDeathTimes;
-	private final TIntObjectHashMap<Map<Integer, Connections>> _eventIPs;
-
-	public static final AntiFeedManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
+	
+	private final Map<Integer, Long> _lastDeathTimes = new L2FastMap<>(true);
+	private final L2HashMap<Integer, Map<Integer, Connections>> _eventIPs = new L2HashMap<>();
 	
 	protected AntiFeedManager()
 	{
-		_lastDeathTimes = new FastMap<Integer,Long>().shared();
-		_eventIPs = new TIntObjectHashMap<>();
 	}
 	
 	/**
@@ -74,29 +67,25 @@ public class AntiFeedManager
 		if (targetPlayer == null)
 			return false;
 		
-		if (Config.L2JMOD_ANTIFEED_INTERVAL > 0
-				&& _lastDeathTimes.containsKey(targetPlayer.getObjectId()))
+		if (Config.L2JMOD_ANTIFEED_INTERVAL > 0 && _lastDeathTimes.containsKey(targetPlayer.getObjectId()))
 			return (System.currentTimeMillis() - _lastDeathTimes.get(targetPlayer.getObjectId())) > Config.L2JMOD_ANTIFEED_INTERVAL;
+		
+		if (Config.L2JMOD_ANTIFEED_DUALBOX && attacker != null)
+		{
+			final L2PcInstance attackerPlayer = attacker.getActingPlayer();
+			if (attackerPlayer == null)
+				return false;
 			
-			if (Config.L2JMOD_ANTIFEED_DUALBOX && attacker != null)
-			{
-				final L2PcInstance attackerPlayer = attacker.getActingPlayer();
-				if (attackerPlayer == null)
-					return false;
-				
-				final L2GameClient targetClient = targetPlayer.getClient();
-				final L2GameClient attackerClient = attackerPlayer.getClient();
-				if (targetClient == null
-						|| attackerClient == null
-						|| targetClient.isDetached()
-						|| attackerClient.isDetached())
-					// unable to check ip address
-					return !Config.L2JMOD_ANTIFEED_DISCONNECTED_AS_DUALBOX;
-				
-				return !targetClient.getConnectionAddress().equals(attackerClient.getConnectionAddress());
-			}
+			final L2GameClient targetClient = targetPlayer.getClient();
+			final L2GameClient attackerClient = attackerPlayer.getClient();
+			if (targetClient == null || attackerClient == null || targetClient.isDetached() || attackerClient.isDetached())
+				// unable to check ip address
+				return !Config.L2JMOD_ANTIFEED_DISCONNECTED_AS_DUALBOX;
 			
-			return true;
+			return !targetClient.getConnectionAddress().equals(attackerClient.getConnectionAddress());
+		}
+		
+		return true;
 	}
 	
 	/**
@@ -106,10 +95,9 @@ public class AntiFeedManager
 	{
 		_lastDeathTimes.clear();
 	}
-
+	
 	/**
-	 * Register new event for dualbox check.
-	 * Should be called only once.
+	 * Register new event for dualbox check. Should be called only once.
 	 * @param eventId
 	 */
 	public final void registerEvent(int eventId)
@@ -117,45 +105,42 @@ public class AntiFeedManager
 		if (!_eventIPs.containsKey(eventId))
 			_eventIPs.put(eventId, new FastMap<Integer, Connections>());
 	}
-
+	
 	/**
-	 * 
 	 * @param eventId
 	 * @param player
 	 * @param max
-	 * @return If number of all simultaneous connections from player's IP address lower than max
-	 * then increment connection count and return true.<br>
-	 * False if number of all simultaneous connections from player's IP address higher than max.
+	 * @return If number of all simultaneous connections from player's IP address lower than max then increment connection count and return true.<br>
+	 *         False if number of all simultaneous connections from player's IP address higher than max.
 	 */
 	public final boolean tryAddPlayer(int eventId, L2PcInstance player, int max)
 	{
 		return tryAddClient(eventId, player.getClient(), max);
 	}
-
+	
 	/**
-	 * 
 	 * @param eventId
 	 * @param client
 	 * @param max
 	 * @return If number of all simultaneous connections from player's IP address lower than max then increment connection count and return true.<br>
-	 * False if number of all simultaneous connections from player's IP address higher than max.
+	 *         False if number of all simultaneous connections from player's IP address higher than max.
 	 */
 	public final boolean tryAddClient(int eventId, L2GameClient client, int max)
 	{
 		if (client == null)
 			return false; // unable to determine IP address
-
+			
 		final Map<Integer, Connections> event = _eventIPs.get(eventId);
 		if (event == null)
 			return false; // no such event registered
-
+			
 		final Integer addrHash = Integer.valueOf(client.getConnectionAddress().hashCode());
 		int limit = max;
 		if (Config.L2JMOD_DUALBOX_CHECK_WHITELIST.containsKey(addrHash))
 		{
 			limit += Config.L2JMOD_DUALBOX_CHECK_WHITELIST.get(addrHash);
 		}
-
+		
 		Connections conns;
 		synchronized (event)
 		{
@@ -166,10 +151,10 @@ public class AntiFeedManager
 				event.put(addrHash, conns);
 			}
 		}
-
+		
 		return conns.testAndIncrement(limit);
 	}
-
+	
 	/**
 	 * Decreasing number of active connection from player's IP address
 	 * @param eventId
@@ -181,25 +166,25 @@ public class AntiFeedManager
 		final L2GameClient client = player.getClient();
 		if (client == null)
 			return false; // unable to determine IP address
-
+			
 		final Map<Integer, Connections> event = _eventIPs.get(eventId);
 		if (event == null)
 			return false; // no such event registered
-
+			
 		final Integer addrHash = Integer.valueOf(client.getConnectionAddress().hashCode());
 		Connections conns = event.get(addrHash);
 		if (conns == null)
 			return false; // address not registered
-
+			
 		synchronized (event)
 		{
 			if (conns.testAndDecrement())
 				event.remove(addrHash);
 		}
-
+		
 		return true;
 	}
-
+	
 	/**
 	 * Remove player connection IP address from all registered events lists.
 	 * @param client
@@ -208,11 +193,11 @@ public class AntiFeedManager
 	{
 		if (client == null)
 			return;
-
+		
 		final Integer addrHash = Integer.valueOf(client.getConnectionAddress().hashCode());
-		_eventIPs.forEachValue(new DisconnectProcedure(addrHash));
+		_eventIPs.executeForEachValue(new DisconnectProcedure(addrHash));
 	}
-
+	
 	/**
 	 * Clear all entries for this eventId.
 	 * @param eventId
@@ -223,7 +208,7 @@ public class AntiFeedManager
 		if (event != null)
 			event.clear();
 	}
-
+	
 	/**
 	 * @param player
 	 * @param max
@@ -233,7 +218,7 @@ public class AntiFeedManager
 	{
 		return getLimit(player.getClient(), max);
 	}
-
+	
 	/**
 	 * @param client
 	 * @param max
@@ -243,7 +228,7 @@ public class AntiFeedManager
 	{
 		if (client == null)
 			return max;
-
+		
 		final Integer addrHash = Integer.valueOf(client.getConnectionAddress().hashCode());
 		int limit = max;
 		if (Config.L2JMOD_DUALBOX_CHECK_WHITELIST.containsKey(addrHash))
@@ -256,10 +241,10 @@ public class AntiFeedManager
 	protected static final class Connections
 	{
 		private int _num = 0;
-
+		
 		/**
 		 * and false if maximum number is reached.
-		 * @param max 
+		 * @param max
 		 * @return true if successfully incremented number of connections
 		 */
 		public final synchronized boolean testAndIncrement(int max)
@@ -271,7 +256,7 @@ public class AntiFeedManager
 			}
 			return false;
 		}
-
+		
 		/**
 		 * @return true if all connections are removed
 		 */
@@ -279,20 +264,20 @@ public class AntiFeedManager
 		{
 			if (_num > 0)
 				_num--;
-
+			
 			return _num == 0;
 		}
 	}
-
-	private static final class DisconnectProcedure implements TObjectProcedure<Map<Integer, Connections>>
+	
+	private static final class DisconnectProcedure implements IL2Procedure<Map<Integer, Connections>>
 	{
 		private final Integer _addrHash;
-
+		
 		public DisconnectProcedure(Integer addrHash)
 		{
 			_addrHash = addrHash;
 		}
-
+		
 		@Override
 		public final boolean execute(Map<Integer, Connections> event)
 		{
@@ -309,6 +294,11 @@ public class AntiFeedManager
 		}
 	}
 	
+	public static final AntiFeedManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final AntiFeedManager _instance = new AntiFeedManager();

+ 9 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/AuctionManager.java

@@ -17,19 +17,18 @@ package com.l2jserver.gameserver.instancemanager;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javolution.util.FastList;
-
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.model.entity.Auction;
 
 public class AuctionManager
 {
 	protected static final Logger _log = Logger.getLogger(AuctionManager.class.getName());
-	private List<Auction> _auctions;
+	private List<Auction> _auctions = new ArrayList<>();
 	
 	private static final String[] ITEM_INIT_DATA =
 	{
@@ -86,7 +85,6 @@ public class AuctionManager
 	
 	protected AuctionManager()
 	{
-		_auctions = new FastList<>();
 		load();
 	}
 	
@@ -103,14 +101,16 @@ public class AuctionManager
 			PreparedStatement statement = con.prepareStatement("SELECT id FROM auction ORDER BY id");
 			ResultSet rs = statement.executeQuery();
 			while (rs.next())
+			{
 				_auctions.add(new Auction(rs.getInt("id")));
+			}
 			rs.close();
 			statement.close();
-			_log.info("Loaded: " + getAuctions().size() + " auction(s)");
+			_log.info(getClass().getSimpleName() + ": Loaded: " + getAuctions().size() + " auction(s)");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Exception: AuctionManager.load(): " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Exception: AuctionManager.load(): " + e.getMessage(), e);
 		}
 	}
 	
@@ -153,7 +153,7 @@ public class AuctionManager
 		}
 		if (i >= ItemInitDataId.length || ItemInitDataId[i] != id)
 		{
-			_log.warning("Clan Hall auction not found for Id :" + id);
+			_log.warning(getClass().getSimpleName() + ": Clan Hall auction not found for Id :" + id);
 			return;
 		}
 		
@@ -163,11 +163,11 @@ public class AuctionManager
 			statement.execute();
 			statement.close();
 			_auctions.add(new Auction(id));
-			_log.info("Created auction for ClanHall: " + id);
+			_log.info(getClass().getSimpleName() + ": Created auction for ClanHall: " + id);
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Exception: Auction.initNPC(): " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Exception: Auction.initNPC(): " + e.getMessage(), e);
 		}
 	}
 	

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CHSiegeManager.java

@@ -76,7 +76,7 @@ public final class CHSiegeManager
 				_siegableHalls.put(id, hall);
 				ClanHallManager.addClanHall(hall);
 			}
-			_log.info("CHSiegeManager: Loaded " + _siegableHalls.size() + " conquerable clan halls.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _siegableHalls.size() + " conquerable clan halls.");
 			rs.close();
 			statement.close();
 		}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CastleManager.java

@@ -255,7 +255,7 @@ public class CastleManager implements InstanceListManager
 			rs.close();
 			statement.close();
 			
-			_log.info("Loaded: " + getCastles().size() + " castles");
+			_log.info(getClass().getSimpleName() + ": Loaded: " + getCastles().size() + " castles");
 		}
 		catch (Exception e)
 		{

+ 14 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CastleManorManager.java

@@ -17,7 +17,9 @@ package com.l2jserver.gameserver.instancemanager;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.List;
 import java.util.concurrent.ScheduledFuture;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -28,8 +30,8 @@ import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.ClanTable;
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.model.L2Clan;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.Castle;
@@ -258,7 +260,7 @@ public class CastleManorManager
 				castle.setCropProcure(procureNext, PERIOD_NEXT);
 				
 				if (!procure.isEmpty() || !procureNext.isEmpty() || !production.isEmpty() || !productionNext.isEmpty())
-					_log.info(castle.getName() + ": Data loaded");
+					_log.info(getClass().getSimpleName() + ": " + castle.getName() + ": Data loaded");
 			}
 			statementProduction.close();
 			statementProcure.close();
@@ -412,7 +414,7 @@ public class CastleManorManager
 					}
 					if (count > 0)
 					{
-						cwh.addItem("Manor", L2Manor.getInstance().getMatureCrop(crop.getId()), count, null, null);
+						cwh.addItem("Manor", ManorData.getInstance().getMatureCrop(crop.getId()), count, null, null);
 					}
 				}
 				// reserved and not used money giving back to treasury
@@ -498,7 +500,7 @@ public class CastleManorManager
 				{
 					if (crop.getStartAmount() > 0)
 					{
-						if (cwh.getItemByItemId(L2Manor.getInstance().getMatureCrop(crop.getId())) == null)
+						if (cwh.getItemByItemId(ManorData.getInstance().getMatureCrop(crop.getId())) == null)
 							slots++;
 					}
 				}
@@ -528,10 +530,10 @@ public class CastleManorManager
 		}
 	}
 	
-	private FastList<SeedProduction> getNewSeedsList(int castleId)
+	private List<SeedProduction> getNewSeedsList(int castleId)
 	{
-		FastList<SeedProduction> seeds = new FastList<>();
-		FastList<Integer> seedsIds = L2Manor.getInstance().getSeedsForCastle(castleId);
+		List<SeedProduction> seeds = new ArrayList<>();
+		List<Integer> seedsIds = ManorData.getInstance().getSeedsForCastle(castleId);
 		for (int sd : seedsIds)
 		{
 			seeds.add(new SeedProduction(sd));
@@ -539,12 +541,14 @@ public class CastleManorManager
 		return seeds;
 	}
 	
-	private FastList<CropProcure> getNewCropsList(int castleId)
+	private List<CropProcure> getNewCropsList(int castleId)
 	{
-		FastList<CropProcure> crops = new FastList<>();
-		FastList<Integer> cropsIds = L2Manor.getInstance().getCropsForCastle(castleId);
+		List<CropProcure> crops = new ArrayList<>();
+		List<Integer> cropsIds = ManorData.getInstance().getCropsForCastle(castleId);
 		for (int cr : cropsIds)
+		{
 			crops.add(new CropProcure(cr));
+		}
 		
 		return crops;
 	}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ClanHallManager.java

@@ -117,8 +117,8 @@ public final class ClanHallManager
 			
 			rs.close();
 			statement.close();
-			_log.info("Loaded: " + getClanHalls().size() + " clan halls");
-			_log.info("Loaded: " + getFreeClanHalls().size() + " free clan halls");
+			_log.info(getClass().getSimpleName() + ": Loaded: " + getClanHalls().size() + " clan halls");
+			_log.info(getClass().getSimpleName() + ": Loaded: " + getFreeClanHalls().size() + " free clan halls");
 			_loaded = true;
 		}
 		catch (Exception e)

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CoupleManager.java

@@ -68,7 +68,7 @@ public class CoupleManager
 			rs.close();
 			statement.close();
 			
-			_log.info("Loaded: " + getCouples().size() + " couples(s)");
+			_log.info(getClass().getSimpleName() + ": Loaded: " + getCouples().size() + " couples(s)");
 		}
 		catch (Exception e)
 		{

+ 10 - 28
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/CursedWeaponsManager.java

@@ -51,17 +51,13 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.util.Broadcast;
 
 /**
+ * UnAfraid: TODO: Rewrite with DocumentParser 
  * @author Micht
  */
 public class CursedWeaponsManager
 {
 	private static final Logger _log = Logger.getLogger(CursedWeaponsManager.class.getName());
 	
-	public static final CursedWeaponsManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	private Map<Integer, CursedWeapon> _cursedWeapons;
 	
 	protected CursedWeaponsManager()
@@ -79,7 +75,7 @@ public class CursedWeaponsManager
 		load();
 		restore();
 		controlPlayers();
-		_log.info("Loaded : " + _cursedWeapons.size() + " cursed weapon(s).");
+		_log.info(getClass().getSimpleName() + ": Loaded : " + _cursedWeapons.size() + " cursed weapon(s).");
 	}
 	
 	public final void reload()
@@ -89,8 +85,6 @@ public class CursedWeaponsManager
 	
 	private final void load()
 	{
-		if (Config.DEBUG)
-			_log.info("  Parsing ... ");
 		try
 		{
 			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
@@ -100,8 +94,7 @@ public class CursedWeaponsManager
 			File file = new File(Config.DATAPACK_ROOT + "/data/cursedWeapons.xml");
 			if (!file.exists())
 			{
-				if (Config.DEBUG)
-					_log.info("NO FILE");
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't find data/" + file.getName());
 				return;
 			}
 			
@@ -163,9 +156,6 @@ public class CursedWeaponsManager
 					}
 				}
 			}
-			
-			if (Config.DEBUG)
-				_log.info("OK");
 		}
 		catch (Exception e)
 		{
@@ -177,8 +167,6 @@ public class CursedWeaponsManager
 	
 	private final void restore()
 	{
-		if (Config.DEBUG)
-			_log.info("  Restoring ... ");
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
 		{
 			// Retrieve the L2PcInstance from the characters table of the database
@@ -204,9 +192,6 @@ public class CursedWeaponsManager
 			
 			rset.close();
 			statement.close();
-			
-			if (Config.DEBUG)
-				_log.info("OK");
 		}
 		catch (Exception e)
 		{
@@ -215,10 +200,7 @@ public class CursedWeaponsManager
 	}
 	
 	private final void controlPlayers()
-	{
-		if (Config.DEBUG)
-			_log.info("  Checking players ... ");
-		
+	{		
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
 		{
 			// TODO: See comments below...
@@ -279,13 +261,8 @@ public class CursedWeaponsManager
 		}
 		catch (Exception e)
 		{
-			if (Config.DEBUG)
-				_log.log(Level.WARNING, "Could not check CursedWeapons data: " + e.getMessage(), e);
-			return;
+			_log.log(Level.WARNING, "Could not check CursedWeapons data: " + e.getMessage(), e);
 		}
-		
-		if (Config.DEBUG)
-			_log.info("DONE");
 	}
 	
 	public synchronized void checkDrop(L2Attackable attackable, L2PcInstance player)
@@ -444,6 +421,11 @@ public class CursedWeaponsManager
 		}
 	}
 	
+	public static final CursedWeaponsManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final CursedWeaponsManager _instance = new CursedWeaponsManager();

+ 1 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DayNightSpawnManager.java

@@ -50,9 +50,7 @@ public class DayNightSpawnManager
 	{
 		_dayCreatures = new ArrayList<>();
 		_nightCreatures = new ArrayList<>();
-		_bosses = new FastMap<>();
-		
-		_log.info("DayNightSpawnManager: Day/Night handler initialized");
+		_bosses = new FastMap<>();		
 	}
 	
 	public void addDayCreature(L2Spawn spawnDat)

+ 8 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DimensionalRiftManager.java

@@ -19,7 +19,6 @@ import gnu.trove.map.hash.TByteObjectHashMap;
 import java.awt.Polygon;
 import java.awt.Shape;
 import java.io.File;
-import java.io.IOException;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -67,6 +66,7 @@ public class DimensionalRiftManager
 	{
 		loadRooms();
 		loadSpawns();
+		// UnAfraid: TODO: Move that quest to datapack lol!!!
 		new Quest(635, "RiftQuest", "Dummy Quest shown in players' questlist when inside the rift");
 	}
 	
@@ -120,7 +120,7 @@ public class DimensionalRiftManager
 		for (byte b : _rooms.keys())
 			roomSize += _rooms.get(b).keys().length;
 		
-		_log.info("DimensionalRiftManager: Loaded " + typeSize + " room types with " + roomSize + " rooms.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + typeSize + " room types with " + roomSize + " rooms.");
 	}
 	
 	public void loadSpawns()
@@ -132,9 +132,12 @@ public class DimensionalRiftManager
 			factory.setValidating(false);
 			factory.setIgnoringComments(true);
 			
-			File file = new File(Config.DATAPACK_ROOT + "/data/dimensionalRift.xml");
+			File file = new File(Config.DATAPACK_ROOT, "data/dimensionalRift.xml");
 			if (!file.exists())
-				throw new IOException();
+			{
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't find data/" + file.getName());
+				return;
+			}
 			
 			Document doc = factory.newDocumentBuilder().parse(file);
 			NamedNodeMap attrs;
@@ -222,7 +225,7 @@ public class DimensionalRiftManager
 		{
 			_log.log(Level.WARNING, "Error on loading dimensional rift spawns: " + e.getMessage(), e);
 		}
-		_log.info("DimensionalRiftManager: Loaded " + countGood + " dimensional rift spawns, " + countBad + " errors.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + countGood + " dimensional rift spawns, " + countBad + " errors.");
 	}
 	
 	public void reload()

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DuelManager.java

@@ -23,11 +23,6 @@ import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
 
 public class DuelManager
 {	
-	public static final DuelManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	private FastList<Duel> _duels;
 	private int _currentDuelId = 0x90;
 	
@@ -200,6 +195,11 @@ public class DuelManager
 		}
 	}
 	
+	public static final DuelManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final DuelManager _instance = new DuelManager();

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FortManager.java

@@ -165,7 +165,7 @@ public class FortManager implements InstanceListManager
 			rs.close();
 			statement.close();
 			
-			_log.info("Loaded: " + getForts().size() + " fortress");
+			_log.info(getClass().getSimpleName() + ": Loaded: " + getForts().size() + " fortress");
 			for (Fort fort : getForts())
 			{
 				fort.getSiege().getSiegeGuardManager().loadSiegeGuard();

+ 0 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FortSiegeGuardManager.java

@@ -32,7 +32,6 @@ import com.l2jserver.gameserver.model.entity.Fort;
 
 public class FortSiegeGuardManager
 {
-	
 	private static final Logger _log = Logger.getLogger(FortSiegeGuardManager.class.getName());
 	
 	private Fort _fort;

+ 35 - 28
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FourSepulchersManager.java

@@ -44,6 +44,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2SepulcherMonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2SepulcherNpcInstance;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
@@ -59,7 +60,7 @@ public class FourSepulchersManager
 {
 	protected static final Logger _log = Logger.getLogger(FourSepulchersManager.class.getName());
 	
-	private static final String QUEST_ID = "620_FourGoblets";
+	private static final int QUEST_ID = 620;
 	
 	private static final int ENTRANCE_PASS = 7075;
 	private static final int USED_PASS = 7261;
@@ -143,11 +144,6 @@ public class FourSepulchersManager
 	
 	protected byte _newCycleMin = 55;
 	
-	public static final FourSepulchersManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	public void init()
 	{
 		if (_changeCoolDownTimeTask != null)
@@ -196,7 +192,7 @@ public class FourSepulchersManager
 		{
 			clean();
 			_changeEntryTimeTask = ThreadPoolManager.getInstance().scheduleGeneral(new ChangeEntryTime(), 0);
-			_log.info("FourSepulchersManager: Beginning in Entry time");
+			_log.info(getClass().getSimpleName() + ": Beginning in Entry time");
 		}
 		else if (currentTime >= _entryTimeEnd && currentTime < _warmUpTimeEnd) // warmup
 			// time
@@ -204,7 +200,7 @@ public class FourSepulchersManager
 		{
 			clean();
 			_changeWarmUpTimeTask = ThreadPoolManager.getInstance().scheduleGeneral(new ChangeWarmUpTime(), 0);
-			_log.info("FourSepulchersManager: Beginning in WarmUp time");
+			_log.info(getClass().getSimpleName() + ": Beginning in WarmUp time");
 		}
 		else if (currentTime >= _warmUpTimeEnd && currentTime < _attackTimeEnd) // attack
 			// time
@@ -212,14 +208,14 @@ public class FourSepulchersManager
 		{
 			clean();
 			_changeAttackTimeTask = ThreadPoolManager.getInstance().scheduleGeneral(new ChangeAttackTime(), 0);
-			_log.info("FourSepulchersManager: Beginning in Attack time");
+			_log.info(getClass().getSimpleName() + ": Beginning in Attack time");
 		}
 		else
 			// else cooldown time and without cleanup because it's already
 			// implemented
 		{
 			_changeCoolDownTimeTask = ThreadPoolManager.getInstance().scheduleGeneral(new ChangeCoolDownTime(), 0);
-			_log.info("FourSepulchersManager: Beginning in Cooldown time");
+			_log.info(getClass().getSimpleName() + ": Beginning in Cooldown time");
 		}
 	}
 	
@@ -314,7 +310,7 @@ public class FourSepulchersManager
 				SpawnTable.getInstance().addNewSpawn(spawnDat, false);
 				spawnDat.doSpawn();
 				spawnDat.startRespawn();
-				_log.info("FourSepulchersManager: spawned " + spawnDat.getTemplate().getName());
+				_log.info(getClass().getSimpleName() + ": spawned " + spawnDat.getTemplate().getName());
 			}
 			catch (Exception e)
 			{
@@ -444,7 +440,7 @@ public class FourSepulchersManager
 			
 			rset.close();
 			statement.close();
-			_log.info("FourSepulchersManager: loaded " + _mysteriousBoxSpawns.size() + " Mysterious-Box spawns.");
+			_log.info(getClass().getSimpleName() + ": loaded " + _mysteriousBoxSpawns.size() + " Mysterious-Box spawns.");
 		}
 		catch (Exception e)
 		{
@@ -544,7 +540,7 @@ public class FourSepulchersManager
 			statement1.close();
 			statement2.close();
 			
-			_log.info("FourSepulchersManager: loaded " + loaded + " Physical type monsters spawns.");
+			_log.info(getClass().getSimpleName() + ": loaded " + loaded + " Physical type monsters spawns.");
 		}
 		catch (Exception e)
 		{
@@ -610,7 +606,7 @@ public class FourSepulchersManager
 			statement1.close();
 			statement2.close();
 			
-			_log.info("FourSepulchersManager: loaded " + loaded + " Magical type monsters spawns.");
+			_log.info(getClass().getSimpleName() + ": loaded " + loaded + " Magical type monsters spawns.");
 		}
 		catch (Exception e)
 		{
@@ -677,7 +673,7 @@ public class FourSepulchersManager
 			statement1.close();
 			statement2.close();
 			
-			_log.info("FourSepulchersManager: loaded " + loaded + " Church of duke monsters spawns.");
+			_log.info(getClass().getSimpleName() + ": loaded " + loaded + " Church of duke monsters spawns.");
 		}
 		catch (Exception e)
 		{
@@ -743,7 +739,7 @@ public class FourSepulchersManager
 			statement1.close();
 			statement2.close();
 			
-			_log.info("FourSepulchersManager: loaded " + loaded + " Emperor's grave NPC spawns.");
+			_log.info(getClass().getSimpleName() + ": loaded " + loaded + " Emperor's grave NPC spawns.");
 		}
 		catch (Exception e)
 		{
@@ -839,6 +835,12 @@ public class FourSepulchersManager
 	
 	public synchronized void tryEntry(L2Npc npc, L2PcInstance player)
 	{
+		Quest hostQuest = QuestManager.getInstance().getQuest(QUEST_ID);
+		if (hostQuest == null)
+		{
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't find quest: " + QUEST_ID);
+			return;
+		}
 		int npcId = npc.getNpcId();
 		switch (npcId)
 		{
@@ -881,7 +883,7 @@ public class FourSepulchersManager
 			
 			for (L2PcInstance mem : player.getParty().getMembers())
 			{
-				QuestState qs = mem.getQuestState(QUEST_ID);
+				QuestState qs = mem.getQuestState(hostQuest.getName());
 				if (qs == null || (!qs.isStarted() && !qs.isCompleted()))
 				{
 					showHtmlFile(player, npcId + "-NS.htm", npc, mem);
@@ -909,7 +911,7 @@ public class FourSepulchersManager
 			}
 			for (L2PcInstance mem : player.getParty().getMembers())
 			{
-				QuestState qs = mem.getQuestState(QUEST_ID);
+				QuestState qs = mem.getQuestState(hostQuest.getName());
 				if (qs == null || (!qs.isStarted() && !qs.isCompleted()))
 				{
 					showHtmlFile(player, npcId + "-NS.htm", npc, mem);
@@ -930,7 +932,7 @@ public class FourSepulchersManager
 		}
 		else
 		{
-			QuestState qs = player.getQuestState(QUEST_ID);
+			QuestState qs = player.getQuestState(hostQuest.getName());
 			if (qs == null || (!qs.isStarted() && !qs.isCompleted()))
 			{
 				showHtmlFile(player, npcId + "-NS.htm", npc, player);
@@ -1374,7 +1376,7 @@ public class FourSepulchersManager
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "FourSepulchersManager: Failed deleting mob.", e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed deleting mob.", e);
 			}
 		}
 		_allMobs.clear();
@@ -1393,12 +1395,12 @@ public class FourSepulchersManager
 				}
 				else
 				{
-					_log.warning("FourSepulchersManager: Attempted to close undefined door. doorId: " + doorId);
+					_log.warning(getClass().getSimpleName() + ": Attempted to close undefined door. doorId: " + doorId);
 				}
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "FourSepulchersManager: Failed closing door", e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed closing door", e);
 			}
 		}
 	}
@@ -1499,12 +1501,12 @@ public class FourSepulchersManager
 			{
 				if (temp == null)
 				{
-					_log.warning("FourSepulchersManager: managerSay(): manager is null");
+					_log.warning(getClass().getSimpleName() + ": managerSay(): manager is null");
 					continue;
 				}
 				if (!(temp.getLastSpawn() instanceof L2SepulcherNpcInstance))
 				{
-					_log.warning("FourSepulchersManager: managerSay(): manager is not Sepulcher instance");
+					_log.warning(getClass().getSimpleName() + ": managerSay(): manager is not Sepulcher instance");
 					continue;
 				}
 				// hall not used right now, so its manager will not tell you
@@ -1525,12 +1527,12 @@ public class FourSepulchersManager
 			{
 				if (temp == null)
 				{
-					_log.warning("FourSepulchersManager: Something goes wrong in managerSay()...");
+					_log.warning(getClass().getSimpleName() + ": Something goes wrong in managerSay()...");
 					continue;
 				}
 				if (!(temp.getLastSpawn() instanceof L2SepulcherNpcInstance))
 				{
-					_log.warning("FourSepulchersManager: Something goes wrong in managerSay()...");
+					_log.warning(getClass().getSimpleName() + ": Something goes wrong in managerSay()...");
 					continue;
 				}
 				((L2SepulcherNpcInstance) temp.getLastSpawn()).sayInShout(msg1);
@@ -1666,7 +1668,7 @@ public class FourSepulchersManager
 					// looking for next shout time....
 					if (min % 5 == 0)// check if min can be divided by 5
 					{
-						_log.info(Calendar.getInstance().getTime() + " Atk announce scheduled to " + min + " minute of this hour.");
+						_log.info(getClass().getSimpleName() + ": " + Calendar.getInstance().getTime() + " Atk announce scheduled to " + min + " minute of this hour.");
 						Calendar inter = Calendar.getInstance();
 						inter.set(Calendar.MINUTE, (int) min);
 						ThreadPoolManager.getInstance().scheduleGeneral(new ManagerSay(), inter.getTimeInMillis()
@@ -1714,7 +1716,7 @@ public class FourSepulchersManager
 			if (Calendar.getInstance().get(Calendar.MINUTE) > _newCycleMin && !_firstTimeRun)
 				time.set(Calendar.HOUR, Calendar.getInstance().get(Calendar.HOUR) + 1);
 			time.set(Calendar.MINUTE, _newCycleMin);
-			_log.info("FourSepulchersManager: Entry time: " + time.getTime());
+			_log.info(getClass().getSimpleName() + ": Entry time: " + time.getTime());
 			if (_firstTimeRun)
 				_firstTimeRun = false; // cooldown phase ends event hour, so it
 			// will be not first run
@@ -1744,6 +1746,11 @@ public class FourSepulchersManager
 		player.sendPacket(html);
 	}
 	
+	public static final FourSepulchersManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final FourSepulchersManager _instance = new FourSepulchersManager();

+ 5 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/GlobalVariablesManager.java

@@ -18,11 +18,11 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.Statement;
+import java.util.Map;
 import java.util.logging.Logger;
 
-import javolution.util.FastMap;
-
 import com.l2jserver.L2DatabaseFactory;
+import com.l2jserver.util.L2FastMap;
 
 /**
  * @author Gigiikun
@@ -34,11 +34,10 @@ public class GlobalVariablesManager
 	private static final String LOAD_VAR = "SELECT var,value FROM global_variables";
 	private static final String SAVE_VAR = "INSERT INTO global_variables (var,value) VALUES (?,?) ON DUPLICATE KEY UPDATE value=?";
 	
-	private final FastMap<String, String> _variablesMap = new FastMap<>();
+	private final Map<String, String> _variablesMap = new L2FastMap<>(true);
 	
 	protected GlobalVariablesManager()
 	{
-		_variablesMap.shared();
 		loadVars();
 	}
 	
@@ -59,7 +58,7 @@ public class GlobalVariablesManager
 		}
 		catch (Exception e)
 		{
-			_log.warning("GlobalVariablesManager: problem while loading variables: " + e);
+			_log.warning(getClass().getSimpleName() + ": problem while loading variables: " + e);
 		}
 	}
 	
@@ -80,7 +79,7 @@ public class GlobalVariablesManager
 		}
 		catch (Exception e)
 		{
-			_log.warning("GlobalVariablesManager: problem while saving variables: " + e);
+			_log.warning(getClass().getSimpleName() + ": problem while saving variables: " + e);
 		}
 	}
 	

+ 38 - 18
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/GraciaSeedsManager.java

@@ -24,7 +24,7 @@ import com.l2jserver.gameserver.model.quest.Quest;
 public class GraciaSeedsManager
 {
 	protected static final Logger _log = Logger.getLogger(GraciaSeedsManager.class.getName());
-
+	
 	public static String qn = "EnergySeeds";
 	
 	private static final byte SOITYPE = 2;
@@ -34,18 +34,18 @@ public class GraciaSeedsManager
 	private static final byte SODTYPE = 1;
 	private int _SoDTiatKilled = 0;
 	private int _SoDState = 1;
-	private Calendar _SoDLastStateChangeDate;
-
+	private final Calendar _SoDLastStateChangeDate;
+	
 	protected GraciaSeedsManager()
 	{
 		_SoDLastStateChangeDate = Calendar.getInstance();
 		loadData();
 		handleSodStages();
 	}
-
+	
 	public void saveData(byte seedType)
 	{
-		switch(seedType)
+		switch (seedType)
 		{
 			case SODTYPE:
 				// Seed of Destruction
@@ -60,7 +60,7 @@ public class GraciaSeedsManager
 				// Seed of Annihilation
 				break;
 			default:
-				_log.warning("GraciaSeedManager: Unknown SeedType in SaveData: " + seedType);
+				_log.warning(getClass().getSimpleName() + ": Unknown SeedType in SaveData: " + seedType);
 				break;
 		}
 	}
@@ -80,10 +80,10 @@ public class GraciaSeedsManager
 			saveData(SODTYPE);
 		}
 	}
-
+	
 	private void handleSodStages()
 	{
-		switch(_SoDState)
+		switch (_SoDState)
 		{
 			case 1:
 				// do nothing, players should kill Tiat a few times
@@ -92,43 +92,59 @@ public class GraciaSeedsManager
 				// Conquest Complete state, if too much time is passed than change to defense state
 				long timePast = System.currentTimeMillis() - _SoDLastStateChangeDate.getTimeInMillis();
 				if (timePast >= Config.SOD_STAGE_2_LENGTH)
+				{
 					// change to Attack state because Defend statet is not implemented
 					setSoDState(1, true);
+				}
 				else
-					ThreadPoolManager.getInstance().scheduleEffect(new Runnable(){
+				{
+					ThreadPoolManager.getInstance().scheduleEffect(new Runnable()
+					{
 						@Override
 						public void run()
 						{
 							setSoDState(1, true);
 							Quest esQuest = QuestManager.getInstance().getQuest(qn);
 							if (esQuest == null)
-								_log.warning("GraciaSeedManager: missing EnergySeeds Quest!");
+							{
+								_log.warning(getClass().getSimpleName() + ": missing EnergySeeds Quest!");
+							}
 							else
+							{
 								esQuest.notifyEvent("StopSoDAi", null, null);
-						}}, Config.SOD_STAGE_2_LENGTH - timePast);
+							}
+						}
+					}, Config.SOD_STAGE_2_LENGTH - timePast);
+				}
 				break;
 			case 3:
 				// not implemented
 				setSoDState(1, true);
 				break;
 			default:
-				_log.warning("GraciaSeedManager: Unknown Seed of Destruction state(" + _SoDState + ")! ");
+				_log.warning(getClass().getSimpleName() + ": Unknown Seed of Destruction state(" + _SoDState + ")! ");
 		}
 	}
-
+	
 	public void increaseSoDTiatKilled()
 	{
 		if (_SoDState == 1)
 		{
 			_SoDTiatKilled++;
 			if (_SoDTiatKilled >= Config.SOD_TIAT_KILL_COUNT)
+			{
 				setSoDState(2, false);
+			}
 			saveData(SODTYPE);
 			Quest esQuest = QuestManager.getInstance().getQuest(qn);
 			if (esQuest == null)
-				_log.warning("GraciaSeedManager: missing EnergySeeds Quest!");
+			{
+				_log.warning(getClass().getSimpleName() + ": missing EnergySeeds Quest!");
+			}
 			else
+			{
 				esQuest.notifyEvent("StartSoDAi", null, null);
+			}
 		}
 	}
 	
@@ -139,27 +155,31 @@ public class GraciaSeedsManager
 	
 	public void setSoDState(int value, boolean doSave)
 	{
-		_log.info("GraciaSeedManager: New Seed of Destruction state -> " + value + ".");
+		_log.info(getClass().getSimpleName() + ": New Seed of Destruction state -> " + value + ".");
 		_SoDLastStateChangeDate.setTimeInMillis(System.currentTimeMillis());
 		_SoDState = value;
 		// reset number of Tiat kills
 		if (_SoDState == 1)
+		{
 			_SoDTiatKilled = 0;
+		}
 		
 		handleSodStages();
 		
 		if (doSave)
+		{
 			saveData(SODTYPE);
+		}
 	}
 	
 	public long getSoDTimeForNextStateChange()
 	{
-		switch(_SoDState)
+		switch (_SoDState)
 		{
 			case 1:
 				return -1;
 			case 2:
-				return (_SoDLastStateChangeDate.getTimeInMillis() + Config.SOD_STAGE_2_LENGTH - System.currentTimeMillis());
+				return ((_SoDLastStateChangeDate.getTimeInMillis() + Config.SOD_STAGE_2_LENGTH) - System.currentTimeMillis());
 			case 3:
 				// not implemented yet
 				return -1;
@@ -183,7 +203,7 @@ public class GraciaSeedsManager
 	{
 		return SingletonHolder._instance;
 	}
-
+	
 	private static class SingletonHolder
 	{
 		protected static final GraciaSeedsManager _instance = new GraciaSeedsManager();

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

@@ -95,11 +95,6 @@ public class GrandBossManager
 	
 	private L2FastList<L2BossZone> _zones;
 	
-	public static GrandBossManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	protected GrandBossManager()
 	{
 		init();
@@ -136,20 +131,20 @@ public class GrandBossManager
 				int status = rset.getInt("status");
 				_bossStatus.put(bossId, status);
 				_storedInfo.put(bossId, info);
-				_log.info("GrandBossManager: " +NpcTable.getInstance().getTemplate(bossId).getName()+"(" +bossId+ ") status is "+ status+".");
+				_log.info(getClass().getSimpleName() + ": " +NpcTable.getInstance().getTemplate(bossId).getName()+"(" +bossId+ ") status is "+ status+".");
 				if (status > 0)
-					_log.info("GrandBossManager: Next spawn date of " +NpcTable.getInstance().getTemplate(bossId).getName()+" is "+ new Date(info.getLong("respawn_time"))+".");
+					_log.info(getClass().getSimpleName() + ": Next spawn date of " +NpcTable.getInstance().getTemplate(bossId).getName()+" is "+ new Date(info.getLong("respawn_time"))+".");
 				
 				info = null;
 			}
-			_log.info("GrandBossManager: Loaded " + _storedInfo.size() + " Instances");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _storedInfo.size() + " Instances");
 			
 			rset.close();
 			statement.close();
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "GrandBossManager: Could not load grandboss_data table: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not load grandboss_data table: " + e.getMessage(), e);
 		}
 		catch (Exception e)
 		{
@@ -166,7 +161,7 @@ public class GrandBossManager
 		
 		if (_zones == null)
 		{
-			_log.warning("GrandBossManager: Could not read Grand Boss zone data");
+			_log.warning(getClass().getSimpleName() + ": Could not read Grand Boss zone data");
 			return;
 		}
 		
@@ -192,11 +187,11 @@ public class GrandBossManager
 			rset.close();
 			statement.close();
 			
-			_log.info("GrandBossManager: Initialized " + _zones.size() + " Grand Boss Zones");
+			_log.info(getClass().getSimpleName() + ": Initialized " + _zones.size() + " Grand Boss Zones");
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "GrandBossManager: Could not load grandboss_list table: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not load grandboss_list table: " + e.getMessage(), e);
 		}
 		catch (Exception e)
 		{
@@ -380,7 +375,7 @@ public class GrandBossManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "GrandBossManager: Couldn't store grandbosses to database:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't store grandbosses to database:" + e.getMessage(), e);
 		}
 	}
 	
@@ -426,7 +421,7 @@ public class GrandBossManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "GrandBossManager: Couldn't update grandbosses to database:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update grandbosses to database:" + e.getMessage(), e);
 		}
 	}
 	
@@ -449,6 +444,11 @@ public class GrandBossManager
 		return _zones;
 	}
 	
+	public static GrandBossManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final GrandBossManager _instance = new GrandBossManager();

+ 8 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/HellboundManager.java

@@ -17,12 +17,11 @@ package com.l2jserver.gameserver.instancemanager;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ScheduledFuture;
 import java.util.logging.Logger;
 
-import javolution.util.FastList;
-
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
@@ -50,12 +49,10 @@ public class HellboundManager
 	private int _minTrust = 0;
 	
 	private ScheduledFuture<?> _engine = null;
-	private final List<HellboundSpawn> _population;
+	private final List<HellboundSpawn> _population = new ArrayList<>();
 	
 	protected HellboundManager()
-	{
-		_population = new FastList<>();
-		
+	{	
 		loadData();
 		loadSpawns();
 	}
@@ -218,11 +215,11 @@ public class HellboundManager
 		
 		if (added > 0)
 		{
-			_log.info("HellboundManager: Spawned " + added + " NPCs.");
+			_log.info(getClass().getSimpleName() + ": Spawned " + added + " NPCs.");
 		}
 		if (deleted > 0)
 		{
-			_log.info("HellboundManager: Removed " + deleted + " NPCs.");
+			_log.info(getClass().getSimpleName() + ": Removed " + deleted + " NPCs.");
 		}
 	}
 	
@@ -295,7 +292,7 @@ public class HellboundManager
 				}
 				else
 				{
-					_log.warning("HellboundManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + ".");
+					_log.warning(getClass().getSimpleName() + ": Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + ".");
 				}
 			}
 			rset.close();
@@ -303,9 +300,9 @@ public class HellboundManager
 		}
 		catch (Exception e)
 		{
-			_log.warning("HellboundManager: problem while loading spawns: " + e);
+			_log.warning(getClass().getSimpleName() + ": problem while loading spawns: " + e);
 		}
-		_log.info("HellboundManager: Loaded " + _population.size() + " npc spawn locations.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _population.size() + " npc spawn locations.");
 	}
 	
 	public static final class HellboundSpawn extends L2Spawn

+ 2 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/InstanceManager.java

@@ -51,14 +51,10 @@ public class InstanceManager extends DocumentParser
 	protected InstanceManager()
 	{
 		// Creates the multiverse.
-		final Instance multiverse = new Instance(-1);
-		multiverse.setName("multiverse");
-		_instanceList.put(-1, multiverse);
+		_instanceList.put(-1, new Instance(-1, "multiverse"));
 		_log.info(getClass().getSimpleName() + ": Multiverse Instance created.");
 		// Creates the universe.
-		final Instance universe = new Instance(0);
-		universe.setName("universe");
-		_instanceList.put(0, universe);
+		_instanceList.put(0, new Instance(0, "universe"));
 		_log.info(getClass().getSimpleName() + ": Universe Instance created.");
 		load();
 	}

+ 10 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ItemAuctionManager.java

@@ -43,11 +43,6 @@ public final class ItemAuctionManager
 {
 	private static final Logger _log = Logger.getLogger(ItemAuctionManager.class.getName());
 	
-	public static final ItemAuctionManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	private final TIntObjectHashMap<ItemAuctionInstance> _managerInstances;
 	private final AtomicInteger _auctionIds;
 	
@@ -58,7 +53,7 @@ public final class ItemAuctionManager
 		
 		if (!Config.ALT_ITEM_AUCTION_ENABLED)
 		{
-			_log.log(Level.INFO, "ItemAuctionManager: Disabled by config.");
+			_log.log(Level.INFO, getClass().getSimpleName() + ": Disabled by config.");
 			return;
 		}
 		
@@ -71,13 +66,13 @@ public final class ItemAuctionManager
 		}
 		catch (final SQLException e)
 		{
-			_log.log(Level.SEVERE, "ItemAuctionManager: Failed loading auctions.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed loading auctions.", e);
 		}
 		
 		final File file = new File(Config.DATAPACK_ROOT + "/data/ItemAuctions.xml");
 		if (!file.exists())
 		{
-			_log.log(Level.WARNING, "ItemAuctionManager: Missing ItemAuctions.xml!");
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Missing ItemAuctions.xml!");
 			return;
 		}
 		
@@ -108,11 +103,11 @@ public final class ItemAuctionManager
 					}
 				}
 			}
-			_log.log(Level.INFO, "ItemAuctionManager: Loaded " + _managerInstances.size() + " instance(s).");
+			_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded " + _managerInstances.size() + " instance(s).");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "ItemAuctionManager: Failed loading auctions from xml.", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed loading auctions from xml.", e);
 		}
 	}
 	
@@ -157,6 +152,11 @@ public final class ItemAuctionManager
 		}
 	}
 	
+	public static final ItemAuctionManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final ItemAuctionManager _instance = new ItemAuctionManager();

+ 54 - 66
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ItemsOnGroundManager.java

@@ -36,18 +36,17 @@ import com.l2jserver.util.L2FastList;
  * @author DiezelMax, original idea.
  * @author Enforcer, actual build.
  */
-public class ItemsOnGroundManager
+public class ItemsOnGroundManager implements Runnable
 {
-	static final Logger _log = Logger.getLogger(ItemsOnGroundManager.class.getName());
+	private static final Logger _log = Logger.getLogger(ItemsOnGroundManager.class.getName());
 	
 	protected List<L2ItemInstance> _items = new L2FastList<>(true);
-	private final StoreInDb _task = new StoreInDb();
 	
 	protected ItemsOnGroundManager()
 	{
 		if (Config.SAVE_DROPPED_ITEM_INTERVAL > 0)
 		{
-			ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(_task, Config.SAVE_DROPPED_ITEM_INTERVAL, Config.SAVE_DROPPED_ITEM_INTERVAL);
+			ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(this, Config.SAVE_DROPPED_ITEM_INTERVAL, Config.SAVE_DROPPED_ITEM_INTERVAL);
 		}
 		load();
 	}
@@ -88,7 +87,7 @@ public class ItemsOnGroundManager
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.SEVERE, "Error while updating table ItemsOnGround " + e.getMessage(), e);
+				_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while updating table ItemsOnGround " + e.getMessage(), e);
 			}
 		}
 		
@@ -139,11 +138,11 @@ public class ItemsOnGroundManager
 			rset.close();
 			statement.close();
 			
-			_log.info("ItemsOnGroundManager: Loaded " + count + " items.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + count + " items.");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error while loading ItemsOnGround " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while loading ItemsOnGround " + e.getMessage(), e);
 		}
 		
 		if (Config.EMPTY_DROPPED_ITEM_TABLE_AFTER_LOAD)
@@ -171,7 +170,7 @@ public class ItemsOnGroundManager
 	
 	public void saveInDb()
 	{
-		_task.run();
+		run();
 	}
 	
 	public void cleanUp()
@@ -189,77 +188,66 @@ public class ItemsOnGroundManager
 		}
 		catch (Exception e1)
 		{
-			_log.log(Level.SEVERE, "Error while cleaning table ItemsOnGround " + e1.getMessage(), e1);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while cleaning table ItemsOnGround " + e1.getMessage(), e1);
 		}
 	}
 	
-	protected class StoreInDb extends Thread
+
+	@Override
+	public synchronized void run()
 	{
-		@Override
-		public synchronized void run()
+		if (!Config.SAVE_DROPPED_ITEM)
 		{
-			if (!Config.SAVE_DROPPED_ITEM)
-			{
-				return;
-			}
-			
-			emptyTable();
+			return;
+		}
+		
+		emptyTable();
+		
+		if (_items.isEmpty())
+		{
+			return;
+		}
+		
+		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
+		{
+			PreparedStatement statement = con.prepareStatement("INSERT INTO itemsonground(object_id,item_id,count,enchant_level,x,y,z,drop_time,equipable) VALUES(?,?,?,?,?,?,?,?,?)");
 			
-			if (_items.isEmpty())
+			for (L2ItemInstance item : _items)
 			{
-				if (Config.DEBUG)
+				if (item == null)
 				{
-					_log.warning("ItemsOnGroundManager: nothing to save...");
+					continue;
 				}
-				return;
-			}
-			
-			try (Connection con = L2DatabaseFactory.getInstance().getConnection())
-			{
-				PreparedStatement statement = con.prepareStatement("INSERT INTO itemsonground(object_id,item_id,count,enchant_level,x,y,z,drop_time,equipable) VALUES(?,?,?,?,?,?,?,?,?)");
 				
-				for (L2ItemInstance item : _items)
+				if (CursedWeaponsManager.getInstance().isCursed(item.getItemId()))
 				{
-					if (item == null)
-					{
-						continue;
-					}
-					
-					if (CursedWeaponsManager.getInstance().isCursed(item.getItemId()))
-					{
-						continue; // Cursed Items not saved to ground, prevent double save
-					}
-					
-					try
-					{
-						statement.setInt(1, item.getObjectId());
-						statement.setInt(2, item.getItemId());
-						statement.setLong(3, item.getCount());
-						statement.setInt(4, item.getEnchantLevel());
-						statement.setInt(5, item.getX());
-						statement.setInt(6, item.getY());
-						statement.setInt(7, item.getZ());
-						statement.setLong(8, (item.isProtected() ? -1 : item.getDropTime())); // item is protected or AutoDestroyed
-						statement.setLong(9, (item.isEquipable() ? 1 : 0)); // set equip-able
-						statement.execute();
-						statement.clearParameters();
-					}
-					catch (Exception e)
-					{
-						_log.log(Level.SEVERE, "Error while inserting into table ItemsOnGround: " + e.getMessage(), e);
-					}
+					continue; // Cursed Items not saved to ground, prevent double save
+				}
+				
+				try
+				{
+					statement.setInt(1, item.getObjectId());
+					statement.setInt(2, item.getItemId());
+					statement.setLong(3, item.getCount());
+					statement.setInt(4, item.getEnchantLevel());
+					statement.setInt(5, item.getX());
+					statement.setInt(6, item.getY());
+					statement.setInt(7, item.getZ());
+					statement.setLong(8, (item.isProtected() ? -1 : item.getDropTime())); // item is protected or AutoDestroyed
+					statement.setLong(9, (item.isEquipable() ? 1 : 0)); // set equip-able
+					statement.execute();
+					statement.clearParameters();
+				}
+				catch (Exception e)
+				{
+					_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while inserting into table ItemsOnGround: " + e.getMessage(), e);
 				}
-				statement.close();
-			}
-			catch (SQLException e)
-			{
-				_log.log(Level.SEVERE, "SQL error while storing items on ground: " + e.getMessage(), e);
-			}
-			
-			if (Config.DEBUG)
-			{
-				_log.info(getClass().getSimpleName() + ": Saved " + _items.size() + " items on ground.");
 			}
+			statement.close();
+		}
+		catch (SQLException e)
+		{
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": SQL error while storing items on ground: " + e.getMessage(), e);
 		}
 	}
 	

+ 21 - 21
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MailManager.java

@@ -18,7 +18,9 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -33,7 +35,7 @@ import com.l2jserver.gameserver.model.entity.Message;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ExNoticePostArrived;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-import com.l2jserver.gameserver.util.L2TIntObjectHashMap;
+import com.l2jserver.util.L2FastMap;
 
 /**
  * @author Migi, DS<br>
@@ -42,12 +44,7 @@ public class MailManager
 {
 	private static Logger _log = Logger.getLogger(MailManager.class.getName());
 	
-	private L2TIntObjectHashMap<Message> _messages = new L2TIntObjectHashMap<>();
-	
-	public static MailManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
+	private Map<Integer, Message> _messages = new L2FastMap<>(true);
 	
 	protected MailManager()
 	{
@@ -59,9 +56,7 @@ public class MailManager
 		int count = 0;
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
 		{
-			PreparedStatement statement = con.prepareStatement("SELECT * FROM messages ORDER BY expiration");
-			// stmt2 = con.prepareStatement("SELECT * FROM attachments WHERE messageId = ?");
-			
+			PreparedStatement statement = con.prepareStatement("SELECT * FROM messages ORDER BY expiration");			
 			ResultSet rset1 = statement.executeQuery();
 			while (rset1.next())
 			{
@@ -85,9 +80,9 @@ public class MailManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Mail Manager: Error loading from database:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error loading from database:" + e.getMessage(), e);
 		}
-		_log.info("Mail Manager: Successfully loaded " + count + " messages.");
+		_log.info(getClass().getSimpleName() + ": Successfully loaded " + count + " messages.");
 	}
 	
 	public final Message getMessage(int msgId)
@@ -95,9 +90,9 @@ public class MailManager
 		return _messages.get(msgId);
 	}
 	
-	public final Message[] getMessages()
+	public final Collection<Message> getMessages()
 	{
-		return _messages.values(new Message[0]);
+		return _messages.values();
 	}
 	
 	public final boolean hasUnreadPost(L2PcInstance player)
@@ -176,7 +171,7 @@ public class MailManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Mail Manager: Error saving message:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error saving message:" + e.getMessage(), e);
 		}
 		
 		final L2PcInstance receiver = L2World.getInstance().getPlayer(msg.getReceiverId());
@@ -230,7 +225,7 @@ public class MailManager
 				}
 				catch (Exception e)
 				{
-					_log.log(Level.WARNING, "Mail Manager: Error returning items:" + e.getMessage(), e);
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": Error returning items:" + e.getMessage(), e);
 				}
 			}
 			deleteMessageInDb(msg.getId());
@@ -248,7 +243,7 @@ public class MailManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Mail Manager: Error marking as read message:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error marking as read message:" + e.getMessage(), e);
 		}
 	}
 	
@@ -262,7 +257,7 @@ public class MailManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Mail Manager: Error marking as deleted by sender message:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error marking as deleted by sender message:" + e.getMessage(), e);
 		}
 	}
 	
@@ -276,7 +271,7 @@ public class MailManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Mail Manager: Error marking as deleted by receiver message:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error marking as deleted by receiver message:" + e.getMessage(), e);
 		}
 	}
 	
@@ -290,7 +285,7 @@ public class MailManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Mail Manager: Error removing attachments in message:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error removing attachments in message:" + e.getMessage(), e);
 		}
 	}
 	
@@ -304,13 +299,18 @@ public class MailManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Mail Manager: Error deleting message:" + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error deleting message:" + e.getMessage(), e);
 		}
 		
 		_messages.remove(msgId);
 		IdFactory.getInstance().releaseId(msgId);
 	}
 	
+	public static MailManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final MailManager _instance = new MailManager();

+ 0 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MapRegionManager.java

@@ -176,11 +176,6 @@ public class MapRegionManager extends DocumentParser
 		{
 			return region.getLocId();
 		}
-		
-		if (Config.DEBUG)
-		{
-			_log.warning(getClass().getSimpleName() + ": Player outside map regions at X,Y=" + locX + "," + locY);
-		}
 		return 0;
 	}
 	
@@ -482,10 +477,6 @@ public class MapRegionManager extends DocumentParser
 		catch (Exception e)
 		{
 			// Port to the default respawn if no closest town found.
-			if (Config.DEBUG)
-			{
-				_log.warning(getClass().getSimpleName() + ": Not defined respawn point for coords loc X=" + activeChar.getX() + " Y=" + activeChar.getY() + " Z=" + activeChar.getZ());
-			}
 			return _regions.get(defaultRespawn).getSpawnLoc();
 		}
 	}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MercTicketManager.java

@@ -185,7 +185,7 @@ public class MercTicketManager
 			rs.close();
 			statement.close();
 			
-			_log.info("Loaded: " + _droppedTickets.size() + " Mercenary Tickets");
+			_log.info(getClass().getSimpleName() + ": Loaded: " + _droppedTickets.size() + " Mercenary Tickets");
 		}
 		catch (Exception e)
 		{

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/PetitionManager.java

@@ -100,7 +100,7 @@ public final class PetitionManager
 			_id = IdFactory.getInstance().getNextId();
 			if (petitionType >= PetitionType.values().length)
 			{
-				_log.warning("PetitionManager:Petition : invalid petition type (received type was +1) : " + petitionType);
+				_log.warning(getClass().getSimpleName() + ": Petition : invalid petition type (received type was +1) : " + petitionType);
 			}
 			_type = PetitionType.values()[petitionType];
 			_content = petitionText;
@@ -241,7 +241,7 @@ public final class PetitionManager
 		int numPetitions = getPendingPetitionCount();
 		
 		getCompletedPetitions().clear();
-		_log.info("PetitionManager: Completed petition data cleared. " + numPetitions + " petition(s) removed.");
+		_log.info(getClass().getSimpleName() + ": Completed petition data cleared. " + numPetitions + " petition(s) removed.");
 	}
 	
 	public void clearPendingPetitions()
@@ -249,7 +249,7 @@ public final class PetitionManager
 		int numPetitions = getPendingPetitionCount();
 		
 		getPendingPetitions().clear();
-		_log.info("PetitionManager: Pending petition queue cleared. " + numPetitions + " petition(s) removed.");
+		_log.info(getClass().getSimpleName() + ": Pending petition queue cleared. " + numPetitions + " petition(s) removed.");
 	}
 	
 	public boolean acceptPetition(L2PcInstance respondingAdmin, int petitionId)

+ 6 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/QuestManager.java

@@ -20,18 +20,17 @@ import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javolution.util.FastMap;
-
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.scripting.L2ScriptEngineManager;
 import com.l2jserver.gameserver.scripting.ScriptManager;
+import com.l2jserver.util.L2FastMap;
 
 public class QuestManager extends ScriptManager<Quest>
 {
 	protected static final Logger _log = Logger.getLogger(QuestManager.class.getName());
 	
-	private Map<String, Quest> _quests = new FastMap<>();
+	private Map<String, Quest> _quests = new L2FastMap<>(true);
 	
 	protected QuestManager()
 	{
@@ -65,7 +64,7 @@ public class QuestManager extends ScriptManager<Quest>
 	
 	public final void reloadAllQuests()
 	{
-		_log.info("Reloading all server scripts.");
+		_log.info(getClass().getSimpleName() + ": Reloading all server scripts.");
 		// unload all scripts
 		for (Quest quest : _quests.values())
 		{
@@ -84,13 +83,13 @@ public class QuestManager extends ScriptManager<Quest>
 		}
 		catch (IOException e)
 		{
-			_log.log(Level.SEVERE, "Failed loading scripts.cfg, no script going to be loaded!", e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Failed loading scripts.cfg, no script going to be loaded!", e);
 		}
 	}
 	
 	public final void report()
 	{
-		_log.info("Loaded: " + _quests.size() + " quests");
+		_log.info(getClass().getSimpleName() + ": Loaded: " + _quests.size() + " quests");
 	}
 	
 	public final void save()
@@ -136,7 +135,7 @@ public class QuestManager extends ScriptManager<Quest>
 		if (old != null)
 		{
 			old.unload();
-			_log.info("Replaced: (" + old.getName() + ") with a new version (" + newQuest.getName() + ")");
+			_log.info(getClass().getSimpleName() + ": Replaced: (" + old.getName() + ") with a new version (" + newQuest.getName() + ")");
 			
 		}
 		_quests.put(newQuest.getName(), newQuest);

+ 21 - 18
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/RaidBossPointsManager.java

@@ -32,8 +32,8 @@ import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
 /**
- * @author Kerberos
- * JIV update 24.8.10
+ * @author Kerberos, JIV
+ * @version 8/24/10
  */
 public class RaidBossPointsManager
 {
@@ -41,7 +41,8 @@ public class RaidBossPointsManager
 	
 	private FastMap<Integer, Map<Integer, Integer>> _list;
 	
-	private final Comparator<Map.Entry<Integer, Integer>> _comparator = new Comparator<Map.Entry<Integer, Integer>>(){
+	private final Comparator<Map.Entry<Integer, Integer>> _comparator = new Comparator<Map.Entry<Integer, Integer>>()
+	{
 		@Override
 		public int compare(Map.Entry<Integer, Integer> entry, Map.Entry<Integer, Integer> entry1)
 		{
@@ -49,11 +50,6 @@ public class RaidBossPointsManager
 		}
 	};
 	
-	public static final RaidBossPointsManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	public RaidBossPointsManager()
 	{
 		init();
@@ -66,7 +62,7 @@ public class RaidBossPointsManager
 		{
 			PreparedStatement statement = con.prepareStatement("SELECT `charId`,`boss_id`,`points` FROM `character_raid_points`");
 			ResultSet rset = statement.executeQuery();
-			while(rset.next())
+			while (rset.next())
 			{
 				int charId = rset.getInt("charId");
 				int bossId = rset.getInt("boss_id");
@@ -81,11 +77,11 @@ public class RaidBossPointsManager
 			}
 			rset.close();
 			statement.close();
-			_log.info(getClass().getSimpleName()+": Loaded "+_list.size()+" Characters Raid Points.");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _list.size() + " Characters Raid Points.");
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "RaidPointsManager: Couldnt load raid points ", e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldnt load raid points ", e);
 		}
 	}
 	
@@ -102,7 +98,7 @@ public class RaidBossPointsManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "could not update char raid points:", e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't update char raid points for player: " + player, e);
 		}
 	}
 	
@@ -110,7 +106,7 @@ public class RaidBossPointsManager
 	{
 		int ownerId = player.getObjectId();
 		Map<Integer, Integer> tmpPoint = _list.get(ownerId);
-		if(tmpPoint == null)
+		if (tmpPoint == null)
 		{
 			tmpPoint = new FastMap<>();
 			tmpPoint.put(bossId, points);
@@ -135,7 +131,7 @@ public class RaidBossPointsManager
 		if (tmpPoint == null || tmpPoint.isEmpty())
 			return 0;
 		
-		for(int points : tmpPoint.values())
+		for (int points : tmpPoint.values())
 		{
 			totalPoints += points;
 		}
@@ -158,7 +154,7 @@ public class RaidBossPointsManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "could not clean raid points: ", e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't clean raid points", e);
 		}
 	}
 	
@@ -175,10 +171,10 @@ public class RaidBossPointsManager
 		Map<Integer, Integer> tmpRanking = new FastMap<>();
 		Map<Integer, Integer> tmpPoints = new FastMap<>();
 		
-		for(int ownerId : _list.keySet())
+		for (int ownerId : _list.keySet())
 		{
 			int totalPoints = getPointsByOwnerId(ownerId);
-			if(totalPoints != 0)
+			if (totalPoints != 0)
 			{
 				tmpPoints.put(ownerId, totalPoints);
 			}
@@ -188,12 +184,19 @@ public class RaidBossPointsManager
 		Collections.sort(list, _comparator);
 		
 		int ranking = 1;
-		for(Map.Entry<Integer, Integer> entry : list)
+		for (Map.Entry<Integer, Integer> entry : list)
+		{
 			tmpRanking.put(entry.getKey(), ranking++);
+		}
 		
 		return tmpRanking;
 	}
 	
+	public static final RaidBossPointsManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final RaidBossPointsManager _instance = new RaidBossPointsManager();

+ 12 - 12
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/RaidBossSpawnManager.java

@@ -99,20 +99,20 @@ public class RaidBossSpawnManager
 				}
 				else
 				{
-					_log.warning("RaidBossSpawnManager: Could not load raidboss #" + rset.getInt("boss_id") + " from DB");
+					_log.warning(getClass().getSimpleName() + ": Could not load raidboss #" + rset.getInt("boss_id") + " from DB");
 				}
 			}
 			
-			_log.info("RaidBossSpawnManager: Loaded " + _bosses.size() + " Instances");
-			_log.info("RaidBossSpawnManager: Scheduled " + _schedules.size() + " Instances");
+			_log.info(getClass().getSimpleName() + ": Loaded " + _bosses.size() + " Instances");
+			_log.info(getClass().getSimpleName() + ": Scheduled " + _schedules.size() + " Instances");
 		}
 		catch (SQLException e)
 		{
-			_log.warning("RaidBossSpawnManager: Couldnt load raidboss_spawnlist table");
+			_log.warning(getClass().getSimpleName() + ": Couldnt load raidboss_spawnlist table");
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error while initializing RaidBossSpawnManager: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while initializing RaidBossSpawnManager: " + e.getMessage(), e);
 		}
 	}
 	
@@ -152,7 +152,7 @@ public class RaidBossSpawnManager
 				
 				_storedInfo.put(bossId, info);
 				
-				_log.info("Spawning Raid Boss " + raidboss.getName());
+				_log.info(getClass().getSimpleName() + ": Spawning Raid Boss " + raidboss.getName());
 				
 				_bosses.put(bossId, raidboss);
 			}
@@ -187,7 +187,7 @@ public class RaidBossSpawnManager
 			{
 				Calendar time = Calendar.getInstance();
 				time.setTimeInMillis(respawnTime);
-				_log.info("RaidBossSpawnManager: Updated " + boss.getName() + " respawn time to " + time.getTime());
+				_log.info(getClass().getSimpleName() + ": Updated " + boss.getName() + " respawn time to " + time.getTime());
 				
 				ScheduledFuture<?> futureSpawn;
 				futureSpawn = ThreadPoolManager.getInstance().scheduleGeneral(new SpawnSchedule(boss.getNpcId()), respawnDelay);
@@ -284,7 +284,7 @@ public class RaidBossSpawnManager
 			catch (Exception e)
 			{
 				// problem with storing spawn
-				_log.log(Level.WARNING, "RaidBossSpawnManager: Could not store raidboss #" + bossId + " in the DB:" + e.getMessage(), e);
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not store raidboss #" + bossId + " in the DB:" + e.getMessage(), e);
 			}
 		}
 	}
@@ -334,7 +334,7 @@ public class RaidBossSpawnManager
 			catch (Exception e)
 			{
 				// problem with deleting spawn
-				_log.log(Level.WARNING, "RaidBossSpawnManager: Could not remove raidboss #" + bossId + " from DB: " + e.getMessage(), e);
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Could not remove raidboss #" + bossId + " from DB: " + e.getMessage(), e);
 			}
 		}
 	}
@@ -381,13 +381,13 @@ public class RaidBossSpawnManager
 				}
 				catch (SQLException e)
 				{
-					_log.log(Level.WARNING, "RaidBossSpawnManager: Couldnt update raidboss_spawnlist table " + e.getMessage(), e);
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": Couldnt update raidboss_spawnlist table " + e.getMessage(), e);
 				}
 			}
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "SQL error while updating RaidBoss spawn to database: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": SQL error while updating RaidBoss spawn to database: " + e.getMessage(), e);
 		}
 	}
 	
@@ -474,7 +474,7 @@ public class RaidBossSpawnManager
 		
 		_storedInfo.put(raidboss.getNpcId(), info);
 		
-		_log.info("Spawning Night Raid Boss " + raidboss.getName());
+		_log.info(getClass().getSimpleName() + ": Spawning Night Raid Boss " + raidboss.getName());
 		
 		_bosses.put(raidboss.getNpcId(), raidboss);
 	}

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/SiegeGuardManager.java

@@ -114,7 +114,7 @@ public class SiegeGuardManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error deleting hired siege guard at " + x + ',' + y + ',' + z + ": " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error deleting hired siege guard at " + x + ',' + y + ',' + z + ": " + e.getMessage(), e);
 		}
 	}
 	
@@ -132,7 +132,7 @@ public class SiegeGuardManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error deleting hired siege guard for castle " + getCastle().getName() + ": " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error deleting hired siege guard for castle " + getCastle().getName() + ": " + e.getMessage(), e);
 		}
 	}
 	
@@ -162,7 +162,7 @@ public class SiegeGuardManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error spawning siege guards for castle " + getCastle().getName(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error spawning siege guards for castle " + getCastle().getName(), e);
 		}
 	}
 	
@@ -219,7 +219,7 @@ public class SiegeGuardManager
 				}
 				else
 				{
-					_log.warning("Missing npc data in npc table for id: " + rs.getInt("npcId"));
+					_log.warning(getClass().getSimpleName() + ": Missing npc data in npc table for id: " + rs.getInt("npcId"));
 				}
 			}
 			rs.close();
@@ -227,7 +227,7 @@ public class SiegeGuardManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error loading siege guard for castle " + getCastle().getName() + ": " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error loading siege guard for castle " + getCastle().getName() + ": " + e.getMessage(), e);
 		}
 	}
 	
@@ -258,7 +258,7 @@ public class SiegeGuardManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error adding siege guard for castle " + getCastle().getName() + ": " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error adding siege guard for castle " + getCastle().getName() + ": " + e.getMessage(), e);
 		}
 	}
 	

+ 10 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/SiegeManager.java

@@ -46,11 +46,6 @@ public class SiegeManager
 {
 	private static final Logger _log = Logger.getLogger(SiegeManager.class.getName());
 	
-	public static final SiegeManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	private int _attackerMaxClans = 500; // Max number of clans
 	private int _attackerRespawnDelay = 0; // Time in ms. Changeable in siege.config
 	private int _defenderMaxClans = 500; // Max number of clans
@@ -137,7 +132,7 @@ public class SiegeManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Exception: checkIsRegistered(): " + e.getMessage() ,e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Exception: checkIsRegistered(): " + e.getMessage() ,e);
 		}
 		return register;
 	}
@@ -160,7 +155,7 @@ public class SiegeManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Error while loading Territory War Manager settings!", e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while loading Territory War Manager settings!", e);
 		}
 		
 		// Siege setting
@@ -202,7 +197,7 @@ public class SiegeManager
 				}
 				catch (Exception e)
 				{
-					_log.warning("Error while loading control tower(s) for " + castle.getName() + " castle.");
+					_log.warning(getClass().getSimpleName() + ": Error while loading control tower(s) for " + castle.getName() + " castle.");
 				}
 			}
 			
@@ -229,7 +224,7 @@ public class SiegeManager
 				}
 				catch (Exception e)
 				{
-					_log.warning("Error while loading artefact(s) for " + castle.getName() + " castle.");
+					_log.warning(getClass().getSimpleName() + ": Error while loading artefact(s) for " + castle.getName() + " castle.");
 				}
 			}
 			
@@ -256,7 +251,7 @@ public class SiegeManager
 				}
 				catch (Exception e)
 				{
-					_log.warning("Error while loading artefact(s) for " + castle.getName() + " castle.");
+					_log.warning(getClass().getSimpleName() + ": Error while loading artefact(s) for " + castle.getName() + " castle.");
 				}
 			}
 			
@@ -390,6 +385,11 @@ public class SiegeManager
 			return _location;
 		}
 	}
+
+	public static final SiegeManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
 	
 	private static class SingletonHolder
 	{

+ 33 - 33
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/TerritoryWarManager.java

@@ -71,11 +71,6 @@ public class TerritoryWarManager implements Siegable
 	private static final String DELETE = "DELETE FROM territory_registrations WHERE castleId = ? and registeredId = ?";
 	private static final String INSERT = "INSERT INTO territory_registrations (castleId, registeredId) values (?, ?)";
 	
-	public static final TerritoryWarManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	public static String qn = "TerritoryWarSuperClass";
 	public static int DEFENDERMAXCLANS; // Max number of clans
 	public static int DEFENDERMAXPLAYERS; // Max number of individual player
@@ -424,7 +419,7 @@ public class TerritoryWarManager implements Siegable
 			}
 		}
 		else
-			_log.warning("TerritoryWarManager: Missing territory for new Ward owner: " + newOwnerId + ";" + territoryId);
+			_log.warning(getClass().getSimpleName() + ": Missing territory for new Ward owner: " + newOwnerId + ";" + territoryId);
 		return ret;
 	}
 	
@@ -647,12 +642,12 @@ public class TerritoryWarManager implements Siegable
 			}
 			catch (Exception e)
 			{
-				_log.log(Level.WARNING, "Territory War Manager: " + e.getMessage(), e);
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": " + e.getMessage(), e);
 			}
 		}
 		else
 		{
-			_log.warning("Territory War Manager: Data missing in NPC table for ID: " + npcId + ".");
+			_log.warning(getClass().getSimpleName() + ": Data missing in NPC table for ID: " + npcId + ".");
 		}
 		return null;
 	}
@@ -701,7 +696,7 @@ public class TerritoryWarManager implements Siegable
 		}
 		catch (IOException e)
 		{
-			_log.log(Level.WARNING, "Error while loading Territory War Manager settings!", e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Error while loading Territory War Manager settings!", e);
 		}
 		
 		// Siege setting
@@ -741,7 +736,7 @@ public class TerritoryWarManager implements Siegable
 						_territoryList.get(castleId).addWardSpawnPlace(loc);
 						break;
 					default:
-						_log.warning("Territory War Manager: Unknown npc type for " + rs.getInt("id"));
+						_log.warning(getClass().getSimpleName() + ": Unknown npc type for " + rs.getInt("id"));
 				}
 			}
 			
@@ -750,7 +745,7 @@ public class TerritoryWarManager implements Siegable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Territory War Manager: SpawnList error: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": SpawnList error: " + e.getMessage(), e);
 		}
 			
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
@@ -787,7 +782,7 @@ public class TerritoryWarManager implements Siegable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Territory War Manager: territory list error(): " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": territory list error(): " + e.getMessage(), e);
 		}
 			
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
@@ -817,7 +812,7 @@ public class TerritoryWarManager implements Siegable
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.WARNING, "Territory War Manager: registration list error: " + e.getMessage(), e);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": registration list error: " + e.getMessage(), e);
 		}
 	}
 	
@@ -825,7 +820,7 @@ public class TerritoryWarManager implements Siegable
 	{
 		if (_territoryList == null)
 		{
-			_log.warning("TerritoryWarManager: TerritoryList is NULL!");
+			_log.warning(getClass().getSimpleName() + ": TerritoryList is NULL!");
 			return;
 		}
 		FastList<Territory> activeTerritoryList = new FastList<>();
@@ -838,7 +833,7 @@ public class TerritoryWarManager implements Siegable
 					activeTerritoryList.add(t);
 			}
 			else
-				_log.warning("TerritoryWarManager: Castle missing! CastleId: " + t.getCastleId());
+				_log.warning(getClass().getSimpleName() + ": Castle missing! CastleId: " + t.getCastleId());
 		}
 		
 		if (activeTerritoryList.size() < 2)
@@ -863,7 +858,7 @@ public class TerritoryWarManager implements Siegable
 				castle.getZone().updateZoneStatusForCharactersInside();
 			}
 			else
-				_log.warning("TerritoryWarManager: Castle missing! CastleId: " + t.getCastleId());
+				_log.warning(getClass().getSimpleName() + ": Castle missing! CastleId: " + t.getCastleId());
 			if (fort != null)
 			{
 				t.changeNPCsSpawn(1, true);
@@ -873,7 +868,7 @@ public class TerritoryWarManager implements Siegable
 				fort.getZone().updateZoneStatusForCharactersInside();
 			}
 			else
-				_log.warning("TerritoryWarManager: Fort missing! FortId: " + t.getFortId());
+				_log.warning(getClass().getSimpleName() + ": Fort missing! FortId: " + t.getFortId());
 			for(TerritoryNPCSpawn ward : t.getOwnedWard())
 				if (ward.getNpc() != null && t.getOwnerClan() != null)
 				{
@@ -904,7 +899,7 @@ public class TerritoryWarManager implements Siegable
 		_isTWInProgress = false;
 		if (_territoryList == null)
 		{
-			_log.warning("TerritoryWarManager: TerritoryList is NULL!");
+			_log.warning(getClass().getSimpleName() + ": TerritoryList is NULL!");
 			return;
 		}
 		FastList<Territory> activeTerritoryList = new FastList<>();
@@ -917,7 +912,7 @@ public class TerritoryWarManager implements Siegable
 					activeTerritoryList.add(t);
 			}
 			else
-				_log.warning("TerritoryWarManager: Castle missing! CastleId: " + t.getCastleId());
+				_log.warning(getClass().getSimpleName() + ": Castle missing! CastleId: " + t.getCastleId());
 		}
 		
 		if (activeTerritoryList.size() < 2)
@@ -947,7 +942,7 @@ public class TerritoryWarManager implements Siegable
 				castle.getZone().setSiegeInstance(null);
 			}
 			else
-				_log.warning("TerritoryWarManager: Castle missing! CastleId: " + t.getCastleId());
+				_log.warning(getClass().getSimpleName() + ": Castle missing! CastleId: " + t.getCastleId());
 			
 			if (fort != null)
 			{
@@ -957,7 +952,7 @@ public class TerritoryWarManager implements Siegable
 				fort.getZone().setSiegeInstance(null);
 			}
 			else
-				_log.warning("TerritoryWarManager: Fort missing! FortId: " + t.getFortId());
+				_log.warning(getClass().getSimpleName() + ": Fort missing! FortId: " + t.getFortId());
 			
 			if (t.getHQ() != null)
 				t.getHQ().deleteMe();
@@ -991,7 +986,7 @@ public class TerritoryWarManager implements Siegable
 		Quest twQuest = QuestManager.getInstance().getQuest(qn);
 		if (twQuest == null)
 		{
-			_log.warning("TerritoryWarManager: missing main Quest!");
+			_log.warning(getClass().getSimpleName() + ": missing main Quest!");
 			return false;
 		}
 		for(int castleId : _registeredClans.keySet())
@@ -1359,14 +1354,14 @@ public class TerritoryWarManager implements Siegable
 			for(int i = 0; i < _territoryWardSpawnPlaces.length; i++)
 				if (_territoryWardSpawnPlaces[i] != null && _territoryWardSpawnPlaces[i].getNpc() == null)
 					return _territoryWardSpawnPlaces[i];
-			_log.log(Level.WARNING, "TerritoryWarManager: no free Ward spawn found for territory: " + _territoryId);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": no free Ward spawn found for territory: " + _territoryId);
 			for(int i = 0; i < _territoryWardSpawnPlaces.length; i++)
 				if (_territoryWardSpawnPlaces[i] == null)
-					_log.log(Level.WARNING, "TerritoryWarManager: territory ward spawn place " + i + " is null!");
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": territory ward spawn place " + i + " is null!");
 				else if (_territoryWardSpawnPlaces[i].getNpc() != null)
-					_log.log(Level.WARNING, "TerritoryWarManager: territory ward spawn place " + i + " has npc name: " + _territoryWardSpawnPlaces[i].getNpc().getName());
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": territory ward spawn place " + i + " has npc name: " + _territoryWardSpawnPlaces[i].getNpc().getName());
 				else
-					_log.log(Level.WARNING, "TerritoryWarManager: territory ward spawn place " + i + " is empty!");
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": territory ward spawn place " + i + " is empty!");
 			return null;
 		}
 		
@@ -1379,7 +1374,7 @@ public class TerritoryWarManager implements Siegable
 		{
 			if (type < 0 || type > 3)
 			{
-				_log.log(Level.WARNING, "TerritoryWarManager: wrong type(" + type + ") for NPCs spawn change!");
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": wrong type(" + type + ") for NPCs spawn change!");
 				return;
 			}
 			for(TerritoryNPCSpawn twSpawn : _spawnList)
@@ -1408,7 +1403,7 @@ public class TerritoryWarManager implements Siegable
 					wardSpawn._npcId = 0;
 					return;
 				}
-			_log.log(Level.WARNING, "TerritoryWarManager: cant delete wardId: " + wardId + " for territory: " + _territoryId);
+			_log.log(Level.WARNING, getClass().getSimpleName() + ": Can't delete wardId: " + wardId + " for territory: " + _territoryId);
 		}
 		
 		public int getTerritoryId()
@@ -1476,11 +1471,6 @@ public class TerritoryWarManager implements Siegable
 		}
 	}
 	
-	private static class SingletonHolder
-	{
-		protected static final TerritoryWarManager _instance = new TerritoryWarManager();
-	}
-	
 	@Override
 	public void startSiege()
 	{
@@ -1582,4 +1572,14 @@ public class TerritoryWarManager implements Siegable
 	{
 		
 	}
+	
+	public static final TerritoryWarManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
+	private static class SingletonHolder
+	{
+		protected static final TerritoryWarManager _instance = new TerritoryWarManager();
+	}
 }

+ 9 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/TransformationManager.java

@@ -14,8 +14,8 @@
  */
 package com.l2jserver.gameserver.instancemanager;
 
-import gnu.trove.map.hash.TIntObjectHashMap;
-
+import java.util.HashMap;
+import java.util.Map;
 import java.util.logging.Logger;
 
 import com.l2jserver.gameserver.model.L2Transformation;
@@ -28,21 +28,15 @@ public class TransformationManager
 {
 	private static final Logger _log = Logger.getLogger(TransformationManager.class.getName());
 	
-	public static TransformationManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
-	private TIntObjectHashMap<L2Transformation> _transformations;
+	private Map<Integer, L2Transformation> _transformations = new HashMap<>();
 	
 	protected TransformationManager()
 	{
-		_transformations = new TIntObjectHashMap<>();
 	}
 	
 	public void report()
 	{
-		_log.info("Loaded: " + _transformations.size() + " transformations.");
+		_log.info(getClass().getSimpleName() + ": Loaded: " + _transformations.size() + " transformations.");
 	}
 	
 	public boolean transformPlayer(int id, L2PcInstance player)
@@ -67,6 +61,11 @@ public class TransformationManager
 		return _transformations.put(transformation.getId(), transformation);
 	}
 	
+	public static TransformationManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final TransformationManager _instance = new TransformationManager();

+ 10 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ZoneManager.java

@@ -26,7 +26,6 @@ import java.util.logging.Level;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.engines.DocumentParser;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2World;
@@ -96,7 +95,7 @@ public class ZoneManager extends DocumentParser
 			}
 		}
 		GrandBossManager.getInstance().getZones().clear();
-		_log.info("Removed zones in " + count + " regions.");
+		_log.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
 		
 		// Load the zones
 		load();
@@ -170,7 +169,7 @@ public class ZoneManager extends DocumentParser
 						}
 						catch (Exception e)
 						{
-							_log.warning("ZoneData: No such zone type: " + zoneType + " in file: " + getCurrentFile().getName());
+							_log.warning(getClass().getSimpleName() + ": ZoneData: No such zone type: " + zoneType + " in file: " + getCurrentFile().getName());
 							continue;
 						}
 						
@@ -197,7 +196,7 @@ public class ZoneManager extends DocumentParser
 							
 							if (coords == null || coords.length == 0)
 							{
-								_log.warning("ZoneData: missing data for zone: " + zoneId + " XML file: " + getCurrentFile().getName());
+								_log.warning(getClass().getSimpleName() + ": ZoneData: missing data for zone: " + zoneId + " XML file: " + getCurrentFile().getName());
 								continue;
 							}
 							
@@ -212,7 +211,7 @@ public class ZoneManager extends DocumentParser
 									temp.setZone(new ZoneCuboid(coords[0][0], coords[1][0], coords[0][1], coords[1][1], minZ, maxZ));
 								else
 								{
-									_log.warning("ZoneData: Missing cuboid vertex in sql data for zone: " + zoneId + " in file: " + getCurrentFile().getName());
+									_log.warning(getClass().getSimpleName() + ": ZoneData: Missing cuboid vertex in sql data for zone: " + zoneId + " in file: " + getCurrentFile().getName());
 									continue;
 								}
 							}
@@ -232,7 +231,7 @@ public class ZoneManager extends DocumentParser
 								}
 								else
 								{
-									_log.warning("ZoneData: Bad data for zone: " + zoneId + " in file: " + getCurrentFile().getName());
+									_log.warning(getClass().getSimpleName() + ": ZoneData: Bad data for zone: " + zoneId + " in file: " + getCurrentFile().getName());
 									continue;
 								}
 							}
@@ -246,14 +245,14 @@ public class ZoneManager extends DocumentParser
 									temp.setZone(new ZoneCylinder(coords[0][0], coords[0][1], minZ, maxZ, zoneRad));
 								else
 								{
-									_log.warning("ZoneData: Bad data for zone: " + zoneId + " in file: " + getCurrentFile().getName());
+									_log.warning(getClass().getSimpleName() + ": ZoneData: Bad data for zone: " + zoneId + " in file: " + getCurrentFile().getName());
 									continue;
 								}
 							}
 						}
 						catch (Exception e)
 						{
-							_log.log(Level.WARNING, "ZoneData: Failed to load zone " + zoneId + " coordinates: " + e.getMessage(), e);
+							_log.log(Level.WARNING, getClass().getSimpleName() + ": ZoneData: Failed to load zone " + zoneId + " coordinates: " + e.getMessage(), e);
 						}
 						
 						// Check for additional parameters
@@ -286,7 +285,7 @@ public class ZoneManager extends DocumentParser
 							}
 						}
 						if (checkId(zoneId))
-							_log.config("Caution: Zone (" + zoneId + ") from file: " + getCurrentFile().getName() + " overrides previos definition.");
+							_log.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + getCurrentFile().getName() + " overrides previos definition.");
 						
 						if (zoneName != null && !zoneName.isEmpty())
 							temp.setName(zoneName);
@@ -308,10 +307,6 @@ public class ZoneManager extends DocumentParser
 								
 								if (temp.getZone().intersectsRectangle(ax, bx, ay, by))
 								{
-									if (Config.DEBUG)
-									{
-										_log.info("Zone (" + zoneId + ") added to: " + x + " " + y);
-									}
 									worldRegions[x][y].addZone(temp);
 								}
 							}
@@ -325,7 +320,7 @@ public class ZoneManager extends DocumentParser
 	@Override
 	public final void load()
 	{
-		_log.info("Loading zones...");
+		_log.info(getClass().getSimpleName() + ": Loading zones...");
 		_classZones.clear();
 		
 		long started = System.currentTimeMillis();
@@ -333,7 +328,7 @@ public class ZoneManager extends DocumentParser
 		parseDirectory("data/zones");
 		
 		started = System.currentTimeMillis() - started;
-		_log.info("Done: loaded " + _classZones.size() + " zone classes and " + getSize() + " zones in " + (started / 1000) + " seconds.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _classZones.size() + " zone classes and " + getSize() + " zones in " + (started / 1000) + " seconds.");
 	}
 	
 	public int getSize()

+ 1 - 28
L2J_Server_BETA/java/com/l2jserver/gameserver/model/AutoChatHandler.java

@@ -26,7 +26,6 @@ import java.util.logging.Logger;
 import javolution.util.FastList;
 import javolution.util.FastMap;
 
-import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.SevenSigns;
 import com.l2jserver.gameserver.ThreadPoolManager;
@@ -63,7 +62,6 @@ public class AutoChatHandler implements SpawnListener
 	
 	private void restoreChatData()
 	{
-		int numLoaded = 0;
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
 		{
 			PreparedStatement statement = con.prepareStatement("SELECT * FROM auto_chat ORDER BY groupId ASC");
@@ -71,9 +69,7 @@ public class AutoChatHandler implements SpawnListener
 			
 			PreparedStatement statement2 = con.prepareStatement("SELECT * FROM auto_chat_text WHERE groupId=?");
 			while (rs.next())
-			{
-				numLoaded++;
-				
+			{				
 				statement2.setInt(1, rs.getInt("groupId"));
 				try (ResultSet rs2 = statement2.executeQuery())
 				{
@@ -93,9 +89,6 @@ public class AutoChatHandler implements SpawnListener
 			statement2.close();
 			rs.close();
 			statement.close();
-			
-			if (Config.DEBUG)
-				_log.info("AutoChatHandler: Loaded " + numLoaded + " chat group(s) from the database.");
 		}
 		catch (Exception e)
 		{
@@ -212,10 +205,6 @@ public class AutoChatHandler implements SpawnListener
 		
 		_registeredChats.remove(chatInst.getNPCId());
 		chatInst.setActive(false);
-		
-		if (Config.DEBUG)
-			_log.info("AutoChatHandler: Removed auto chat for NPC ID " + chatInst.getNPCId());
-		
 		return true;
 	}
 	
@@ -305,10 +294,6 @@ public class AutoChatHandler implements SpawnListener
 			_npcId = npcId;
 			_defaultDelay = chatDelay;
 			_globalChat = isGlobal;
-			
-			if (Config.DEBUG)
-				_log.info("AutoChatHandler: Registered auto chat for NPC ID " + _npcId + " (Global Chat = " + _globalChat + ").");
-			
 			setActive(true);
 		}
 		
@@ -592,10 +577,6 @@ public class AutoChatHandler implements SpawnListener
 				_chatDelay = chatDelay;
 				_chatTexts = chatTexts;
 				
-				if (Config.DEBUG)
-					_log.info("AutoChatHandler: Chat definition added for NPC ID " + _npcInstance.getNpcId() + " (Object ID = "
-							+ _npcInstance.getObjectId() + ").");
-				
 				// If global chat isn't enabled for the parent instance,
 				// then handle the chat task locally.
 				if (!chatInst.isGlobal())
@@ -708,10 +689,6 @@ public class AutoChatHandler implements SpawnListener
 					chatDefinitions = new AutoChatDefinition[] { chatDef };
 				}
 				
-				if (Config.DEBUG)
-					_log.info("AutoChatHandler: Running auto chat for " + chatDefinitions.length + " instances of NPC ID " + _npcId + "."
-							+ " (Global Chat = " + chatInst.isGlobal() + ")");
-				
 				for (AutoChatDefinition chatDef : chatDefinitions)
 				{
 					try
@@ -806,10 +783,6 @@ public class AutoChatHandler implements SpawnListener
 							for (L2PcInstance nearbyGM : nearbyGMs)
 								nearbyGM.sendPacket(cs);
 						}
-						
-						if (Config.DEBUG)
-							_log.fine("AutoChatHandler: Chat propogation for object ID " + chatNpc.getObjectId() + " (" + creatureName
-									+ ") with text '" + text + "' sent to " + nearbyPlayers.size() + " nearby players.");
 					}
 					catch (Exception e)
 					{

+ 0 - 20
L2J_Server_BETA/java/com/l2jserver/gameserver/model/AutoSpawnHandler.java

@@ -27,7 +27,6 @@ import java.util.logging.Logger;
 import javolution.util.FastList;
 import javolution.util.FastMap;
 
-import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.Announcements;
 import com.l2jserver.gameserver.ThreadPoolManager;
@@ -121,7 +120,6 @@ public class AutoSpawnHandler
 	
 	private void restoreSpawnData()
 	{
-		int numLoaded = 0;
 		try (Connection con = L2DatabaseFactory.getInstance().getConnection())
 		{
 			// Restore spawn group data, then the location data.
@@ -137,7 +135,6 @@ public class AutoSpawnHandler
 				spawnInst.setSpawnCount(rs.getInt("count"));
 				spawnInst.setBroadcast(rs.getBoolean("broadcastSpawn"));
 				spawnInst.setRandomSpawn(rs.getBoolean("randomSpawn"));
-				numLoaded++;
 				
 				// Restore the spawn locations for this spawn group/instance.
 				statement2.setInt(1, rs.getInt("groupId"));
@@ -154,9 +151,6 @@ public class AutoSpawnHandler
 			statement2.close();
 			rs.close();
 			statement.close();
-			
-			if (Config.DEBUG)
-				_log.info("AutoSpawnHandler: Loaded " + numLoaded + " spawn group(s) from the database.");
 		}
 		catch (Exception e)
 		{
@@ -198,10 +192,6 @@ public class AutoSpawnHandler
 		_registeredSpawns.put(newId, newSpawn);
 		
 		setSpawnActive(newSpawn, true);
-		
-		if (Config.DEBUG)
-			_log.info("AutoSpawnHandler: Registered auto spawn for NPC ID " + npcId + " (Object ID = " + newId + ").");
-		
 		return newSpawn;
 	}
 	
@@ -243,10 +233,6 @@ public class AutoSpawnHandler
 			// Cancel the currently associated running scheduled task.
 			ScheduledFuture<?> respawnTask = _runningSpawns.remove(spawnInst._objectId);
 			respawnTask.cancel(false);
-			
-			if (Config.DEBUG)
-				_log.info("AutoSpawnHandler: Removed auto spawn for NPC ID " + spawnInst._npcId + " (Object ID = " + spawnInst._objectId
-						+ ").");
 		}
 		catch (Exception e)
 		{
@@ -523,9 +509,6 @@ public class AutoSpawnHandler
 				{
 					Announcements.getInstance().announceToAll("The " + npcInst.getName() + " has spawned near " + nearestTown + "!");
 				}
-				if (Config.DEBUG)
-					_log.info("AutoSpawnHandler: Spawned NPC ID " + spawnInst.getNpcId() + " at " + x + ", " + y + ", " + z + " (Near "
-							+ nearestTown + ") for " + (spawnInst.getRespawnDelay() / 60000) + " minute(s).");
 				
 				// If there is no despawn time, do not create a despawn task.
 				if (spawnInst.getDespawnDelay() > 0)
@@ -578,9 +561,6 @@ public class AutoSpawnHandler
 					npcInst.deleteMe();
 					SpawnTable.getInstance().deleteSpawn(npcInst.getSpawn(), false);
 					spawnInst.removeNpcInstance(npcInst);
-					
-					if (Config.DEBUG)
-						_log.info("AutoSpawnHandler: Spawns removed for spawn instance (Object ID = " + _objectId + ").");
 				}
 			}
 			catch (Exception e)

+ 0 - 464
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Manor.java

@@ -1,464 +0,0 @@
-/*
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package com.l2jserver.gameserver.model;
-
-import java.io.File;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import javolution.util.FastList;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.datatables.ItemTable;
-import com.l2jserver.gameserver.model.items.L2Item;
-import com.l2jserver.gameserver.util.L2TIntObjectHashMap;
-
-/**
- * Service class for manor
- * @author l3x
- */
-public class L2Manor
-{
-	private static Logger _log = Logger.getLogger(L2Manor.class.getName());
-	
-	private static L2TIntObjectHashMap<SeedData> _seeds;
-	
-	protected L2Manor()
-	{
-		_seeds = new L2TIntObjectHashMap<>();
-		parseData();
-	}
-	
-	public static L2Manor getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
-	public SeedData[] getSeedsDataArray()
-	{
-		return _seeds.values(new SeedData[0]);
-	}
-	
-	public FastList<Integer> getAllCrops()
-	{
-		FastList<Integer> crops = new FastList<>();
-		
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (!crops.contains(seed.getCrop()) && seed.getCrop() != 0 && !crops.contains(seed.getCrop()))
-			{
-				crops.add(seed.getCrop());
-			}
-		}
-		
-		return crops;
-	}
-	
-	public int getSeedBasicPrice(int seedId)
-	{
-		final L2Item seedItem = ItemTable.getInstance().getTemplate(seedId);
-		if (seedItem != null)
-		{
-			return seedItem.getReferencePrice();
-		}
-		return 0;
-	}
-	
-	public int getSeedBasicPriceByCrop(int cropId)
-	{
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getCrop() == cropId)
-				return getSeedBasicPrice(seed.getId());
-		}
-		return 0;
-	}
-	
-	public int getCropBasicPrice(int cropId)
-	{
-		final L2Item cropItem = ItemTable.getInstance().getTemplate(cropId);
-		if (cropItem != null)
-			return cropItem.getReferencePrice();
-		return 0;
-	}
-	
-	public int getMatureCrop(int cropId)
-	{
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getCrop() == cropId)
-				return seed.getMature();
-		}
-		return 0;
-	}
-	
-	/**
-	 * Returns price which lord pays to buy one seed
-	 * @param seedId
-	 * @return seed price
-	 */
-	public long getSeedBuyPrice(int seedId)
-	{
-		long buyPrice = getSeedBasicPrice(seedId);
-		return (buyPrice > 0 ? buyPrice : 1);
-	}
-	
-	public int getSeedMinLevel(int seedId)
-	{
-		SeedData seed = _seeds.get(seedId);
-		
-		if (seed != null)
-			return seed.getLevel() - 5;
-		return -1;
-	}
-	
-	public int getSeedMaxLevel(int seedId)
-	{
-		SeedData seed = _seeds.get(seedId);
-		
-		if (seed != null)
-			return seed.getLevel() + 5;
-		return -1;
-	}
-	
-	public int getSeedLevelByCrop(int cropId)
-	{
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getCrop() == cropId)
-			{
-				return seed.getLevel();
-			}
-		}
-		return 0;
-	}
-	
-	public int getSeedLevel(int seedId)
-	{
-		SeedData seed = _seeds.get(seedId);
-		
-		if (seed != null)
-		{
-			return seed.getLevel();
-		}
-		return -1;
-	}
-	
-	public boolean isAlternative(int seedId)
-	{
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getId() == seedId)
-			{
-				return seed.isAlternative();
-			}
-		}
-		return false;
-	}
-	
-	public int getCropType(int seedId)
-	{
-		SeedData seed = _seeds.get(seedId);
-		
-		if (seed != null)
-			return seed.getCrop();
-		return -1;
-	}
-	
-	public int getRewardItem(int cropId, int type)
-	{
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getCrop() == cropId)
-			{
-				return seed.getReward(type); // there can be several
-				// seeds with same crop, but
-				// reward should be the same for
-				// all
-			}
-		}
-		return -1;
-	}
-	
-	public int getRewardItemBySeed(int seedId, int type)
-	{
-		SeedData seed = _seeds.get(seedId);
-		
-		if (seed != null)
-		{
-			return seed.getReward(type);
-		}
-		return 0;
-	}
-	
-	/**
-	 * Return all crops which can be purchased by given castle
-	 *
-	 * @param castleId
-	 * @return
-	 */
-	public FastList<Integer> getCropsForCastle(int castleId)
-	{
-		FastList<Integer> crops = new FastList<>();
-		
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getManorId() == castleId && !crops.contains(seed.getCrop()))
-			{
-				crops.add(seed.getCrop());
-			}
-		}
-		
-		return crops;
-	}
-	
-	/**
-	 * Return list of seed ids, which belongs to castle with given id
-	 * @param castleId - id of the castle
-	 * @return seedIds - list of seed ids
-	 */
-	public FastList<Integer> getSeedsForCastle(int castleId)
-	{
-		FastList<Integer> seedsID = new FastList<>();
-		
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getManorId() == castleId && !seedsID.contains(seed.getId()))
-			{
-				seedsID.add(seed.getId());
-			}
-		}
-		
-		return seedsID;
-	}
-	
-	/**
-	 * Returns castle id where seed can be sowned<br>
-	 * @param seedId
-	 * @return castleId
-	 */
-	public int getCastleIdForSeed(int seedId)
-	{
-		SeedData seed = _seeds.get(seedId);
-		
-		if (seed != null)
-		{
-			return seed.getManorId();
-		}
-		return 0;
-	}
-	
-	public int getSeedSaleLimit(int seedId)
-	{
-		SeedData seed = _seeds.get(seedId);
-		
-		if (seed != null)
-		{
-			return seed.getSeedLimit();
-		}
-		return 0;
-	}
-	
-	public int getCropPuchaseLimit(int cropId)
-	{
-		for (SeedData seed : getSeedsDataArray())
-		{
-			if (seed.getCrop() == cropId)
-			{
-				return seed.getCropLimit();
-			}
-		}
-		return 0;
-	}
-	
-	private static class SeedData
-	{
-		private int _id;
-		private int _level; // seed level
-		private int _crop; // crop type
-		private int _mature; // mature crop type
-		private int _type1;
-		private int _type2;
-		private int _manorId; // id of manor (castle id) where seed can be farmed
-		private boolean _isAlternative;
-		private int _limitSeeds;
-		private int _limitCrops;
-		
-		public SeedData(int level, int crop, int mature)
-		{
-			this._level = level;
-			this._crop = crop;
-			this._mature = mature;
-		}
-		
-		public void setData(int id, int t1, int t2, int manorId, boolean isAlt, int lim1, int lim2)
-		{
-			this._id = id;
-			_type1 = t1;
-			_type2 = t2;
-			_manorId = manorId;
-			_isAlternative = isAlt;
-			_limitSeeds = lim1;
-			_limitCrops = lim2;
-		}
-		
-		public int getManorId()
-		{
-			return _manorId;
-		}
-		
-		public int getId()
-		{
-			return _id;
-		}
-		
-		public int getCrop()
-		{
-			return _crop;
-		}
-		
-		public int getMature()
-		{
-			return _mature;
-		}
-		
-		public int getReward(int type)
-		{
-			return (type == 1 ? _type1 : _type2);
-		}
-		
-		public int getLevel()
-		{
-			return _level;
-		}
-		
-		public boolean isAlternative()
-		{
-			return _isAlternative;
-		}
-		
-		public int getSeedLimit()
-		{
-			return _limitSeeds * Config.RATE_DROP_MANOR;
-		}
-		
-		public int getCropLimit()
-		{
-			return _limitCrops * Config.RATE_DROP_MANOR;
-		}
-
-		@Override
-		public String toString()
-		{
-			return "SeedData [_id=" + _id + ", _level=" + _level + ", _crop=" + _crop + ", _mature=" + _mature + ", _type1=" + _type1 + ", _type2=" + _type2 + ", _manorId=" + _manorId + ", _isAlternative=" + _isAlternative + ", _limitSeeds=" + _limitSeeds + ", _limitCrops=" + _limitCrops + "]";
-		}
-	}
-	
-	private void parseData()
-	{
-		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-		factory.setValidating(false);
-		factory.setIgnoringComments(true);
-		File file = new File(Config.DATAPACK_ROOT, "/data/seeds.xml");
-		Document doc = null;
-		
-		try
-		{
-			doc = factory.newDocumentBuilder().parse(file);
-		}
-		catch (Exception e)
-		{
-			_log.log(Level.WARNING, "Could not parse seeds.xml file: " + e.getMessage(), e);
-			return;
-		}
-		
-		doc.getDocumentElement().normalize();
-		
-		//list
-		for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
-		{
-			if ("list".equalsIgnoreCase(n.getNodeName()))
-			{
-				//castle
-				for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
-				{
-					if ("castle".equalsIgnoreCase(d.getNodeName()))
-					{
-						int castleId = Integer.parseInt(d.getAttributes().getNamedItem("id").getNodeValue());
-						//crop
-						for (Node c = d.getFirstChild(); c != null; c = c.getNextSibling())
-						{
-							if ("crop".equalsIgnoreCase(c.getNodeName()))
-							{
-								int cropId = Integer.parseInt(c.getAttributes().getNamedItem("id").getNodeValue());
-								int seedId = 0;
-								int matureId = 0;
-								int type1R = 0;
-								int type2R = 0;
-								boolean isAlt = false;
-								int level = 0;
-								int limitSeeds = 0;
-								int limitCrops = 0;
-								
-								//attrib
-								for (Node a = c.getFirstChild(); a != null; a = a.getNextSibling())
-								{
-									if (a.getNodeName().equalsIgnoreCase("seed_id"))
-										seedId = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue());
-									else if (a.getNodeName().equalsIgnoreCase("mature_id"))
-										matureId = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue());
-									else if (a.getNodeName().equalsIgnoreCase("reward1"))
-										type1R = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue());
-									else if (a.getNodeName().equalsIgnoreCase("reward2"))
-										type2R = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue());
-									else if (a.getNodeName().equalsIgnoreCase("alternative"))
-										isAlt = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue()) == 1;
-									else if (a.getNodeName().equalsIgnoreCase("level"))
-										level = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue());
-									else if (a.getNodeName().equalsIgnoreCase("limit_seed"))
-										limitSeeds = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue());
-									else if (a.getNodeName().equalsIgnoreCase("limit_crops"))
-										limitCrops = Integer.parseInt(a.getAttributes().getNamedItem("val").getNodeValue());
-								}
-								
-								SeedData seed = new SeedData(level, cropId, matureId);
-								seed.setData(seedId, type1R, type2R, castleId, isAlt, limitSeeds, limitCrops);
-								_seeds.put(seed.getId(), seed);
-							}
-						}
-					}
-				}
-			}
-			_log.info(getClass().getSimpleName()+": Loaded "+_seeds.size()+ " Seeds.");
-		}
-
-
-	}
-	
-	private static class SingletonHolder
-	{
-		protected static final L2Manor _instance = new L2Manor();
-	}
-	
-	public static void main(String[] arg)
-	{
-		L2Manor.getInstance();
-	}
-}

+ 96 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Seed.java

@@ -0,0 +1,96 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.model;
+
+import com.l2jserver.Config;
+
+public class L2Seed
+{
+	private final int _seedId;
+	private final int _cropId; // crop type
+	private final int _level; // seed level
+	private final int _matureId; // mature crop type
+	private final int _reward1;
+	private final int _reward2;
+	private final int _castleId; // id of manor (castle id) where seed can be farmed
+	private final boolean _isAlternative;
+	private final int _limitSeeds;
+	private final int _limitCrops;
+	
+	public L2Seed(StatsSet set)
+	{
+		_seedId = set.getInteger("seed_id");
+		_level = set.getInteger("level");
+		_cropId = set.getInteger("cropId");
+		_matureId = set.getInteger("mature_id");
+		_reward1 = set.getInteger("reward1");
+		_reward2 = set.getInteger("reward2");
+		_castleId = set.getInteger("castleId");
+		_isAlternative = set.getInteger("alternative") == 1;
+		_limitCrops = set.getInteger("limit_crops");
+		_limitSeeds = set.getInteger("limit_seed");
+	}
+	
+	public int getCastleId()
+	{
+		return _castleId;
+	}
+	
+	public int getSeedId()
+	{
+		return _seedId;
+	}
+	
+	public int getCropId()
+	{
+		return _cropId;
+	}
+	
+	public int getMatureId()
+	{
+		return _matureId;
+	}
+	
+	public int getReward(int type)
+	{
+		return (type == 1 ? _reward1 : _reward2);
+	}
+	
+	public int getLevel()
+	{
+		return _level;
+	}
+	
+	public boolean isAlternative()
+	{
+		return _isAlternative;
+	}
+	
+	public int getSeedLimit()
+	{
+		return _limitSeeds * Config.RATE_DROP_MANOR;
+	}
+	
+	public int getCropLimit()
+	{
+		return _limitCrops * Config.RATE_DROP_MANOR;
+	}
+	
+	@Override
+	public String toString()
+	{
+		return "SeedData [_id=" + _seedId + ", _level=" + _level + ", _crop=" + _cropId + ", _mature=" + _matureId + ", _type1=" + _reward1 + ", _type2=" + _reward2 + ", _manorId=" + _castleId + ", _isAlternative=" + _isAlternative + ", _limitSeeds=" + _limitSeeds + ", _limitCrops=" + _limitCrops + "]";
+	}
+}

+ 4 - 17
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Attackable.java

@@ -35,13 +35,13 @@ import com.l2jserver.gameserver.datatables.EventDroplist;
 import com.l2jserver.gameserver.datatables.EventDroplist.DateDrop;
 import com.l2jserver.gameserver.datatables.HerbDropTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
 import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.L2CommandChannel;
 import com.l2jserver.gameserver.model.L2DropCategory;
 import com.l2jserver.gameserver.model.L2DropData;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Party;
 import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
@@ -1273,9 +1273,6 @@ public class L2Attackable extends L2Npc
 		
 		if (itemCount > 0)
 			return new RewardItem(drop.getItemId(), itemCount);
-		else if (itemCount == 0 && Config.DEBUG)
-			_log.fine("Roll produced no drops.");
-		
 		return null;
 	}
 	
@@ -1416,8 +1413,6 @@ public class L2Attackable extends L2Npc
 			
 			if (itemCount > 0)
 				return new RewardItem(drop.getItemId(), itemCount);
-			else if (itemCount == 0 && Config.DEBUG)
-				_log.fine("Roll produced no drops.");
 		}
 		return null;
 	}
@@ -1569,8 +1564,6 @@ public class L2Attackable extends L2Npc
 			
 			if (itemCount > 0)
 				return new RewardItem(drop.getItemId(), itemCount);
-			else if (itemCount == 0 && Config.DEBUG)
-				_log.fine("Roll produced no drops.");
 		}
 		return null;
 	}
@@ -1631,9 +1624,6 @@ public class L2Attackable extends L2Npc
 						item = calculateRewardItem(player, drop, levelModifier, true);
 						if (item == null)
 							continue;
-						
-						if (Config.DEBUG)
-							_log.fine("Item id to spoil: " + item.getItemId() + " amount: " + item.getCount());
 						sweepList.add(item);
 					}
 					// Set the table _sweepItems of this L2Attackable
@@ -1656,10 +1646,7 @@ public class L2Attackable extends L2Npc
 					item = calculateCategorizedRewardItem(player, cat, levelModifier);
 				
 				if (item != null)
-				{
-					if (Config.DEBUG)
-						_log.fine("Item id to drop: " + item.getItemId() + " amount: " + item.getCount());
-					
+				{	
 					// Check if the autoLoot mode is active
 					if (isFlying() || (!isRaid() && Config.AUTO_LOOT) || (isRaid() && Config.AUTO_LOOT_RAIDS))
 						player.doAutoLoot(this, item); // Give the item(s) to the L2PcInstance that has killed the L2Attackable
@@ -2257,7 +2244,7 @@ public class L2Attackable extends L2Npc
 			}
 		}
 		
-		int diff = (getLevel() - (L2Manor.getInstance().getSeedLevel(_seedType) - 5));
+		int diff = (getLevel() - (ManorData.getInstance().getSeedLevel(_seedType) - 5));
 		
 		// hi-lvl mobs bonus
 		if (diff > 0)
@@ -2265,7 +2252,7 @@ public class L2Attackable extends L2Npc
 		
 		FastList<RewardItem> harvested = new FastList<>();
 		
-		harvested.add(new RewardItem(L2Manor.getInstance().getCropType(_seedType), count * Config.RATE_DROP_MANOR));
+		harvested.add(new RewardItem(ManorData.getInstance().getCropType(_seedType), count * Config.RATE_DROP_MANOR));
 		
 		_harvestItems = harvested.toArray(new RewardItem[harvested.size()]);
 	}

+ 17 - 56
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -625,10 +625,7 @@ public abstract class L2Character extends L2Object
 		
 		if (!needHpUpdate(352))
 			return;
-		
-		if (Config.DEBUG)
-			_log.fine("Broadcast Status Update for " + getObjectId() + "(" + getName() + "). HP: " + getCurrentHp());
-		
+				
 		// Create the Server->Client packet StatusUpdate with current HP
 		StatusUpdate su = new StatusUpdate(this);
 		su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
@@ -692,9 +689,6 @@ public abstract class L2Character extends L2Object
 		
 		z += 5;
 		
-		if (Config.DEBUG)
-			_log.fine("Teleporting to: " + x + ", " + y + ", " + z);
-		
 		// Send a Server->Client packet TeleportToLocationt to the L2Character AND to all L2PcInstance in the _KnownPlayers of the L2Character
 		broadcastPacket(new TeleportToLocation(this, x, y, z, heading));
 		
@@ -803,8 +797,6 @@ public abstract class L2Character extends L2Object
 		{
 			return;
 		}
-		if (Config.DEBUG)
-			_log.fine(getName() + " doAttack: target=" + target);
 		
 		if (!isAlikeDead())
 		{
@@ -1207,7 +1199,7 @@ public abstract class L2Character extends L2Object
 			// Calculate physical damages
 			damage1 = (int) Formulas.calcPhysDam(this, target, null, shld1, crit1, false, attack.soulshot);
 			
-			double range = Math.sqrt(this.getDistanceSq(target));
+			double range = Math.sqrt(getDistanceSq(target));
 			if (range < 1600)
 			{
 				double dmgmod = 1 - (1 - range / 800) * 0.35;
@@ -1443,12 +1435,6 @@ public abstract class L2Character extends L2Object
 		int maxRadius = getPhysicalAttackRange();
 		int maxAngleDiff = (int) getStat().calcStat(Stats.POWER_ATTACK_ANGLE, 120, null, null);
 		
-		if (Config.DEBUG)
-		{
-			_log.info("doAttackHitByPole: Max radius = " + maxRadius);
-			_log.info("doAttackHitByPole: Max angle = " + maxAngleDiff);
-		}
-		
 		// o1 x: 83420 y: 148158 (Giran)
 		// o2 x: 83379 y: 148081 (Giran)
 		// dx = -41
@@ -4526,7 +4512,7 @@ public abstract class L2Character extends L2Object
 			{
 				dz = m._zDestination - zPrev; // allow diff
 			}
-			else if (this.isInCombat() && Math.abs(dz) > 200 && (dx * dx + dy * dy) < 40000) // allow mob to climb up to pcinstance
+			else if (isInCombat() && Math.abs(dz) > 200 && (dx * dx + dy * dy) < 40000) // allow mob to climb up to pcinstance
 			{
 				dz = m._zDestination - zPrev; // climbing
 			}
@@ -4628,7 +4614,7 @@ public abstract class L2Character extends L2Object
 		}
 		broadcastPacket(new StopMove(this));
 		if (Config.MOVE_BASED_KNOWNLIST && updateKnownObjects)
-			this.getKnownList().findObjects();
+			getKnownList().findObjects();
 	}
 	
 	/**
@@ -4765,10 +4751,7 @@ public abstract class L2Character extends L2Object
 			dz = (z - curZ);
 			distance = Math.sqrt(dx * dx + dy * dy);
 		}
-		
-		if (Config.DEBUG)
-			_log.fine("distance to target:" + distance);
-		
+				
 		// Define movement angles needed
 		// ^
 		// |     X (x,y)
@@ -4793,10 +4776,7 @@ public abstract class L2Character extends L2Object
 			
 			// If no distance to go through, the movement is canceled
 			if (distance < 1 || distance - offset <= 0)
-			{
-				if (Config.DEBUG)
-					_log.fine("already in range, no movement needed.");
-				
+			{	
 				// Notify the AI that the L2Character is arrived at destination
 				getAI().notifyEvent(CtrlEvent.EVT_ARRIVED);
 				
@@ -4844,7 +4824,7 @@ public abstract class L2Character extends L2Object
 			// Movement checks:
 			// when geodata == 2, for all characters except mobs returning home (could be changed later to teleport if pathfinding fails)
 			// when geodata == 1, for l2playableinstance and l2riftinstance only
-			if ((Config.GEODATA == 2 && !(isL2Attackable() && ((L2Attackable) this).isReturningToSpawnPoint())) || (isPlayer() && !(isInVehicle && distance > 1500)) || (isSummon() && !(this.getAI().getIntention() == AI_INTENTION_FOLLOW)) // assuming intention_follow only when following owner
+			if ((Config.GEODATA == 2 && !(isL2Attackable() && ((L2Attackable) this).isReturningToSpawnPoint())) || (isPlayer() && !(isInVehicle && distance > 1500)) || (isSummon() && !(getAI().getIntention() == AI_INTENTION_FOLLOW)) // assuming intention_follow only when following owner
 					|| isAfraid() || this instanceof L2RiftInvaderInstance)
 			{
 				if (isOnGeodataPath())
@@ -4864,14 +4844,14 @@ public abstract class L2Character extends L2Object
 				if (curX < L2World.MAP_MIN_X || curX > L2World.MAP_MAX_X || curY < L2World.MAP_MIN_Y || curY > L2World.MAP_MAX_Y)
 				{
 					// Temporary fix for character outside world region errors
-					_log.warning("Character " + this.getName() + " outside world area, in coordinates x:" + curX + " y:" + curY);
+					_log.warning("Character " + getName() + " outside world area, in coordinates x:" + curX + " y:" + curY);
 					getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
 					if (isPlayer())
 						getActingPlayer().logout();
 					else if (isSummon())
 						return; // preventation when summon get out of world coords, player will not loose him, unsummon handled from pcinstance
 					else
-						this.onDecay();
+						onDecay();
 					return;
 				}
 				Location destiny = GeoData.getInstance().moveCheck(curX, curY, curZ, x, y, z, getInstanceId());
@@ -4887,11 +4867,11 @@ public abstract class L2Character extends L2Object
 			// Pathfinding checks. Only when geodata setting is 2, the LoS check gives shorter result
 			// than the original movement was and the LoS gives a shorter distance than 2000
 			// This way of detecting need for pathfinding could be changed.
-			if (Config.GEODATA == 2 && originalDistance - distance > 30 && distance < 2000 && !this.isAfraid())
+			if (Config.GEODATA == 2 && originalDistance - distance > 30 && distance < 2000 && !isAfraid())
 			{
 				// Path calculation
 				// Overrides previous movement check
-				if ((isPlayable() && !isInVehicle) || this.isMinion() || this.isInCombat())
+				if ((isPlayable() && !isInVehicle) || isMinion() || isInCombat())
 				{
 					m.geoPath = PathFinding.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceId(), isPlayable());
 					if (m.geoPath == null || m.geoPath.size() < 2) // No path found
@@ -4904,7 +4884,7 @@ public abstract class L2Character extends L2Object
 						// * Summons will follow their masters no matter what.
 						// * Currently minions also must move freely since L2AttackableAI commands
 						// them to move along with their leader
-						if (isPlayer() || (!isPlayable() && !this.isMinion() && Math.abs(z - curZ) > 140) || (isSummon() && !((L2Summon) this).getFollowStatus()))
+						if (isPlayer() || (!isPlayable() && !isMinion() && Math.abs(z - curZ) > 140) || (isSummon() && !((L2Summon) this).getFollowStatus()))
 						{
 							getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
 							return;
@@ -4955,7 +4935,7 @@ public abstract class L2Character extends L2Object
 				}
 			}
 			// If no distance to go through, the movement is canceled
-			if (distance < 1 && (Config.GEODATA == 2 || isPlayable() || this instanceof L2RiftInvaderInstance || this.isAfraid()))
+			if (distance < 1 && (Config.GEODATA == 2 || isPlayable() || this instanceof L2RiftInvaderInstance || isAfraid()))
 			{
 				if (isSummon())
 					((L2Summon) this).setFollowStatus(false);
@@ -4980,10 +4960,7 @@ public abstract class L2Character extends L2Object
 		// Does not broke heading on vertical movements
 		if (!verticalMovementOnly)
 			setHeading(Util.calculateHeadingFrom(cos, sin));
-		
-		if (Config.DEBUG)
-			_log.fine("dist:" + distance + "speed:" + speed + " ttt:" + ticksToMove + " heading:" + getHeading());
-		
+				
 		m._moveStartTime = GameTimeController.getGameTicks();
 		
 		// Set the L2Character _move object to MoveData object
@@ -5003,7 +4980,7 @@ public abstract class L2Character extends L2Object
 	
 	public boolean moveToNextRoutePoint()
 	{
-		if (!this.isOnGeodataPath())
+		if (!isOnGeodataPath())
 		{
 			// Cancel the move action
 			_move = null;
@@ -5061,9 +5038,6 @@ public abstract class L2Character extends L2Object
 		
 		m._moveStartTime = GameTimeController.getGameTicks();
 		
-		if (Config.DEBUG)
-			_log.fine("time to target:" + ticksToMove);
-		
 		// Set the L2Character _move object to MoveData object
 		_move = m;
 		
@@ -5296,8 +5270,6 @@ public abstract class L2Character extends L2Object
 	//	//       update x,y,z with the current calculated position
 	//	stopMove();
 	//
-	//	if (Config.DEBUG)
-	//	_log.fine(this.getName() +":: target reached at: x "+getX()+" y "+getY()+ " z:" + getZ());
 	//
 	//	if (getPawnTarget() != null)
 	//	{
@@ -5787,7 +5759,7 @@ public abstract class L2Character extends L2Object
 			return false;
 		if (!(target.isPlayable() && attacker.isPlayable()))
 			return false;
-		if (InstanceManager.getInstance().getInstance(this.getInstanceId()).isPvPInstance())
+		if (InstanceManager.getInstance().getInstance(getInstanceId()).isPvPInstance())
 			return false;
 		
 		if (TerritoryWarManager.PLAYER_WITH_WARD_CAN_BE_KILLED_IN_PEACEZONE && TerritoryWarManager.getInstance().isTWInProgress())
@@ -6317,11 +6289,6 @@ public abstract class L2Character extends L2Object
 					}
 					targetList.add((L2Character) target);
 				}
-				//else
-				//{
-				//	if (Config.DEBUG)
-				//        _log.warning("Class cast bad: "+targets[i].getClass().toString());
-				//}
 			}
 			if (targetList.isEmpty())
 			{
@@ -6721,8 +6688,6 @@ public abstract class L2Character extends L2Object
 	 */
 	public void disableAllSkills()
 	{
-		if (Config.DEBUG)
-			_log.fine("all skills disabled");
 		_allSkillsDisabled = true;
 	}
 	
@@ -6731,8 +6696,6 @@ public abstract class L2Character extends L2Object
 	 */
 	public void enableAllSkills()
 	{
-		if (Config.DEBUG)
-			_log.fine("all skills enabled");
 		_allSkillsDisabled = false;
 	}
 	
@@ -7001,8 +6964,6 @@ public abstract class L2Character extends L2Object
 				angleDiff -= 360;
 			if (Math.abs(angleDiff) <= maxAngleDiff)
 			{
-				if (Config.DEBUG)
-					_log.info("Char " + getName() + " is behind " + target.getName());
 				return true;
 			}
 		}
@@ -7052,7 +7013,7 @@ public abstract class L2Character extends L2Object
 			return false;
 		maxAngleDiff = maxAngle / 2.;
 		angleTarget = Util.calculateAngleFrom(this, target);
-		angleChar = Util.convertHeadingToDegree(this.getHeading());
+		angleChar = Util.convertHeadingToDegree(getHeading());
 		angleDiff = angleChar - angleTarget;
 		if (angleDiff <= -360 + maxAngleDiff)
 			angleDiff += 360;

+ 9 - 55
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -1831,10 +1831,7 @@ public final class L2PcInstance extends L2Playable
 		String content = HtmCache.getInstance().getHtm(getHtmlPrefix(), path);  //TODO path for quests html
 		
 		if (content != null)
-		{
-			if (Config.DEBUG)
-				_log.fine("Showing quest window for quest "+questId+" state "+stateId+" html path: " + path);
-			
+		{	
 			NpcHtmlMessage npcReply = new NpcHtmlMessage(5);
 			npcReply.setHtml(content);
 			sendPacket(npcReply);
@@ -4513,8 +4510,6 @@ public final class L2PcInstance extends L2Playable
 						|| needHpUpdate
 						|| needMpUpdate(352)))
 		{
-			if (Config.DEBUG)
-				_log.fine("Send status for party window of " + getObjectId() + "(" + getName() + ") to his party. CP: " + getCurrentCp() + " HP: " + getCurrentHp() + " MP: " + getCurrentMp());
 			// Send the Server->Client packet PartySmallWindowUpdate with current HP, MP and Level to all other L2PcInstance of the Party
 			PartySmallWindowUpdate update = new PartySmallWindowUpdate(this);
 			party.broadcastToPartyMembers(this, update);
@@ -4558,10 +4553,7 @@ public final class L2PcInstance extends L2Playable
 		// Send a Server->Client packet UserInfo to this L2PcInstance
 		sendPacket(new UserInfo(this));
 		
-		// Send a Server->Client packet CharInfo to all L2PcInstance in _KnownPlayers of the L2PcInstance
-		if (Config.DEBUG)
-			_log.fine("players to notify:" + getKnownList().getKnownPlayers().size() + " packet: [S] 03 CharInfo");
-		
+		// Send a Server->Client packet CharInfo to all L2PcInstance in _KnownPlayers of the L2PcInstance		
 		broadcastPacket(new CharInfo(this));
 		broadcastPacket(new ExBrExtraUserInfo(this));
 		if (TerritoryWarManager.getInstance().isTWInProgress()
@@ -4579,8 +4571,6 @@ public final class L2PcInstance extends L2Playable
 		sendPacket(new ExBrExtraUserInfo(this));
 		
 		// Send a Server->Client packet TitleUpdate to all L2PcInstance in _KnownPlayers of the L2PcInstance
-		if (Config.DEBUG)
-			_log.fine("players to notify:" + getKnownList().getKnownPlayers().size() + " packet: [S] cc TitleUpdate");
 		
 		broadcastPacket(new NicknameChanged(this));
 	}
@@ -4814,8 +4804,6 @@ public final class L2PcInstance extends L2Playable
 		
 		// Send a Server->Client packet StopMove to this L2PcInstance
 		StopMove sm = new StopMove(this);
-		if (Config.DEBUG)
-			_log.fine("pickup pos: "+ target.getX() + " "+target.getY()+ " "+target.getZ() );
 		sendPacket(sm);
 		
 		SystemMessage smsg = null;
@@ -6099,9 +6087,6 @@ public final class L2PcInstance extends L2Playable
 				lostExp = 0;
 		}
 		
-		if (Config.DEBUG)
-			_log.fine(getName() + " died and lost " + lostExp + " experience.");
-		
 		// Set the new Experience value of the L2PcInstance
 		getStat().addExp(-lostExp);
 	}
@@ -6568,7 +6553,6 @@ public final class L2PcInstance extends L2Playable
 			else
 				_arrowItem = null;
 			
-			if (Config.DEBUG) _log.fine("removed arrows count");
 			sendPacket(new ItemList(this,false));
 			return;
 		}
@@ -8806,9 +8790,6 @@ public final class L2PcInstance extends L2Playable
 				return false;
 			}
 			
-			if (Config.DEBUG && getQueuedSkill() != null)
-				_log.info(getQueuedSkill().getSkill().getName() + " is already queued for " + getName() + ".");
-			
 			// Create a new SkillDat object and queue it in the player _queuedSkill
 			setQueuedSkill(skill, forceUse, dontMove);
 			sendPacket(ActionFailed.STATIC_PACKET);
@@ -9766,10 +9747,6 @@ public final class L2PcInstance extends L2Playable
 	 */
 	public void addCubic(int id, int level, double matk, int activationtime, int activationchance, int maxcount, int totalLifetime, boolean givenByOther)
 	{
-		if (Config.DEBUG)
-		{
-			_log.info("L2PcInstance(" + getName() + "): addCubic(" + id + "|" + level + "|" + matk + ")");
-		}
 		_cubics.put(id, new L2CubicInstance(this, id, level, (int) matk, activationtime, activationchance, maxcount, totalLifetime, givenByOther));
 	}
 	
@@ -10654,11 +10631,6 @@ public final class L2PcInstance extends L2Playable
 			// Commit after database INSERT incase exception is thrown.
 			getSubClasses().put(newClass.getClassIndex(), newClass);
 			
-			if (Config.DEBUG)
-			{
-				_log.info(getName() + " added class ID " + classId + " as a sub class at index " + classIndex + ".");
-			}
-			
 			final ClassId subTemplate = ClassId.getClassId(classId);
 			final Map<Integer, L2SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(subTemplate);
 			final Map<Integer, L2Skill> prevSkillList = new HashMap<>();
@@ -11240,7 +11212,10 @@ public final class L2PcInstance extends L2Playable
 				CharSummonTable.getInstance().restorePet(this);
 		}
 		if (isTeleportProtected())
+		{
 			sendMessage("Teleport spawn protection ended.");
+			new Throwable(getName() + ": has requested action.").printStackTrace();
+		}
 		setProtection(false);
 		setTeleportProtection(false);
 	}
@@ -12516,17 +12491,10 @@ public final class L2PcInstance extends L2Playable
 	public void setCurrentSkill(L2Skill currentSkill, boolean ctrlPressed, boolean shiftPressed)
 	{
 		if (currentSkill == null)
-		{
-			if (Config.DEBUG)
-				_log.info("Setting current skill: NULL for " + getName() + ".");
-			
+		{			
 			_currentSkill = null;
 			return;
 		}
-		
-		if (Config.DEBUG)
-			_log.info("Setting current skill: " + currentSkill.getName() + " (ID: " + currentSkill.getId() + ") for " + getName() + ".");
-		
 		_currentSkill = new SkillDat(currentSkill, ctrlPressed, shiftPressed);
 	}
 	
@@ -12547,17 +12515,10 @@ public final class L2PcInstance extends L2Playable
 	public void setCurrentPetSkill(L2Skill currentSkill, boolean ctrlPressed, boolean shiftPressed)
 	{
 		if (currentSkill == null)
-		{
-			if (Config.DEBUG)
-				_log.info("Setting current pet skill: NULL for " + getName() + ".");
-			
+		{			
 			_currentPetSkill = null;
 			return;
 		}
-		
-		if (Config.DEBUG)
-			_log.info("Setting current Pet skill: " + currentSkill.getName() + " (ID: " + currentSkill.getId() + ") for " + getName() + ".");
-		
 		_currentPetSkill = new SkillDat(currentSkill, ctrlPressed, shiftPressed);
 	}
 	
@@ -12577,17 +12538,10 @@ public final class L2PcInstance extends L2Playable
 	public void setQueuedSkill(L2Skill queuedSkill, boolean ctrlPressed, boolean shiftPressed)
 	{
 		if (queuedSkill == null)
-		{
-			if (Config.DEBUG)
-				_log.info("Setting queued skill: NULL for " + getName() + ".");
-			
+		{			
 			_queuedSkill = null;
 			return;
-		}
-		
-		if (Config.DEBUG)
-			_log.info("Setting queued skill: " + queuedSkill.getName() + " (ID: " + queuedSkill.getId() + ") for " + getName() + ".");
-		
+		}		
 		_queuedSkill = new SkillDat(queuedSkill, ctrlPressed, shiftPressed);
 	}
 	

+ 2 - 23
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Castle.java

@@ -35,6 +35,7 @@ import com.l2jserver.gameserver.SevenSigns;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.ClanTable;
 import com.l2jserver.gameserver.datatables.DoorTable;
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
@@ -46,7 +47,6 @@ import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
 import com.l2jserver.gameserver.instancemanager.TerritoryWarManager.Territory;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2Clan;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2SkillLearn;
 import com.l2jserver.gameserver.model.actor.instance.L2ArtefactInstance;
@@ -214,10 +214,6 @@ public class Castle
 						if (_cwh)
 						{
 							ClanTable.getInstance().getClan(getOwnerId()).getWarehouse().destroyItemByItemId("CS_function_fee", PcInventory.ADENA_ID, fee, null, null);
-							if (Config.DEBUG)
-							{
-								_log.warning("deducted " + fee + " adena from " + getName() + " owner's cwh for function id : " + getType());
-							}
 						}
 						ThreadPoolManager.getInstance().scheduleGeneral(new FunctionTask(true), getRate());
 					}
@@ -824,10 +820,6 @@ public class Castle
 		{
 			return false;
 		}
-		if (Config.DEBUG)
-		{
-			_log.warning("Called Castle.updateFunctions(int type, int lvl, int lease, long rate, boolean addNew) Owner : " + getOwnerId());
-		}
 		if (lease > 0)
 		{
 			if (!player.destroyItemByItemId("Consume", PcInventory.ADENA_ID, lease, null, true))
@@ -848,10 +840,6 @@ public class Castle
 			else
 			{
 				int diffLease = lease - _function.get(type).getLease();
-				if (Config.DEBUG)
-				{
-					_log.warning("Called Castle.updateFunctions diffLease : " + diffLease);
-				}
 				if (diffLease > 0)
 				{
 					_function.remove(type);
@@ -883,11 +871,6 @@ public class Castle
 				_doors.add(door);
 			}
 		}
-		
-		if (Config.DEBUG)
-		{
-			_log.info("Castle " + this + " loaded " + _doors.size() + " doors.");
-		}
 	}
 	
 	// This method loads castle door upgrade data from database
@@ -1178,7 +1161,7 @@ public class Castle
 		{
 			for (SeedProduction seed : production)
 			{
-				total += L2Manor.getInstance().getSeedBuyPrice(seed.getId()) * seed.getStartProduce();
+				total += ManorData.getInstance().getSeedBuyPrice(seed.getId()) * seed.getStartProduce();
 			}
 		}
 		if (procure != null)
@@ -1565,10 +1548,6 @@ public class Castle
 	 */
 	public void registerArtefact(L2ArtefactInstance artefact)
 	{
-		if (Config.DEBUG)
-		{
-			_log.info("ArtefactId: " + artefact.getObjectId() + " is registered to " + getName() + " castle.");
-		}
 		_artefacts.add(artefact);
 	}
 	

+ 1 - 17
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/ClanHall.java

@@ -24,7 +24,6 @@ import java.util.logging.Logger;
 
 import javolution.util.FastMap;
 
-import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.ClanTable;
@@ -169,10 +168,6 @@ public abstract class ClanHall
 						if (_cwh)
 						{
 							ClanTable.getInstance().getClan(getOwnerId()).getWarehouse().destroyItemByItemId("CH_function_fee", PcInventory.ADENA_ID, fee, null, null);
-							if (Config.DEBUG)
-							{
-								_log.warning("deducted " + fee + " adena from " + getName() + " owner's cwh for function id : " + getType());
-							}
 						}
 						ThreadPoolManager.getInstance().scheduleGeneral(new FunctionTask(true), getRate());
 					}
@@ -214,10 +209,6 @@ public abstract class ClanHall
 		_clanHallId = set.getInteger("id");
 		_name = set.getString("name");
 		_ownerId = set.getInteger("ownerId");
-		if (Config.DEBUG)
-		{
-			_log.warning("Init Owner : " + _ownerId);
-		}
 		_desc = set.getString("desc");
 		_location = set.getString("location");
 		_functions = new FastMap<>();
@@ -502,10 +493,7 @@ public abstract class ClanHall
 		{
 			return false;
 		}
-		if (Config.DEBUG)
-		{
-			_log.warning("Called ClanHall.updateFunctions(int type, int lvl, int lease, long rate, boolean addNew) Owner : " + getOwnerId());
-		}
+		
 		if (lease > 0)
 		{
 			if (!player.destroyItemByItemId("Consume", PcInventory.ADENA_ID, lease, null, true))
@@ -526,10 +514,6 @@ public abstract class ClanHall
 			else
 			{
 				int diffLease = lease - _functions.get(type).getLease();
-				if (Config.DEBUG)
-				{
-					_log.warning("Called ClanHall.updateFunctions diffLease : " + diffLease);
-				}
 				if (diffLease > 0)
 				{
 					_functions.remove(type);

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

@@ -209,10 +209,6 @@ public class Fort
 						if (_cwh)
 						{
 							getOwnerClan().getWarehouse().destroyItemByItemId("CS_function_fee", PcInventory.ADENA_ID, fee, null, null);
-							if (Config.DEBUG)
-							{
-								_log.warning("Deducted " + fee + " adena from " + getName() + " owner's cwh for function id : " + getType());
-							}
 						}
 						ThreadPoolManager.getInstance().scheduleGeneral(new FunctionTask(true), getRate());
 					}
@@ -764,10 +760,6 @@ public class Fort
 		{
 			return false;
 		}
-		if (Config.DEBUG)
-		{
-			_log.warning("Called Fort.updateFunctions(int type, int lvl, int lease, long rate, boolean addNew) Owner : " + getOwnerClan());
-		}
 		if (lease > 0)
 		{
 			if (!player.destroyItemByItemId("Consume", PcInventory.ADENA_ID, lease, null, true))
@@ -788,10 +780,6 @@ public class Fort
 			else
 			{
 				int diffLease = lease - _function.get(type).getLease();
-				if (Config.DEBUG)
-				{
-					_log.warning("Called Fort.updateFunctions diffLease : " + diffLease);
-				}
 				if (diffLease > 0)
 				{
 					_function.remove(type);
@@ -823,10 +811,6 @@ public class Fort
 				_doors.add(door);
 			}
 		}
-		if (Config.DEBUG)
-		{
-			_log.info("Fort " + this + " loaded " + _doors.size() + " doors.");
-		}
 	}
 	
 	private void loadFlagPoles()

+ 7 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Instance.java

@@ -76,6 +76,13 @@ public class Instance
 		_instanceStartTime = System.currentTimeMillis();
 	}
 	
+	public Instance(int id, String name)
+	{
+		_id = id;
+		_name = name;
+		_instanceStartTime = System.currentTimeMillis();
+	}
+	
 	/**
 	 * @return the ID of this instance.
 	 */
@@ -523,10 +530,6 @@ public class Instance
 				}
 			}
 		}
-		if (Config.DEBUG)
-		{
-			_log.info(name + " Instance Template for Instance " + getId() + " loaded");
-		}
 	}
 	
 	protected void doCheckTimeUp(int remaining)

+ 0 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/clanhall/AuctionableHall.java

@@ -19,7 +19,6 @@ import java.sql.PreparedStatement;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.ClanTable;
@@ -154,8 +153,6 @@ public final class AuctionableHall extends ClanHall
 					else
 						_paidUntil = _time + _chRate;
 					ClanTable.getInstance().getClan(getOwnerId()).getWarehouse().destroyItemByItemId("CH_rental_fee", PcInventory.ADENA_ID, getLease(), null, null);
-					if (Config.DEBUG)
-						_log.warning("deducted " + getLease() + " adena from " + getName() + " owner's cwh for ClanHall _paidUntil: " + _paidUntil);
 					ThreadPoolManager.getInstance().scheduleGeneral(new FeeTask(), _paidUntil - _time);
 					_paid = true;
 					updateDb();

+ 9 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Item.java

@@ -17,6 +17,7 @@ package com.l2jserver.gameserver.model.items;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javolution.util.FastList;
@@ -328,6 +329,14 @@ public abstract class L2Item
 		_common = (_itemId >= 11605 && _itemId <= 12361);
 		_heroItem = (_itemId >= 6611 && _itemId <= 6621) || (_itemId >= 9388 && _itemId <= 9390) || _itemId == 6842;
 		_pvpItem = (_itemId >= 10667 && _itemId <= 10835) || (_itemId >= 12852 && _itemId <= 12977) || (_itemId >= 14363 && _itemId <= 14525) || _itemId == 14528 || _itemId == 14529 || _itemId == 14558 || (_itemId >=15913 && _itemId <= 16024) || (_itemId >=16134 && _itemId <= 16147) || _itemId == 16149 || _itemId == 16151 || _itemId == 16153 || _itemId == 16155 || _itemId == 16157 || _itemId == 16159 || (_itemId >=16168 && _itemId <= 16176) || (_itemId >=16179 && _itemId <= 16220);
+		
+		if (this instanceof L2EtcItem)
+		{
+			if (_elementable)
+			{
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": " + getItemId() + " " + getName() + " with element enabled");
+			}
+		}
 	}
 	
 	/**

+ 7 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/Action.java

@@ -25,7 +25,6 @@ import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
  * This class ...
  * @version $Revision: 1.7.4.4 $ $Date: 2005/03/27 18:46:19 $
  */
-@SuppressWarnings("unused")
 public final class Action extends L2GameClientPacket
 {
 	private static final String __C__1F_ACTION = "[C] 1F Action";
@@ -51,7 +50,7 @@ public final class Action extends L2GameClientPacket
 	{
 		if (Config.DEBUG)
 		{
-			_log.fine(getType() + ": Action:" + _actionId + " ObjId: " + _objectId);
+			_log.fine(getType() + ": Action: " + _actionId + " ObjId: " + _objectId + " orignX: " + _originX + " orignY: " + _originY + " orignZ: " + _originZ);
 		}
 		
 		// Get the current L2PcInstance of the player
@@ -147,6 +146,12 @@ public final class Action extends L2GameClientPacket
 		}
 	}
 	
+	@Override
+	protected boolean triggersOnActionRequest()
+	{
+		return false;
+	}
+	
 	@Override
 	public String getType()
 	{

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestProcureCropList.java

@@ -19,10 +19,10 @@ import static com.l2jserver.gameserver.model.itemcontainer.PcInventory.MAX_ADENA
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.ItemTable;
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager.CropProcure;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.instance.L2ManorManagerInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -251,7 +251,7 @@ public class RequestProcureCropList extends L2GameClientPacket
 			if ((MAX_ADENA / _count) < _crop.getPrice())
 				return false;
 			
-			_reward = L2Manor.getInstance().getRewardItem(_itemId, _crop.getReward());
+			_reward = ManorData.getInstance().getRewardItem(_itemId, _crop.getReward());
 			return true;
 		}
 		

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowCropInfo.java

@@ -16,8 +16,8 @@ package com.l2jserver.gameserver.network.serverpackets;
 
 import java.util.List;
 
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager.CropProcure;
-import com.l2jserver.gameserver.model.L2Manor;
 
 /**
  * @author l3x
@@ -54,11 +54,11 @@ public class ExShowCropInfo extends L2GameServerPacket
 			writeQ(crop.getStartAmount()); // Buy
 			writeQ(crop.getPrice()); // Buy price
 			writeC(crop.getReward()); // Reward
-			writeD(L2Manor.getInstance().getSeedLevelByCrop(crop.getId())); // Seed Level
+			writeD(ManorData.getInstance().getSeedLevelByCrop(crop.getId())); // Seed Level
 			writeC(0x01); // rewrad 1 Type
-			writeD(L2Manor.getInstance().getRewardItem(crop.getId(), 1)); // Rewrad 1 Type Item Id
+			writeD(ManorData.getInstance().getRewardItem(crop.getId(), 1)); // Rewrad 1 Type Item Id
 			writeC(0x01); // rewrad 2 Type
-			writeD(L2Manor.getInstance().getRewardItem(crop.getId(), 2)); // Rewrad 2 Type Item Id
+			writeD(ManorData.getInstance().getRewardItem(crop.getId(), 2)); // Rewrad 2 Type Item Id
 		}
 	}
 }

+ 9 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowCropSetting.java

@@ -14,12 +14,12 @@
  */
 package com.l2jserver.gameserver.network.serverpackets;
 
-import javolution.util.FastList;
+import java.util.List;
 
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager.CropProcure;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.entity.Castle;
 
 /**
@@ -35,20 +35,20 @@ public class ExShowCropSetting extends L2GameServerPacket
 	{
 		_manorId = manorId;
 		Castle c = CastleManager.getInstance().getCastleById(_manorId);
-		FastList<Integer> crops = L2Manor.getInstance().getCropsForCastle(_manorId);
+		List<Integer> crops = ManorData.getInstance().getCropsForCastle(_manorId);
 		_count = crops.size();
 		_cropData = new long[_count * 14];
 		int i = 0;
 		for (int cr : crops)
 		{
 			_cropData[i * 14 + 0] = cr;
-			_cropData[i * 14 + 1] = L2Manor.getInstance().getSeedLevelByCrop(cr);
-			_cropData[i * 14 + 2] = L2Manor.getInstance().getRewardItem(cr, 1);
-			_cropData[i * 14 + 3] = L2Manor.getInstance().getRewardItem(cr, 2);
-			_cropData[i * 14 + 4] = L2Manor.getInstance().getCropPuchaseLimit(cr);
+			_cropData[i * 14 + 1] = ManorData.getInstance().getSeedLevelByCrop(cr);
+			_cropData[i * 14 + 2] = ManorData.getInstance().getRewardItem(cr, 1);
+			_cropData[i * 14 + 3] = ManorData.getInstance().getRewardItem(cr, 2);
+			_cropData[i * 14 + 4] = ManorData.getInstance().getCropPuchaseLimit(cr);
 			_cropData[i * 14 + 5] = 0; // Looks like not used
-			_cropData[i * 14 + 6] = L2Manor.getInstance().getCropBasicPrice(cr) * 60 / 100;
-			_cropData[i * 14 + 7] = L2Manor.getInstance().getCropBasicPrice(cr) * 10;
+			_cropData[i * 14 + 6] = ManorData.getInstance().getCropBasicPrice(cr) * 60 / 100;
+			_cropData[i * 14 + 7] = ManorData.getInstance().getCropBasicPrice(cr) * 10;
 			CropProcure cropPr = c.getCrop(cr, CastleManorManager.PERIOD_CURRENT);
 			if (cropPr != null)
 			{

+ 9 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowManorDefaultInfo.java

@@ -14,20 +14,20 @@
  */
 package com.l2jserver.gameserver.network.serverpackets;
 
-import javolution.util.FastList;
+import java.util.List;
 
-import com.l2jserver.gameserver.model.L2Manor;
+import com.l2jserver.gameserver.datatables.ManorData;
 
 /**
  * @author l3x
  */
 public class ExShowManorDefaultInfo extends L2GameServerPacket
 {
-	private FastList<Integer> _crops = null;
+	private List<Integer> _crops = null;
 	
 	public ExShowManorDefaultInfo()
 	{
-		_crops = L2Manor.getInstance().getAllCrops();
+		_crops = ManorData.getInstance().getAllCrops();
 	}
 	
 	@Override
@@ -40,17 +40,17 @@ public class ExShowManorDefaultInfo extends L2GameServerPacket
 		for (int cropId : _crops)
 		{
 			writeD(cropId); // crop Id
-			writeD(L2Manor.getInstance().getSeedLevelByCrop(cropId)); // level
-			writeD(L2Manor.getInstance().getSeedBasicPriceByCrop(cropId)); // seed
+			writeD(ManorData.getInstance().getSeedLevelByCrop(cropId)); // level
+			writeD(ManorData.getInstance().getSeedBasicPriceByCrop(cropId)); // seed
 			// price
-			writeD(L2Manor.getInstance().getCropBasicPrice(cropId)); // crop
+			writeD(ManorData.getInstance().getCropBasicPrice(cropId)); // crop
 			// price
 			writeC(1); // rewrad 1 Type
-			writeD(L2Manor.getInstance().getRewardItem(cropId, 1)); // Rewrad 1
+			writeD(ManorData.getInstance().getRewardItem(cropId, 1)); // Rewrad 1
 			// Type Item
 			// Id
 			writeC(1); // rewrad 2 Type
-			writeD(L2Manor.getInstance().getRewardItem(cropId, 2)); // Rewrad 2
+			writeD(ManorData.getInstance().getRewardItem(cropId, 2)); // Rewrad 2
 			// Type Item
 			// Id
 		}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowSeedInfo.java

@@ -16,8 +16,8 @@ package com.l2jserver.gameserver.network.serverpackets;
 
 import java.util.List;
 
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager.SeedProduction;
-import com.l2jserver.gameserver.model.L2Manor;
 
 /**
  * @author l3x
@@ -53,11 +53,11 @@ public class ExShowSeedInfo extends L2GameServerPacket
 			writeQ(seed.getCanProduce()); // Left to buy
 			writeQ(seed.getStartProduce()); // Started amount
 			writeQ(seed.getPrice()); // Sell Price
-			writeD(L2Manor.getInstance().getSeedLevel(seed.getId())); // Seed Level
+			writeD(ManorData.getInstance().getSeedLevel(seed.getId())); // Seed Level
 			writeC(0x01); // reward 1 Type
-			writeD(L2Manor.getInstance().getRewardItemBySeed(seed.getId(), 1)); // Reward 1 Type Item Id
+			writeD(ManorData.getInstance().getRewardItemBySeed(seed.getId(), 1)); // Reward 1 Type Item Id
 			writeC(0x01); // reward 2 Type
-			writeD(L2Manor.getInstance().getRewardItemBySeed(seed.getId(), 2)); // Reward 2 Type Item Id
+			writeD(ManorData.getInstance().getRewardItemBySeed(seed.getId(), 2)); // Reward 2 Type Item Id
 		}
 	}
 }

+ 10 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowSeedSetting.java

@@ -14,12 +14,12 @@
  */
 package com.l2jserver.gameserver.network.serverpackets;
 
-import javolution.util.FastList;
+import java.util.List;
 
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager.SeedProduction;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.entity.Castle;
 
 /**
@@ -35,20 +35,20 @@ public class ExShowSeedSetting extends L2GameServerPacket
 	{
 		_manorId = manorId;
 		Castle c = CastleManager.getInstance().getCastleById(_manorId);
-		FastList<Integer> seeds = L2Manor.getInstance().getSeedsForCastle(_manorId);
+		List<Integer> seeds = ManorData.getInstance().getSeedsForCastle(_manorId);
 		_count = seeds.size();
 		_seedData = new long[_count * 12];
 		int i = 0;
 		for (int s : seeds)
 		{
 			_seedData[i * 12 + 0] = s;
-			_seedData[i * 12 + 1] = L2Manor.getInstance().getSeedLevel(s);
-			_seedData[i * 12 + 2] = L2Manor.getInstance().getRewardItemBySeed(s, 1);
-			_seedData[i * 12 + 3] = L2Manor.getInstance().getRewardItemBySeed(s, 2);
-			_seedData[i * 12 + 4] = L2Manor.getInstance().getSeedSaleLimit(s);
-			_seedData[i * 12 + 5] = L2Manor.getInstance().getSeedBuyPrice(s);
-			_seedData[i * 12 + 6] = L2Manor.getInstance().getSeedBasicPrice(s) * 60 / 100;
-			_seedData[i * 12 + 7] = L2Manor.getInstance().getSeedBasicPrice(s) * 10;
+			_seedData[i * 12 + 1] = ManorData.getInstance().getSeedLevel(s);
+			_seedData[i * 12 + 2] = ManorData.getInstance().getRewardItemBySeed(s, 1);
+			_seedData[i * 12 + 3] = ManorData.getInstance().getRewardItemBySeed(s, 2);
+			_seedData[i * 12 + 4] = ManorData.getInstance().getSeedSaleLimit(s);
+			_seedData[i * 12 + 5] = ManorData.getInstance().getSeedBuyPrice(s);
+			_seedData[i * 12 + 6] = ManorData.getInstance().getSeedBasicPrice(s) * 60 / 100;
+			_seedData[i * 12 + 7] = ManorData.getInstance().getSeedBasicPrice(s) * 10;
 			SeedProduction seedPr = c.getSeed(s, CastleManorManager.PERIOD_CURRENT);
 			if (seedPr != null)
 			{

+ 5 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowSellCropList.java

@@ -16,11 +16,10 @@ package com.l2jserver.gameserver.network.serverpackets;
 
 import java.util.List;
 
-import javolution.util.FastList;
 import javolution.util.FastMap;
 
+import com.l2jserver.gameserver.datatables.ManorData;
 import com.l2jserver.gameserver.instancemanager.CastleManorManager.CropProcure;
-import com.l2jserver.gameserver.model.L2Manor;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 
@@ -40,7 +39,7 @@ public class ExShowSellCropList extends L2GameServerPacket
 		_castleCrops = new FastMap<>();
 		_cropsItems = new FastMap<>();
 		
-		FastList<Integer> allCrops = L2Manor.getInstance().getAllCrops();
+		List<Integer> allCrops = ManorData.getInstance().getAllCrops();
 		for (int cropId : allCrops)
 		{
 			L2ItemInstance item = player.getInventory().getItemByItemId(cropId);
@@ -72,11 +71,11 @@ public class ExShowSellCropList extends L2GameServerPacket
 		{
 			writeD(item.getObjectId()); // Object id
 			writeD(item.getDisplayId()); // crop id
-			writeD(L2Manor.getInstance().getSeedLevelByCrop(item.getItemId())); // seed level
+			writeD(ManorData.getInstance().getSeedLevelByCrop(item.getItemId())); // seed level
 			writeC(0x01);
-			writeD(L2Manor.getInstance().getRewardItem(item.getItemId(), 1)); // reward 1 id
+			writeD(ManorData.getInstance().getRewardItem(item.getItemId(), 1)); // reward 1 id
 			writeC(0x01);
-			writeD(L2Manor.getInstance().getRewardItem(item.getItemId(), 2)); // reward 2 id
+			writeD(ManorData.getInstance().getRewardItem(item.getItemId(), 2)); // reward 2 id
 			
 			if (_castleCrops.containsKey(item.getItemId()))
 			{

+ 0 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/Task.java

@@ -17,7 +17,6 @@ package com.l2jserver.gameserver.taskmanager;
 import java.util.concurrent.ScheduledFuture;
 import java.util.logging.Logger;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.taskmanager.TaskManager.ExecutedTask;
 
 /**
@@ -29,10 +28,6 @@ public abstract class Task
 	
 	public void initializate()
 	{
-		if (Config.DEBUG)
-		{
-			_log.info("Task" + getName() + " inializate");
-		}
 	}
 	
 	public ScheduledFuture<?> launchSpecial(ExecutedTask instance)

+ 25 - 23
L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/TaskManager.java

@@ -25,13 +25,12 @@ import java.sql.SQLException;
 import java.text.DateFormat;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ScheduledFuture;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javolution.util.FastList;
-import javolution.util.FastMap;
-
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskBirthday;
@@ -46,6 +45,8 @@ import com.l2jserver.gameserver.taskmanager.tasks.TaskRestart;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskScript;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskSevenSignsUpdate;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskShutdown;
+import com.l2jserver.util.L2FastList;
+import com.l2jserver.util.L2FastMap;
 
 /**
  * @author Layane
@@ -54,8 +55,8 @@ public final class TaskManager
 {
 	protected static final Logger _log = Logger.getLogger(TaskManager.class.getName());
 	
-	private final FastMap<Integer, Task> _tasks = new FastMap<>();
-	protected final FastList<ExecutedTask> _currentTasks = new FastList<>();
+	private final Map<Integer, Task> _tasks = new L2FastMap<>(true);
+	protected final List<ExecutedTask> _currentTasks = new L2FastList<>(true);
 	
 	protected static final String[] SQL_STATEMENTS =
 	{
@@ -65,6 +66,13 @@ public final class TaskManager
 		"INSERT INTO global_tasks (task,type,last_activation,param1,param2,param3) VALUES(?,?,?,?,?,?)"
 	};
 	
+	protected TaskManager()
+	{
+		initializate();
+		startAllTasks();
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _tasks.size() + " Tasks");
+	}
+	
 	public class ExecutedTask implements Runnable
 	{
 		int id;
@@ -102,7 +110,7 @@ public final class TaskManager
 			}
 			catch (SQLException e)
 			{
-				_log.log(Level.WARNING, "Cannot updated the Global Task " + id + ": " + e.getMessage(), e);
+				_log.log(Level.WARNING, getClass().getSimpleName() + ": Cannot updated the Global Task " + id + ": " + e.getMessage(), e);
 			}
 			
 			if ((type == TYPE_SHEDULED) || (type == TYPE_TIME))
@@ -170,17 +178,6 @@ public final class TaskManager
 		
 	}
 	
-	public static TaskManager getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
-	protected TaskManager()
-	{
-		initializate();
-		startAllTasks();
-	}
-	
 	private void initializate()
 	{
 		registerTask(new TaskBirthday());
@@ -234,7 +231,7 @@ public final class TaskManager
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Error while loading Global Task table: " + e.getMessage(), e);
+			_log.log(Level.SEVERE, getClass().getSimpleName() + ": Error while loading Global Task table: " + e.getMessage(), e);
 		}
 	}
 	
@@ -267,7 +264,7 @@ public final class TaskManager
 						task.scheduled = scheduler.scheduleGeneral(task, diff);
 						return true;
 					}
-					_log.info("Task " + task.getId() + " is obsoleted.");
+					_log.info(getClass().getSimpleName() + ": Task " + task.getId() + " is obsoleted.");
 				}
 				catch (Exception e)
 				{
@@ -287,7 +284,7 @@ public final class TaskManager
 				
 				if (hour.length != 3)
 				{
-					_log.warning("Task " + task.getId() + " has incorrect parameters");
+					_log.warning(getClass().getSimpleName() + ": Task " + task.getId() + " has incorrect parameters");
 					return false;
 				}
 				
@@ -303,7 +300,7 @@ public final class TaskManager
 				}
 				catch (Exception e)
 				{
-					_log.log(Level.WARNING, "Bad parameter on task " + task.getId() + ": " + e.getMessage(), e);
+					_log.log(Level.WARNING, getClass().getSimpleName() + ": Bad parameter on task " + task.getId() + ": " + e.getMessage(), e);
 					return false;
 				}
 				
@@ -352,7 +349,7 @@ public final class TaskManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Cannot add the unique task: " + e.getMessage(), e);
+			_log.log(Level.WARNING, TaskManager.class.getSimpleName() + ": Cannot add the unique task: " + e.getMessage(), e);
 		}
 		return false;
 	}
@@ -378,11 +375,16 @@ public final class TaskManager
 		}
 		catch (SQLException e)
 		{
-			_log.log(Level.WARNING, "Cannot add the task:  " + e.getMessage(), e);
+			_log.log(Level.WARNING, TaskManager.class.getSimpleName() + ": Cannot add the task:  " + e.getMessage(), e);
 		}
 		return false;
 	}
 	
+	public static TaskManager getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final TaskManager _instance = new TaskManager();

+ 24 - 0
L2J_Server_BETA/java/com/l2jserver/util/CloseShieldedInputStream.java

@@ -34,12 +34,18 @@ public class CloseShieldedInputStream extends InputStream
 		_in = in;
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public void close()
 	{
 		_in = null;
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public int read() throws IOException
 	{
@@ -50,6 +56,9 @@ public class CloseShieldedInputStream extends InputStream
 		return _in.read();
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public int read(byte b[]) throws IOException
 	{
@@ -60,6 +69,9 @@ public class CloseShieldedInputStream extends InputStream
 		return _in.read(b);
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public int read(byte b[], int off, int len) throws IOException
 	{
@@ -70,6 +82,9 @@ public class CloseShieldedInputStream extends InputStream
 		return _in.read(b, off, len);
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public long skip(long n) throws IOException
 	{
@@ -80,6 +95,9 @@ public class CloseShieldedInputStream extends InputStream
 		return _in.skip(n);
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public synchronized void mark(int readlimit)
 	{
@@ -89,6 +107,9 @@ public class CloseShieldedInputStream extends InputStream
 		}
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public boolean markSupported()
 	{
@@ -99,6 +120,9 @@ public class CloseShieldedInputStream extends InputStream
 		return _in.markSupported();
 	}
 	
+	/**
+	 * {@inheritDoc}
+	 */
 	@Override
 	public synchronized void reset() throws IOException
 	{

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä