Przeglądaj źródła

Another minor cleanup.. Additional cleaned empty try/catch blocks.

nBd 16 lat temu
rodzic
commit
f419a57c57
65 zmienionych plików z 4255 dodań i 3770 usunięć
  1. 38 36
      L2_GameServer/java/net/sf/l2j/gameserver/CastleUpdater.java
  2. 22 21
      L2_GameServer/java/net/sf/l2j/gameserver/FortUpdater.java
  3. 264 193
      L2_GameServer/java/net/sf/l2j/gameserver/Shutdown.java
  4. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/ai/AbstractAI.java
  5. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/datatables/LevelUpData.java
  6. 1 3
      L2_GameServer/java/net/sf/l2j/gameserver/datatables/NpcTable.java
  7. 4 0
      L2_GameServer/java/net/sf/l2j/gameserver/handler/IItemHandler.java
  8. 2 0
      L2_GameServer/java/net/sf/l2j/gameserver/handler/ISkillHandler.java
  9. 3 0
      L2_GameServer/java/net/sf/l2j/gameserver/handler/IUserCommandHandler.java
  10. 3 0
      L2_GameServer/java/net/sf/l2j/gameserver/handler/IVoicedCommandHandler.java
  11. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/handler/ItemHandler.java
  12. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/handler/UserCommandHandler.java
  13. 5 1
      L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/MysteryPotion.java
  14. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java
  15. 4 2
      L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulCrystals.java
  16. 6 2
      L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SummonItems.java
  17. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/handler/skillhandlers/Recall.java
  18. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/handler/skillhandlers/SummonFriend.java
  19. 4 3
      L2_GameServer/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java
  20. 3 2
      L2_GameServer/java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/Wedding.java
  21. 144 140
      L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/AuctionManager.java
  22. 279 251
      L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/FortSiegeGuardManager.java
  23. 279 252
      L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/SiegeGuardManager.java
  24. 17 14
      L2_GameServer/java/net/sf/l2j/gameserver/model/L2Character.java
  25. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/L2Effect.java
  26. 7 5
      L2_GameServer/java/net/sf/l2j/gameserver/model/L2ItemInstance.java
  27. 385 304
      L2_GameServer/java/net/sf/l2j/gameserver/model/L2PetDataTable.java
  28. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/model/L2Skill.java
  29. 5 15
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2DecoyInstance.java
  30. 600 572
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2DoorInstance.java
  31. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2FishermanInstance.java
  32. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2FolkInstance.java
  33. 958 920
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java
  34. 149 55
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
  35. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PetInstance.java
  36. 137 109
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PetManagerInstance.java
  37. 0 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SepulcherNpcInstance.java
  38. 224 235
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SummonInstance.java
  39. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2TransformManagerInstance.java
  40. 3 2
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2TrapInstance.java
  41. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java
  42. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/actor/status/CharStatus.java
  43. 2 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Auction.java
  44. 2 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Castle.java
  45. 5 3
      L2_GameServer/java/net/sf/l2j/gameserver/model/entity/ClanHall.java
  46. 7 3
      L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Duel.java
  47. 6 5
      L2_GameServer/java/net/sf/l2j/gameserver/model/entity/FortSiege.java
  48. 23 23
      L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Siege.java
  49. 390 350
      L2_GameServer/java/net/sf/l2j/gameserver/model/itemcontainer/ItemContainer.java
  50. 5 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/quest/QuestStateManager.java
  51. 5 1
      L2_GameServer/java/net/sf/l2j/gameserver/model/quest/QuestTimer.java
  52. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/L2GameClient.java
  53. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/L2GameClientPacket.java
  54. 172 169
      L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestWearItem.java
  55. 2 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillDone.java
  56. 3 3
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillList.java
  57. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/L2GameServerPacket.java
  58. 10 10
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java
  59. 1 0
      L2_GameServer/java/net/sf/l2j/gameserver/scripting/L2ScriptEngineManager.java
  60. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/AttackStanceTaskManager.java
  61. 2 4
      L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/DecayTaskManager.java
  62. 4 5
      L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/KnownListUpdateTaskManager.java
  63. 9 11
      L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/TaskManager.java
  64. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/util/MultiSort.java
  65. 24 4
      L2_GameServer/java/net/sf/l2j/loginserver/GameServerTable.java

+ 38 - 36
L2_GameServer/java/net/sf/l2j/gameserver/CastleUpdater.java

@@ -30,40 +30,42 @@ import net.sf.l2j.gameserver.model.itemcontainer.ItemContainer;
  */
 public class CastleUpdater implements Runnable
 {
-        protected static final Logger _log = Logger.getLogger(CastleUpdater.class.getName());
-        private L2Clan _clan;
-        private int _runCount = 0;
-
-        public CastleUpdater(L2Clan clan, int runCount)
-        {
-            _clan = clan;
-            _runCount = runCount;
-        }
-
-        public void run()
-        {
-            try
-            {
-                // Move current castle treasury to clan warehouse every 2 hour
-                ItemContainer warehouse = _clan.getWarehouse();
-                if ((warehouse != null) && (_clan.getHasCastle() > 0))
-                {
-                    Castle castle = CastleManager.getInstance().getCastleById(_clan.getHasCastle());
-                    if (!Config.ALT_MANOR_SAVE_ALL_ACTIONS)
-                    {
-                        if (_runCount % Config.ALT_MANOR_SAVE_PERIOD_RATE == 0)
-                        {
-                            castle.saveSeedData();
-                            castle.saveCropData();
-                            if (Config.DEBUG)
-                            	_log.info("Manor System: all data for " + castle.getName() + " saved");
-                        }
-                    }
-                    CastleUpdater cu = new CastleUpdater(_clan, ++_runCount);
-                    ThreadPoolManager.getInstance().scheduleGeneral(cu, 3600000);
-                }
-            } catch (Throwable e) {
-                e.printStackTrace();
-            }
-        }
+	protected static final Logger _log = Logger.getLogger(CastleUpdater.class.getName());
+	private L2Clan _clan;
+	private int _runCount = 0;
+	
+	public CastleUpdater(L2Clan clan, int runCount)
+	{
+		_clan = clan;
+		_runCount = runCount;
+	}
+	
+	public void run()
+	{
+		try
+		{
+			// Move current castle treasury to clan warehouse every 2 hour
+			ItemContainer warehouse = _clan.getWarehouse();
+			if ((warehouse != null) && (_clan.getHasCastle() > 0))
+			{
+				Castle castle = CastleManager.getInstance().getCastleById(_clan.getHasCastle());
+				if (!Config.ALT_MANOR_SAVE_ALL_ACTIONS)
+				{
+					if (_runCount % Config.ALT_MANOR_SAVE_PERIOD_RATE == 0)
+					{
+						castle.saveSeedData();
+						castle.saveCropData();
+						if (Config.DEBUG)
+							_log.info("Manor System: all data for " + castle.getName() + " saved");
+					}
+				}
+				CastleUpdater cu = new CastleUpdater(_clan, ++_runCount);
+				ThreadPoolManager.getInstance().scheduleGeneral(cu, 3600000);
+			}
+		}
+		catch (Exception e)
+		{
+			e.printStackTrace();
+		}
+	}
 }

+ 22 - 21
L2_GameServer/java/net/sf/l2j/gameserver/FortUpdater.java

@@ -26,25 +26,26 @@ import net.sf.l2j.gameserver.model.L2Clan;
  */
 public class FortUpdater implements Runnable
 {
-    protected static Logger _log = Logger.getLogger(FortUpdater.class.getName());
-    @SuppressWarnings("unused")
-    private L2Clan _clan;
-    @SuppressWarnings("unused")
-    private int _runCount = 0;
-
-    public FortUpdater(L2Clan clan, int runCount)
-    {
-        _clan = clan;
-        _runCount = runCount;
-    }
-
-    public void run()
-    {
-        try
-        {
-        } catch (Throwable e) {
-            e.printStackTrace();
-        }
-    }
-    
+	protected static Logger _log = Logger.getLogger(FortUpdater.class.getName());
+	@SuppressWarnings("unused")
+	private L2Clan _clan;
+	@SuppressWarnings("unused")
+	private int _runCount = 0;
+	
+	public FortUpdater(L2Clan clan, int runCount)
+	{
+		_clan = clan;
+		_runCount = runCount;
+	}
+	
+	public void run()
+	{
+		try
+		{
+		}
+		catch (Exception e)
+		{
+			e.printStackTrace();
+		}
+	}
 }

+ 264 - 193
L2_GameServer/java/net/sf/l2j/gameserver/Shutdown.java

@@ -46,49 +46,55 @@ public class Shutdown extends Thread
 	private static Logger _log = Logger.getLogger(Shutdown.class.getName());
 	private static Shutdown _instance;
 	private static Shutdown _counterInstance = null;
-
+	
 	private int _secondsShut;
 	private int _shutdownMode;
 	public static final int SIGTERM = 0;
 	public static final int GM_SHUTDOWN = 1;
 	public static final int GM_RESTART = 2;
 	public static final int ABORT = 3;
-	private static final String[] MODE_TEXT = {"SIGTERM", "shutting down", "restarting", "aborting"};
-
-    /**
-     * This function starts a shutdown countdown from Telnet (Copied from Function startShutdown())
-     *
-     * @param ip            IP Which Issued shutdown command
-     * @param seconds       seconds untill shutdown
-     * @param restart       true if the server will restart after shutdown
-     */
-		@SuppressWarnings("deprecation")
-        private void SendServerQuit(int seconds)
+	private static final String[] MODE_TEXT =
+	{
+		"SIGTERM", "shutting down", "restarting", "aborting"
+	};
+	
+	/**
+	 * This function starts a shutdown countdown from Telnet (Copied from Function startShutdown())
+	 *
+	 * @param ip            IP Which Issued shutdown command
+	 * @param seconds       seconds untill shutdown
+	 * @param restart       true if the server will restart after shutdown
+	 */
+	@SuppressWarnings("deprecation")
+	private void SendServerQuit(int seconds)
+	{
+		SystemMessage sysm = new SystemMessage(1);
+		sysm.addNumber(seconds);
+		Broadcast.toAllOnlinePlayers(sysm);
+	}
+	
+	public void startTelnetShutdown(String IP, int seconds, boolean restart)
+	{
+		_log.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
+		//_an.announceToAll("Server is " + _modeText[shutdownMode] + " in "+seconds+ " seconds!");
+		
+		if (restart)
 		{
-			SystemMessage sysm = new SystemMessage(1);
-			sysm.addNumber(seconds);
-			Broadcast.toAllOnlinePlayers(sysm);
+			_shutdownMode = GM_RESTART;
 		}
-
-    public void startTelnetShutdown(String IP, int seconds, boolean restart)
-    {
-        _log.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in "+seconds+ " seconds!");
-        //_an.announceToAll("Server is " + _modeText[shutdownMode] + " in "+seconds+ " seconds!");
-
-        if (restart) {
-            _shutdownMode = GM_RESTART;
-        } else {
-            _shutdownMode = GM_SHUTDOWN;
-        }
-
-        if(_shutdownMode > 0)
-        {
+		else
+		{
+			_shutdownMode = GM_SHUTDOWN;
+		}
+		
+		if (_shutdownMode > 0)
+		{
 			switch (seconds)
 			{
-			    case 540:
-			    case 480:
-			    case 420:
-			    case 360:
+				case 540:
+				case 480:
+				case 420:
+				case 360:
 				case 300:
 				case 240:
 				case 180:
@@ -105,39 +111,43 @@ public class Shutdown extends Thread
 				default:
 					SendServerQuit(seconds);
 			}
-        }
-
-        if (_counterInstance != null) {
-            _counterInstance._abort();
-        }
-        _counterInstance = new Shutdown(seconds, restart);
-        _counterInstance.start();
-    }
-
-    /**
-     * This function aborts a running countdown
-     *
-     * @param IP            IP Which Issued shutdown command
-     */
-    public void telnetAbort(String IP) {
-        _log.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
-
-        if (_counterInstance != null) {
-            _counterInstance._abort();
+		}
+		
+		if (_counterInstance != null)
+		{
+			_counterInstance._abort();
+		}
+		_counterInstance = new Shutdown(seconds, restart);
+		_counterInstance.start();
+	}
+	
+	/**
+	 * This function aborts a running countdown
+	 *
+	 * @param IP            IP Which Issued shutdown command
+	 */
+	public void telnetAbort(String IP)
+	{
+		_log.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
+		
+		if (_counterInstance != null)
+		{
+			_counterInstance._abort();
 			Announcements _an = Announcements.getInstance();
 			_an.announceToAll("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!");
-        }
-    }
-
+		}
+	}
+	
 	/**
 	 * Default constucter is only used internal to create the shutdown-hook instance
 	 *
 	 */
-	public Shutdown() {
+	public Shutdown()
+	{
 		_secondsShut = -1;
 		_shutdownMode = SIGTERM;
 	}
-
+	
 	/**
 	 * This creates a countdown instance of Shutdown.
 	 *
@@ -145,18 +155,23 @@ public class Shutdown extends Thread
 	 * @param restart	true is the server shall restart after shutdown
 	 *
 	 */
-	public Shutdown(int seconds, boolean restart) {
-		if (seconds < 0) {
+	public Shutdown(int seconds, boolean restart)
+	{
+		if (seconds < 0)
+		{
 			seconds = 0;
 		}
 		_secondsShut = seconds;
-		if (restart) {
+		if (restart)
+		{
 			_shutdownMode = GM_RESTART;
-		} else {
+		}
+		else
+		{
 			_shutdownMode = GM_SHUTDOWN;
 		}
 	}
-
+	
 	/**
 	 * get the shutdown-hook instance
 	 * the shutdown-hook instance is created by the first call of this function,
@@ -172,7 +187,7 @@ public class Shutdown extends Thread
 		}
 		return _instance;
 	}
-
+	
 	/**
 	 * this function is called, when a new thread starts
 	 *
@@ -192,17 +207,6 @@ public class Shutdown extends Thread
 	@Override
 	public void run()
 	{
-		/* disallow new logins
-		try
-		{
-            //Doesnt actually do anything
-			//Server.gameServer.getLoginController().setMaxAllowedOnlinePlayers(0);
-		}
-		catch (Throwable t)
-		{
-			// ignore
-		}*/
-
 		if (this == _instance)
 		{
 			// ensure all services are stopped
@@ -214,7 +218,7 @@ public class Shutdown extends Thread
 			{
 				// ignore
 			}
-
+			
 			// stop all threadpolls
 			try
 			{
@@ -224,11 +228,11 @@ public class Shutdown extends Thread
 			{
 				// ignore
 			}
-
+			
 			// last byebye, save all data and quit this server
 			// logging doesnt work here :(
 			saveData();
-
+			
 			try
 			{
 				LoginServerThread.getInstance().interrupt();
@@ -237,7 +241,7 @@ public class Shutdown extends Thread
 			{
 				// ignore
 			}
-
+			
 			// saveData sends messages to exit players, so sgutdown selector after it
 			try
 			{
@@ -248,7 +252,7 @@ public class Shutdown extends Thread
 			{
 				// ignore
 			}
-
+			
 			// commit data, last chance
 			try
 			{
@@ -256,9 +260,9 @@ public class Shutdown extends Thread
 			}
 			catch (Throwable t)
 			{
-
+				
 			}
-
+			
 			// server will quit, when this function ends.
 			if (_instance._shutdownMode == GM_RESTART)
 			{
@@ -275,7 +279,8 @@ public class Shutdown extends Thread
 			countdown();
 			// last point where logging is operational :(
 			_log.warning("GM shutdown countdown is over. " + MODE_TEXT[_shutdownMode] + " NOW!");
-			switch (_shutdownMode) {
+			switch (_shutdownMode)
+			{
 				case GM_SHUTDOWN:
 					_instance.setMode(GM_SHUTDOWN);
 					System.exit(0);
@@ -287,7 +292,7 @@ public class Shutdown extends Thread
 			}
 		}
 	}
-
+	
 	/**
 	 * This functions starts a shutdown countdown
 	 *
@@ -295,23 +300,27 @@ public class Shutdown extends Thread
 	 * @param seconds		seconds until shutdown
 	 * @param restart		true if the server will restart after shutdown
 	 */
-	public void startShutdown(L2PcInstance activeChar, int seconds, boolean restart) {
-		_log.warning("GM: "+activeChar.getName()+"("+activeChar.getObjectId()+") issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in "+seconds+ " seconds!");
-
-		if (restart) {
-            _shutdownMode = GM_RESTART;
-        } else {
-            _shutdownMode = GM_SHUTDOWN;
-        }
-
-        if(_shutdownMode > 0)
-        {
+	public void startShutdown(L2PcInstance activeChar, int seconds, boolean restart)
+	{
+		_log.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");
+		
+		if (restart)
+		{
+			_shutdownMode = GM_RESTART;
+		}
+		else
+		{
+			_shutdownMode = GM_SHUTDOWN;
+		}
+		
+		if (_shutdownMode > 0)
+		{
 			switch (seconds)
 			{
-			    case 540:
-			    case 480:
-			    case 420:
-			    case 360:
+				case 540:
+				case 480:
+				case 420:
+				case 360:
 				case 300:
 				case 240:
 				case 180:
@@ -328,95 +337,138 @@ public class Shutdown extends Thread
 				default:
 					SendServerQuit(seconds);
 			}
-        }
-
-		if (_counterInstance != null) {
+		}
+		
+		if (_counterInstance != null)
+		{
 			_counterInstance._abort();
-		}        	
-
-//		 the main instance should only run for shutdown hook, so we start a new instance
+		}
+		
+		//		 the main instance should only run for shutdown hook, so we start a new instance
 		_counterInstance = new Shutdown(seconds, restart);
 		_counterInstance.start();
 	}
-
+	
 	/**
 	 * This function aborts a running countdown
 	 *
 	 * @param activeChar	GM who issued the abort command
 	 */
-	public void abort(L2PcInstance activeChar) {
-		_log.warning("GM: "+activeChar.getName()+"("+activeChar.getObjectId()+") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
-		if (_counterInstance != null) {
+	public void abort(L2PcInstance activeChar)
+	{
+		_log.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");
+		if (_counterInstance != null)
+		{
 			_counterInstance._abort();
 			Announcements _an = Announcements.getInstance();
 			_an.announceToAll("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!");
 		}
 	}
-
+	
 	/**
 	 * set the shutdown mode
 	 * @param mode	what mode shall be set
 	 */
-	private void setMode(int mode) {
+	private void setMode(int mode)
+	{
 		_shutdownMode = mode;
 	}
-
+	
 	/**
 	 * set shutdown mode to ABORT
 	 *
 	 */
-	private void _abort() {
+	private void _abort()
+	{
 		_shutdownMode = ABORT;
 	}
-
+	
 	/**
 	 * this counts the countdown and reports it to all players
 	 * countdown is aborted if mode changes to ABORT
 	 */
-	private void countdown() {
-
-		try {
-			while (_secondsShut > 0) {
-
+	private void countdown()
+	{
+		
+		try
+		{
+			while (_secondsShut > 0)
+			{
+				
 				switch (_secondsShut)
 				{
-				    case 540:SendServerQuit(540);break;
-				    case 480:SendServerQuit(480);break;
-				    case 420:SendServerQuit(420);break;
-				    case 360:SendServerQuit(360);break;
-					case 300:SendServerQuit(300);break;
-					case 240:SendServerQuit(240);break;
-					case 180:SendServerQuit(180);break;
-					case 120:SendServerQuit(120);break;
+					case 540:
+						SendServerQuit(540);
+						break;
+					case 480:
+						SendServerQuit(480);
+						break;
+					case 420:
+						SendServerQuit(420);
+						break;
+					case 360:
+						SendServerQuit(360);
+						break;
+					case 300:
+						SendServerQuit(300);
+						break;
+					case 240:
+						SendServerQuit(240);
+						break;
+					case 180:
+						SendServerQuit(180);
+						break;
+					case 120:
+						SendServerQuit(120);
+						break;
 					case 60:
 						LoginServerThread.getInstance().setServerStatus(ServerStatus.STATUS_DOWN); //avoids new players from logging in
-						SendServerQuit(60);break;
-					case 30:SendServerQuit(30);break;
-					case 10:SendServerQuit(10);break;
-					case 5:SendServerQuit(5);break;
-					case 4:SendServerQuit(4);break;
-					case 3:SendServerQuit(3);break;
-					case 2:SendServerQuit(2);break;
-					case 1:SendServerQuit(1);break;
+						SendServerQuit(60);
+						break;
+					case 30:
+						SendServerQuit(30);
+						break;
+					case 10:
+						SendServerQuit(10);
+						break;
+					case 5:
+						SendServerQuit(5);
+						break;
+					case 4:
+						SendServerQuit(4);
+						break;
+					case 3:
+						SendServerQuit(3);
+						break;
+					case 2:
+						SendServerQuit(2);
+						break;
+					case 1:
+						SendServerQuit(1);
+						break;
 				}
-
+				
 				_secondsShut--;
-
+				
 				int delay = 1000; //milliseconds
 				Thread.sleep(delay);
-
-				if(_shutdownMode == ABORT) break;
+				
+				if (_shutdownMode == ABORT)
+					break;
 			}
-		} catch (InterruptedException e) {
+		}
+		catch (InterruptedException e)
+		{
 			//this will never happen
 		}
 	}
-
+	
 	/**
 	 * this sends a last byebye, disconnects all players and saves data
 	 *
 	 */
-	private void saveData() {
+	private void saveData()
+	{
 		switch (_shutdownMode)
 		{
 			case SIGTERM:
@@ -428,67 +480,73 @@ public class Shutdown extends Thread
 			case GM_RESTART:
 				System.err.println("GM restart received. Restarting NOW!");
 				break;
-
+			
 		}
 		if (Config.ACTIVATE_POSITION_RECORDER)
 			Universe.getInstance().implode(true);
 		
 		// we cannt abort shutdown anymore, so i removed the "if"
 		disconnectAllCharacters();
-
-        // Seven Signs data is now saved along with Festival data.
-        if (!SevenSigns.getInstance().isSealValidationPeriod())
-            SevenSignsFestival.getInstance().saveFestivalData(false);
-
-        // Save Seven Signs data before closing. :)
-        SevenSigns.getInstance().saveSevenSignsData(null, true);
-
-        // Save all raidboss and GrandBoss status ^_^
-        RaidBossSpawnManager.getInstance().cleanUp();
-        System.err.println("RaidBossSpawnManager: All raidboss info saved!!");
-        GrandBossManager.getInstance().cleanUp();
-        System.err.println("GrandBossManager: All Grand Boss info saved!!");
-        TradeController.getInstance().dataCountStore();
-        System.err.println("TradeController: All count Item Saved");
-        try
-        {
-            Olympiad.getInstance().save();
-        }
-        catch(Exception e){e.printStackTrace();}
-        System.err.println("Olympiad System: Data saved!!");
-        
-        // Save Cursed Weapons data before closing.
-        CursedWeaponsManager.getInstance().saveData();
-        
-        // Save all manor data
-        CastleManorManager.getInstance().save();
-        
-        // Save all global (non-player specific) Quest data that needs to persist after reboot
-        QuestManager.getInstance().save();
-        
-        //Save items on ground before closing
-        if(Config.SAVE_DROPPED_ITEM){
-        ItemsOnGroundManager.getInstance().saveInDb();        
-        ItemsOnGroundManager.getInstance().cleanUp();
-        System.err.println("ItemsOnGroundManager: All items on ground saved!!");
-        }
+		
+		// Seven Signs data is now saved along with Festival data.
+		if (!SevenSigns.getInstance().isSealValidationPeriod())
+			SevenSignsFestival.getInstance().saveFestivalData(false);
+		
+		// Save Seven Signs data before closing. :)
+		SevenSigns.getInstance().saveSevenSignsData(null, true);
+		
+		// Save all raidboss and GrandBoss status ^_^
+		RaidBossSpawnManager.getInstance().cleanUp();
+		System.err.println("RaidBossSpawnManager: All raidboss info saved!!");
+		GrandBossManager.getInstance().cleanUp();
+		System.err.println("GrandBossManager: All Grand Boss info saved!!");
+		TradeController.getInstance().dataCountStore();
+		System.err.println("TradeController: All count Item Saved");
+		try
+		{
+			Olympiad.getInstance().save();
+		}
+		catch (Exception e)
+		{
+			e.printStackTrace();
+		}
+		System.err.println("Olympiad System: Data saved!!");
+		
+		// Save Cursed Weapons data before closing.
+		CursedWeaponsManager.getInstance().saveData();
+		
+		// Save all manor data
+		CastleManorManager.getInstance().save();
+		
+		// Save all global (non-player specific) Quest data that needs to persist after reboot
+		QuestManager.getInstance().save();
+		
+		//Save items on ground before closing
+		if (Config.SAVE_DROPPED_ITEM)
+		{
+			ItemsOnGroundManager.getInstance().saveInDb();
+			ItemsOnGroundManager.getInstance().cleanUp();
+			System.err.println("ItemsOnGroundManager: All items on ground saved!!");
+		}
 		System.err.println("Data saved. All players disconnected, shutting down.");
 		
-		try {
+		try
+		{
 			int delay = 5000;
 			Thread.sleep(delay);
-		} 
-		catch (InterruptedException e) {
+		}
+		catch (InterruptedException e)
+		{
 			//never happens :p
 		}
 	}
-
+	
 	/**
 	 * this disconnects all clients from the server
 	 *
 	 */
 	@SuppressWarnings("deprecation")
-    private void disconnectAllCharacters()
+	private void disconnectAllCharacters()
 	{
 		SystemMessage sysm = new SystemMessage(0);
 		ServerClose ql = new ServerClose();
@@ -499,27 +557,40 @@ public class Shutdown extends Thread
 			{
 				player.sendPacket(sysm);
 				//Logout Character
-				try {
+				try
+				{
 					L2GameClient.saveCharToDisk(player);
 					player.sendPacket(ql);
-				} catch (Throwable t)	{}
+				}
+				catch (Throwable t)
+				{
+				}
 			}
 		}
-		try { Thread.sleep(1000); } catch (Throwable t) {_log.log(Level.INFO, "", t);}
+		try
+		{
+			Thread.sleep(1000);
+		}
+		catch (Throwable t)
+		{
+			_log.log(Level.INFO, "", t);
+		}
 		
-
 		pls = L2World.getInstance().getAllPlayers().values();
 		//synchronized (L2World.getInstance().getAllPlayers())
 		{
 			for (L2PcInstance player : pls)
 			{
-				try {
+				try
+				{
 					player.closeNetConnection();
-				} catch (Throwable t)	{
-				// just to make sure we try to kill the connection 
-				}				
+				}
+				catch (Throwable t)
+				{
+					// just to make sure we try to kill the connection 
+				}
 			}
 		}
 	}
-
+	
 }

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/ai/AbstractAI.java

@@ -96,9 +96,9 @@ abstract class AbstractAI implements Ctrl
 					moveToPawn(followTarget, _range);
 				}
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				_log.log(Level.WARNING, "", t);
+				_log.log(Level.WARNING, "", e);
 			}
 		}
 	}

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/datatables/LevelUpData.java

@@ -87,7 +87,7 @@ public class LevelUpData
 				lvlDat.setClassMpAdd(rset.getFloat(MP_ADD));
 				lvlDat.setClassMpModifier(rset.getFloat(MP_MOD));
 				
-				_lvlTable.put(new Integer(lvlDat.getClassid()), lvlDat);
+				_lvlTable.put(Integer.valueOf(lvlDat.getClassid()), lvlDat);
 			}
 			
 			rset.close();

+ 1 - 3
L2_GameServer/java/net/sf/l2j/gameserver/datatables/NpcTable.java

@@ -500,8 +500,6 @@ public class NpcTable
 	public void saveNpc(StatsSet npc)
 	{
 		java.sql.Connection con = null;
-		String query = "";
-		
 		try
 		{
 			con = L2DatabaseFactory.getInstance().getConnection();
@@ -523,7 +521,7 @@ public class NpcTable
 				}
 			}
 			
-			query = "UPDATE npc SET " + values + " WHERE id = ?";
+			String query = "UPDATE npc SET " + values + " WHERE id = ?";
 			PreparedStatement statement = con.prepareStatement(query);
 			statement.setInt(1, npc.getInteger("npcId"));
 			statement.execute();

+ 4 - 0
L2_GameServer/java/net/sf/l2j/gameserver/handler/IItemHandler.java

@@ -14,6 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler;
 
+import java.util.logging.Logger;
+
 import net.sf.l2j.gameserver.model.L2ItemInstance;
 import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;
 
@@ -26,6 +28,8 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;
 
 public interface IItemHandler
 {
+	public static Logger _log = Logger.getLogger(IItemHandler.class.getName());
+	
 	/**
 	 * Launch task associated to the item.
 	 * @param activeChar : L2PlayableInstance designating the player

+ 2 - 0
L2_GameServer/java/net/sf/l2j/gameserver/handler/ISkillHandler.java

@@ -15,6 +15,7 @@
 package net.sf.l2j.gameserver.handler;
 
 import java.io.IOException;
+import java.util.logging.Logger;
 
 import net.sf.l2j.gameserver.model.L2Character;
 import net.sf.l2j.gameserver.model.L2Object;
@@ -29,6 +30,7 @@ import net.sf.l2j.gameserver.templates.L2SkillType;
 
 public interface ISkillHandler
 {
+	public static Logger _log = Logger.getLogger(ISkillHandler.class.getName());
 	/**
 	 * this is the worker method that is called when using an item.
 	 * @param activeChar

+ 3 - 0
L2_GameServer/java/net/sf/l2j/gameserver/handler/IUserCommandHandler.java

@@ -14,6 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler;
 
+import java.util.logging.Logger;
+
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -23,6 +25,7 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  */
 public interface IUserCommandHandler
 {
+	public static Logger _log = Logger.getLogger(IUserCommandHandler.class.getName());
 	/**
 	 * this is the worker method that is called when someone uses an admin command.
 	 * @param activeChar

+ 3 - 0
L2_GameServer/java/net/sf/l2j/gameserver/handler/IVoicedCommandHandler.java

@@ -14,6 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler;
 
+import java.util.logging.Logger;
+
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -23,6 +25,7 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  */
 public interface IVoicedCommandHandler
 {
+	public static Logger _log = Logger.getLogger(IVoicedCommandHandler.class.getName());
 	/**
 	 * this is the worker method that is called when someone uses an admin command.
 	 * @param activeChar

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/handler/ItemHandler.java

@@ -111,7 +111,7 @@ public class ItemHandler
 		// Add handler for each ID found
 		for (int i = 0; i < ids.length; i++)
 		{
-			_datatable.put(new Integer(ids[i]), handler);
+			_datatable.put(Integer.valueOf(ids[i]), handler);
 		}
 	}
 	
@@ -122,6 +122,6 @@ public class ItemHandler
 	 */
 	public IItemHandler getItemHandler(int itemId)
 	{
-		return _datatable.get(new Integer(itemId));
+		return _datatable.get(Integer.valueOf(itemId));
 	}
 }

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/handler/UserCommandHandler.java

@@ -69,7 +69,7 @@ public class UserCommandHandler
 		{
 			if (Config.DEBUG)
 				_log.fine("Adding handler for user command " + ids[i]);
-			_datatable.put(new Integer(ids[i]), handler);
+			_datatable.put(Integer.valueOf(ids[i]), handler);
 		}
 	}
 	
@@ -77,7 +77,7 @@ public class UserCommandHandler
 	{
 		if (Config.DEBUG)
 			_log.fine("getting handler for user command: " + userCommand);
-		return _datatable.get(new Integer(userCommand));
+		return _datatable.get(Integer.valueOf(userCommand));
 	}
 	
 	/**

+ 5 - 1
L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/MysteryPotion.java

@@ -14,6 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler.itemhandlers;
 
+import java.util.logging.Level;
+
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.handler.IItemHandler;
 import net.sf.l2j.gameserver.model.L2ItemInstance;
@@ -35,6 +37,7 @@ public class MysteryPotion implements IItemHandler
 	{
 		5234
 	};
+	
 	private static final int BIGHEAD_EFFECT = 0x2000;
 	private static final int MYSTERY_POTION_SKILL = 2103;
 	private static final int EFFECT_DURATION = 1200000; // 20 mins
@@ -83,8 +86,9 @@ public class MysteryPotion implements IItemHandler
 				
 				((L2PcInstance) _playable).stopAbnormalEffect(BIGHEAD_EFFECT);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java

@@ -14,7 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler.itemhandlers;
 
-import net.sf.l2j.Config;
+import java.util.logging.Level;
+
 import net.sf.l2j.gameserver.GameTimeController;
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.ai.CtrlIntention;
@@ -308,10 +309,9 @@ public class ScrollOfEscape implements IItemHandler
 						break;
 				}
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
-				if (Config.DEBUG)
-					e.printStackTrace();
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 4 - 2
L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulCrystals.java

@@ -14,6 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler.itemhandlers;
 
+import java.util.logging.Level;
+
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.datatables.SkillTable;
 import net.sf.l2j.gameserver.handler.IItemHandler;
@@ -119,9 +121,9 @@ public class SoulCrystals implements IItemHandler
 				_target.addAbsorber(_activeChar, _crystalId);
 				_activeChar.setTarget(_target);
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
-				e.printStackTrace();
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 6 - 2
L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SummonItems.java

@@ -21,6 +21,8 @@
 
 package net.sf.l2j.gameserver.handler.itemhandlers;
 
+import java.util.logging.Level;
+
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.datatables.NpcTable;
 import net.sf.l2j.gameserver.datatables.SummonItemsData;
@@ -196,8 +198,9 @@ public class SummonItems implements IItemHandler
 				else
 					_petSummon.startFeed(false);
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
@@ -221,8 +224,9 @@ public class SummonItems implements IItemHandler
 				_petSummon.setFollowStatus(true);
 				_petSummon.setShowSummonAnimation(false);
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/handler/skillhandlers/Recall.java

@@ -14,7 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler.skillhandlers;
 
-import net.sf.l2j.Config;
+import java.util.logging.Level;
+
 import net.sf.l2j.gameserver.datatables.MapRegionTable;
 import net.sf.l2j.gameserver.handler.ISkillHandler;
 import net.sf.l2j.gameserver.model.L2Character;
@@ -89,10 +90,9 @@ public class Recall implements ISkillHandler
 				target.teleToLocation(MapRegionTable.TeleportWhereType.Town);
 			}
 		}
-		catch (Throwable e)
+		catch (Exception e)
 		{
-			if (Config.DEBUG)
-				e.printStackTrace();
+			_log.log(Level.SEVERE, "", e);
 		}
 	}
 	

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/handler/skillhandlers/SummonFriend.java

@@ -14,7 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler.skillhandlers;
 
-import net.sf.l2j.Config;
+import java.util.logging.Level;
+
 import net.sf.l2j.gameserver.SevenSigns;
 import net.sf.l2j.gameserver.datatables.ItemTable;
 import net.sf.l2j.gameserver.handler.ISkillHandler;
@@ -244,10 +245,9 @@ public class SummonFriend implements ISkillHandler
 				}
 			}
 		}
-		catch (Throwable e)
+		catch (Exception e)
 		{
-			if (Config.DEBUG)
-				e.printStackTrace();
+			_log.log(Level.SEVERE, "", e);
 		}
 	}
 	

+ 4 - 3
L2_GameServer/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java

@@ -14,6 +14,8 @@
  */
 package net.sf.l2j.gameserver.handler.usercommandhandlers;
 
+import java.util.logging.Level;
+
 import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.GameTimeController;
 import net.sf.l2j.gameserver.ThreadPoolManager;
@@ -148,10 +150,9 @@ public class Escape implements IUserCommandHandler
 			{
 				_activeChar.teleToLocation(MapRegionTable.TeleportWhereType.Town);
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
-				if (Config.DEBUG)
-					e.printStackTrace();
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 3 - 2
L2_GameServer/java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/Wedding.java

@@ -17,6 +17,7 @@ package net.sf.l2j.gameserver.handler.voicedcommandhandlers;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import net.sf.l2j.Config;
@@ -444,9 +445,9 @@ public class Wedding implements IVoicedCommandHandler
 			{
 				_activeChar.teleToLocation(_partnerx, _partnery, _partnerz);
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
-				_log.severe(e.toString());
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 144 - 140
L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/AuctionManager.java

@@ -26,147 +26,151 @@ import net.sf.l2j.gameserver.model.entity.Auction;
 
 public class AuctionManager
 {
-    protected static final Logger _log = Logger.getLogger(AuctionManager.class.getName());
-    private static AuctionManager _instance;
-    private List<Auction> _auctions;
+	protected static final Logger _log = Logger.getLogger(AuctionManager.class.getName());
+	private static AuctionManager _instance;
+	private List<Auction> _auctions;
 	private static final String[] ITEM_INIT_DATA =
+	{
+		"(23, 0, 'NPC', 'NPC Clan', 'ClanHall', 23, 0, 'Onyx Hall', 1, 20000000, 0, 1164841200000)", "(24, 0, 'NPC', 'NPC Clan', 'ClanHall', 24, 0, 'Topaz Hall', 1, 20000000, 0, 1164841200000)",
+		"(25, 0, 'NPC', 'NPC Clan', 'ClanHall', 25, 0, 'Ruby Hall', 1, 20000000, 0, 1164841200000)", "(26, 0, 'NPC', 'NPC Clan', 'ClanHall', 26, 0, 'Crystal Hall', 1, 20000000, 0, 1164841200000)",
+		"(27, 0, 'NPC', 'NPC Clan', 'ClanHall', 27, 0, 'Onyx Hall', 1, 20000000, 0, 1164841200000)", "(28, 0, 'NPC', 'NPC Clan', 'ClanHall', 28, 0, 'Sapphire Hall', 1, 20000000, 0, 1164841200000)",
+		"(29, 0, 'NPC', 'NPC Clan', 'ClanHall', 29, 0, 'Moonstone Hall', 1, 20000000, 0, 1164841200000)", "(30, 0, 'NPC', 'NPC Clan', 'ClanHall', 30, 0, 'Emerald Hall', 1, 20000000, 0, 1164841200000)",
+		"(31, 0, 'NPC', 'NPC Clan', 'ClanHall', 31, 0, 'The Atramental Barracks', 1, 8000000, 0, 1164841200000)", "(32, 0, 'NPC', 'NPC Clan', 'ClanHall', 32, 0, 'The Scarlet Barracks', 1, 8000000, 0, 1164841200000)",
+		"(33, 0, 'NPC', 'NPC Clan', 'ClanHall', 33, 0, 'The Viridian Barracks', 1, 8000000, 0, 1164841200000)", "(36, 0, 'NPC', 'NPC Clan', 'ClanHall', 36, 0, 'The Golden Chamber', 1, 50000000, 0, 1164841200000)",
+		"(37, 0, 'NPC', 'NPC Clan', 'ClanHall', 37, 0, 'The Silver Chamber', 1, 50000000, 0, 1164841200000)", "(38, 0, 'NPC', 'NPC Clan', 'ClanHall', 38, 0, 'The Mithril Chamber', 1, 50000000, 0, 1164841200000)",
+		"(39, 0, 'NPC', 'NPC Clan', 'ClanHall', 39, 0, 'Silver Manor', 1, 50000000, 0, 1164841200000)", "(40, 0, 'NPC', 'NPC Clan', 'ClanHall', 40, 0, 'Gold Manor', 1, 50000000, 0, 1164841200000)",
+		"(41, 0, 'NPC', 'NPC Clan', 'ClanHall', 41, 0, 'The Bronze Chamber', 1, 50000000, 0, 1164841200000)", "(42, 0, 'NPC', 'NPC Clan', 'ClanHall', 42, 0, 'The Golden Chamber', 1, 50000000, 0, 1164841200000)",
+		"(43, 0, 'NPC', 'NPC Clan', 'ClanHall', 43, 0, 'The Silver Chamber', 1, 50000000, 0, 1164841200000)", "(44, 0, 'NPC', 'NPC Clan', 'ClanHall', 44, 0, 'The Mithril Chamber', 1, 50000000, 0, 1164841200000)",
+		"(45, 0, 'NPC', 'NPC Clan', 'ClanHall', 45, 0, 'The Bronze Chamber', 1, 50000000, 0, 1164841200000)", "(46, 0, 'NPC', 'NPC Clan', 'ClanHall', 46, 0, 'Silver Manor', 1, 50000000, 0, 1164841200000)",
+		"(47, 0, 'NPC', 'NPC Clan', 'ClanHall', 47, 0, 'Moonstone Hall', 1, 50000000, 0, 1164841200000)", "(48, 0, 'NPC', 'NPC Clan', 'ClanHall', 48, 0, 'Onyx Hall', 1, 50000000, 0, 1164841200000)",
+		"(49, 0, 'NPC', 'NPC Clan', 'ClanHall', 49, 0, 'Emerald Hall', 1, 50000000, 0, 1164841200000)", "(50, 0, 'NPC', 'NPC Clan', 'ClanHall', 50, 0, 'Sapphire Hall', 1, 50000000, 0, 1164841200000)",
+		"(51, 0, 'NPC', 'NPC Clan', 'ClanHall', 51, 0, 'Mont Chamber', 1, 50000000, 0, 1164841200000)", "(52, 0, 'NPC', 'NPC Clan', 'ClanHall', 52, 0, 'Astaire Chamber', 1, 50000000, 0, 1164841200000)",
+		"(53, 0, 'NPC', 'NPC Clan', 'ClanHall', 53, 0, 'Aria Chamber', 1, 50000000, 0, 1164841200000)", "(54, 0, 'NPC', 'NPC Clan', 'ClanHall', 54, 0, 'Yiana Chamber', 1, 50000000, 0, 1164841200000)",
+		"(55, 0, 'NPC', 'NPC Clan', 'ClanHall', 55, 0, 'Roien Chamber', 1, 50000000, 0, 1164841200000)", "(56, 0, 'NPC', 'NPC Clan', 'ClanHall', 56, 0, 'Luna Chamber', 1, 50000000, 0, 1164841200000)",
+		"(57, 0, 'NPC', 'NPC Clan', 'ClanHall', 57, 0, 'Traban Chamber', 1, 50000000, 0, 1164841200000)", "(58, 0, 'NPC', 'NPC Clan', 'ClanHall', 58, 0, 'Eisen Hall', 1, 50000000, 0, 1164841200000)",
+		"(59, 0, 'NPC', 'NPC Clan', 'ClanHall', 59, 0, 'Heavy Metal Hall', 1, 50000000, 0, 1164841200000)", "(60, 0, 'NPC', 'NPC Clan', 'ClanHall', 60, 0, 'Molten Ore Hall', 1, 50000000, 0, 1164841200000)",
+		"(61, 0, 'NPC', 'NPC Clan', 'ClanHall', 61, 0, 'Titan Hall', 1, 50000000, 0, 1164841200000)"
+	};
+	private static final Integer[] ItemInitDataId =
+	{
+		23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61
+	};
+	
+	public static final AuctionManager getInstance()
+	{
+		if (_instance == null)
 		{
-		    "(23, 0, 'NPC', 'NPC Clan', 'ClanHall', 23, 0, 'Onyx Hall', 1, 20000000, 0, 1164841200000)",
-		    "(24, 0, 'NPC', 'NPC Clan', 'ClanHall', 24, 0, 'Topaz Hall', 1, 20000000, 0, 1164841200000)",
-		    "(25, 0, 'NPC', 'NPC Clan', 'ClanHall', 25, 0, 'Ruby Hall', 1, 20000000, 0, 1164841200000)",
-		    "(26, 0, 'NPC', 'NPC Clan', 'ClanHall', 26, 0, 'Crystal Hall', 1, 20000000, 0, 1164841200000)",
-		    "(27, 0, 'NPC', 'NPC Clan', 'ClanHall', 27, 0, 'Onyx Hall', 1, 20000000, 0, 1164841200000)",
-		    "(28, 0, 'NPC', 'NPC Clan', 'ClanHall', 28, 0, 'Sapphire Hall', 1, 20000000, 0, 1164841200000)",
-		    "(29, 0, 'NPC', 'NPC Clan', 'ClanHall', 29, 0, 'Moonstone Hall', 1, 20000000, 0, 1164841200000)",
-		    "(30, 0, 'NPC', 'NPC Clan', 'ClanHall', 30, 0, 'Emerald Hall', 1, 20000000, 0, 1164841200000)",
-		    "(31, 0, 'NPC', 'NPC Clan', 'ClanHall', 31, 0, 'The Atramental Barracks', 1, 8000000, 0, 1164841200000)",
-		    "(32, 0, 'NPC', 'NPC Clan', 'ClanHall', 32, 0, 'The Scarlet Barracks', 1, 8000000, 0, 1164841200000)",
-		    "(33, 0, 'NPC', 'NPC Clan', 'ClanHall', 33, 0, 'The Viridian Barracks', 1, 8000000, 0, 1164841200000)",
-		    "(36, 0, 'NPC', 'NPC Clan', 'ClanHall', 36, 0, 'The Golden Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(37, 0, 'NPC', 'NPC Clan', 'ClanHall', 37, 0, 'The Silver Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(38, 0, 'NPC', 'NPC Clan', 'ClanHall', 38, 0, 'The Mithril Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(39, 0, 'NPC', 'NPC Clan', 'ClanHall', 39, 0, 'Silver Manor', 1, 50000000, 0, 1164841200000)",
-		    "(40, 0, 'NPC', 'NPC Clan', 'ClanHall', 40, 0, 'Gold Manor', 1, 50000000, 0, 1164841200000)",
-		    "(41, 0, 'NPC', 'NPC Clan', 'ClanHall', 41, 0, 'The Bronze Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(42, 0, 'NPC', 'NPC Clan', 'ClanHall', 42, 0, 'The Golden Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(43, 0, 'NPC', 'NPC Clan', 'ClanHall', 43, 0, 'The Silver Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(44, 0, 'NPC', 'NPC Clan', 'ClanHall', 44, 0, 'The Mithril Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(45, 0, 'NPC', 'NPC Clan', 'ClanHall', 45, 0, 'The Bronze Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(46, 0, 'NPC', 'NPC Clan', 'ClanHall', 46, 0, 'Silver Manor', 1, 50000000, 0, 1164841200000)",
-		    "(47, 0, 'NPC', 'NPC Clan', 'ClanHall', 47, 0, 'Moonstone Hall', 1, 50000000, 0, 1164841200000)",
-		    "(48, 0, 'NPC', 'NPC Clan', 'ClanHall', 48, 0, 'Onyx Hall', 1, 50000000, 0, 1164841200000)",
-		    "(49, 0, 'NPC', 'NPC Clan', 'ClanHall', 49, 0, 'Emerald Hall', 1, 50000000, 0, 1164841200000)",
-		    "(50, 0, 'NPC', 'NPC Clan', 'ClanHall', 50, 0, 'Sapphire Hall', 1, 50000000, 0, 1164841200000)",
-		    "(51, 0, 'NPC', 'NPC Clan', 'ClanHall', 51, 0, 'Mont Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(52, 0, 'NPC', 'NPC Clan', 'ClanHall', 52, 0, 'Astaire Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(53, 0, 'NPC', 'NPC Clan', 'ClanHall', 53, 0, 'Aria Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(54, 0, 'NPC', 'NPC Clan', 'ClanHall', 54, 0, 'Yiana Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(55, 0, 'NPC', 'NPC Clan', 'ClanHall', 55, 0, 'Roien Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(56, 0, 'NPC', 'NPC Clan', 'ClanHall', 56, 0, 'Luna Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(57, 0, 'NPC', 'NPC Clan', 'ClanHall', 57, 0, 'Traban Chamber', 1, 50000000, 0, 1164841200000)",
-		    "(58, 0, 'NPC', 'NPC Clan', 'ClanHall', 58, 0, 'Eisen Hall', 1, 50000000, 0, 1164841200000)",
-		    "(59, 0, 'NPC', 'NPC Clan', 'ClanHall', 59, 0, 'Heavy Metal Hall', 1, 50000000, 0, 1164841200000)",
-		    "(60, 0, 'NPC', 'NPC Clan', 'ClanHall', 60, 0, 'Molten Ore Hall', 1, 50000000, 0, 1164841200000)",
-		    "(61, 0, 'NPC', 'NPC Clan', 'ClanHall', 61, 0, 'Titan Hall', 1, 50000000, 0, 1164841200000)"
-		 };
-		 private static final Integer[] ItemInitDataId =
-		 {
-		     23,24,25,26,27,28,29,30,31,32,33,36,37,38,39,40,41,42,43,44,45,46,47,48
-		     ,49,50,51,52,53,54,55,56,57,58,59,60,61
-		 };
-    public static final AuctionManager getInstance()
-    {
-        if (_instance == null)
-        {
-    		_log.info("Initializing AuctionManager");
-        	_instance = new AuctionManager();
-        }
-        return _instance;
-    }
-    public AuctionManager()
-    {
-    	_auctions = new FastList<Auction>();
-    	load();
-    }
-    public void reload()
-    {
-    	_auctions.clear();
-    	load();
-    }
-    private final void load()
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            PreparedStatement statement;
-            ResultSet rs;
-            con = L2DatabaseFactory.getInstance().getConnection();
-            statement = con.prepareStatement("SELECT id FROM auction ORDER BY id");
-            rs = statement.executeQuery();
-            while (rs.next())
-            	_auctions.add(new Auction(rs.getInt("id")));
-            statement.close();
-            _log.info("Loaded: " + getAuctions().size() + " auction(s)");
-        }
-        catch (Exception e)
-        {
-            _log.warning("Exception: AuctionManager.load(): " + e.getMessage());
-            e.printStackTrace();
-        }
-
-        finally {try { con.close(); } catch (Exception e) {}}
-    }
-    public final Auction getAuction(int auctionId)
-    {
-        int index = getAuctionIndex(auctionId);
-        if (index >= 0)
-        	return getAuctions().get(index);
-        return null;
-    }
-
-    public final int getAuctionIndex(int auctionId)
-    {
-        Auction auction;
-        for (int i = 0; i < getAuctions().size(); i++)
-        {
-        	auction = getAuctions().get(i);
-            if (auction != null && auction.getId() == auctionId)
-            	return i;
-        }
-        return -1;
-    }
-
-    public final List<Auction> getAuctions()
-    {
-        return _auctions;
-    }
-    /** Init Clan NPC aution */
-	public void initNPC(int id){
-        java.sql.Connection con = null;
-        int i = 0;
-        for(i=0;i<ItemInitDataId.length;i++)
-        	if(ItemInitDataId[i] == id)
-        		break;
-        if(i>=ItemInitDataId.length){
-        	_log.warning("Clan Hall auction not found for Id :"+id);
-        	return;
-        }
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement;
-            statement = con.prepareStatement("INSERT INTO `auction` VALUES "+ITEM_INIT_DATA[i]);
-            statement.execute();
-            statement.close();
-            _auctions.add(new Auction(id));
-        }
-        catch (Exception e)
-        {
-        	 _log.log(Level.SEVERE, "Exception: Auction.initNPC(): " + e.getMessage(),e);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
+			_log.info("Initializing AuctionManager");
+			_instance = new AuctionManager();
+		}
+		return _instance;
+	}
+	
+	public AuctionManager()
+	{
+		_auctions = new FastList<Auction>();
+		load();
+	}
+	
+	public void reload()
+	{
+		_auctions.clear();
+		load();
+	}
+	
+	private final void load()
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			PreparedStatement statement;
+			ResultSet rs;
+			con = L2DatabaseFactory.getInstance().getConnection();
+			statement = con.prepareStatement("SELECT id FROM auction ORDER BY id");
+			rs = statement.executeQuery();
+			while (rs.next())
+				_auctions.add(new Auction(rs.getInt("id")));
+			statement.close();
+			_log.info("Loaded: " + getAuctions().size() + " auction(s)");
+		}
+		catch (Exception e)
+		{
+			_log.warning("Exception: AuctionManager.load(): " + e.getMessage());
+			e.printStackTrace();
+		}
+		
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	public final Auction getAuction(int auctionId)
+	{
+		int index = getAuctionIndex(auctionId);
+		if (index >= 0)
+			return getAuctions().get(index);
+		return null;
+	}
+	
+	public final int getAuctionIndex(int auctionId)
+	{
+		Auction auction;
+		for (int i = 0; i < getAuctions().size(); i++)
+		{
+			auction = getAuctions().get(i);
+			if (auction != null && auction.getId() == auctionId)
+				return i;
+		}
+		return -1;
+	}
+	
+	public final List<Auction> getAuctions()
+	{
+		return _auctions;
+	}
+	
+	/** Init Clan NPC aution */
+	public void initNPC(int id)
+	{
+		java.sql.Connection con = null;
+		int i = 0;
+		for (i = 0; i < ItemInitDataId.length; i++)
+			if (ItemInitDataId[i] == id)
+				break;
+		if (i >= ItemInitDataId.length)
+		{
+			_log.warning("Clan Hall auction not found for Id :" + id);
+			return;
+		}
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement;
+			statement = con.prepareStatement("INSERT INTO `auction` VALUES " + ITEM_INIT_DATA[i]);
+			statement.execute();
+			statement.close();
+			_auctions.add(new Auction(id));
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "Exception: Auction.initNPC(): " + e.getMessage(), e);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
 	}
 }

+ 279 - 251
L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/FortSiegeGuardManager.java

@@ -17,6 +17,7 @@ package net.sf.l2j.gameserver.instancemanager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.List;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javolution.util.FastList;
@@ -27,255 +28,282 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 import net.sf.l2j.gameserver.model.entity.Fort;
 import net.sf.l2j.gameserver.templates.L2NpcTemplate;
 
-public class FortSiegeGuardManager {
-
-    private static final Logger _log = Logger.getLogger(SiegeGuardManager.class.getName());
-
-    // =========================================================
-    // Data Field
-    private Fort _fort;
-    private List<L2Spawn> _siegeGuardSpawn  = new FastList<L2Spawn>();
-
-    // =========================================================
-    // Constructor
-    public FortSiegeGuardManager(Fort fort)
-    {
-        _fort = fort;
-    }
-
-    // =========================================================
-    // Method - Public
-    /**
-     * Add guard.<BR><BR>
-     */
-    public void addSiegeGuard(L2PcInstance activeChar, int npcId)
-    {
-        if (activeChar == null) return;
-        addSiegeGuard(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
-    }
-
-    /**
-     * Add guard.<BR><BR>
-     */
-    public void addSiegeGuard(int x, int y, int z, int heading, int npcId)
-    {
-        saveSiegeGuard(x, y, z, heading, npcId, 0);
-    }
-
-    /**
-     * Hire merc.<BR><BR>
-     */
-    public void hireMerc(L2PcInstance activeChar, int npcId)
-    {
-        if (activeChar == null) return;
-        hireMerc(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
-    }
-
-    /**
-     * Hire merc.<BR><BR>
-     */
-    public void hireMerc(int x, int y, int z, int heading, int npcId)
-    {
-        saveSiegeGuard(x, y, z, heading, npcId, 1);
-    }
-
-    /**
-     * Remove a single mercenary, identified by the npcId and location.
-     * Presumably, this is used when a fort lord picks up a previously dropped ticket
-     */
-    public void removeMerc(int npcId, int x, int y, int z)
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("Delete From fort_siege_guards Where npcId = ? And x = ? AND y = ? AND z = ? AND isHired = 1");
-            statement.setInt(1, npcId);
-            statement.setInt(2, x);
-            statement.setInt(3, y);
-            statement.setInt(4, z);
-            statement.execute();
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error deleting hired siege guard at " + x +','+y+','+z + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    /**
-     * Remove mercs.<BR><BR>
-     */
-    public void removeMercs()
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("Delete From fort_siege_guards Where fortId = ? And isHired = 1");
-            statement.setInt(1, getFort().getFortId());
-            statement.execute();
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error deleting hired siege guard for fort " + getFort().getName() + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    /**
-     * Spawn guards.<BR><BR>
-     */
-    public void spawnSiegeGuard()
-    {
-        try
-        {
-            int     hiredCount  = 0;
-            //hiredMax    = MercTicketManager.getInstance().getMaxAllowedMerc(_fort.getFortId());  
-            boolean isHired     = (getFort().getOwnerId() > 0) ? true : false;
-            loadSiegeGuard(); 
-            for (L2Spawn spawn: getSiegeGuardSpawn()) 
-            {
-                if (spawn != null)
-                {
-                    spawn.init();
-                    if (isHired)
-                    {
-                        hiredCount++; 
-                        //if (hiredCount > hiredMax)
-                        //    return;
-                    }
-                }
-            }
-        }
-        catch (Throwable t)
-        {
-            _log.warning("Error spawning siege guards for fort " + getFort().getName() + ":" + t.toString()); 
-        }
-    }
-
-    /**
-     * Unspawn guards.<BR><BR>
-     */
-    public void unspawnSiegeGuard()
-    {
-        for (L2Spawn spawn: getSiegeGuardSpawn())
-        {
-            if (spawn == null)
-                continue;
-
-            spawn.stopRespawn();
-            spawn.getLastSpawn().doDie(spawn.getLastSpawn());
-        }
-
-        getSiegeGuardSpawn().clear();
-    }
-
-    // =========================================================
-    // Method - Private
-    /**
-     * Load guards.<BR><BR>
-     */
-    private void loadSiegeGuard()
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("SELECT * FROM fort_siege_guards Where fortId = ? ");
-            statement.setInt(1, getFort().getFortId());
-            ResultSet rs = statement.executeQuery();
-
-            L2Spawn spawn1;
-            L2NpcTemplate template1;
-
-            while (rs.next())
-            {
-                template1 = NpcTable.getInstance().getTemplate(rs.getInt("npcId"));
-                if (template1 != null)
-                {
-                    spawn1 = new L2Spawn(template1);
-                    spawn1.setId(rs.getInt("id"));
-                    spawn1.setAmount(1);
-                    spawn1.setLocx(rs.getInt("x"));
-                    spawn1.setLocy(rs.getInt("y"));
-                    spawn1.setLocz(rs.getInt("z"));
-                    spawn1.setHeading(rs.getInt("heading"));
-                    spawn1.setRespawnDelay(rs.getInt("respawnDelay"));
-                    spawn1.setLocation(0);
-
-                    _siegeGuardSpawn.add(spawn1);
-                }
-                else
-                {
-                    _log.warning("Missing npc data in npc table for id: " + rs.getInt("npcId"));
-                }
-            }
-            rs.close();
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error loading siege guard for fort " + getFort().getName() + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    /**
-     * Save guards.<BR><BR>
-     */
-    private void saveSiegeGuard(int x, int y, int z, int heading, int npcId, int isHire)
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("Insert Into fort_siege_guards (fortId, npcId, x, y, z, heading, respawnDelay, isHired) Values (?, ?, ?, ?, ?, ?, ?, ?)");
-            statement.setInt(1, getFort().getFortId());
-            statement.setInt(2, npcId);
-            statement.setInt(3, x);
-            statement.setInt(4, y);
-            statement.setInt(5, z);
-            statement.setInt(6, heading);
-            if (isHire == 1)
-                statement.setInt(7, 0);
-            else
-                statement.setInt(7, 600);
-            statement.setInt(8, isHire);
-            statement.execute();
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error adding siege guard for fort " + getFort().getName() + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    // =========================================================
-    // Proeprty
-
-    public final Fort getFort()
-    {
-        return _fort;
-    }
-
-    public final List<L2Spawn> getSiegeGuardSpawn()
-    {
-        return _siegeGuardSpawn;
-    }
+public class FortSiegeGuardManager
+{
+	
+	private static final Logger _log = Logger.getLogger(SiegeGuardManager.class.getName());
+	
+	// =========================================================
+	// Data Field
+	private Fort _fort;
+	private List<L2Spawn> _siegeGuardSpawn = new FastList<L2Spawn>();
+	
+	// =========================================================
+	// Constructor
+	public FortSiegeGuardManager(Fort fort)
+	{
+		_fort = fort;
+	}
+	
+	// =========================================================
+	// Method - Public
+	/**
+	 * Add guard.<BR><BR>
+	 */
+	public void addSiegeGuard(L2PcInstance activeChar, int npcId)
+	{
+		if (activeChar == null)
+			return;
+		addSiegeGuard(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
+	}
+	
+	/**
+	 * Add guard.<BR><BR>
+	 */
+	public void addSiegeGuard(int x, int y, int z, int heading, int npcId)
+	{
+		saveSiegeGuard(x, y, z, heading, npcId, 0);
+	}
+	
+	/**
+	 * Hire merc.<BR><BR>
+	 */
+	public void hireMerc(L2PcInstance activeChar, int npcId)
+	{
+		if (activeChar == null)
+			return;
+		hireMerc(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
+	}
+	
+	/**
+	 * Hire merc.<BR><BR>
+	 */
+	public void hireMerc(int x, int y, int z, int heading, int npcId)
+	{
+		saveSiegeGuard(x, y, z, heading, npcId, 1);
+	}
+	
+	/**
+	 * Remove a single mercenary, identified by the npcId and location.
+	 * Presumably, this is used when a fort lord picks up a previously dropped ticket
+	 */
+	public void removeMerc(int npcId, int x, int y, int z)
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("Delete From fort_siege_guards Where npcId = ? And x = ? AND y = ? AND z = ? AND isHired = 1");
+			statement.setInt(1, npcId);
+			statement.setInt(2, x);
+			statement.setInt(3, y);
+			statement.setInt(4, z);
+			statement.execute();
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error deleting hired siege guard at " + x + ',' + y + ',' + z + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	/**
+	 * Remove mercs.<BR><BR>
+	 */
+	public void removeMercs()
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("Delete From fort_siege_guards Where fortId = ? And isHired = 1");
+			statement.setInt(1, getFort().getFortId());
+			statement.execute();
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error deleting hired siege guard for fort " + getFort().getName() + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	/**
+	 * Spawn guards.<BR><BR>
+	 */
+	public void spawnSiegeGuard()
+	{
+		try
+		{
+			int hiredCount = 0;
+			//hiredMax    = MercTicketManager.getInstance().getMaxAllowedMerc(_fort.getFortId());  
+			boolean isHired = (getFort().getOwnerId() > 0) ? true : false;
+			loadSiegeGuard();
+			for (L2Spawn spawn : getSiegeGuardSpawn())
+			{
+				if (spawn != null)
+				{
+					spawn.init();
+					if (isHired)
+					{
+						hiredCount++;
+						//if (hiredCount > hiredMax)
+						//    return;
+					}
+				}
+			}
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "Error spawning siege guards for fort " + getFort().getName(), e);
+		}
+	}
+	
+	/**
+	 * Unspawn guards.<BR><BR>
+	 */
+	public void unspawnSiegeGuard()
+	{
+		for (L2Spawn spawn : getSiegeGuardSpawn())
+		{
+			if (spawn == null)
+				continue;
+			
+			spawn.stopRespawn();
+			spawn.getLastSpawn().doDie(spawn.getLastSpawn());
+		}
+		
+		getSiegeGuardSpawn().clear();
+	}
+	
+	// =========================================================
+	// Method - Private
+	/**
+	 * Load guards.<BR><BR>
+	 */
+	private void loadSiegeGuard()
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("SELECT * FROM fort_siege_guards Where fortId = ? ");
+			statement.setInt(1, getFort().getFortId());
+			ResultSet rs = statement.executeQuery();
+			
+			L2Spawn spawn1;
+			L2NpcTemplate template1;
+			
+			while (rs.next())
+			{
+				template1 = NpcTable.getInstance().getTemplate(rs.getInt("npcId"));
+				if (template1 != null)
+				{
+					spawn1 = new L2Spawn(template1);
+					spawn1.setId(rs.getInt("id"));
+					spawn1.setAmount(1);
+					spawn1.setLocx(rs.getInt("x"));
+					spawn1.setLocy(rs.getInt("y"));
+					spawn1.setLocz(rs.getInt("z"));
+					spawn1.setHeading(rs.getInt("heading"));
+					spawn1.setRespawnDelay(rs.getInt("respawnDelay"));
+					spawn1.setLocation(0);
+					
+					_siegeGuardSpawn.add(spawn1);
+				}
+				else
+				{
+					_log.warning("Missing npc data in npc table for id: " + rs.getInt("npcId"));
+				}
+			}
+			rs.close();
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error loading siege guard for fort " + getFort().getName() + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	/**
+	 * Save guards.<BR><BR>
+	 */
+	private void saveSiegeGuard(int x, int y, int z, int heading, int npcId, int isHire)
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("Insert Into fort_siege_guards (fortId, npcId, x, y, z, heading, respawnDelay, isHired) Values (?, ?, ?, ?, ?, ?, ?, ?)");
+			statement.setInt(1, getFort().getFortId());
+			statement.setInt(2, npcId);
+			statement.setInt(3, x);
+			statement.setInt(4, y);
+			statement.setInt(5, z);
+			statement.setInt(6, heading);
+			if (isHire == 1)
+				statement.setInt(7, 0);
+			else
+				statement.setInt(7, 600);
+			statement.setInt(8, isHire);
+			statement.execute();
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error adding siege guard for fort " + getFort().getName() + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	// =========================================================
+	// Proeprty
+	
+	public final Fort getFort()
+	{
+		return _fort;
+	}
+	
+	public final List<L2Spawn> getSiegeGuardSpawn()
+	{
+		return _siegeGuardSpawn;
+	}
 }

+ 279 - 252
L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/SiegeGuardManager.java

@@ -17,6 +17,7 @@ package net.sf.l2j.gameserver.instancemanager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.List;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javolution.util.FastList;
@@ -27,257 +28,283 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 import net.sf.l2j.gameserver.model.entity.Castle;
 import net.sf.l2j.gameserver.templates.L2NpcTemplate;
 
-public class SiegeGuardManager {
-
+public class SiegeGuardManager
+{
+	
 	private static Logger _log = Logger.getLogger(SiegeGuardManager.class.getName());
-
-    // =========================================================
-    // Data Field
-    private Castle _castle;
-    private List<L2Spawn> _siegeGuardSpawn  = new FastList<L2Spawn>();
-
-    // =========================================================
-    // Constructor
-    public SiegeGuardManager(Castle castle)
-    {
-        _castle = castle;
-    }
-
-    // =========================================================
-    // Method - Public
-    /**
-     * Add guard.<BR><BR>
-     */
-    public void addSiegeGuard(L2PcInstance activeChar, int npcId)
-    {
-        if (activeChar == null) return;
-        addSiegeGuard(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
-    }
-
-    /**
-     * Add guard.<BR><BR>
-     */
-    public void addSiegeGuard(int x, int y, int z, int heading, int npcId)
-    {
-        saveSiegeGuard(x, y, z, heading, npcId, 0);
-    }
-
-    /**
-     * Hire merc.<BR><BR>
-     */
-    public void hireMerc(L2PcInstance activeChar, int npcId)
-    {
-        if (activeChar == null) return;
-        hireMerc(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
-    }
-
-    /**
-     * Hire merc.<BR><BR>
-     */
-    public void hireMerc(int x, int y, int z, int heading, int npcId)
-    {
-        saveSiegeGuard(x, y, z, heading, npcId, 1);
-    }
-
-    /**
-     * Remove a single mercenary, identified by the npcId and location.
-     * Presumably, this is used when a castle lord picks up a previously dropped ticket
-     */
-    public void removeMerc(int npcId, int x, int y, int z)
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("Delete From castle_siege_guards Where npcId = ? And x = ? AND y = ? AND z = ? AND isHired = 1");
-            statement.setInt(1, npcId);
-            statement.setInt(2, x);
-            statement.setInt(3, y);
-            statement.setInt(4, z);
-            statement.execute();
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error deleting hired siege guard at " + x +','+y+','+z + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    /**
-     * Remove mercs.<BR><BR>
-     */
-    public void removeMercs()
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("Delete From castle_siege_guards Where castleId = ? And isHired = 1");
-            statement.setInt(1, getCastle().getCastleId());
-            statement.execute();
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error deleting hired siege guard for castle " + getCastle().getName() + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    /**
-     * Spawn guards.<BR><BR>
-     */
-    public void spawnSiegeGuard()
-    {
-        try
-        {
-            int     hiredCount  = 0,
-            hiredMax    = MercTicketManager.getInstance().getMaxAllowedMerc(_castle.getCastleId());  
-            boolean isHired     = (getCastle().getOwnerId() > 0) ? true : false;
-            loadSiegeGuard(); 
-            for (L2Spawn spawn: getSiegeGuardSpawn()) 
-            {
-                if (spawn != null)
-                {
-                    spawn.init();
-                    if (isHired)
-                    {
-                        if (++hiredCount > hiredMax)
-                            return;
-                    }
-                }
-            }
-        }
-        catch (Throwable t)
-        {
-            _log.warning("Error spawning siege guards for castle " + getCastle().getName() + ":" + t.toString()); 
-        }
-    }
-
-    /**
-     * Unspawn guards.<BR><BR>
-     */
-    public void unspawnSiegeGuard()
-    {
-        for (L2Spawn spawn: getSiegeGuardSpawn())
-        {
-            if (spawn == null)
-                continue;
-
-            spawn.stopRespawn();
-            spawn.getLastSpawn().doDie(spawn.getLastSpawn());
-        }
-
-        getSiegeGuardSpawn().clear();
-    }
-
-    // =========================================================
-    // Method - Private
-    /**
-     * Load guards.<BR><BR>
-     */
-    private void loadSiegeGuard()
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("SELECT * FROM castle_siege_guards Where castleId = ? And isHired = ?");
-            statement.setInt(1, getCastle().getCastleId());
-            if (getCastle().getOwnerId() > 0)   // If castle is owned by a clan, then don't spawn default guards
-                statement.setInt(2, 1);
-            else
-                statement.setInt(2, 0);
-            ResultSet rs = statement.executeQuery();
-
-            L2Spawn spawn1;
-            L2NpcTemplate template1;
-
-            while (rs.next())
-            {
-                template1 = NpcTable.getInstance().getTemplate(rs.getInt("npcId"));
-                if (template1 != null)
-                {
-                    spawn1 = new L2Spawn(template1);
-                    spawn1.setId(rs.getInt("id"));
-                    spawn1.setAmount(1);
-                    spawn1.setLocx(rs.getInt("x"));
-                    spawn1.setLocy(rs.getInt("y"));
-                    spawn1.setLocz(rs.getInt("z"));
-                    spawn1.setHeading(rs.getInt("heading"));
-                    spawn1.setRespawnDelay(rs.getInt("respawnDelay"));
-                    spawn1.setLocation(0);
-
-                    _siegeGuardSpawn.add(spawn1);
-                }
-                else
-                {
-                    _log.warning("Missing npc data in npc table for id: " + rs.getInt("npcId"));
-                }
-            }
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error loading siege guard for castle " + getCastle().getName() + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    /**
-     * Save guards.<BR><BR>
-     */
-    private void saveSiegeGuard(int x, int y, int z, int heading, int npcId, int isHire)
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement("Insert Into castle_siege_guards (castleId, npcId, x, y, z, heading, respawnDelay, isHired) Values (?, ?, ?, ?, ?, ?, ?, ?)");
-            statement.setInt(1, getCastle().getCastleId());
-            statement.setInt(2, npcId);
-            statement.setInt(3, x);
-            statement.setInt(4, y);
-            statement.setInt(5, z);
-            statement.setInt(6, heading);
-            if (isHire == 1)
-                statement.setInt(7, 0);
-            else
-                statement.setInt(7, 600);
-            statement.setInt(8, isHire);
-            statement.execute();
-            statement.close();
-        }
-        catch (Exception e1)
-        {
-            _log.warning("Error adding siege guard for castle " + getCastle().getName() + ":" + e1);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    // =========================================================
-    // Proeprty
-
-    public final Castle getCastle()
-    {
-        return _castle;
-    }
-
-    public final List<L2Spawn> getSiegeGuardSpawn()
-    {
-        return _siegeGuardSpawn;
-    }
+	
+	// =========================================================
+	// Data Field
+	private Castle _castle;
+	private List<L2Spawn> _siegeGuardSpawn = new FastList<L2Spawn>();
+	
+	// =========================================================
+	// Constructor
+	public SiegeGuardManager(Castle castle)
+	{
+		_castle = castle;
+	}
+	
+	// =========================================================
+	// Method - Public
+	/**
+	 * Add guard.<BR><BR>
+	 */
+	public void addSiegeGuard(L2PcInstance activeChar, int npcId)
+	{
+		if (activeChar == null)
+			return;
+		addSiegeGuard(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
+	}
+	
+	/**
+	 * Add guard.<BR><BR>
+	 */
+	public void addSiegeGuard(int x, int y, int z, int heading, int npcId)
+	{
+		saveSiegeGuard(x, y, z, heading, npcId, 0);
+	}
+	
+	/**
+	 * Hire merc.<BR><BR>
+	 */
+	public void hireMerc(L2PcInstance activeChar, int npcId)
+	{
+		if (activeChar == null)
+			return;
+		hireMerc(activeChar.getX(), activeChar.getY(), activeChar.getZ(), activeChar.getHeading(), npcId);
+	}
+	
+	/**
+	 * Hire merc.<BR><BR>
+	 */
+	public void hireMerc(int x, int y, int z, int heading, int npcId)
+	{
+		saveSiegeGuard(x, y, z, heading, npcId, 1);
+	}
+	
+	/**
+	 * Remove a single mercenary, identified by the npcId and location.
+	 * Presumably, this is used when a castle lord picks up a previously dropped ticket
+	 */
+	public void removeMerc(int npcId, int x, int y, int z)
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("Delete From castle_siege_guards Where npcId = ? And x = ? AND y = ? AND z = ? AND isHired = 1");
+			statement.setInt(1, npcId);
+			statement.setInt(2, x);
+			statement.setInt(3, y);
+			statement.setInt(4, z);
+			statement.execute();
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error deleting hired siege guard at " + x + ',' + y + ',' + z + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	/**
+	 * Remove mercs.<BR><BR>
+	 */
+	public void removeMercs()
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("Delete From castle_siege_guards Where castleId = ? And isHired = 1");
+			statement.setInt(1, getCastle().getCastleId());
+			statement.execute();
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error deleting hired siege guard for castle " + getCastle().getName() + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	/**
+	 * Spawn guards.<BR><BR>
+	 */
+	public void spawnSiegeGuard()
+	{
+		try
+		{
+			int hiredCount = 0, hiredMax = MercTicketManager.getInstance().getMaxAllowedMerc(_castle.getCastleId());
+			boolean isHired = (getCastle().getOwnerId() > 0) ? true : false;
+			loadSiegeGuard();
+			for (L2Spawn spawn : getSiegeGuardSpawn())
+			{
+				if (spawn != null)
+				{
+					spawn.init();
+					if (isHired)
+					{
+						if (++hiredCount > hiredMax)
+							return;
+					}
+				}
+			}
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "Error spawning siege guards for castle " + getCastle().getName(), e);
+		}
+	}
+	
+	/**
+	 * Unspawn guards.<BR><BR>
+	 */
+	public void unspawnSiegeGuard()
+	{
+		for (L2Spawn spawn : getSiegeGuardSpawn())
+		{
+			if (spawn == null)
+				continue;
+			
+			spawn.stopRespawn();
+			spawn.getLastSpawn().doDie(spawn.getLastSpawn());
+		}
+		
+		getSiegeGuardSpawn().clear();
+	}
+	
+	// =========================================================
+	// Method - Private
+	/**
+	 * Load guards.<BR><BR>
+	 */
+	private void loadSiegeGuard()
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("SELECT * FROM castle_siege_guards Where castleId = ? And isHired = ?");
+			statement.setInt(1, getCastle().getCastleId());
+			if (getCastle().getOwnerId() > 0) // If castle is owned by a clan, then don't spawn default guards
+				statement.setInt(2, 1);
+			else
+				statement.setInt(2, 0);
+			ResultSet rs = statement.executeQuery();
+			
+			L2Spawn spawn1;
+			L2NpcTemplate template1;
+			
+			while (rs.next())
+			{
+				template1 = NpcTable.getInstance().getTemplate(rs.getInt("npcId"));
+				if (template1 != null)
+				{
+					spawn1 = new L2Spawn(template1);
+					spawn1.setId(rs.getInt("id"));
+					spawn1.setAmount(1);
+					spawn1.setLocx(rs.getInt("x"));
+					spawn1.setLocy(rs.getInt("y"));
+					spawn1.setLocz(rs.getInt("z"));
+					spawn1.setHeading(rs.getInt("heading"));
+					spawn1.setRespawnDelay(rs.getInt("respawnDelay"));
+					spawn1.setLocation(0);
+					
+					_siegeGuardSpawn.add(spawn1);
+				}
+				else
+				{
+					_log.warning("Missing npc data in npc table for id: " + rs.getInt("npcId"));
+				}
+			}
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error loading siege guard for castle " + getCastle().getName() + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	/**
+	 * Save guards.<BR><BR>
+	 */
+	private void saveSiegeGuard(int x, int y, int z, int heading, int npcId, int isHire)
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("Insert Into castle_siege_guards (castleId, npcId, x, y, z, heading, respawnDelay, isHired) Values (?, ?, ?, ?, ?, ?, ?, ?)");
+			statement.setInt(1, getCastle().getCastleId());
+			statement.setInt(2, npcId);
+			statement.setInt(3, x);
+			statement.setInt(4, y);
+			statement.setInt(5, z);
+			statement.setInt(6, heading);
+			if (isHire == 1)
+				statement.setInt(7, 0);
+			else
+				statement.setInt(7, 600);
+			statement.setInt(8, isHire);
+			statement.execute();
+			statement.close();
+		}
+		catch (Exception e1)
+		{
+			_log.warning("Error adding siege guard for castle " + getCastle().getName() + ":" + e1);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	// =========================================================
+	// Proeprty
+	
+	public final Castle getCastle()
+	{
+		return _castle;
+	}
+	
+	public final List<L2Spawn> getSiegeGuardSpawn()
+	{
+		return _siegeGuardSpawn;
+	}
 }

+ 17 - 14
L2_GameServer/java/net/sf/l2j/gameserver/model/L2Character.java

@@ -135,7 +135,7 @@ import net.sf.l2j.util.Rnd;
  */
 public abstract class L2Character extends L2Object
 {
-	protected static final Logger _log = Logger.getLogger(L2Character.class.getName());
+	public static final Logger _log = Logger.getLogger(L2Character.class.getName());
 
 	// =========================================================
 	// Data Field
@@ -2273,7 +2273,7 @@ public abstract class L2Character extends L2Object
 			{
 				enableSkill(_skillId);
 			}
-            catch (Throwable e)
+            catch (Exception e)
             {
 				_log.log(Level.SEVERE, "Failed executing enableSkill().", e);
 			}
@@ -2315,7 +2315,7 @@ public abstract class L2Character extends L2Object
 			{
 				onHitTimer(_hitTarget, _damage, _crit, _miss, _soulshot, _shld);
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 				_log.log(Level.SEVERE, "Failed executing HitTask.", e);
 			}
@@ -2359,7 +2359,7 @@ public abstract class L2Character extends L2Object
 						break;
 				}
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 				_log.log(Level.SEVERE, "Failed executing MagicUseTask.", e);
 				if (_simultaneously) 
@@ -2392,7 +2392,7 @@ public abstract class L2Character extends L2Object
             {
                 _currPlayer.useMagic(_queuedSkill, _isCtrlPressed, _isShiftPressed);
             }
-            catch (Throwable e)
+            catch (Exception e)
             {
                 _log.log(Level.SEVERE, "Failed executing QueuedMagicUseTask.", e);
             }
@@ -2415,9 +2415,9 @@ public abstract class L2Character extends L2Object
 			{
 				getAI().notifyEvent(_evt, null);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				_log.log(Level.WARNING, "", t);
+				_log.log(Level.WARNING, "", e);
 			}
 		}
 	}
@@ -2484,7 +2484,7 @@ public abstract class L2Character extends L2Object
 
 				broadcastPacket(new FlyToLocation(_actor,_target,_flyType));
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 				_log.log(Level.SEVERE, "Failed executing FlyToLocationTask.", e);
 			}
@@ -5999,13 +5999,16 @@ public abstract class L2Character extends L2Object
 				if (((L2NpcTemplate) getTemplate()).getEventQuests(Quest.QuestEventType.ON_SPELL_FINISHED) != null)
 				{
 					L2PcInstance player = target.getActingPlayer();
-					for (Quest quest: ((L2NpcTemplate) getTemplate()).getEventQuests(Quest.QuestEventType.ON_SPELL_FINISHED))
+					for (Quest quest : ((L2NpcTemplate) getTemplate()).getEventQuests(Quest.QuestEventType.ON_SPELL_FINISHED))
 					{
-						quest.notifySpellFinished(((L2NpcInstance)this), player, skill);
+						quest.notifySpellFinished(((L2NpcInstance) this), player, skill);
 					}
 				}
-			} 
-			catch (Throwable e) {}
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, "", e);
+			}
 		}
 	}
 	
@@ -6708,9 +6711,9 @@ public abstract class L2Character extends L2Object
 			{
 				_activeChar.doSimultaneousCast(_skill);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				_log.log(Level.WARNING, "", t);
+				_log.log(Level.WARNING, "", e);
 			}
 		}
 	}

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/L2Effect.java

@@ -121,7 +121,7 @@ public abstract class L2Effect
 					setPeriodfirsttime(0);
 				L2Effect.this.scheduleEffect();
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 				_log.log(Level.SEVERE, "", e);
 			}

+ 7 - 5
L2_GameServer/java/net/sf/l2j/gameserver/model/L2ItemInstance.java

@@ -51,7 +51,7 @@ import net.sf.l2j.gameserver.templates.L2Weapon;
  */
 public final class L2ItemInstance extends L2Object
 {
-	private static final Logger _log = Logger.getLogger(L2ItemInstance.class.getName());
+	protected static final Logger _log = Logger.getLogger(L2ItemInstance.class.getName());
 	private static final Logger _logItems = Logger.getLogger("item");
 
 	/** Enumeration of locations for item */
@@ -941,21 +941,23 @@ public final class L2ItemInstance extends L2Object
 	public class ScheduleConsumeManaTask implements Runnable
 	{
 		private L2ItemInstance _shadowItem;
-
+		
 		public ScheduleConsumeManaTask(L2ItemInstance item)
 		{
 			_shadowItem = item;
 		}
-
+		
 		public void run()
 		{
 			try
 			{
 				// decrease mana
-				if (_shadowItem != null) _shadowItem.decreaseMana(true);
+				if (_shadowItem != null)
+					_shadowItem.decreaseMana(true);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 385 - 304
L2_GameServer/java/net/sf/l2j/gameserver/model/L2PetDataTable.java

@@ -26,350 +26,431 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance;
 public class L2PetDataTable
 {
 	private static Logger _log = Logger.getLogger(L2PetInstance.class.getName());
-    private static L2PetDataTable _instance;
-
-    //private static final int[] PET_LIST = { 12077, 12312, 12313, 12311, 12527, 12528, 12526 };
-    private static Map<Integer, Map<Integer, L2PetData>> _petTable;
-
-    public static L2PetDataTable getInstance()
-    {
-        if (_instance == null)
-            _instance = new L2PetDataTable();
-
-        return _instance;
-    }
-
-    private L2PetDataTable()
-    {
-        _petTable = new FastMap<Integer, Map<Integer, L2PetData>>();
-    }
-
-    public void loadPetsData()
-    {
-    	java.sql.Connection con = null;
-
-    	try
-        {
-    		con = L2DatabaseFactory.getInstance().getConnection();
-    		PreparedStatement statement = con.prepareStatement("SELECT typeID, level, expMax, hpMax, mpMax, patk, pdef, matk, mdef, acc, evasion, crit, speed, atk_speed, cast_speed, feedMax, feedbattle, feednormal, loadMax, hpregen, mpregen, owner_exp_taken FROM pets_stats");
-    		ResultSet rset = statement.executeQuery();
-
-    		int petId, petLevel;
-
-    		while (rset.next())
-    		{
-    			petId = rset.getInt("typeID");
-    			petLevel = rset.getInt("level");
-
-    			//build the petdata for this level
-    			L2PetData petData = new L2PetData();
-    			petData.setPetID(petId);
-                petData.setPetLevel(petLevel);
-                petData.setPetMaxExp(rset.getLong("expMax"));
-                petData.setPetMaxHP(rset.getInt("hpMax"));
-                petData.setPetMaxMP(rset.getInt("mpMax"));
-                petData.setPetPAtk( rset.getInt("patk") );
-                petData.setPetPDef( rset.getInt("pdef") );
-                petData.setPetMAtk( rset.getInt("matk") );
-                petData.setPetMDef( rset.getInt("mdef") );
-                petData.setPetAccuracy( rset.getInt("acc") );
-                petData.setPetEvasion( rset.getInt("evasion") );
-                petData.setPetCritical( rset.getInt("crit") );
-                petData.setPetSpeed( rset.getInt("speed") );
-                petData.setPetAtkSpeed( rset.getInt("atk_speed") );
-                petData.setPetCastSpeed( rset.getInt("cast_speed") );
-                petData.setPetMaxFeed( rset.getInt("feedMax") );
-                petData.setPetFeedNormal( rset.getInt("feednormal") );
-                petData.setPetFeedBattle( rset.getInt("feedbattle") );
-                petData.setPetMaxLoad( rset.getInt("loadMax") );
-                petData.setPetRegenHP( rset.getInt("hpregen") );
-                petData.setPetRegenMP( rset.getInt("mpregen") );
-                petData.setPetRegenMP( rset.getInt("mpregen") );
-                petData.setOwnerExpTaken( rset.getFloat("owner_exp_taken") );
-
-                // if its the first data for this petid, we initialize its level FastMap
-                if (!_petTable.containsKey(petId))
-                    _petTable.put(petId, new FastMap<Integer, L2PetData>());
-
-                _petTable.get(petId).put(petLevel,petData);
-            }
-
-    		rset.close();
-    		statement.close();
-        }
-        catch (Exception e)
-        {
-            _log.warning("Could not load pets stats: "+ e);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    public void addPetData(L2PetData petData)
-    {
-        Map<Integer, L2PetData> h = _petTable.get(petData.getPetID());
-
-        if (h == null)
-        {
-            Map<Integer, L2PetData> statTable = new FastMap<Integer, L2PetData>();
-            statTable.put(petData.getPetLevel(), petData);
-            _petTable.put(petData.getPetID(), statTable);
-            return;
-        }
-
-        h.put(petData.getPetLevel(), petData);
-    }
-
-    public void addPetData(L2PetData[] petLevelsList)
-    {
-    	for (L2PetData petData: petLevelsList)
-    		addPetData(petData);
-    }
-
-    public L2PetData getPetData(int petID, int petLevel)
-    {
-        //_log.info("Getting id "+petID+" level "+ petLevel);
-        return _petTable.get(petID).get(petLevel);
-    }
-
+	private static L2PetDataTable _instance;
+	
+	//private static final int[] PET_LIST = { 12077, 12312, 12313, 12311, 12527, 12528, 12526 };
+	private static Map<Integer, Map<Integer, L2PetData>> _petTable;
+	
+	public static L2PetDataTable getInstance()
+	{
+		if (_instance == null)
+			_instance = new L2PetDataTable();
+		
+		return _instance;
+	}
+	
+	private L2PetDataTable()
+	{
+		_petTable = new FastMap<Integer, Map<Integer, L2PetData>>();
+	}
+	
+	public void loadPetsData()
+	{
+		java.sql.Connection con = null;
+		
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("SELECT typeID, level, expMax, hpMax, mpMax, patk, pdef, matk, mdef, acc, evasion, crit, speed, atk_speed, cast_speed, feedMax, feedbattle, feednormal, loadMax, hpregen, mpregen, owner_exp_taken FROM pets_stats");
+			ResultSet rset = statement.executeQuery();
+			
+			int petId, petLevel;
+			
+			while (rset.next())
+			{
+				petId = rset.getInt("typeID");
+				petLevel = rset.getInt("level");
+				
+				//build the petdata for this level
+				L2PetData petData = new L2PetData();
+				petData.setPetID(petId);
+				petData.setPetLevel(petLevel);
+				petData.setPetMaxExp(rset.getLong("expMax"));
+				petData.setPetMaxHP(rset.getInt("hpMax"));
+				petData.setPetMaxMP(rset.getInt("mpMax"));
+				petData.setPetPAtk(rset.getInt("patk"));
+				petData.setPetPDef(rset.getInt("pdef"));
+				petData.setPetMAtk(rset.getInt("matk"));
+				petData.setPetMDef(rset.getInt("mdef"));
+				petData.setPetAccuracy(rset.getInt("acc"));
+				petData.setPetEvasion(rset.getInt("evasion"));
+				petData.setPetCritical(rset.getInt("crit"));
+				petData.setPetSpeed(rset.getInt("speed"));
+				petData.setPetAtkSpeed(rset.getInt("atk_speed"));
+				petData.setPetCastSpeed(rset.getInt("cast_speed"));
+				petData.setPetMaxFeed(rset.getInt("feedMax"));
+				petData.setPetFeedNormal(rset.getInt("feednormal"));
+				petData.setPetFeedBattle(rset.getInt("feedbattle"));
+				petData.setPetMaxLoad(rset.getInt("loadMax"));
+				petData.setPetRegenHP(rset.getInt("hpregen"));
+				petData.setPetRegenMP(rset.getInt("mpregen"));
+				petData.setPetRegenMP(rset.getInt("mpregen"));
+				petData.setOwnerExpTaken(rset.getFloat("owner_exp_taken"));
+				
+				// if its the first data for this petid, we initialize its level FastMap
+				if (!_petTable.containsKey(petId))
+					_petTable.put(petId, new FastMap<Integer, L2PetData>());
+				
+				_petTable.get(petId).put(petLevel, petData);
+			}
+			
+			rset.close();
+			statement.close();
+		}
+		catch (Exception e)
+		{
+			_log.warning("Could not load pets stats: " + e);
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	public void addPetData(L2PetData petData)
+	{
+		Map<Integer, L2PetData> h = _petTable.get(petData.getPetID());
+		
+		if (h == null)
+		{
+			Map<Integer, L2PetData> statTable = new FastMap<Integer, L2PetData>();
+			statTable.put(petData.getPetLevel(), petData);
+			_petTable.put(petData.getPetID(), statTable);
+			return;
+		}
+		
+		h.put(petData.getPetLevel(), petData);
+	}
+	
+	public void addPetData(L2PetData[] petLevelsList)
+	{
+		for (L2PetData petData : petLevelsList)
+			addPetData(petData);
+	}
+	
+	public L2PetData getPetData(int petID, int petLevel)
+	{
+		//_log.info("Getting id "+petID+" level "+ petLevel);
+		return _petTable.get(petID).get(petLevel);
+	}
+	
 	/**
 	 * Pets stuffs
 	 */
-    public static boolean isWolf(int npcId)
-    {
-    	return npcId == 12077;
-    }
-    
-    public static boolean isGreatWolf(int npcId)
-    {
-        return npcId == 16030;
-    }
-    public static boolean isWGreatWolf(int npcId)
-    {
-        return npcId == 16037;
-    }
-    public static boolean isBlackWolf(int npcId)
-    {
-        return npcId == 16025;
-    }
-    public static boolean isFenrirWolf(int npcId)
-    {
-        return npcId == 16041;
-    }
-    public static boolean isWFenrirWolf(int npcId)
-    {
-        return npcId == 16042;
-    }
-    
-    public static boolean isSinEater(int npcId)
-    {
-       return npcId == 12564;
-    }
-
-    public static boolean isHatchling(int npcId)
-    {
-    	return npcId > 12310 && npcId < 12314;
-    }
-
-    public static boolean isStrider(int npcId)
-    {
-    	return npcId > 12525 && npcId < 12529;
-    }
-
-    public static boolean isWyvern(int npcId)
-    {
-    	return npcId == 12621;
-    }
-
-    public static boolean isBaby(int npcId)
-    {
-    	return npcId > 12779 && npcId < 12783;
-    }
-    public static boolean isImprovedBaby(int npcId)
-    {
-    	return npcId > 16033 && npcId < 16037;
-    }
-
-    public static boolean isPetFood(int itemId)
-    {
-    	return (itemId == 2515) || (itemId == 4038) || (itemId == 5168) || (itemId == 6316) || (itemId == 7582) || (itemId == 9668) || (itemId == 10425);
-    }
-
-    public static boolean isWolfFood(int itemId)
-    {
-    	return itemId == 2515;
-    }
-    public static boolean isGreatWolfFood(int itemId)
-    {
-        return itemId == 9668;
-    }
-    public static boolean isWGreatWolfFood(int itemId)
-    {
-        return itemId == 9668;
-    }
-    public static boolean isBlackWolfFood(int itemId)
-    {
-        return itemId == 9668;
-    }
-    public static boolean isFenrirWolfFood(int itemId)
-    {
-        return itemId == 9668;
-    }
-    public static boolean isWFenrirWolfFood(int itemId)
-    {
-        return itemId == 9668;
-    }
-
-    public static boolean isSinEaterFood(int itemId)
-    {
-       return itemId == 2515;
-    }
-
-    public static boolean isHatchlingFood(int itemId)
-    {
-    	return itemId == 4038;
-    }
-
-    public static boolean isStriderFood(int itemId)
-    {
-    	return itemId == 5168;
-    }
-
-    public static boolean isWyvernFood(int itemId)
-    {
-    	return itemId == 6316;
-    }
-
-    public static boolean isBabyFood(int itemId)
-    {
-    	return itemId == 7582;
-    }
-    public static boolean isImprovedBabyFood(int itemId)
-    {
-    	return itemId == 10425;
-    }
-
-    public static int getFoodItemId(int npcId)
-    {
-    	switch (npcId)
+	public static boolean isWolf(int npcId)
+	{
+		return npcId == 12077;
+	}
+	
+	public static boolean isGreatWolf(int npcId)
+	{
+		return npcId == 16030;
+	}
+	
+	public static boolean isWGreatWolf(int npcId)
+	{
+		return npcId == 16037;
+	}
+	
+	public static boolean isBlackWolf(int npcId)
+	{
+		return npcId == 16025;
+	}
+	
+	public static boolean isFenrirWolf(int npcId)
+	{
+		return npcId == 16041;
+	}
+	
+	public static boolean isWFenrirWolf(int npcId)
+	{
+		return npcId == 16042;
+	}
+	
+	public static boolean isSinEater(int npcId)
+	{
+		return npcId == 12564;
+	}
+	
+	public static boolean isHatchling(int npcId)
+	{
+		return npcId > 12310 && npcId < 12314;
+	}
+	
+	public static boolean isStrider(int npcId)
+	{
+		return npcId > 12525 && npcId < 12529;
+	}
+	
+	public static boolean isWyvern(int npcId)
+	{
+		return npcId == 12621;
+	}
+	
+	public static boolean isBaby(int npcId)
+	{
+		return npcId > 12779 && npcId < 12783;
+	}
+	
+	public static boolean isImprovedBaby(int npcId)
+	{
+		return npcId > 16033 && npcId < 16037;
+	}
+	
+	public static boolean isPetFood(int itemId)
+	{
+		switch (itemId)
+		{
+			case 2515:
+			case 4038:
+			case 5168:
+			case 6316:
+			case 7582:
+			case 9668:
+			case 10425:
+			{
+				return true;
+			}
+			default:
+			{
+				return false;
+			}
+		}
+	}
+	
+	public static boolean isWolfFood(int itemId)
+	{
+		return itemId == 2515;
+	}
+	
+	public static boolean isGreatWolfFood(int itemId)
+	{
+		return itemId == 9668;
+	}
+	
+	public static boolean isWGreatWolfFood(int itemId)
+	{
+		return itemId == 9668;
+	}
+	
+	public static boolean isBlackWolfFood(int itemId)
+	{
+		return itemId == 9668;
+	}
+	
+	public static boolean isFenrirWolfFood(int itemId)
+	{
+		return itemId == 9668;
+	}
+	
+	public static boolean isWFenrirWolfFood(int itemId)
+	{
+		return itemId == 9668;
+	}
+	
+	public static boolean isSinEaterFood(int itemId)
+	{
+		return itemId == 2515;
+	}
+	
+	public static boolean isHatchlingFood(int itemId)
+	{
+		return itemId == 4038;
+	}
+	
+	public static boolean isStriderFood(int itemId)
+	{
+		return itemId == 5168;
+	}
+	
+	public static boolean isWyvernFood(int itemId)
+	{
+		return itemId == 6316;
+	}
+	
+	public static boolean isBabyFood(int itemId)
+	{
+		return itemId == 7582;
+	}
+	
+	public static boolean isImprovedBabyFood(int itemId)
+	{
+		return itemId == 10425;
+	}
+	
+	public static int getFoodItemId(int npcId)
+	{
+		switch (npcId)
 		{
 			case 12077:// Wolf
 				return 2515;
-            case 16030:// Great Wolf 
-            case 16025:// Black Wolf
-            case 16037:// White Great Wolf	
-            case 16041:// Fenrir  
-            case 16042:// White Fenrir  
-                return 9668;    
+			case 16030:// Great Wolf 
+			case 16025:// Black Wolf
+			case 16037:// White Great Wolf	
+			case 16041:// Fenrir  
+			case 16042:// White Fenrir  
+				return 9668;
 			case 12564://Sin Eater
 				return 2515;
-
+				
 			case 12311:// hatchling of wind
 			case 12312:// hatchling of star
 			case 12313:// hatchling of twilight
-	    		return 4038;
-
+				return 4038;
+				
 			case 12526:// wind strider
 			case 12527:// Star strider
 			case 12528:// Twilight strider
-	    		return 5168;
-
+				return 5168;
+				
 			case 12780:// Baby Buffalo
 			case 12782:// Baby Cougar
 			case 12781:// Baby Kookaburra
-	    		return 7582;
+				return 7582;
 			case 16034:// Improved Baby Buffalo
 			case 16036:// Improved Baby Cougar	
 			case 16035:// Improved Baby Kookaburra
-	    		return 10425;	
+				return 10425;
 			default:
 				return 0;
 		}
 	}
-
-    public static boolean isPetItem(int itemId)
-    {
-    	return (itemId == 2375 // Wolf
-                || itemId == 10163// Great Wolf
-                || itemId == 10307 // White Great Wolf
-                || itemId == 9882 // Black Wolf
-                || itemId == 10426 // Fenrir
-                || itemId == 10611 // White Fenrir
-    			|| itemId == 4425 //Sin Eater
-				|| itemId == 3500 
-				|| itemId == 3501
-				|| itemId == 3502 // hatchlings
-				|| itemId == 4422
-				|| itemId == 4423
-				|| itemId == 4424 // striders
-				|| itemId == 8663 // Wyvern
-				|| itemId == 6648
-				|| itemId == 6649
-				|| itemId == 6650
-				|| itemId == 10311
-				|| itemId == 10312
-				|| itemId == 10313); // Babies
-    }
-
-    public static int[] getPetItemsByNpc(int npcId)
-    {
+	
+	public static boolean isPetItem(int itemId)
+	{
+		switch (itemId)
+		{
+			case 2375: // Wolf
+			case 3500:
+			case 3501:
+			case 3502: // hatchlings
+			case 4422:
+			case 4423:
+			case 4424: // striders
+			case 4425: //Sin Eater
+			case 6648:
+			case 6649:
+			case 6650:
+			case 10311:
+			case 10312:
+			case 10313: // Babies
+			case 10163: // Great Wolf
+			case 10307: // White Great Wolf
+			case 9882: // Black Wolf
+			case 10426: // Fenrir
+			case 10611: // White Fenrir
+			case 8663: // Wyvern
+			{
+				return true;
+			}
+			default:
+			{
+				return false;
+			}
+		}
+	}
+	
+	public static int[] getPetItemsByNpc(int npcId)
+	{
 		switch (npcId)
 		{
 			case 12077:// Wolf
-				return new int[]{2375};
-            case 16025:// Black Wolf 
-                return new int[]{9882};
-            case 16030:// Great Wolf 
-                return new int[]{10163};
-            case 16037:// White Great Wolf 
-                return new int[]{10307};    
-            case 16041:// Fenrir 
-                return new int[]{10426};
-            case 16042:// White Fenrir 
-                return new int[]{10611};
+				return new int[]
+				{
+					2375
+				};
+			case 16025:// Black Wolf 
+				return new int[]
+				{
+					9882
+				};
+			case 16030:// Great Wolf 
+				return new int[]
+				{
+					10163
+				};
+			case 16037:// White Great Wolf 
+				return new int[]
+				{
+					10307
+				};
+			case 16041:// Fenrir 
+				return new int[]
+				{
+					10426
+				};
+			case 16042:// White Fenrir 
+				return new int[]
+				{
+					10611
+				};
 			case 12564://Sin Eater
-				return new int[]{4425};
-
+				return new int[]
+				{
+					4425
+				};
+				
 			case 12311:// hatchling of wind
 			case 12312:// hatchling of star
 			case 12313:// hatchling of twilight
-	    		return new int[]{3500, 3501, 3502};
-
+				return new int[]
+				{
+					3500, 3501, 3502
+				};
+				
 			case 12526:// wind strider
 			case 12527:// Star strider
 			case 12528:// Twilight strider
-	    		return new int[]{4422, 4423, 4424};
-
-            case 12621:// Wyvern
-               return new int[]{8663};
-
+				return new int[]
+				{
+					4422, 4423, 4424
+				};
+				
+			case 12621:// Wyvern
+				return new int[]
+				{
+					8663
+				};
+				
 			case 12780:// Baby Buffalo
 			case 12782:// Baby Cougar
 			case 12781:// Baby Kookaburra
-	    		return new int[]{6648, 6649, 6650};
-	    	
+				return new int[]
+				{
+					6648, 6649, 6650
+				};
+				
 			case 16034:// Improved Baby Buffalo
 			case 16036:// Improved Baby Cougar
 			case 16035:// Improved Baby Kookaburra	
-				return new int[]{10311, 10312, 10313};
-
-			// unknown item id.. should never happen
+				return new int[]
+				{
+					10311, 10312, 10313
+				};
+				
+				// unknown item id.. should never happen
 			default:
-				return new int[]{0};
+				return new int[]
+				{
+					0
+				};
 		}
-    }
-
-
-    public static boolean isMountable(int npcId)
-    {
-    	return npcId == 12526		// wind strider
-		    	|| npcId == 12527	// star strider
-		    	|| npcId == 12528	// twilight strider
-		    	|| npcId == 12621	// wyvern
-		    	|| npcId == 16037 // Great Snow Wolf
-    	        || npcId == 16041 // Fenrir Wolf
-    	        || npcId == 16042; // White Fenrir Wolf
-    }
+	}
+	
+	public static boolean isMountable(int npcId)
+	{
+		return npcId == 12526 // wind strider
+				|| npcId == 12527 // star strider
+				|| npcId == 12528 // twilight strider
+				|| npcId == 12621 // wyvern
+				|| npcId == 16037 // Great Snow Wolf
+				|| npcId == 16041 // Fenrir Wolf
+				|| npcId == 16042; // White Fenrir Wolf
+	}
 }

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/model/L2Skill.java

@@ -516,9 +516,9 @@ public abstract class L2Skill
                 {
                     _canLearn.add(ClassId.valueOf(cls));
                 }
-                catch (Throwable t)
+                catch (Exception e)
                 {
-                    _log.log(Level.SEVERE, "Bad class " + cls + " to learn skill", t);
+                    _log.log(Level.SEVERE, "Bad class " + cls + " to learn skill", e);
                 }
             }
         }
@@ -539,9 +539,9 @@ public abstract class L2Skill
                 {
                     _teachers.add(Integer.parseInt(npcid));
                 }
-                catch (Throwable t)
+                catch (Exception e)
                 {
-                    _log.log(Level.SEVERE, "Bad teacher id " + npcid + " to teach skill", t);
+                    _log.log(Level.SEVERE, "Bad teacher id " + npcid + " to teach skill", e);
                 }
             }
         }

+ 5 - 15
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2DecoyInstance.java

@@ -15,9 +15,8 @@
 package net.sf.l2j.gameserver.model.actor.instance;
 
 import java.util.concurrent.Future;
-import java.util.logging.Logger;
+import java.util.logging.Level;
 
-import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.datatables.SkillTable;
 import net.sf.l2j.gameserver.model.L2Character;
@@ -29,18 +28,11 @@ import net.sf.l2j.gameserver.templates.L2NpcTemplate;
 
 public class L2DecoyInstance extends L2Decoy
 {
-    protected static final Logger log = Logger.getLogger(L2DecoyInstance.class.getName());
-    
     private int _totalLifeTime;
-    
     private int _timeRemaining;
-    
     private Future<?> _DecoyLifeTask;
-    
     private Future<?> _HateSpam;
-    
-    public L2DecoyInstance(int objectId, L2NpcTemplate template,
-            L2PcInstance owner, L2Skill skill)
+    public L2DecoyInstance(int objectId, L2NpcTemplate template, L2PcInstance owner, L2Skill skill)
     {
         super(objectId, template, owner);
         if (skill != null)
@@ -105,10 +97,9 @@ public class L2DecoyInstance extends L2Decoy
                     _Decoy.unSummon(_activeChar);
                 }
             }
-            catch (Throwable e)
+            catch (Exception e)
             {
-                if (Config.DEBUG)
-                    log.warning("Decoy Error:" + e);
+            	_log.log(Level.SEVERE, "Decoy Error: ", e);
             }
         }
     }
@@ -134,8 +125,7 @@ public class L2DecoyInstance extends L2Decoy
             }
             catch (Throwable e)
             {
-                if (Config.DEBUG)
-                    log.warning("Decoy Error:" + e);
+            	_log.log(Level.SEVERE, "Decoy Error: ", e);
             }
         }
     }

Plik diff jest za duży
+ 600 - 572
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2DoorInstance.java


+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2FishermanInstance.java

@@ -104,7 +104,7 @@ public class L2FishermanInstance extends L2MerchantInstance
         	return;
 		
 		L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(player);
-		AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.skillType.Fishing);
+		AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.Fishing);
 
 		int counts = 0;
 

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2FolkInstance.java

@@ -107,7 +107,7 @@ public class L2FolkInstance extends L2NpcInstance
 		}
 
 		L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(player, classId);
-		AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.skillType.Usual);
+		AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.Usual);
 		int counts = 0;
 
 		for (L2SkillLearn s: skills)

Plik diff jest za duży
+ 958 - 920
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java


+ 149 - 55
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java

@@ -689,16 +689,15 @@ public final class L2PcInstance extends L2PlayableInstance
 			_reference = reference;
 			_sendMessage = sendMessage;
 		}
-		@SuppressWarnings("synthetic-access")
 		public void run()
 		{
 			try
 			{
 				addItem(_process, _itemId, _count, _reference, _sendMessage);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				_log.log(Level.WARNING, "", t);
+				_log.log(Level.WARNING, "", e);
 			}
 		}
 	}
@@ -4076,11 +4075,9 @@ public final class L2PcInstance extends L2PlayableInstance
     
     class GameGuardCheck implements Runnable
     {
-        
         /**
          * @see java.lang.Runnable#run()
          */
-        @SuppressWarnings("synthetic-access")
         public void run()
         {
             L2GameClient client = L2PcInstance.this.getClient();
@@ -7018,6 +7015,9 @@ public final class L2PcInstance extends L2PlayableInstance
 			
 			for (L2Effect effect : getAllEffects())
 			{
+				if (effect == null)
+					continue;
+				
 				L2Skill skill = effect.getSkill();
 				int skillId = skill.getId();
 				
@@ -10336,29 +10336,60 @@ public final class L2PcInstance extends L2PlayableInstance
 		// Check if the L2PcInstance is in observer mode to set its position to its position before entering in observer mode
 		if (inObserverMode())
 			setXYZ(_obsX, _obsY, _obsZ);
-
+		
 		// Set the online Flag to True or False and update the characters table of the database with online status and lastAccess (called when login and logout)
-		try { setOnlineStatus(false); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
+		try
+		{
+			setOnlineStatus(false);
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
+		
 		// Stop the HP/MP/CP Regeneration task (scheduled tasks)
-		try { stopAllTimers(); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
+		try
+		{
+			stopAllTimers();
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
+		
 		// Stop crafting, if in progress
-		try { RecipeController.getInstance().requestMakeItemAbort(this); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
+		try
+		{
+			RecipeController.getInstance().requestMakeItemAbort(this);
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
+		
 		// Cancel Attak or Cast
-		try { setTarget(null); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
+		try
+		{
+			setTarget(null);
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
 		
 		try
 		{
-			if(_forceBuff != null)
+			if (_forceBuff != null)
 				abortCast();
-
-			for(L2Character character : getKnownList().getKnownCharacters())
-				if(character.getForceBuff() != null && character.getForceBuff().getTarget() == this)
+			
+			for (L2Character character : getKnownList().getKnownCharacters())
+				if (character.getForceBuff() != null && character.getForceBuff().getTarget() == this)
 					character.abortCast();
 		}
-		catch(Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
 		
 		try
 		{
@@ -10373,90 +10404,153 @@ public final class L2PcInstance extends L2PlayableInstance
 				}
 			}
 		}
-		catch (Throwable t)
+		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "deleteMe()", t);
+			_log.log(Level.SEVERE, "deleteMe()", e);
 		}
-
+		
 		// Remove from world regions zones
-        L2WorldRegion oldRegion = getWorldRegion();
+		L2WorldRegion oldRegion = getWorldRegion();
 		
 		// Remove the L2PcInstance from the world
 		if (isVisible())
-			try { decayMe(); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
-	    if (oldRegion != null) oldRegion.removeFromZones(this);
-			
+			try
+			{
+				decayMe();
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, "deleteMe()", e);
+			}
+		
+		if (oldRegion != null)
+			oldRegion.removeFromZones(this);
+		
 		// If a Party is in progress, leave it (and festival party)
-		if (isInParty()) try { leaveParty(); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
+		if (isInParty())
+			try
+			{
+				leaveParty();
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, "deleteMe()", e);
+			}
+		
 		if (getOlympiadGameId() != -1) // handle removal from olympiad game
-		    Olympiad.getInstance().removeDisconnectedCompetitor(this);
+			Olympiad.getInstance().removeDisconnectedCompetitor(this);
 		
 		// If the L2PcInstance has Pet, unsummon it
 		if (getPet() != null)
 		{
-			try { getPet().unSummon(this); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }// returns pet to control item
+			try
+			{
+				getPet().unSummon(this);
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, "deleteMe()", e);
+			}// returns pet to control item
 		}
-
+		
 		if (getClanId() != 0 && getClan() != null)
 		{
 			// set the status for pledge member list to OFFLINE
 			try
 			{
 				L2ClanMember clanMember = getClan().getClanMember(getName());
-				if (clanMember != null) clanMember.setPlayerInstance(null);
-			} catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
+				if (clanMember != null)
+					clanMember.setPlayerInstance(null);
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, "deleteMe()", e);
+			}
 		}
-
+		
 		if (getActiveRequester() != null)
 		{
 			// deals with sudden exit in the middle of transaction
 			setActiveRequester(null);
 		}
-
+		
 		// If the L2PcInstance is a GM, remove it from the GM List
 		if (isGM())
 		{
-			try { GmListTable.getInstance().deleteGm(this); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
+			try
+			{
+				GmListTable.getInstance().deleteGm(this);
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, "deleteMe()", e);
+			}
 		}
-
+		
 		// Update database with items in its inventory and remove them from the world
-		try { getInventory().deleteMe(); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
+		try
+		{
+			getInventory().deleteMe();
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
+		
 		// Update database with items in its warehouse and remove them from the world
-		try { clearWarehouse(); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-		if(Config.WAREHOUSE_CACHE)
+		try
+		{
+			clearWarehouse();
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
+		if (Config.WAREHOUSE_CACHE)
 			WarehouseCacheManager.getInstance().remCacheTask(this);
-
+		
 		// Update database with items in its freight and remove them from the world
-		try { getFreight().deleteMe(); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
+		try
+		{
+			getFreight().deleteMe();
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
+		
 		// Remove all L2Object from _knownObjects and _knownPlayer of the L2Character then cancel Attak or Cast and notify AI
-		try { getKnownList().removeAllKnownObjects(); } catch (Throwable t) {_log.log(Level.SEVERE, "deleteMe()", t); }
-
+		try
+		{
+			getKnownList().removeAllKnownObjects();
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deleteMe()", e);
+		}
+		
 		// Close the connection with the client
 		closeNetConnection();
-
+		
 		// remove from flood protector
 		FloodProtector.getInstance().removePlayer(getObjectId());
-
+		
 		if (getClanId() > 0)
 			getClan().broadcastToOtherOnlineMembers(new PledgeShowMemberListUpdate(this), this);
-			//ClanTable.getInstance().getClan(getClanId()).broadcastToOnlineMembers(new PledgeShowMemberListAdd(this));
-
-		for(L2PcInstance player : _snoopedPlayer)
+		//ClanTable.getInstance().getClan(getClanId()).broadcastToOnlineMembers(new PledgeShowMemberListAdd(this));
+		
+		for (L2PcInstance player : _snoopedPlayer)
 			player.removeSnooper(this);
-
-		for(L2PcInstance player : _snoopListener)
+		
+		for (L2PcInstance player : _snoopListener)
 			player.removeSnooped(this);
-
+		
 		if (_chanceSkills != null)
 		{
 			_chanceSkills.setOwner(null);
 			_chanceSkills = null;
 		}
-
+		
 		// Remove L2Object object from _allObjects of L2World
 		L2World.getInstance().removeObject(this);
 		L2World.getInstance().removeFromAllPlayers(this); // force remove in case of crash during teleport

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PetInstance.java

@@ -161,7 +161,7 @@ public class L2PetInstance extends L2Summon
 
 				broadcastStatusUpdate();
 			}
-            catch (Throwable e)
+            catch (Exception e)
             {
                 _logPet.log(Level.SEVERE, "Pet [ObjectId: "+getObjectId()+"] a feed task error has occurred", e);
             }

+ 137 - 109
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PetManagerInstance.java

@@ -17,6 +17,8 @@
  */
 package net.sf.l2j.gameserver.model.actor.instance;
 
+import java.util.logging.Level;
+
 import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.ai.CtrlIntention;
@@ -45,7 +47,7 @@ import net.sf.l2j.gameserver.templates.L2NpcTemplate;
 public class L2PetManagerInstance extends L2MerchantInstance
 {
 	//private static Logger _log = Logger.getLogger(L2SymbolMakerInstance.class.getName());
-
+	
 	public L2PetManagerInstance(int objectID, L2NpcTemplate template)
 	{
 		super(objectID, template);
@@ -53,17 +55,18 @@ public class L2PetManagerInstance extends L2MerchantInstance
 	
 	public void onAction(L2PcInstance player)
 	{
-		if (!canTarget(player)) return;
-
+		if (!canTarget(player))
+			return;
+		
 		// Check if the L2PcInstance already target the L2NpcInstance
 		if (this != player.getTarget())
 		{
 			// Set the target of the L2PcInstance player
 			player.setTarget(this);
-
+			
 			// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
 			player.sendPacket(new MyTargetSelected(getObjectId(), 0));
-
+			
 			// Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client
 			player.sendPacket(new ValidateLocation(this));
 		}
@@ -83,72 +86,98 @@ public class L2PetManagerInstance extends L2MerchantInstance
 		// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
 		player.sendPacket(ActionFailed.STATIC_PACKET);
 	}
-
-    private void showMessageWindow(L2PcInstance player)
-    {
-        String filename = "data/html/petmanager/"+getNpcId()+".htm";
-
-        NpcHtmlMessage html = new NpcHtmlMessage(1);
-        html.setFile(filename);
-        if (Config.ALLOW_RENTPET && Config.LIST_PET_RENT_NPC.contains(getNpcId()))
-        	html.replace("_Quest", "_RentPet\">Rent Pet</a><br><a action=\"bypass -h npc_%objectId%_Quest");
-        html.replace("%objectId%", String.valueOf(getObjectId()));
-        html.replace("%npcname%", getName());
-        player.sendPacket(html);
-    }
-    
+	
+	private void showMessageWindow(L2PcInstance player)
+	{
+		String filename = "data/html/petmanager/" + getNpcId() + ".htm";
+		
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
+		html.setFile(filename);
+		if (Config.ALLOW_RENTPET && Config.LIST_PET_RENT_NPC.contains(getNpcId()))
+			html.replace("_Quest", "_RentPet\">Rent Pet</a><br><a action=\"bypass -h npc_%objectId%_Quest");
+		html.replace("%objectId%", String.valueOf(getObjectId()));
+		html.replace("%npcname%", getName());
+		player.sendPacket(html);
+	}
+	
 	public void onBypassFeedback(L2PcInstance player, String command)
 	{
 		if (command.startsWith("exchange"))
-        {
-        	String[] params = command.split( " " );
-        	int val = Integer.parseInt(params[1]);
-        	switch(val)
-        	{
-        		case 1: exchange(player, 7585, 6650); break;
-        		case 2: exchange(player, 7583, 6648); break;
-        		case 3: exchange(player, 7584, 6649); break;
-        	}
-        }
-        else if (command.startsWith("evolve"))
-        {
-        	String[] params = command.split( " " );
-        	int val = Integer.parseInt(params[1]);
-        	switch(val)
-        	{
-        		//Info evolve(player, "curent pet summon item", "new pet summon item", "lvl required to evolve")
-        		//To ignore evolve just put value 0 where do you like example: evolve(player, 0, 9882, 55);
-        		case 1: evolve(player, 2375, 9882, 55); break;
-        		case 2: evolve(player, 9882, 10426, 70); break;
-        		case 3: evolve(player, 6648, 10311, 55); break;
-        		case 4: evolve(player, 6650, 10313, 55); break;
-        		case 5: evolve(player, 6649, 10312, 55); break;
-        	}
-        }
-        else if (command.startsWith("restore"))
-        {
-        	String[] params = command.split( " " );
-        	int val = Integer.parseInt(params[1]);
-        	switch(val)
-        	{
-        		//Info evolve(player, "curent pet summon item", "new pet summon item", "lvl required to evolve")
-        		case 1: evolve(player, 9882, 2375, 55); break;
-        		case 2: evolve(player, 10611, 10426, 55); break;
-        		case 3: evolve(player, 0, 4422, 55); break;
-        		case 4: evolve(player, 0, 4423, 55); break;
-        		case 5: evolve(player, 0, 4424, 55); break;
-        	}
-        }
+		{
+			String[] params = command.split(" ");
+			int val = Integer.parseInt(params[1]);
+			switch (val)
+			{
+				case 1:
+					exchange(player, 7585, 6650);
+					break;
+				case 2:
+					exchange(player, 7583, 6648);
+					break;
+				case 3:
+					exchange(player, 7584, 6649);
+					break;
+			}
+		}
+		else if (command.startsWith("evolve"))
+		{
+			String[] params = command.split(" ");
+			int val = Integer.parseInt(params[1]);
+			switch (val)
+			{
+				//Info evolve(player, "curent pet summon item", "new pet summon item", "lvl required to evolve")
+				//To ignore evolve just put value 0 where do you like example: evolve(player, 0, 9882, 55);
+				case 1:
+					evolve(player, 2375, 9882, 55);
+					break;
+				case 2:
+					evolve(player, 9882, 10426, 70);
+					break;
+				case 3:
+					evolve(player, 6648, 10311, 55);
+					break;
+				case 4:
+					evolve(player, 6650, 10313, 55);
+					break;
+				case 5:
+					evolve(player, 6649, 10312, 55);
+					break;
+			}
+		}
+		else if (command.startsWith("restore"))
+		{
+			String[] params = command.split(" ");
+			int val = Integer.parseInt(params[1]);
+			switch (val)
+			{
+				//Info evolve(player, "curent pet summon item", "new pet summon item", "lvl required to evolve")
+				case 1:
+					evolve(player, 9882, 2375, 55);
+					break;
+				case 2:
+					evolve(player, 10611, 10426, 55);
+					break;
+				case 3:
+					evolve(player, 0, 4422, 55);
+					break;
+				case 4:
+					evolve(player, 0, 4423, 55);
+					break;
+				case 5:
+					evolve(player, 0, 4424, 55);
+					break;
+			}
+		}
 		super.onBypassFeedback(player, command);
 	}
 	
 	public final void exchange(L2PcInstance player, int itemIdtake, int itemIdgive)
-    {
+	{
 		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 		if (player.destroyItemByItemId("Consume", itemIdtake, 1, this, true))
 		{
 			player.addItem("", itemIdgive, 1, this, true);
-			html.setFile("data/html/petmanager/"+getNpcId()+".htm");
+			html.setFile("data/html/petmanager/" + getNpcId() + ".htm");
 			player.sendPacket(html);
 		}
 		else
@@ -156,84 +185,82 @@ public class L2PetManagerInstance extends L2MerchantInstance
 			html.setFile("data/html/petmanager/exchange_no.htm");
 			player.sendPacket(html);
 		}
-    }
+	}
 	
 	public final void evolve(L2PcInstance player, int itemIdtake, int itemIdgive, int petminlvl)
-    {
+	{
 		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 		L2Summon curpet = player.getPet();
 		
-		
-		
-		if((curpet==null) || (itemIdtake==0)  || (itemIdgive==0)  || (petminlvl==0))
+		if ((curpet == null) || (itemIdtake == 0) || (itemIdgive == 0) || (petminlvl == 0))
 		{
 			html.setFile("data/html/petmanager/evolve_no.htm");
 			player.sendPacket(html);
 			return;
 		}
 		
-		L2ItemInstance item=null;
+		L2ItemInstance item = null;
 		long petexp = curpet.getStat().getExp();
 		String oldname = curpet.getName();
 		
 		L2SummonItem olditem = SummonItemsData.getInstance().getSummonItem(itemIdtake);
 		
-		if(olditem == null)
+		if (olditem == null)
 			return;
 		
 		int oldnpcID = olditem.getNpcId();
 		
-		if(curpet.getStat().getLevel() < petminlvl || curpet.getNpcId() != oldnpcID)
+		if (curpet.getStat().getLevel() < petminlvl || curpet.getNpcId() != oldnpcID)
 		{
 			html.setFile("data/html/petmanager/evolve_no.htm");
 			player.sendPacket(html);
 			return;
-		}		
-			
-		item = player.getInventory().addItem("", itemIdgive, 1, player, null);		
+		}
+		
+		item = player.getInventory().addItem("", itemIdgive, 1, player, null);
 		ItemList il = new ItemList(player, true);
 		player.sendPacket(il);
 		
 		L2SummonItem sitem = SummonItemsData.getInstance().getSummonItem(item.getItemId());
 		
-        int npcID = sitem.getNpcId();
-
-        if (npcID == 0)
-        	return;
-        
-        L2NpcTemplate npcTemplate = NpcTable.getInstance().getTemplate(npcID);
+		int npcID = sitem.getNpcId();
+		
+		if (npcID == 0)
+			return;
+		
+		L2NpcTemplate npcTemplate = NpcTable.getInstance().getTemplate(npcID);
 		
 		curpet.unSummon(player);
 		
 		//Summoning new pet
-        L2PetInstance petSummon = L2PetInstance.spawnPet(npcTemplate, player, item);
-
-    	if (petSummon == null)
-    		return;
-    	
-    	//If new pet ok, deleting old pet item
-    	player.destroyItem("", curpet.getControlItemId(), 1, this, true);
-   
-    	petSummon.getStat().addExp(petexp);
+		L2PetInstance petSummon = L2PetInstance.spawnPet(npcTemplate, player, item);
+		
+		if (petSummon == null)
+			return;
+		
+		//If new pet ok, deleting old pet item
+		player.destroyItem("", curpet.getControlItemId(), 1, this, true);
+		
+		petSummon.getStat().addExp(petexp);
 		petSummon.setCurrentHp(petSummon.getMaxHp());
 		petSummon.setCurrentMp(petSummon.getMaxMp());
 		petSummon.setCurrentFed(petSummon.getMaxFed());
-    	petSummon.setTitle(player.getName());
-    	petSummon.setName(oldname);
-   		petSummon.setRunning();
-    	petSummon.store();
-
-        player.setPet(petSummon);
-
-        player.sendPacket(new MagicSkillUse(this, 2046, 1, 1000, 600000));
-        player.sendPacket(new SystemMessage(SystemMessageId.SUMMON_A_PET));
-        L2World.getInstance().storeObject(petSummon);
-    	petSummon.spawnMe(player.getX()+50, player.getY()+100, player.getZ());
-    	petSummon.startFeed(false);
-    	item.setEnchantLevel(petSummon.getLevel());
-    	
+		petSummon.setTitle(player.getName());
+		petSummon.setName(oldname);
+		petSummon.setRunning();
+		petSummon.store();
+		
+		player.setPet(petSummon);
+		
+		player.sendPacket(new MagicSkillUse(this, 2046, 1, 1000, 600000));
+		player.sendPacket(new SystemMessage(SystemMessageId.SUMMON_A_PET));
+		L2World.getInstance().storeObject(petSummon);
+		petSummon.spawnMe(player.getX() + 50, player.getY() + 100, player.getZ());
+		petSummon.startFeed(false);
+		item.setEnchantLevel(petSummon.getLevel());
+		
 		ThreadPoolManager.getInstance().scheduleGeneral(new EvolveFinalizer(player, petSummon), 900);
-
+		
 		if (petSummon.getCurrentFed() <= 0)
 			ThreadPoolManager.getInstance().scheduleGeneral(new EvolveFeedWait(player, petSummon), 60000);
 		else
@@ -243,46 +270,47 @@ public class L2PetManagerInstance extends L2MerchantInstance
 	{
 		private L2PcInstance _activeChar;
 		private L2PetInstance _petSummon;
-
+		
 		EvolveFeedWait(L2PcInstance activeChar, L2PetInstance petSummon)
 		{
 			_activeChar = activeChar;
 			_petSummon = petSummon;
 		}
-
+		
 		public void run()
 		{
 			try
 			{
-				if (_petSummon.getCurrentFed() <= 0 )
+				if (_petSummon.getCurrentFed() <= 0)
 					_petSummon.unSummon(_activeChar);
 				else
 					_petSummon.startFeed(false);
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
-
+	
 	static class EvolveFinalizer implements Runnable
 	{
 		private L2PcInstance _activeChar;
 		private L2PetInstance _petSummon;
-
+		
 		EvolveFinalizer(L2PcInstance activeChar, L2PetInstance petSummon)
 		{
 			_activeChar = activeChar;
 			_petSummon = petSummon;
 		}
-
+		
 		public void run()
 		{
 			try
 			{
 				_activeChar.sendPacket(new MagicSkillLaunched(_activeChar, 2046, 1));
 				_petSummon.setFollowStatus(true);
-		        _petSummon.setShowSummonAnimation(false);
+				_petSummon.setShowSummonAnimation(false);
 			}
 			catch (Throwable e)
 			{

+ 0 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SepulcherNpcInstance.java

@@ -387,7 +387,6 @@ public class L2SepulcherNpcInstance extends L2NpcInstance
 			_DoorId = doorId;
 		}
 
-		@SuppressWarnings("synthetic-access")
 		public void run()
 		{
 			try

+ 224 - 235
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SummonInstance.java

@@ -29,196 +29,193 @@ import net.sf.l2j.gameserver.templates.L2NpcTemplate;
 
 public class L2SummonInstance extends L2Summon
 {
-    protected static final Logger log = Logger.getLogger(L2SummonInstance.class.getName());
-
-    private float _expPenalty = 0; // exp decrease multiplier (i.e. 0.3 (= 30%) for shadow)
-    private int _itemConsumeId;
-    private int _itemConsumeCount;
-    private int _itemConsumeSteps;
-    private final int _totalLifeTime;
-    private final int _timeLostIdle;
-    private final int _timeLostActive;
-    private int _timeRemaining;
-    private int _nextItemConsumeTime;
-    public int lastShowntimeRemaining;  // Following FbiAgent's example to avoid sending useless packets
-
-    private Future<?> _summonLifeTask;
-
-    public L2SummonInstance(int objectId, L2NpcTemplate template, L2PcInstance owner, L2Skill skill)
-    {
-        super(objectId, template, owner);
-        setShowSummonAnimation(true);
-
-        if (skill != null)
-        {
-            _itemConsumeId = skill.getItemConsumeIdOT();
-            _itemConsumeCount = skill.getItemConsumeOT();
-            _itemConsumeSteps = skill.getItemConsumeSteps();
-            _totalLifeTime = skill.getTotalLifeTime();
-            _timeLostIdle = skill.getTimeLostIdle();
-            _timeLostActive = skill.getTimeLostActive();
-        }
-        else
-        {
-        	// defaults
-            _itemConsumeId = 0;
-            _itemConsumeCount = 0;
-            _itemConsumeSteps = 0;
-            _totalLifeTime = 1200000; // 20 minutes
-            _timeLostIdle = 1000;
-            _timeLostActive = 1000;
-        }
-        _timeRemaining = _totalLifeTime;
-        lastShowntimeRemaining = _totalLifeTime;
-
-        if (_itemConsumeId == 0)
-        	_nextItemConsumeTime = -1;	// do not consume
-        else if (_itemConsumeSteps == 0)
-        	_nextItemConsumeTime = -1;	// do not consume
-        else
-        	_nextItemConsumeTime = _totalLifeTime - _totalLifeTime/(_itemConsumeSteps+1);
-
-        // When no item consume is defined task only need to check when summon life time has ended.
-        // Otherwise have to destroy items from owner's inventory in order to let summon live.
-        int delay = 1000;
-
-        if (Config.DEBUG && (_itemConsumeCount != 0))
-            _log.warning("L2SummonInstance: Item Consume ID: " + _itemConsumeId + ", Count: "
-                + _itemConsumeCount + ", Rate: " + _itemConsumeSteps + " times.");
-        if (Config.DEBUG) _log.warning("L2SummonInstance: Task Delay " + (delay / 1000) + " seconds.");
-
-        _summonLifeTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(
-               new SummonLifetime(getOwner(), this), delay, delay);
-    }
-
-    @Override
-    public final int getLevel()
-    {
-        return (getTemplate() != null ? getTemplate().level : 0);
-    }
-
-    @Override
-    public int getSummonType()
-    {
-        return 1;
-    }
-
-    public void setExpPenalty(float expPenalty)
-    {
-        _expPenalty = expPenalty;
-    }
-
-    public float getExpPenalty()
-    {
-        return _expPenalty;
-    }
-
-    public int getItemConsumeCount()
-    {
-        return _itemConsumeCount;
-    }
-
-    public int getItemConsumeId()
-    {
-        return _itemConsumeId;
-    }
-
-    public int getItemConsumeSteps()
-    {
-        return _itemConsumeSteps;
-    }
-
-    public int getNextItemConsumeTime()
-    {
-        return _nextItemConsumeTime;
-    }
-
-    public int getTotalLifeTime()
-    {
-        return _totalLifeTime;
-    }
-
-    public int getTimeLostIdle()
-    {
-        return _timeLostIdle;
-    }
-
-    public int getTimeLostActive()
-    {
-        return _timeLostActive;
-    }
-
-    public int getTimeRemaining()
-    {
-        return _timeRemaining;
-    }
-
-    public void setNextItemConsumeTime(int value)
-    {
-        _nextItemConsumeTime = value;
-    }
-
-    public void decNextItemConsumeTime(int value)
-    {
-        _nextItemConsumeTime -= value;
-    }
-
-    public void decTimeRemaining(int value)
-    {
-    	_timeRemaining -= value;
-    }
-
-    public void addExpAndSp(int addToExp, int addToSp)
-    {
-        getOwner().addExpAndSp(addToExp, addToSp);
-    }
-
-    @Override
+	protected static final Logger log = Logger.getLogger(L2SummonInstance.class.getName());
+	
+	private float _expPenalty = 0; // exp decrease multiplier (i.e. 0.3 (= 30%) for shadow)
+	private int _itemConsumeId;
+	private int _itemConsumeCount;
+	private int _itemConsumeSteps;
+	private final int _totalLifeTime;
+	private final int _timeLostIdle;
+	private final int _timeLostActive;
+	private int _timeRemaining;
+	private int _nextItemConsumeTime;
+	public int lastShowntimeRemaining; // Following FbiAgent's example to avoid sending useless packets
+	
+	private Future<?> _summonLifeTask;
+	
+	public L2SummonInstance(int objectId, L2NpcTemplate template, L2PcInstance owner, L2Skill skill)
+	{
+		super(objectId, template, owner);
+		setShowSummonAnimation(true);
+		
+		if (skill != null)
+		{
+			_itemConsumeId = skill.getItemConsumeIdOT();
+			_itemConsumeCount = skill.getItemConsumeOT();
+			_itemConsumeSteps = skill.getItemConsumeSteps();
+			_totalLifeTime = skill.getTotalLifeTime();
+			_timeLostIdle = skill.getTimeLostIdle();
+			_timeLostActive = skill.getTimeLostActive();
+		}
+		else
+		{
+			// defaults
+			_itemConsumeId = 0;
+			_itemConsumeCount = 0;
+			_itemConsumeSteps = 0;
+			_totalLifeTime = 1200000; // 20 minutes
+			_timeLostIdle = 1000;
+			_timeLostActive = 1000;
+		}
+		_timeRemaining = _totalLifeTime;
+		lastShowntimeRemaining = _totalLifeTime;
+		
+		if (_itemConsumeId == 0)
+			_nextItemConsumeTime = -1; // do not consume
+		else if (_itemConsumeSteps == 0)
+			_nextItemConsumeTime = -1; // do not consume
+		else
+			_nextItemConsumeTime = _totalLifeTime - _totalLifeTime / (_itemConsumeSteps + 1);
+		
+		// When no item consume is defined task only need to check when summon life time has ended.
+		// Otherwise have to destroy items from owner's inventory in order to let summon live.
+		int delay = 1000;
+		
+		if (Config.DEBUG && (_itemConsumeCount != 0))
+			_log.warning("L2SummonInstance: Item Consume ID: " + _itemConsumeId + ", Count: " + _itemConsumeCount + ", Rate: " + _itemConsumeSteps + " times.");
+		if (Config.DEBUG)
+			_log.warning("L2SummonInstance: Task Delay " + (delay / 1000) + " seconds.");
+		
+		_summonLifeTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SummonLifetime(getOwner(), this), delay, delay);
+	}
+	
+	@Override
+	public final int getLevel()
+	{
+		return (getTemplate() != null ? getTemplate().level : 0);
+	}
+	
+	@Override
+	public int getSummonType()
+	{
+		return 1;
+	}
+	
+	public void setExpPenalty(float expPenalty)
+	{
+		_expPenalty = expPenalty;
+	}
+	
+	public float getExpPenalty()
+	{
+		return _expPenalty;
+	}
+	
+	public int getItemConsumeCount()
+	{
+		return _itemConsumeCount;
+	}
+	
+	public int getItemConsumeId()
+	{
+		return _itemConsumeId;
+	}
+	
+	public int getItemConsumeSteps()
+	{
+		return _itemConsumeSteps;
+	}
+	
+	public int getNextItemConsumeTime()
+	{
+		return _nextItemConsumeTime;
+	}
+	
+	public int getTotalLifeTime()
+	{
+		return _totalLifeTime;
+	}
+	
+	public int getTimeLostIdle()
+	{
+		return _timeLostIdle;
+	}
+	
+	public int getTimeLostActive()
+	{
+		return _timeLostActive;
+	}
+	
+	public int getTimeRemaining()
+	{
+		return _timeRemaining;
+	}
+	
+	public void setNextItemConsumeTime(int value)
+	{
+		_nextItemConsumeTime = value;
+	}
+	
+	public void decNextItemConsumeTime(int value)
+	{
+		_nextItemConsumeTime -= value;
+	}
+	
+	public void decTimeRemaining(int value)
+	{
+		_timeRemaining -= value;
+	}
+	
+	public void addExpAndSp(int addToExp, int addToSp)
+	{
+		getOwner().addExpAndSp(addToExp, addToSp);
+	}
+	
+	@Override
 	public boolean doDie(L2Character killer)
-    {
-    	if (!super.doDie(killer))
-    		return false;
-
-    	if (Config.DEBUG)
-            _log.warning("L2SummonInstance: " + getTemplate().name + " (" + getOwner().getName()
-                + ") has been killed.");
-
-        if (_summonLifeTask != null)
-        {
-            _summonLifeTask.cancel(true);
-            _summonLifeTask = null;
-        }
-        return true;
-
-    }
-
-    static class SummonLifetime implements Runnable
-    {
-        private L2PcInstance _activeChar;
-        private L2SummonInstance _summon;
-
-        SummonLifetime(L2PcInstance activeChar, L2SummonInstance newpet)
-        {
-            _activeChar = activeChar;
-            _summon = newpet;
-        }
-
+	{
+		if (!super.doDie(killer))
+			return false;
+		
+		if (Config.DEBUG)
+			_log.warning("L2SummonInstance: " + getTemplate().name + " (" + getOwner().getName() + ") has been killed.");
+		
+		if (_summonLifeTask != null)
+		{
+			_summonLifeTask.cancel(true);
+			_summonLifeTask = null;
+		}
+		return true;
+		
+	}
+	
+	static class SummonLifetime implements Runnable
+	{
+		private L2PcInstance _activeChar;
+		private L2SummonInstance _summon;
+		
+		SummonLifetime(L2PcInstance activeChar, L2SummonInstance newpet)
+		{
+			_activeChar = activeChar;
+			_summon = newpet;
+		}
+		
 		public void run()
 		{
-            if (Config.DEBUG)
-                log.warning("L2SummonInstance: " + _summon.getTemplate().name + " ("
-                    + _activeChar.getName() + ") run task.");
-
+			if (Config.DEBUG)
+				log.warning("L2SummonInstance: " + _summon.getTemplate().name + " (" + _activeChar.getName() + ") run task.");
+			
 			try
 			{
 				double oldTimeRemaining = _summon.getTimeRemaining();
 				int maxTime = _summon.getTotalLifeTime();
 				double newTimeRemaining;
-
+				
 				// if pet is attacking
 				if (_summon.isAttackingNow())
 				{
-				    _summon.decTimeRemaining(_summon.getTimeLostActive());
+					_summon.decTimeRemaining(_summon.getTimeLostActive());
 				}
 				else
 				{
@@ -226,71 +223,63 @@ public class L2SummonInstance extends L2Summon
 				}
 				newTimeRemaining = _summon.getTimeRemaining();
 				// check if the summon's lifetime has ran out
-				if (newTimeRemaining < 0 )
+				if (newTimeRemaining < 0)
 				{
-	                _summon.unSummon(_activeChar);
+					_summon.unSummon(_activeChar);
 				}
 				// check if it is time to consume another item
-				else if ( (newTimeRemaining <= _summon.getNextItemConsumeTime()) && (oldTimeRemaining > _summon.getNextItemConsumeTime()) )
+				else if ((newTimeRemaining <= _summon.getNextItemConsumeTime()) && (oldTimeRemaining > _summon.getNextItemConsumeTime()))
 				{
-					_summon.decNextItemConsumeTime(maxTime/(_summon.getItemConsumeSteps()+1));
-
-		            // check if owner has enought itemConsume, if requested
-		            if (_summon.getItemConsumeCount() > 0
-		                && _summon.getItemConsumeId() != 0
-		                && !_summon.isDead()
-		                && !_summon.destroyItemByItemId("Consume", _summon.getItemConsumeId(),
-		                                                _summon.getItemConsumeCount(), _activeChar, true))
-		            {
-		                _summon.unSummon(_activeChar);
-		            }
+					_summon.decNextItemConsumeTime(maxTime / (_summon.getItemConsumeSteps() + 1));
+					
+					// check if owner has enought itemConsume, if requested
+					if (_summon.getItemConsumeCount() > 0 && _summon.getItemConsumeId() != 0 && !_summon.isDead() && !_summon.destroyItemByItemId("Consume", _summon.getItemConsumeId(), _summon.getItemConsumeCount(), _activeChar, true))
+					{
+						_summon.unSummon(_activeChar);
+					}
 				}
-
+				
 				// prevent useless packet-sending when the difference isn't visible.
-				if ((_summon.lastShowntimeRemaining - newTimeRemaining) > maxTime/352)
+				if ((_summon.lastShowntimeRemaining - newTimeRemaining) > maxTime / 352)
 				{
-					_summon.getOwner().sendPacket(new SetSummonRemainTime(maxTime,(int) newTimeRemaining));
+					_summon.getOwner().sendPacket(new SetSummonRemainTime(maxTime, (int) newTimeRemaining));
 					_summon.lastShowntimeRemaining = (int) newTimeRemaining;
 				}
 			}
-            catch (Throwable e)
-            {
-                log.log(Level.SEVERE, "Error on player ["+_activeChar.getName()+"] summon item consume task.", e);
-            }
-        }
-    }
-
-    @Override
+			catch (Exception e)
+			{
+				log.log(Level.SEVERE, "Error on player [" + _activeChar.getName() + "] summon item consume task.", e);
+			}
+		}
+	}
+	
+	@Override
 	public void unSummon(L2PcInstance owner)
-    {
-        if (Config.DEBUG)
-            _log.warning("L2SummonInstance: " + getTemplate().name + " (" + owner.getName()
-                + ") unsummoned.");
-
-        if (_summonLifeTask != null)
-        {
-            _summonLifeTask.cancel(true);
-            _summonLifeTask = null;
-        }
-
-        super.unSummon(owner);
-    }
-
-    @Override
-	public boolean destroyItem(String process, int objectId, int count, L2Object reference,
-                               boolean sendMessage)
-    {
-        return getOwner().destroyItem(process, objectId, count, reference, sendMessage);
-    }
-
-    @Override
-	public boolean destroyItemByItemId(String process, int itemId, int count, L2Object reference,
-                                       boolean sendMessage)
-    {
-        if (Config.DEBUG)
-            _log.warning("L2SummonInstance: " + getTemplate().name + " (" + getOwner().getName()
-                + ") consume.");
-
-        return getOwner().destroyItemByItemId(process, itemId, count, reference, sendMessage);
-    }
+	{
+		if (Config.DEBUG)
+			_log.warning("L2SummonInstance: " + getTemplate().name + " (" + owner.getName() + ") unsummoned.");
+		
+		if (_summonLifeTask != null)
+		{
+			_summonLifeTask.cancel(true);
+			_summonLifeTask = null;
+		}
+		
+		super.unSummon(owner);
+	}
+	
+	@Override
+	public boolean destroyItem(String process, int objectId, int count, L2Object reference, boolean sendMessage)
+	{
+		return getOwner().destroyItem(process, objectId, count, reference, sendMessage);
+	}
+	
+	@Override
+	public boolean destroyItemByItemId(String process, int itemId, int count, L2Object reference, boolean sendMessage)
+	{
+		if (Config.DEBUG)
+			_log.warning("L2SummonInstance: " + getTemplate().name + " (" + getOwner().getName() + ") consume.");
+		
+		return getOwner().destroyItemByItemId(process, itemId, count, reference, sendMessage);
+	}
 }

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2TransformManagerInstance.java

@@ -74,7 +74,7 @@ public class L2TransformManagerInstance extends L2MerchantInstance
         	return;
 
         L2TransformSkillLearn[] skills = SkillTreeTable.getInstance().getAvailableTransformSkills(player);
-        AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.skillType.Usual);
+        AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.Usual);
         int counts = 0;
 
         for (L2TransformSkillLearn s: skills)

+ 3 - 2
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2TrapInstance.java

@@ -18,6 +18,7 @@
 package net.sf.l2j.gameserver.model.actor.instance;
 
 import java.util.concurrent.Future;
+import java.util.logging.Level;
 
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.model.L2Attackable;
@@ -136,9 +137,9 @@ public class L2TrapInstance extends L2Trap
 					}
 				}
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
-				
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java

@@ -863,7 +863,7 @@ public final class L2VillageMasterInstance extends L2FolkInstance
         	
 
         L2PledgeSkillLearn[] skills = SkillTreeTable.getInstance().getAvailablePledgeSkills(player);
-        AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.skillType.Clan);
+        AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.Clan);
         int counts = 0;
 
         for (L2PledgeSkillLearn s: skills)

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/status/CharStatus.java

@@ -549,7 +549,7 @@ public class CharStatus
                 else
                     getActiveChar().broadcastStatusUpdate(); //send the StatusUpdate packet
             }
-            catch (Throwable e)
+            catch (Exception e)
             {
                 _log.log(Level.SEVERE, "", e);
             }

+ 2 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Auction.java

@@ -121,8 +121,9 @@ public class Auction
 			{
 				endAuction();
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 2 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Castle.java

@@ -206,8 +206,9 @@ public class Castle
 					else
 						removeFunction(getType());
 				}
-				catch (Throwable t)
+				catch (Exception e)
 				{
+					_log.log(Level.SEVERE, "", e);
 				}
 			}
 		}

+ 5 - 3
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/ClanHall.java

@@ -182,8 +182,9 @@ public class ClanHall
 					else
 						removeFunction(getType());
 				}
-				catch (Throwable t)
+				catch (Exception e)
 				{
+					_log.log(Level.SEVERE, "", e);
 				}
 			}
 		}
@@ -326,7 +327,7 @@ public class ClanHall
 	{
 		if (doorId <= 0)
 			return null;
-		for (L2DoorInstance door: getDoors())
+		for (L2DoorInstance door : getDoors())
 		{
 			if (door.getDoorId() == doorId)
 				return door;
@@ -664,8 +665,9 @@ public class ClanHall
 					}
 				}
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 7 - 3
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Duel.java

@@ -15,6 +15,7 @@
 package net.sf.l2j.gameserver.model.entity;
 
 import java.util.Calendar;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javolution.util.FastList;
@@ -203,8 +204,9 @@ public class Duel
 				else
 					ThreadPoolManager.getInstance().scheduleGeneral(this, 1000);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
@@ -242,8 +244,9 @@ public class Duel
 				else
 					_duel.startDuel();
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
@@ -265,8 +268,9 @@ public class Duel
 			{
 				_duel.endDuel(_result);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 6 - 5
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/FortSiege.java

@@ -19,6 +19,7 @@ import java.sql.ResultSet;
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.List;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javolution.util.FastList;
@@ -110,9 +111,9 @@ public class FortSiege
 					_fortInst.getSiege().endSiege();
 				}
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
@@ -168,9 +169,9 @@ public class FortSiege
 					_fortInst.getSiege().startSiege();
 				}
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
@@ -661,7 +662,7 @@ public class FortSiege
 	{
 		if (flag == null)
 			return;
-		for (L2SiegeClan clan: getAttackerClans())
+		for (L2SiegeClan clan : getAttackerClans())
 		{
 			if (clan.removeFlag(flag))
 				return;

+ 23 - 23
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Siege.java

@@ -20,6 +20,7 @@ import java.util.Calendar;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.ScheduledFuture;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javolution.util.FastList;
@@ -151,9 +152,9 @@ public class Siege
 					_castleInst.getSiege().endSiege();
 				}
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
@@ -175,20 +176,20 @@ public class Siege
 			
 			try
 			{
-	           	if (!getIsTimeRegistrationOver())
-            	{
-                	long regTimeRemaining = getTimeRegistrationOverDate().getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
-                	if (regTimeRemaining > 0)
-                	{
-                		_scheduledStartSiegeTask = ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleStartSiegeTask(_castleInst), regTimeRemaining);
-                		return;
-                	}
-                	else
-                	{
-                		endTimeRegistration(true);
-                	}
-            	}
-
+				if (!getIsTimeRegistrationOver())
+				{
+					long regTimeRemaining = getTimeRegistrationOverDate().getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
+					if (regTimeRemaining > 0)
+					{
+						_scheduledStartSiegeTask = ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleStartSiegeTask(_castleInst), regTimeRemaining);
+						return;
+					}
+					else
+					{
+						endTimeRegistration(true);
+					}
+				}
+				
 				long timeRemaining = getSiegeDate().getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
 				if (timeRemaining > 86400000)
 				{
@@ -226,9 +227,9 @@ public class Siege
 					_castleInst.getSiege().startSiege();
 				}
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
-				
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}
@@ -751,7 +752,7 @@ public class Siege
 	{
 		if (flag == null)
 			return;
-		for (L2SiegeClan clan: getAttackerClans())
+		for (L2SiegeClan clan : getAttackerClans())
 		{
 			if (clan.removeFlag(flag))
 				return;
@@ -1134,7 +1135,7 @@ public class Siege
 		getTimeRegistrationOverDate().setTimeInMillis(Calendar.getInstance().getTimeInMillis());
 		getTimeRegistrationOverDate().add(Calendar.DAY_OF_MONTH, 1);
 		getCastle().setIsTimeRegistrationOver(false);
-
+		
 		saveSiegeDate(); // Save the new date
 		startAutoTask(); // Prepare auto start siege and end registration
 	}
@@ -1260,8 +1261,7 @@ public class Siege
 	{
 		while (getCastle().getSiegeDate().getTimeInMillis() < Calendar.getInstance().getTimeInMillis())
 		{
-			if (getCastle().getSiegeDate().get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY &&
-					getCastle().getSiegeDate().get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY)
+			if (getCastle().getSiegeDate().get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && getCastle().getSiegeDate().get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY)
 				getCastle().getSiegeDate().set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
 			// set the next siege day to the next weekend
 			getCastle().getSiegeDate().add(Calendar.DAY_OF_MONTH, 7);
@@ -1269,7 +1269,7 @@ public class Siege
 		
 		if (!SevenSigns.getInstance().isDateInSealValidPeriod(getCastle().getSiegeDate()))
 			getCastle().getSiegeDate().add(Calendar.DAY_OF_MONTH, 7);
-
+		
 		_isRegistrationOver = false; // Allow registration for next siege
 	}
 	

+ 390 - 350
L2_GameServer/java/net/sf/l2j/gameserver/model/itemcontainer/ItemContainer.java

@@ -40,84 +40,96 @@ import net.sf.l2j.gameserver.templates.L2Item;
 public abstract class ItemContainer
 {
 	protected static final Logger _log = Logger.getLogger(ItemContainer.class.getName());
-
+	
 	protected final List<L2ItemInstance> _items;
-
+	
 	protected ItemContainer()
 	{
 		_items = new FastList<L2ItemInstance>();
 	}
-
+	
 	protected abstract L2Character getOwner();
+	
 	protected abstract ItemLocation getBaseLocation();
-
+	
 	/**
 	 * Returns the ownerID of the inventory
 	 * @return int
 	 */
-	public int getOwnerId(){return getOwner() == null ? 0 : getOwner().getObjectId();}
-
+	public int getOwnerId()
+	{
+		return getOwner() == null ? 0 : getOwner().getObjectId();
+	}
+	
 	/**
 	 * Returns the quantity of items in the inventory
 	 * @return int
 	 */
-	public int getSize() {return _items.size();}
-
+	public int getSize()
+	{
+		return _items.size();
+	}
+	
 	/**
 	 * Returns the list of items in inventory
 	 * @return L2ItemInstance : items in inventory
 	 */
-	public L2ItemInstance[] getItems(){return _items.toArray(new L2ItemInstance[_items.size()]);}
-
+	public L2ItemInstance[] getItems()
+	{
+		return _items.toArray(new L2ItemInstance[_items.size()]);
+	}
+	
 	/**
 	 * Returns the item from inventory by using its <B>itemId</B><BR><BR>
-     *
+	 *
 	 * @param itemId : int designating the ID of the item
 	 * @return L2ItemInstance designating the item or null if not found in inventory
 	 */
 	public L2ItemInstance getItemByItemId(int itemId)
 	{
-	    for (L2ItemInstance item : _items)
-	        if (item != null && item.getItemId() == itemId) return item;
-
-	    return null;
+		for (L2ItemInstance item : _items)
+			if (item != null && item.getItemId() == itemId)
+				return item;
+		
+		return null;
 	}
+	
 	/**
 	 * Returns the item's list from inventory by using its <B>itemId</B><BR><BR>
-     * 
+	 * 
 	 * @param itemId : int designating the ID of the item
 	 * @return List<L2ItemInstance> designating the items list (empty list if not found)
 	 */
 	public List<L2ItemInstance> getItemsByItemId(int itemId)
 	{
 		List<L2ItemInstance> returnList = new FastList<L2ItemInstance>();
-	    for (L2ItemInstance item : _items)
-	    {
-	        if (item != null && item.getItemId() == itemId)
-	        {
-	        	returnList.add(item);
-	        }
-	    }
-
-	    return returnList;
+		for (L2ItemInstance item : _items)
+		{
+			if (item != null && item.getItemId() == itemId)
+			{
+				returnList.add(item);
+			}
+		}
+		
+		return returnList;
 	}
-    /**
-     * Returns the item from inventory by using its <B>itemId</B><BR><BR>
-     *
-     * @param itemId : int designating the ID of the item
-     * @param itemToIgnore : used during a loop, to avoid returning the same item
-     * @return L2ItemInstance designating the item or null if not found in inventory
-     */
-    public L2ItemInstance getItemByItemId(int itemId, L2ItemInstance itemToIgnore)
-    {
-        for (L2ItemInstance item : _items)
-                if (item != null && item.getItemId() == itemId &&
-                        !item.equals(itemToIgnore))
-                    return item;
-
-        return null;
-    }
-
+	
+	/**
+	 * Returns the item from inventory by using its <B>itemId</B><BR><BR>
+	 *
+	 * @param itemId : int designating the ID of the item
+	 * @param itemToIgnore : used during a loop, to avoid returning the same item
+	 * @return L2ItemInstance designating the item or null if not found in inventory
+	 */
+	public L2ItemInstance getItemByItemId(int itemId, L2ItemInstance itemToIgnore)
+	{
+		for (L2ItemInstance item : _items)
+			if (item != null && item.getItemId() == itemId && !item.equals(itemToIgnore))
+				return item;
+		
+		return null;
+	}
+	
 	/**
 	 * Returns item from inventory by using its <B>objectId</B>
 	 * @param objectId : int designating the ID of the object
@@ -125,64 +137,64 @@ public abstract class ItemContainer
 	 */
 	public L2ItemInstance getItemByObjectId(int objectId)
 	{
-	    for (L2ItemInstance item : _items)
-	    {
-	    	if (item == null)
-	    		continue;
-
-	    	if (item.getObjectId() == objectId)
-	    		return item;
-	    }
-	    return null;
+		for (L2ItemInstance item : _items)
+		{
+			if (item == null)
+				continue;
+			
+			if (item.getObjectId() == objectId)
+				return item;
+		}
+		return null;
 	}
-
-    /**
-     * Gets count of item in the inventory
+	
+	/**
+	 * Gets count of item in the inventory
 	 * @param itemId : Item to look for
-     * @param enchantLevel : enchant level to match on, or -1 for ANY enchant level
-     * @return int corresponding to the number of items matching the above conditions.
-     */
-    public int getInventoryItemCount(int itemId, int enchantLevel)
-    {
-        int count = 0;
-
-        for (L2ItemInstance item : _items)
-            if (item.getItemId() == itemId && ((item.getEnchantLevel() == enchantLevel) || (enchantLevel<0)))
-                //if (item.isAvailable((L2PcInstance)getOwner(), true) || item.getItem().getType2() == 3)//available or quest item
-                if (item.isStackable())
-                    count = item.getCount();
-                else
-                    count++;
-
-        return count;
-    }
-
-    /**
-     * Adds item to inventory
+	 * @param enchantLevel : enchant level to match on, or -1 for ANY enchant level
+	 * @return int corresponding to the number of items matching the above conditions.
+	 */
+	public int getInventoryItemCount(int itemId, int enchantLevel)
+	{
+		int count = 0;
+		
+		for (L2ItemInstance item : _items)
+			if (item.getItemId() == itemId && ((item.getEnchantLevel() == enchantLevel) || (enchantLevel < 0)))
+				//if (item.isAvailable((L2PcInstance)getOwner(), true) || item.getItem().getType2() == 3)//available or quest item
+				if (item.isStackable())
+					count = item.getCount();
+				else
+					count++;
+		
+		return count;
+	}
+	
+	/**
+	 * Adds item to inventory
 	 * @param process : String Identifier of process triggering this action
-     * @param item : L2ItemInstance to be added
+	 * @param item : L2ItemInstance to be added
 	 * @param actor : L2PcInstance Player requesting the item add
 	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the new item or the updated item in inventory
-     */
-    public L2ItemInstance addItem(String process, L2ItemInstance item, L2PcInstance actor, L2Object reference)
-    {
+	 * @return L2ItemInstance corresponding to the new item or the updated item in inventory
+	 */
+	public L2ItemInstance addItem(String process, L2ItemInstance item, L2PcInstance actor, L2Object reference)
+	{
 		L2ItemInstance olditem = getItemByItemId(item.getItemId());
-
+		
 		// If stackable item is found in inventory just add to current quantity
 		if (olditem != null && olditem.isStackable())
 		{
 			int count = item.getCount();
 			olditem.changeCount(process, count, actor, reference);
 			olditem.setLastChange(L2ItemInstance.MODIFIED);
-
+			
 			// And destroys the item
 			ItemTable.getInstance().destroyItem(process, item, actor, reference);
 			item.updateDatabase();
 			item = olditem;
-
+			
 			// Updates database
-			if (item.getItemId() == 57 && count < 10000*Config.RATE_DROP_ADENA)
+			if (item.getItemId() == 57 && count < 10000 * Config.RATE_DROP_ADENA)
 			{
 				// Small adena changes won't be saved to database all the time
 				if (GameTimeController.getGameTicks() % 5 == 0)
@@ -197,38 +209,38 @@ public abstract class ItemContainer
 			item.setOwnerId(process, getOwnerId(), actor, reference);
 			item.setLocation(getBaseLocation());
 			item.setLastChange((L2ItemInstance.ADDED));
-
+			
 			// Add item in inventory
 			addItem(item);
-
+			
 			// Updates database
 			item.updateDatabase();
 		}
-
+		
 		refreshWeight();
 		return item;
 	}
-
-    /**
-     * Adds item to inventory
+	
+	/**
+	 * Adds item to inventory
 	 * @param process : String Identifier of process triggering this action
-     * @param itemId : int Item Identifier of the item to be added
-     * @param count : int Quantity of items to be added
+	 * @param itemId : int Item Identifier of the item to be added
+	 * @param count : int Quantity of items to be added
 	 * @param actor : L2PcInstance Player requesting the item add
 	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the new item or the updated item in inventory
-     */
-    public L2ItemInstance addItem(String process, int itemId, int count, L2PcInstance actor, L2Object reference)
-    {
+	 * @return L2ItemInstance corresponding to the new item or the updated item in inventory
+	 */
+	public L2ItemInstance addItem(String process, int itemId, int count, L2PcInstance actor, L2Object reference)
+	{
 		L2ItemInstance item = getItemByItemId(itemId);
-
+		
 		// If stackable item is found in inventory just add to current quantity
 		if (item != null && item.isStackable())
 		{
 			item.changeCount(process, count, actor, reference);
 			item.setLastChange(L2ItemInstance.MODIFIED);
 			// Updates database
-			if (itemId == 57 && count < 10000*Config.RATE_DROP_ADENA)
+			if (itemId == 57 && count < 10000 * Config.RATE_DROP_ADENA)
 			{
 				// Small adena changes won't be saved to database all the time
 				if (GameTimeController.getGameTicks() % 5 == 0)
@@ -245,235 +257,241 @@ public abstract class ItemContainer
 				L2Item template = ItemTable.getInstance().getTemplate(itemId);
 				if (template == null)
 				{
-					_log.log(Level.WARNING, (actor != null ? "[" + actor.getName() + "] ": "") +  "Invalid ItemId requested: ", itemId);
+					_log.log(Level.WARNING, (actor != null ? "[" + actor.getName() + "] " : "") + "Invalid ItemId requested: ", itemId);
 					return null;
 				}
-
-                item = ItemTable.getInstance().createItem(process, itemId, template.isStackable() ? count : 1, actor, reference);
+				
+				item = ItemTable.getInstance().createItem(process, itemId, template.isStackable() ? count : 1, actor, reference);
 				item.setOwnerId(getOwnerId());
 				item.setLocation(getBaseLocation());
 				item.setLastChange(L2ItemInstance.ADDED);
-
+				
 				// Add item in inventory
 				addItem(item);
 				// Updates database
 				item.updateDatabase();
-
-                // If stackable, end loop as entire count is included in 1 instance of item
-                if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) break;
+				
+				// If stackable, end loop as entire count is included in 1 instance of item
+				if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
+					break;
 			}
 		}
-
+		
 		refreshWeight();
 		return item;
 	}
-
-    /**
-     * Adds Wear/Try On item to inventory<BR><BR>
-     *
+	
+	/**
+	 * Adds Wear/Try On item to inventory<BR><BR>
+	 *
 	 * @param process : String Identifier of process triggering this action
-     * @param itemId : int Item Identifier of the item to be added
+	 * @param itemId : int Item Identifier of the item to be added
 	 * @param actor : L2PcInstance Player requesting the item add
 	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the new weared item
-     */
-    public L2ItemInstance addWearItem(String process, int itemId, L2PcInstance actor, L2Object reference)
-    {
-        // Surch the item in the inventory of the player
+	 * @return L2ItemInstance corresponding to the new weared item
+	 */
+	public L2ItemInstance addWearItem(String process, int itemId, L2PcInstance actor, L2Object reference)
+	{
+		// Surch the item in the inventory of the player
 		L2ItemInstance item = getItemByItemId(itemId);
-
+		
 		// There is such item already in inventory
-		if (item != null) return item;
-
-        // Create and Init the L2ItemInstance corresponding to the Item Identifier and quantity
-        // Add the L2ItemInstance object to _allObjects of L2world
+		if (item != null)
+			return item;
+		
+		// Create and Init the L2ItemInstance corresponding to the Item Identifier and quantity
+		// Add the L2ItemInstance object to _allObjects of L2world
 		item = ItemTable.getInstance().createItem(process, itemId, 1, actor, reference);
-
-        // Set Item Properties
+		
+		// Set Item Properties
 		item.setWear(true); // "Try On" Item -> Don't save it in database
 		item.setOwnerId(getOwnerId());
 		item.setLocation(getBaseLocation());
 		item.setLastChange((L2ItemInstance.ADDED));
-
+		
 		// Add item in inventory and equip it if necessary (item location defined)
 		addItem(item);
-
-        // Calculate the weight loaded by player
+		
+		// Calculate the weight loaded by player
 		refreshWeight();
-
+		
 		return item;
 	}
-
-    /**
-     * Transfers item to another inventory
+	
+	/**
+	 * Transfers item to another inventory
 	 * @param process : String Identifier of process triggering this action
-     * @param itemId : int Item Identifier of the item to be transfered
-     * @param count : int Quantity of items to be transfered
+	 * @param itemId : int Item Identifier of the item to be transfered
+	 * @param count : int Quantity of items to be transfered
 	 * @param actor : L2PcInstance Player requesting the item transfer
 	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the new item or the updated item in inventory
-     */
-    public L2ItemInstance transferItem(String process, int objectId, int count, ItemContainer target, L2PcInstance actor, L2Object reference)
-    {
-        if (target == null)
-        {
-        	return null;
-        }
-
-    	L2ItemInstance sourceitem = getItemByObjectId(objectId);
-    	if (sourceitem == null)
-    	{
-    		return null;
-    	}
-        L2ItemInstance targetitem = sourceitem.isStackable() ? target.getItemByItemId(sourceitem.getItemId()) : null;
-
-        synchronized(sourceitem)
-        {
-        	// check if this item still present in this container
-        	if (getItemByObjectId(objectId) != sourceitem)
-        	{
-        		return null;
-        	}
-
-        	// Check if requested quantity is available
-        	if (count > sourceitem.getCount()) count = sourceitem.getCount();
-
-        	// If possible, move entire item object
-        	if (sourceitem.getCount() == count && targetitem == null)
-        	{
-        		removeItem(sourceitem);
-    			target.addItem(process, sourceitem, actor, reference);
-    			targetitem = sourceitem;
-        	}
-        	else
-        	{
-        		if (sourceitem.getCount() > count) // If possible, only update counts
-        		{
-        			sourceitem.changeCount(process, -count, actor, reference);
-        		}
-        		else // Otherwise destroy old item
-        		{
-            		removeItem(sourceitem);
-                    ItemTable.getInstance().destroyItem(process, sourceitem, actor, reference);
-        		}
-
-        		if (targetitem != null) // If possible, only update counts
-        		{
-        			targetitem.changeCount(process, count, actor, reference);
-        		}
-        		else // Otherwise add new item
-        		{
-        			targetitem = target.addItem(process, sourceitem.getItemId(), count, actor, reference);
-        		}
-        	}
-
-    		// Updates database
-    		sourceitem.updateDatabase(true);
-    		if (targetitem != sourceitem && targetitem != null) targetitem.updateDatabase();
-    		if (sourceitem.isAugmented())
-    			sourceitem.getAugmentation().removeBonus(actor);
-    		refreshWeight();
-        }
+	 * @return L2ItemInstance corresponding to the new item or the updated item in inventory
+	 */
+	public L2ItemInstance transferItem(String process, int objectId, int count, ItemContainer target, L2PcInstance actor, L2Object reference)
+	{
+		if (target == null)
+		{
+			return null;
+		}
+		
+		L2ItemInstance sourceitem = getItemByObjectId(objectId);
+		if (sourceitem == null)
+		{
+			return null;
+		}
+		L2ItemInstance targetitem = sourceitem.isStackable() ? target.getItemByItemId(sourceitem.getItemId()) : null;
+		
+		synchronized (sourceitem)
+		{
+			// check if this item still present in this container
+			if (getItemByObjectId(objectId) != sourceitem)
+			{
+				return null;
+			}
+			
+			// Check if requested quantity is available
+			if (count > sourceitem.getCount())
+				count = sourceitem.getCount();
+			
+			// If possible, move entire item object
+			if (sourceitem.getCount() == count && targetitem == null)
+			{
+				removeItem(sourceitem);
+				target.addItem(process, sourceitem, actor, reference);
+				targetitem = sourceitem;
+			}
+			else
+			{
+				if (sourceitem.getCount() > count) // If possible, only update counts
+				{
+					sourceitem.changeCount(process, -count, actor, reference);
+				}
+				else
+				// Otherwise destroy old item
+				{
+					removeItem(sourceitem);
+					ItemTable.getInstance().destroyItem(process, sourceitem, actor, reference);
+				}
+				
+				if (targetitem != null) // If possible, only update counts
+				{
+					targetitem.changeCount(process, count, actor, reference);
+				}
+				else
+				// Otherwise add new item
+				{
+					targetitem = target.addItem(process, sourceitem.getItemId(), count, actor, reference);
+				}
+			}
+			
+			// Updates database
+			sourceitem.updateDatabase(true);
+			if (targetitem != sourceitem && targetitem != null)
+				targetitem.updateDatabase();
+			if (sourceitem.isAugmented())
+				sourceitem.getAugmentation().removeBonus(actor);
+			refreshWeight();
+		}
 		return targetitem;
 	}
-    
-    /**
-     * Destroy item from inventory and updates database
-     * @param process : String Identifier of process triggering this action
-     * @param item : L2ItemInstance to be destroyed
-     * @param actor : L2PcInstance Player requesting the item destroy
-     * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
-     */
-    public L2ItemInstance destroyItem(String process, L2ItemInstance item, L2PcInstance actor, L2Object reference)
-    {
-        return this.destroyItem(process, item, item.getCount(), actor, reference);
-    }
-
+	
 	/**
 	 * Destroy item from inventory and updates database
 	 * @param process : String Identifier of process triggering this action
-     * @param item : L2ItemInstance to be destroyed
+	 * @param item : L2ItemInstance to be destroyed
 	 * @param actor : L2PcInstance Player requesting the item destroy
 	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
+	 * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
+	 */
+	public L2ItemInstance destroyItem(String process, L2ItemInstance item, L2PcInstance actor, L2Object reference)
+	{
+		return this.destroyItem(process, item, item.getCount(), actor, reference);
+	}
+	
+	/**
+	 * Destroy item from inventory and updates database
+	 * @param process : String Identifier of process triggering this action
+	 * @param item : L2ItemInstance to be destroyed
+	 * @param actor : L2PcInstance Player requesting the item destroy
+	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
+	 * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
 	 */
 	public L2ItemInstance destroyItem(String process, L2ItemInstance item, int count, L2PcInstance actor, L2Object reference)
 	{
-        synchronized(item)
-        {
-        	// Adjust item quantity
-            if (item.getCount() > count)
-            {
-                item.changeCount(process, -count, actor, reference);
-                item.setLastChange(L2ItemInstance.MODIFIED);
-                
-                // don't update often for untraced items
-                if (process != null || GameTimeController.getGameTicks() % 10 == 0)
-                {
-                    item.updateDatabase();
-                }
-                
-                refreshWeight();
-                
-                return item;
-            }
-            else
-            {
-            	if (item.getCount() < count)
-            		return null;
-
-            	boolean removed = this.removeItem(item);
-                if (!removed)
-                    return null;
-                
-                ItemTable.getInstance().destroyItem(process, item, actor, reference);
-                
-                item.updateDatabase();
-                refreshWeight();
-            }
-        }
+		synchronized (item)
+		{
+			// Adjust item quantity
+			if (item.getCount() > count)
+			{
+				item.changeCount(process, -count, actor, reference);
+				item.setLastChange(L2ItemInstance.MODIFIED);
+				
+				// don't update often for untraced items
+				if (process != null || GameTimeController.getGameTicks() % 10 == 0)
+				{
+					item.updateDatabase();
+				}
+				
+				refreshWeight();
+				
+				return item;
+			}
+			else
+			{
+				if (item.getCount() < count)
+					return null;
+				
+				boolean removed = this.removeItem(item);
+				if (!removed)
+					return null;
+				
+				ItemTable.getInstance().destroyItem(process, item, actor, reference);
+				
+				item.updateDatabase();
+				refreshWeight();
+			}
+		}
 		return item;
 	}
-
+	
 	/**
 	 * Destroy item from inventory by using its <B>objectID</B> and updates database
 	 * @param process : String Identifier of process triggering this action
-     * @param objectId : int Item Instance identifier of the item to be destroyed
-     * @param count : int Quantity of items to be destroyed
+	 * @param objectId : int Item Instance identifier of the item to be destroyed
+	 * @param count : int Quantity of items to be destroyed
 	 * @param actor : L2PcInstance Player requesting the item destroy
 	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
+	 * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
 	 */
 	public L2ItemInstance destroyItem(String process, int objectId, int count, L2PcInstance actor, L2Object reference)
 	{
 		L2ItemInstance item = getItemByObjectId(objectId);
-		if (item == null) 
-        {
-            return null;
-        }
-        return this.destroyItem(process, item, count, actor, reference);
+		if (item == null)
+		{
+			return null;
+		}
+		return this.destroyItem(process, item, count, actor, reference);
 	}
-
+	
 	/**
 	 * Destroy item from inventory by using its <B>itemId</B> and updates database
 	 * @param process : String Identifier of process triggering this action
-     * @param itemId : int Item identifier of the item to be destroyed
-     * @param count : int Quantity of items to be destroyed
+	 * @param itemId : int Item identifier of the item to be destroyed
+	 * @param count : int Quantity of items to be destroyed
 	 * @param actor : L2PcInstance Player requesting the item destroy
 	 * @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
-     * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
+	 * @return L2ItemInstance corresponding to the destroyed item or the updated item in inventory
 	 */
 	public L2ItemInstance destroyItemByItemId(String process, int itemId, int count, L2PcInstance actor, L2Object reference)
 	{
 		L2ItemInstance item = getItemByItemId(itemId);
-		if (item == null) 
-        {
-            return null;
-        }
-        return this.destroyItem(process, item, count, actor, reference);
+		if (item == null)
+		{
+			return null;
+		}
+		return this.destroyItem(process, item, count, actor, reference);
 	}
-
+	
 	/**
 	 * Destroy all items from inventory and updates database
 	 * @param process : String Identifier of process triggering this action
@@ -485,61 +503,70 @@ public abstract class ItemContainer
 		for (L2ItemInstance item : _items)
 			destroyItem(process, item, actor, reference);
 	}
-
+	
 	/**
 	 * Get warehouse adena
 	 */
 	public int getAdena()
-    {
-        int count = 0;
-
-        for (L2ItemInstance item : _items)
-        {
-            if (item.getItemId() == 57)
-            {
-                count = item.getCount();
-                return count;
-            }
-        }
-
-        return count;
-    }
-
-    /**
-     * Adds item to inventory for further adjustments.
-     * @param item : L2ItemInstance to be added from inventory
-     */
-    protected void addItem(L2ItemInstance item)
-    {
-        _items.add(item);
-    }
-
-    /**
-     * Removes item from inventory for further adjustments.
-     * @param item : L2ItemInstance to be removed from inventory
-     */
-    protected boolean removeItem(L2ItemInstance item)
-    {
-        return _items.remove(item);
-    }
-
+	{
+		int count = 0;
+		
+		for (L2ItemInstance item : _items)
+		{
+			if (item.getItemId() == 57)
+			{
+				count = item.getCount();
+				return count;
+			}
+		}
+		
+		return count;
+	}
+	
+	/**
+	 * Adds item to inventory for further adjustments.
+	 * @param item : L2ItemInstance to be added from inventory
+	 */
+	protected void addItem(L2ItemInstance item)
+	{
+		_items.add(item);
+	}
+	
+	/**
+	 * Removes item from inventory for further adjustments.
+	 * @param item : L2ItemInstance to be removed from inventory
+	 */
+	protected boolean removeItem(L2ItemInstance item)
+	{
+		return _items.remove(item);
+	}
+	
 	/**
 	 * Refresh the weight of equipment loaded
 	 */
-    protected void refreshWeight() {}
-
+	protected void refreshWeight()
+	{
+	}
+	
 	/**
 	 * Delete item object from world
 	 */
 	public void deleteMe()
 	{
-		try { updateDatabase(); } catch (Throwable t) {_log.log(Level.SEVERE, "deletedMe()", t); }
+		try
+		{
+			updateDatabase();
+		}
+		catch (Exception e)
+		{
+			_log.log(Level.SEVERE, "deletedMe()", e);
+		}
 		List<L2Object> items = new FastList<L2Object>(_items);
-    	_items.clear();
-
-    	L2World.getInstance().removeObjects(items);
+		_items.clear();
+		
+		L2World.getInstance().removeObjects(items);
 	}
-
+	
 	/**
 	 * Update database with items in inventory
 	 */
@@ -547,61 +574,74 @@ public abstract class ItemContainer
 	{
 		if (getOwner() != null)
 		{
-		    for (L2ItemInstance item : _items)
-		    {
-		    	if (item != null)
-                {
-		    		item.updateDatabase(true);
-                }
-		    }
+			for (L2ItemInstance item : _items)
+			{
+				if (item != null)
+				{
+					item.updateDatabase(true);
+				}
+			}
 		}
 	}
-
-    /**
+	
+	/**
 	 * Get back items in container from database
 	 */
-    public void restore()
-    {
-        java.sql.Connection con = null;
-        try
-        {
-            con = L2DatabaseFactory.getInstance().getConnection();
-            PreparedStatement statement = con.prepareStatement(
-                "SELECT object_id, item_id, count, enchant_level, loc, loc_data, custom_type1, custom_type2, mana_left FROM items WHERE owner_id=? AND (loc=?)");
-            statement.setInt(1, getOwnerId());
-            statement.setString(2, getBaseLocation().name());
-            ResultSet inv = statement.executeQuery();
-
-            L2ItemInstance item;
-            while (inv.next())
-            {
+	public void restore()
+	{
+		java.sql.Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("SELECT object_id, item_id, count, enchant_level, loc, loc_data, custom_type1, custom_type2, mana_left FROM items WHERE owner_id=? AND (loc=?)");
+			statement.setInt(1, getOwnerId());
+			statement.setString(2, getBaseLocation().name());
+			ResultSet inv = statement.executeQuery();
+			
+			L2ItemInstance item;
+			while (inv.next())
+			{
 				item = L2ItemInstance.restoreFromDb(getOwnerId(), inv);
-				if (item == null) continue;
-
+				if (item == null)
+					continue;
+				
 				L2World.getInstance().storeObject(item);
-
+				
 				// If stackable item is found in inventory just add to current quantity
 				if (item.isStackable() && getItemByItemId(item.getItemId()) != null)
 					addItem("Restore", item, null, getOwner());
-				else addItem(item);
-            }
-
-            inv.close();
-            statement.close();
-            refreshWeight();
-        }
-        catch (Exception e)
-        {
+				else
+					addItem(item);
+			}
+			
+			inv.close();
+			statement.close();
+			refreshWeight();
+		}
+		catch (Exception e)
+		{
 			_log.log(Level.WARNING, "could not restore container:", e);
-        }
-        finally
-        {
-            try { con.close(); } catch (Exception e) {}
-        }
-    }
-
-    public boolean validateCapacity(int slots) { return true; }
-
-    public boolean validateWeight(int weight) { return true; }
-
+		}
+		finally
+		{
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+			}
+		}
+	}
+	
+	public boolean validateCapacity(int slots)
+	{
+		return true;
+	}
+	
+	public boolean validateWeight(int weight)
+	{
+		return true;
+	}
+	
 }

+ 5 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/quest/QuestStateManager.java

@@ -15,6 +15,8 @@
 package net.sf.l2j.gameserver.model.quest;
 
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javolution.util.FastList;
 import net.sf.l2j.gameserver.ThreadPoolManager;
@@ -22,6 +24,7 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 
 public class QuestStateManager
 {
+	protected static final Logger _log = Logger.getLogger(QuestStateManager.class.getName());
 	// =========================================================
 	// Schedule Task
 	public class ScheduleTimerTask implements Runnable
@@ -33,8 +36,9 @@ public class QuestStateManager
 				cleanUp();
 				ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleTimerTask(), 60000);
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 5 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/quest/QuestTimer.java

@@ -15,6 +15,8 @@
 package net.sf.l2j.gameserver.model.quest;
 
 import java.util.concurrent.ScheduledFuture;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
@@ -22,6 +24,7 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 
 public class QuestTimer
 {
+	protected static final Logger _log = Logger.getLogger(QuestTimer.class.getName());
 	// =========================================================
 	// Schedule Task
 	public class ScheduleTimerTask implements Runnable
@@ -37,8 +40,9 @@ public class QuestTimer
 					cancel();
 				getQuest().notifyEvent(getName(), getNpc(), getPlayer());
 			}
-			catch (Throwable t)
+			catch (Exception e)
 			{
+				_log.log(Level.SEVERE, "", e);
 			}
 		}
 	}

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/L2GameClient.java

@@ -609,7 +609,7 @@ public final class L2GameClient extends MMOClient<MMOConnection<L2GameClient>>
 					saveCharToDisk(player);
 				}
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 			    _log.log(Level.SEVERE, "Error on AutoSaveTask.", e);
 			}

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/L2GameClientPacket.java

@@ -41,10 +41,10 @@ public abstract class L2GameClientPacket extends ReceivablePacket<L2GameClient>
 			readImpl();
 			return true;
 		}
-		catch (Throwable t)
+		catch (Exception e)
 		{
 			_log.severe("Client: "+getClient().toString()+" - Failed reading: "+getType()+" - L2J Server Version: "+Config.SERVER_VERSION+" - DP Revision: "+Config.DATAPACK_VERSION);
-			t.printStackTrace();
+			e.printStackTrace();
 		}
 		return false;
 	}

+ 172 - 169
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestWearItem.java

@@ -45,225 +45,228 @@ import net.sf.l2j.gameserver.util.Util;
  */
 public final class RequestWearItem extends L2GameClientPacket
 {
-    private static final String _C__C6_REQUESTWEARITEM = "[C] C6 RequestWearItem";
-    protected static final Logger _log = Logger.getLogger(RequestWearItem.class.getName());
-
-    protected Future<?> _removeWearItemsTask;
-
-    @SuppressWarnings("unused")
-    private int _unknow;
-
-    /** List of ItemID to Wear */
-    private int _listId;
-
-    /** Number of Item to Wear */
-    private int _count;
-
-    /** Table of ItemId containing all Item to Wear */
-    private int[] _items;
-
-    /** Player that request a Try on */
-    protected L2PcInstance _activeChar;
-
-
-    class RemoveWearItemsTask implements Runnable
-    {
-        public void run()
-        {
-            try
-            {
-            	_activeChar.destroyWearedItems("Wear", null, true);
-
-            } catch (Throwable e){
-                _log.log(Level.SEVERE, "", e);
-            }
-        }
-    }
-
-
-    /**
-     * Decrypt the RequestWearItem Client->Server Packet and Create _items table containing all ItemID to Wear.<BR><BR>
-     *
-     */
-    @Override
+	private static final String _C__C6_REQUESTWEARITEM = "[C] C6 RequestWearItem";
+	protected static final Logger _log = Logger.getLogger(RequestWearItem.class.getName());
+	
+	protected Future<?> _removeWearItemsTask;
+	
+	@SuppressWarnings("unused")
+	private int _unknow;
+	
+	/** List of ItemID to Wear */
+	private int _listId;
+	
+	/** Number of Item to Wear */
+	private int _count;
+	
+	/** Table of ItemId containing all Item to Wear */
+	private int[] _items;
+	
+	/** Player that request a Try on */
+	protected L2PcInstance _activeChar;
+	
+	class RemoveWearItemsTask implements Runnable
+	{
+		public void run()
+		{
+			try
+			{
+				_activeChar.destroyWearedItems("Wear", null, true);
+				
+			}
+			catch (Exception e)
+			{
+				_log.log(Level.SEVERE, "", e);
+			}
+		}
+	}
+	
+	/**
+	 * Decrypt the RequestWearItem Client->Server Packet and Create _items table containing all ItemID to Wear.<BR><BR>
+	 *
+	 */
+	@Override
 	protected void readImpl()
-    {
-        // Read and Decrypt the RequestWearItem Client->Server Packet
-    	_activeChar = getClient().getActiveChar();
-        _unknow = readD();
-        _listId = readD(); // List of ItemID to Wear
-		_count = readD();  // Number of Item to Wear
-
-		if (_count < 0) _count = 0;
-		if (_count > 100) _count = 0; // prevent too long lists
-
-        // Create _items table that will contain all ItemID to Wear
-        _items = new int[_count];
-
-        // Fill _items table with all ItemID to Wear
-        for (int i = 0; i < _count; i++)
-        {
-            int itemId = readD();
-            _items[i] = itemId;
-        }
-    }
-
-
-    /**
-     * Launch Wear action.<BR><BR>
-     *
-     */
-    @Override
+	{
+		// Read and Decrypt the RequestWearItem Client->Server Packet
+		_activeChar = getClient().getActiveChar();
+		_unknow = readD();
+		_listId = readD(); // List of ItemID to Wear
+		_count = readD(); // Number of Item to Wear
+		
+		if (_count < 0)
+			_count = 0;
+		if (_count > 100)
+			_count = 0; // prevent too long lists
+			
+		// Create _items table that will contain all ItemID to Wear
+		_items = new int[_count];
+		
+		// Fill _items table with all ItemID to Wear
+		for (int i = 0; i < _count; i++)
+		{
+			int itemId = readD();
+			_items[i] = itemId;
+		}
+	}
+	
+	/**
+	 * Launch Wear action.<BR><BR>
+	 *
+	 */
+	@Override
 	protected void runImpl()
-    {
+	{
 		// Get the current player and return if null
-        L2PcInstance player = getClient().getActiveChar();
-        if (player == null) return;
-
-        // If Alternate rule Karma punishment is set to true, forbid Wear to player with Karma
-        if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && player.getKarma() > 0) return;
-
-        // Check current target of the player and the INTERACTION_DISTANCE
-        L2Object target = player.getTarget();
-        if (!player.isGM() && (target == null								// No target (ie GM Shop)
-        		|| !(target instanceof L2MerchantInstance || target instanceof L2MercManagerInstance)	// Target not a merchant and not mercmanager
-			    || !player.isInsideRadius(target, L2NpcInstance.INTERACTION_DISTANCE, false, false) 	// Distance is too far
-			        )) return;
-
-        L2TradeList list = null;
-
-        // Get the current merchant targeted by the player
-		L2MerchantInstance merchant = (target instanceof L2MerchantInstance) ? (L2MerchantInstance)target : null;
-
+		L2PcInstance player = getClient().getActiveChar();
+		if (player == null)
+			return;
+		
+		// If Alternate rule Karma punishment is set to true, forbid Wear to player with Karma
+		if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && player.getKarma() > 0)
+			return;
+		
+		// Check current target of the player and the INTERACTION_DISTANCE
+		L2Object target = player.getTarget();
+		if (!player.isGM() && (target == null // No target (ie GM Shop)
+				|| !(target instanceof L2MerchantInstance || target instanceof L2MercManagerInstance) // Target not a merchant and not mercmanager
+		|| !player.isInsideRadius(target, L2NpcInstance.INTERACTION_DISTANCE, false, false) // Distance is too far
+				))
+			return;
+		
+		L2TradeList list = null;
+		
+		// Get the current merchant targeted by the player
+		L2MerchantInstance merchant = (target instanceof L2MerchantInstance) ? (L2MerchantInstance) target : null;
+		
 		List<L2TradeList> lists = TradeController.getInstance().getBuyListByNpcId(merchant.getNpcId());
-
-    	if (lists == null)
-    	{
-    		Util.handleIllegalPlayerAction(player,"Warning!! Character "+player.getName()+" of account "+player.getAccountName()+" sent a false BuyList list_id.",Config.DEFAULT_PUNISH);
-    		return;
-    	}
-
-    	for (L2TradeList tradeList : lists)
-    	{
-    		if (tradeList.getListId() == _listId)
-    		{
-    			list = tradeList;
-    		}
-    	}
-
-    	if (list == null)
-        {
-        	Util.handleIllegalPlayerAction(player,"Warning!! Character "+player.getName()+" of account "+player.getAccountName()+" sent a false BuyList list_id.",Config.DEFAULT_PUNISH);
-        	return;
-        }
-
-        _listId = list.getListId();
-
-        // Check if the quantity of Item to Wear
-        if(_count < 1 || _listId >= 1000000)
-        {
-            sendPacket(ActionFailed.STATIC_PACKET);
-            return;
-        }
-
-        // Total Price of the Try On
+		
+		if (lists == null)
+		{
+			Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " sent a false BuyList list_id.", Config.DEFAULT_PUNISH);
+			return;
+		}
+		
+		for (L2TradeList tradeList : lists)
+		{
+			if (tradeList.getListId() == _listId)
+			{
+				list = tradeList;
+			}
+		}
+		
+		if (list == null)
+		{
+			Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " sent a false BuyList list_id.", Config.DEFAULT_PUNISH);
+			return;
+		}
+		
+		_listId = list.getListId();
+		
+		// Check if the quantity of Item to Wear
+		if (_count < 1 || _listId >= 1000000)
+		{
+			sendPacket(ActionFailed.STATIC_PACKET);
+			return;
+		}
+		
+		// Total Price of the Try On
 		long totalPrice = 0;
-
+		
 		// Check for buylist validity and calculates summary values
 		int slots = 0;
 		int weight = 0;
-
+		
 		for (int i = 0; i < _count; i++)
 		{
 			int itemId = _items[i];
-
+			
 			if (!list.containsItemId(itemId))
 			{
-				Util.handleIllegalPlayerAction(player,"Warning!! Character "+player.getName()+" of account "+player.getAccountName()+" sent a false BuyList list_id.",Config.DEFAULT_PUNISH);
+				Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " sent a false BuyList list_id.", Config.DEFAULT_PUNISH);
+				return;
+			}
+			
+			L2Item template = ItemTable.getInstance().getTemplate(itemId);
+			weight += template.getWeight();
+			slots++;
+			
+			totalPrice += Config.WEAR_PRICE;
+			if (totalPrice > Integer.MAX_VALUE)
+			{
+				Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried to purchase over " + Integer.MAX_VALUE + " adena worth of goods.", Config.DEFAULT_PUNISH);
 				return;
 			}
-
-            L2Item template = ItemTable.getInstance().getTemplate(itemId);
-            weight += template.getWeight();
-            slots++;
-
-            totalPrice += Config.WEAR_PRICE;
-            if (totalPrice > Integer.MAX_VALUE)
-            {
-                Util.handleIllegalPlayerAction(player,"Warning!! Character "+player.getName()+" of account "+player.getAccountName()+" tried to purchase over "+Integer.MAX_VALUE+" adena worth of goods.", Config.DEFAULT_PUNISH);
-                return;
-            }
 		}
-
-        // Check the weight
+		
+		// Check the weight
 		if (!player.getInventory().validateWeight(weight))
 		{
 			sendPacket(new SystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
 			return;
 		}
-
-        // Check the inventory capacity
+		
+		// Check the inventory capacity
 		if (!player.getInventory().validateCapacity(slots))
 		{
 			sendPacket(new SystemMessage(SystemMessageId.SLOTS_FULL));
 			return;
 		}
-
+		
 		// Charge buyer and add tax to castle treasury if not owned by npc clan because a Try On is not Free
-		if ((totalPrice < 0) || !player.reduceAdena("Wear", (int)totalPrice, player.getLastFolkNPC(), false))
+		if ((totalPrice < 0) || !player.reduceAdena("Wear", (int) totalPrice, player.getLastFolkNPC(), false))
 		{
 			sendPacket(new SystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
 			return;
 		}
-
+		
 		// Proceed the wear
 		InventoryUpdate playerIU = new InventoryUpdate();
-		for (int i=0; i < _count; i++)
+		for (int i = 0; i < _count; i++)
 		{
 			int itemId = _items[i];
-
+			
 			if (!list.containsItemId(itemId))
 			{
-				Util.handleIllegalPlayerAction(player,"Warning!! Character "+player.getName()+" of account "+player.getAccountName()+" sent a false BuyList list_id.",Config.DEFAULT_PUNISH);
+				Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " sent a false BuyList list_id.", Config.DEFAULT_PUNISH);
 				return;
 			}
-
+			
 			// If player doesn't own this item : Add this L2ItemInstance to Inventory and set properties lastchanged to ADDED and _wear to True
-            // If player already own this item : Return its L2ItemInstance (will not be destroy because property _wear set to False)
+			// If player already own this item : Return its L2ItemInstance (will not be destroy because property _wear set to False)
 			L2ItemInstance item = player.getInventory().addWearItem("Wear", itemId, player, merchant);
-
-            // Equip player with this item (set its location)
-            player.getInventory().equipItemAndRecord(item);
-
-            // Add this Item in the InventoryUpdate Server->Client Packet
+			
+			// Equip player with this item (set its location)
+			player.getInventory().equipItemAndRecord(item);
+			
+			// Add this Item in the InventoryUpdate Server->Client Packet
 			playerIU.addItem(item);
 		}
-
+		
 		// Send the InventoryUpdate Server->Client Packet to the player
-        // Add Items in player inventory and equip them
+		// Add Items in player inventory and equip them
 		player.sendPacket(playerIU);
-
-        // Send the StatusUpdate Server->Client Packet to the player with new CUR_LOAD (0x0e) information
+		
+		// Send the StatusUpdate Server->Client Packet to the player with new CUR_LOAD (0x0e) information
 		StatusUpdate su = new StatusUpdate(player.getObjectId());
 		su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
 		player.sendPacket(su);
-
-        // Send a Server->Client packet UserInfo to this L2PcInstance and CharInfo to all L2PcInstance in its _KnownPlayers
+		
+		// Send a Server->Client packet UserInfo to this L2PcInstance and CharInfo to all L2PcInstance in its _KnownPlayers
 		player.broadcastUserInfo();
-
-
+		
 		// All weared items should be removed in ALLOW_WEAR_DELAY sec.
 		if (_removeWearItemsTask == null)
-            _removeWearItemsTask = ThreadPoolManager.getInstance().scheduleGeneral(new RemoveWearItemsTask(), Config.WEAR_DELAY*1000);
-
-    }
-
-    /* (non-Javadoc)
-     * @see net.sf.l2j.gameserver.clientpackets.ClientBasePacket#getType()
-     */
-    @Override
+			_removeWearItemsTask = ThreadPoolManager.getInstance().scheduleGeneral(new RemoveWearItemsTask(), Config.WEAR_DELAY * 1000);
+		
+	}
+	
+	/* (non-Javadoc)
+	 * @see net.sf.l2j.gameserver.clientpackets.ClientBasePacket#getType()
+	 */
+	@Override
 	public String getType()
-    {
-        return _C__C6_REQUESTWEARITEM;
-    }
+	{
+		return _C__C6_REQUESTWEARITEM;
+	}
 }

+ 2 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillDone.java

@@ -21,8 +21,9 @@ package net.sf.l2j.gameserver.network.serverpackets;
 
 public class AcquireSkillDone extends L2GameServerPacket
 {
-	public void AcquireSkilldone()
+	public AcquireSkillDone()
 	{
+		
 	}
 
 	@Override

+ 3 - 3
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillList.java

@@ -43,7 +43,7 @@ import javolution.util.FastList;
 public final class AcquireSkillList extends L2GameServerPacket
 {
 	//private static Logger _log = Logger.getLogger(AquireSkillList.class.getName());
-    public enum skillType
+    public enum SkillType
     {
     	Usual,
     	Fishing,
@@ -53,7 +53,7 @@ public final class AcquireSkillList extends L2GameServerPacket
 	private static final String _S__A3_AQUIRESKILLLIST = "[S] 90 AquireSkillList";
 
 	private List<Skill> _skills;
-	private skillType _fishingSkills;
+	private SkillType _fishingSkills;
 
 	private class Skill
 	{
@@ -73,7 +73,7 @@ public final class AcquireSkillList extends L2GameServerPacket
 		}
 	}
 
-	public AcquireSkillList(skillType type)
+	public AcquireSkillList(SkillType type)
 	{
 		_skills = new FastList<Skill>();
 		_fishingSkills = type;

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/L2GameServerPacket.java

@@ -40,10 +40,10 @@ public abstract class L2GameServerPacket extends SendablePacket<L2GameClient>
             //_log.info(this.getType());
 			writeImpl();
 		}
-		catch (Throwable t)
+		catch (Exception e)
 		{
 			_log.severe("Client: "+getClient().toString()+" - Failed writing: "+getType()+" - L2J Server Version: "+Config.SERVER_VERSION+" - DP Revision: "+Config.DATAPACK_VERSION);
-			t.printStackTrace();
+			e.printStackTrace();
 		}
 	}
 

+ 10 - 10
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java

@@ -69,7 +69,7 @@ public final class SystemMessage extends L2GameServerPacket
 
 	public SystemMessage addString(String text)
 	{
-		_types.add(new Integer(TYPE_TEXT));
+		_types.add(Integer.valueOf(TYPE_TEXT));
 		_values.add(text);
 
 		return this;
@@ -77,8 +77,8 @@ public final class SystemMessage extends L2GameServerPacket
 
 	public SystemMessage addNumber(int number)
 	{
-		_types.add(new Integer(TYPE_NUMBER));
-		_values.add(new Integer(number));
+		_types.add(Integer.valueOf(TYPE_NUMBER));
+		_values.add(Integer.valueOf(number));
 		return this;
 	}
 
@@ -117,8 +117,8 @@ public final class SystemMessage extends L2GameServerPacket
 
 	public SystemMessage addNpcName(int id)
 	{
-		_types.add(new Integer(TYPE_NPC_NAME));
-		_values.add(new Integer(1000000 + id));
+		_types.add(Integer.valueOf(TYPE_NPC_NAME));
+		_values.add(Integer.valueOf(1000000 + id));
 
 		return this;
 	}
@@ -136,15 +136,15 @@ public final class SystemMessage extends L2GameServerPacket
 
 	public SystemMessage addItemName(int id)
 	{
-		_types.add(new Integer(TYPE_ITEM_NAME));
-		_values.add(new Integer(id));
+		_types.add(Integer.valueOf(TYPE_ITEM_NAME));
+		_values.add(Integer.valueOf(id));
 
 		return this;
 	}
 
 	public SystemMessage addZoneName(int x, int y, int z)
 	{
-		_types.add(new Integer(TYPE_ZONE_NAME));
+		_types.add(Integer.valueOf(TYPE_ZONE_NAME));
 		int[] coord = {x, y, z};
 		_values.add(coord);
 
@@ -170,8 +170,8 @@ public final class SystemMessage extends L2GameServerPacket
 
 	public SystemMessage addSkillName(int id, int lvl)
 	{
-		_types.add(new Integer(TYPE_SKILL_NAME));
-		_values.add(new Integer(id));
+		_types.add(Integer.valueOf(TYPE_SKILL_NAME));
+		_values.add(Integer.valueOf(id));
 		_skillLvL = lvl;
 
 		return this;

+ 1 - 0
L2_GameServer/java/net/sf/l2j/gameserver/scripting/L2ScriptEngineManager.java

@@ -247,6 +247,7 @@ public final class L2ScriptEngineManager
                     }
                 }
             }
+            lnr.close();
         }
         else
         {

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/AttackStanceTaskManager.java

@@ -110,7 +110,7 @@ public class AttackStanceTaskManager
 						}
 					}
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 				// TODO: Find out the reason for exception. Unless caught here,
 				// players remain in attack positions.

+ 2 - 4
L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/DecayTaskManager.java

@@ -98,7 +98,7 @@ public class DecayTaskManager
 						}
 					}
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 				// TODO: Find out the reason for exception. Unless caught here,
 				// mob decay would stop.
@@ -117,9 +117,7 @@ public class DecayTaskManager
 		Long current = System.currentTimeMillis();
 		for (L2Character actor : _decayTasks.keySet())
 		{
-			ret += "Class/Name: " + actor.getClass().getSimpleName() + "/"
-			        + actor.getName() + " decay timer: "
-			        + (current - _decayTasks.get(actor)) + "\r\n";
+			ret += "Class/Name: " + actor.getClass().getSimpleName() + "/" + actor.getName() + " decay timer: " + (current - _decayTasks.get(actor)) + "\r\n";
 		}
 		
 		return ret;

+ 4 - 5
L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/KnownListUpdateTaskManager.java

@@ -35,7 +35,7 @@ public class KnownListUpdateTaskManager
 	public static boolean updatePass = true;
 	
 	// Do full update every FULL_UPDATE_TIMER * KNOWNLIST_UPDATE_INTERVAL
-	public static int _fullUpdateTimer = FULL_UPDATE_TIMER; 
+	public static int _fullUpdateTimer = FULL_UPDATE_TIMER;
 	private static KnownListUpdateTaskManager _instance;
 	
 	public KnownListUpdateTaskManager()
@@ -85,7 +85,7 @@ public class KnownListUpdateTaskManager
 					}
 				}
 			}
-			catch (Throwable e)
+			catch (Exception e)
 			{
 				_log.warning(e.toString());
 			}
@@ -100,8 +100,7 @@ public class KnownListUpdateTaskManager
 		}
 	}
 	
-	public void updateRegion(L2WorldRegion region, boolean fullUpdate,
-	        boolean forgetObjects)
+	public void updateRegion(L2WorldRegion region, boolean fullUpdate, boolean forgetObjects)
 	{
 		// synchronized (syncObject)
 		{
@@ -112,7 +111,7 @@ public class KnownListUpdateTaskManager
 				{
 					if (!object.isVisible())
 						continue; // skip dying objects
-					
+						
 					if (forgetObjects)
 					{
 						object.getKnownList().forgetObjects((object instanceof L2PlayableInstance || (Config.GUARD_ATTACK_AGGRO_MOB && object instanceof L2GuardInstance) || fullUpdate));

+ 9 - 11
L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/TaskManager.java

@@ -53,11 +53,9 @@ public final class TaskManager
 	
 	private static TaskManager _instance;
 	
-	protected static final String[] SQL_STATEMENTS = 
+	protected static final String[] SQL_STATEMENTS =
 	{
-		"SELECT id,task,type,last_activation,param1,param2,param3 FROM global_tasks",
-		"UPDATE global_tasks SET last_activation=? WHERE id=?",
-		"SELECT id FROM global_tasks WHERE task=?",
+		"SELECT id,task,type,last_activation,param1,param2,param3 FROM global_tasks", "UPDATE global_tasks SET last_activation=? WHERE id=?", "SELECT id FROM global_tasks WHERE task=?",
 		"INSERT INTO global_tasks (task,type,last_activation,param1,param2,param3) VALUES(?,?,?,?,?,?)"
 	};
 	
@@ -79,7 +77,10 @@ public final class TaskManager
 			type = ptype;
 			id = rset.getInt("id");
 			lastActivation = rset.getLong("last_activation");
-			params = new String[] { rset.getString("param1"), rset.getString("param2"), rset.getString("param3") };
+			params = new String[]
+			{
+				rset.getString("param1"), rset.getString("param2"), rset.getString("param3")
+			};
 		}
 		
 		public void run()
@@ -100,8 +101,7 @@ public final class TaskManager
 			}
 			catch (SQLException e)
 			{
-				_log.warning("cannot updated the Global Task " + id + ": "
-				        + e.getMessage());
+				_log.warning("cannot updated the Global Task " + id + ": " + e.getMessage());
 			}
 			finally
 			{
@@ -304,8 +304,7 @@ public final class TaskManager
 			
 			if (hour.length != 3)
 			{
-				_log.warning("Task " + task.getId()
-				        + " has incorrect parameters");
+				_log.warning("Task " + task.getId() + " has incorrect parameters");
 				return false;
 			}
 			
@@ -321,8 +320,7 @@ public final class TaskManager
 			}
 			catch (Exception e)
 			{
-				_log.warning("Bad parameter on task " + task.getId() + ": "
-				        + e.getMessage());
+				_log.warning("Bad parameter on task " + task.getId() + ": " + e.getMessage());
 				return false;
 			}
 			

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/util/MultiSort.java

@@ -75,7 +75,7 @@ public class MultiSort
 		Integer[] tempIntList = new Integer[valueList.length];
 		
 		for (int i = 0; i < valueList.length; i++)
-			tempIntList[i] = new Integer(valueList[i]);
+			tempIntList[i] = Integer.valueOf(valueList[i]);
 		
 		return Arrays.asList(tempIntList);
 	}

+ 24 - 4
L2_GameServer/java/net/sf/l2j/loginserver/GameServerTable.java

@@ -132,7 +132,13 @@ public class GameServerTable
 		}
 		finally
 		{
-			try { in.close(); } catch (Exception e) {}
+			try
+			{
+				in.close();
+			}
+			catch (Exception e)
+			{
+			}
 		}
 	}
 
@@ -226,12 +232,26 @@ public class GameServerTable
 		}
 		catch (SQLException e)
 		{
-			_log.warning("SQL error while saving gameserver: "+e);
+			_log.warning("SQL error while saving gameserver: " + e);
 		}
 		finally
 		{
-			try { statement.close();} catch (Exception e) {}
-			try { con.close();} catch (Exception e) {}
+			try
+			{
+				statement.close();
+			}
+			catch (Exception e)
+			{
+				
+			}
+			try
+			{
+				con.close();
+			}
+			catch (Exception e)
+			{
+				
+			}
 		}
 	}
 

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików