Browse Source

* Added sorted wh for clan hall manager and castle
* Also merged method for normal and sorted withdraw into 1 method (as they are different only in 1 line)
Thanks janiii

DrHouse 16 years ago
parent
commit
4e0bc4a698

+ 103 - 31
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2CastleWarehouseInstance.java

@@ -14,13 +14,17 @@
  */
 package net.sf.l2j.gameserver.model.actor.instance;
 
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.cache.HtmCache;
 import net.sf.l2j.gameserver.model.L2Clan;
 import net.sf.l2j.gameserver.network.SystemMessageId;
 import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
 import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
+import net.sf.l2j.gameserver.network.serverpackets.SortedWareHouseWithdrawalList;
 import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
 import net.sf.l2j.gameserver.network.serverpackets.WareHouseDepositList;
 import net.sf.l2j.gameserver.network.serverpackets.WareHouseWithdrawalList;
+import net.sf.l2j.gameserver.network.serverpackets.SortedWareHouseWithdrawalList.WarehouseListType;
 import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;
 import net.sf.l2j.gameserver.util.IllegalPlayerAction;
 import net.sf.l2j.gameserver.util.Util;
@@ -41,20 +45,23 @@ public class L2CastleWarehouseInstance extends L2NpcInstance
     {
         super(objectId, template);
     }
-
-    private void showRetrieveWindow(L2PcInstance player)
-    {
-        player.sendPacket(ActionFailed.STATIC_PACKET);
-        player.setActiveWarehouse(player.getWarehouse());
-
-        if (player.getActiveWarehouse().getSize() == 0)
-        {
-            player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
-            return;
-        }
-
-        player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE));
-    }
+    
+    private void showRetrieveWindow(L2PcInstance player, WarehouseListType itemtype, byte sortorder)
+	{
+    	player.sendPacket(ActionFailed.STATIC_PACKET);
+    	player.setActiveWarehouse(player.getWarehouse());
+
+    	if (player.getActiveWarehouse().getSize() == 0)
+    	{
+    		player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
+    		return;
+    	}
+    	
+    	if (itemtype != null)
+    		player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE, itemtype, sortorder));
+    	else
+    		player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE));
+	}
 
     private void showDepositWindow(L2PcInstance player)
     {
@@ -88,25 +95,34 @@ public class L2CastleWarehouseInstance extends L2NpcInstance
             }
         }
     }
-
-    private void showWithdrawWindowClan(L2PcInstance player) {
-        player.sendPacket(ActionFailed.STATIC_PACKET);
-        if ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) != L2Clan.CP_CL_VIEW_WAREHOUSE) {
-        	player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_CLAN_WAREHOUSE));
-        	return;
-        } else {
-            if (player.getClan().getLevel() == 0) {
-                player.sendPacket(new SystemMessage(SystemMessageId.ONLY_LEVEL_1_CLAN_OR_HIGHER_CAN_USE_WAREHOUSE));
-            } else {
-                player.setActiveWarehouse(player.getClan().getWarehouse());
-                player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
-            }
-        }
-    }
+    
+    private void showWithdrawWindowClan(L2PcInstance player, WarehouseListType itemtype, byte sortorder)
+    {
+    	player.sendPacket(ActionFailed.STATIC_PACKET);
+    	if ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) != L2Clan.CP_CL_VIEW_WAREHOUSE)
+    	{
+    		player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_CLAN_WAREHOUSE));
+    		return;
+    	}
+    	else
+    	{
+    		if (player.getClan().getLevel() == 0)
+    			player.sendPacket(new SystemMessage(SystemMessageId.ONLY_LEVEL_1_CLAN_OR_HIGHER_CAN_USE_WAREHOUSE));
+    		else
+    		{
+    			player.setActiveWarehouse(player.getClan().getWarehouse());
+    			if (itemtype != null)
+    				player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN, itemtype, sortorder));
+    			else
+    				player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
+    		}
+    	}
+	}
 
     @Override
     public void onBypassFeedback(L2PcInstance player, String command)
     {
+    	String param[] = command.split("_");
         if (player.getActiveEnchantItem() != null)
         {
         	Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " trying to use enchant exploit, ban this player!", IllegalPlayerAction.PUNISH_KICK);
@@ -114,11 +130,67 @@ public class L2CastleWarehouseInstance extends L2NpcInstance
         }
 
         if (command.startsWith("WithdrawP"))
-            showRetrieveWindow(player);
+        {
+        	if (Config.L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE)
+        	{
+        		String htmFile = "data/html/mods/WhSortedP.htm";
+        		String htmContent = HtmCache.getInstance().getHtm(htmFile);
+        		if (htmContent != null)
+        		{
+        			NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(getObjectId());
+        			npcHtmlMessage.setHtml(htmContent);
+        			npcHtmlMessage.replace("%objectId%", String.valueOf(getObjectId()));
+        			player.sendPacket(npcHtmlMessage);
+        		}
+        		else
+        		{
+        			_log.warning("Missing htm: " + htmFile + " !");
+        		}
+        	}
+        	else
+        		showRetrieveWindow(player, null, (byte) 0);
+        }
+        else if (command.startsWith("WithdrawSortedP"))
+        {
+        	if (param.length > 2)
+        		showRetrieveWindow(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.getOrder(param[2]));
+        	else if (param.length > 1)
+        		showRetrieveWindow(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.A2Z);
+        	else
+        		showRetrieveWindow(player, WarehouseListType.ALL, SortedWareHouseWithdrawalList.A2Z);
+        }
         else if (command.equals("DepositP"))
             showDepositWindow(player);
         else if (command.equals("WithdrawC"))
-            showWithdrawWindowClan(player);
+        {
+        	if (Config.L2JMOD_ENABLE_WAREHOUSESORTING_CLAN)
+        	{
+        		String htmFile = "data/html/mods/WhSortedC.htm";
+        		String htmContent = HtmCache.getInstance().getHtm(htmFile);
+        		if (htmContent != null)
+        		{
+        			NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(getObjectId());
+        			npcHtmlMessage.setHtml(htmContent);
+        			npcHtmlMessage.replace("%objectId%", String.valueOf(getObjectId()));
+        			player.sendPacket(npcHtmlMessage);
+        		}
+        		else
+        		{
+        			_log.warning("Missing htm: " + htmFile + " !");
+        		}
+        	}
+        	else
+        		showWithdrawWindowClan(player, null, (byte) 0);
+        }
+        else if (command.startsWith("WithdrawSortedC"))
+        {
+        	if (param.length > 2)
+        		showWithdrawWindowClan(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.getOrder(param[2]));
+        	else if (param.length > 1)
+        		showWithdrawWindowClan(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.A2Z);
+        	else
+        		showWithdrawWindowClan(player, WarehouseListType.ALL, SortedWareHouseWithdrawalList.A2Z);
+        }
         else if (command.equals("DepositC"))
             showDepositWindowClan(player);
         else if (command.startsWith("Chat"))

+ 43 - 7
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2ClanHallManagerInstance.java

@@ -18,6 +18,7 @@ import java.text.SimpleDateFormat;
 import java.util.StringTokenizer;
 
 import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.cache.HtmCache;
 import net.sf.l2j.gameserver.datatables.SkillTable;
 import net.sf.l2j.gameserver.datatables.TeleportLocationTable;
 import net.sf.l2j.gameserver.instancemanager.ClanHallManager;
@@ -29,9 +30,11 @@ import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
 import net.sf.l2j.gameserver.network.serverpackets.AgitDecoInfo;
 import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
 import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
+import net.sf.l2j.gameserver.network.serverpackets.SortedWareHouseWithdrawalList;
 import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
 import net.sf.l2j.gameserver.network.serverpackets.WareHouseDepositList;
 import net.sf.l2j.gameserver.network.serverpackets.WareHouseWithdrawalList;
+import net.sf.l2j.gameserver.network.serverpackets.SortedWareHouseWithdrawalList.WarehouseListType;
 import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;
 import net.sf.l2j.gameserver.templates.skills.L2SkillType;
 
@@ -96,7 +99,26 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
                     if (val.equalsIgnoreCase("deposit"))
                         showVaultWindowDeposit(player);
                     else if (val.equalsIgnoreCase("withdraw"))
-                        showVaultWindowWithdraw(player);
+                    {
+                    	if (Config.L2JMOD_ENABLE_WAREHOUSESORTING_CLAN)
+                    	{
+                    		String htmFile = "data/html/mods/WhSortedC.htm";
+	                		String htmContent = HtmCache.getInstance().getHtm(htmFile);
+	                		if (htmContent != null)
+	                		{
+	                			NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(getObjectId());
+	                			npcHtmlMessage.setHtml(htmContent);
+	                			npcHtmlMessage.replace("%objectId%", String.valueOf(getObjectId()));
+	                			player.sendPacket(npcHtmlMessage);
+	                		}
+	                		else
+	                		{
+	                			_log.warning("Missing htm: " + htmFile + " !");
+	                		}
+                    	}
+                    	else
+                    		showVaultWindowWithdraw(player, null, (byte) 0);
+                    }
                     else
                     {
                         html.setFile("data/html/clanHallManager/vault.htm");
@@ -112,6 +134,17 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
                 }
                 return;
             }
+            else if (actualCommand.startsWith("WithdrawSortedC"))
+            {
+            	String param[] = command.split("_");
+            	if (param.length > 2)
+            		showVaultWindowWithdraw(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.getOrder(param[2]));
+            	else if (param.length > 1)
+            		showVaultWindowWithdraw(player, WarehouseListType.valueOf(param[1]), SortedWareHouseWithdrawalList.A2Z);
+            	else
+            		showVaultWindowWithdraw(player, WarehouseListType.ALL, SortedWareHouseWithdrawalList.A2Z);
+            	return;
+            }
             else if (actualCommand.equalsIgnoreCase("door"))
             {
             	NpcHtmlMessage html = new NpcHtmlMessage(1);
@@ -1431,21 +1464,24 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
         player.sendPacket(new WareHouseDepositList(player, WareHouseDepositList.CLAN)); //Or Clan Hall??
     }
 
-    private void showVaultWindowWithdraw(L2PcInstance player)
+    private void showVaultWindowWithdraw(L2PcInstance player, WarehouseListType itemtype, byte sortorder)
     {
-    	if (player.isClanLeader()||((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) == L2Clan.CP_CL_VIEW_WAREHOUSE))
+    	if (player.isClanLeader() || ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) == L2Clan.CP_CL_VIEW_WAREHOUSE))
     	{
     		player.sendPacket(ActionFailed.STATIC_PACKET);
     		player.setActiveWarehouse(player.getClan().getWarehouse());
-    		player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
+    		if (itemtype != null)
+				player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN, itemtype, sortorder));
+			else
+				player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
     	}
     	else
-        {
+    	{
     		NpcHtmlMessage html = new NpcHtmlMessage(1);
             html.setFile("data/html/clanHallManager/not_authorized.htm");
             sendHtmlMessage(player, html);
-        }
-    }
+    	}
+	}
 
     private void doTeleport(L2PcInstance player, int val)
     {

+ 17 - 74
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2WarehouseInstance.java

@@ -79,24 +79,12 @@ public final class L2WarehouseInstance extends L2NpcInstance
 		if (Config.DEBUG)
 			_log.fine("Showing stored items");
 		
-		player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE, itemtype, sortorder));
+		if (itemtype != null)
+			player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE, itemtype, sortorder));
+		else
+			player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE));
 	}
 
-    private void showRetrieveWindow(L2PcInstance player)
-    {
-        player.sendPacket(ActionFailed.STATIC_PACKET);
-        player.setActiveWarehouse(player.getWarehouse());
-
-        if (player.getActiveWarehouse().getSize() == 0)
-        {
-        	player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
-        	return;
-        }
-
-        if (Config.DEBUG) _log.fine("Showing stored items");
-        player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE));
-    }
-
     private void showDepositWindow(L2PcInstance player)
     {
         player.sendPacket(ActionFailed.STATIC_PACKET);
@@ -142,31 +130,14 @@ public final class L2WarehouseInstance extends L2NpcInstance
     		{
     			player.setActiveWarehouse(player.getClan().getWarehouse());
     			if (Config.DEBUG) _log.fine("Showing items to deposit - clan");
-    			player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN, itemtype, sortorder));
+    			
+    			if (itemtype != null)
+    				player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN, itemtype, sortorder));
+    			else
+    				player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
     		}
     	}
 	}
-
-    private void showWithdrawWindowClan(L2PcInstance player)
-    {
-        player.sendPacket(ActionFailed.STATIC_PACKET);
-    	if ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) != L2Clan.CP_CL_VIEW_WAREHOUSE)
-    	{
-    		player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_CLAN_WAREHOUSE));
-    		return;
-    	}
-    	else
-    	{
-            if (player.getClan().getLevel() == 0)
-                player.sendPacket(new SystemMessage(SystemMessageId.ONLY_LEVEL_1_CLAN_OR_HIGHER_CAN_USE_WAREHOUSE));
-            else
-            {
-            	player.setActiveWarehouse(player.getClan().getWarehouse());
-                if (Config.DEBUG) _log.fine("Showing items to deposit - clan");
-                player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
-            }
-    	}
-    }
     
     private void showWithdrawWindowFreight(L2PcInstance player, WarehouseListType itemtype, byte sortorder)
 	{
@@ -185,7 +156,11 @@ public final class L2WarehouseInstance extends L2NpcInstance
     				freight.setActiveLocation(getWorldRegion().hashCode());
     			
     			player.setActiveWarehouse(freight);
-    			player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.FREIGHT, itemtype, sortorder));
+    			
+    			if (itemtype != null)
+    				player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.FREIGHT, itemtype, sortorder));
+    			else
+    				player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.FREIGHT));
     		}
     		else
     			player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
@@ -194,38 +169,6 @@ public final class L2WarehouseInstance extends L2NpcInstance
     		if (Config.DEBUG) _log.fine("no items freightened");
 	}
 
-    private void showWithdrawWindowFreight(L2PcInstance player)
-    {
-        player.sendPacket(ActionFailed.STATIC_PACKET);
-        if (Config.DEBUG) _log.fine("Showing freightened items");
-
-        PcFreight freight = player.getFreight();
-
-        if (freight != null)
-        {
-        	if (freight.getSize() > 0)
-        	{
-	        	if (Config.ALT_GAME_FREIGHTS)
-	        	{
-	                freight.setActiveLocation(0);
-	        	} else
-	        	{
-	        		freight.setActiveLocation(getWorldRegion().hashCode());
-	        	}
-	            player.setActiveWarehouse(freight);
-	            player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.FREIGHT));
-        	}
-        	else
-        	{
-            	player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
-        	}
-        }
-        else
-        {
-            if (Config.DEBUG) _log.fine("no items freightened");
-        }
-    }
-
     private void showDepositWindowFreight(L2PcInstance player)
     {
         // No other chars in the account of this player
@@ -305,7 +248,7 @@ public final class L2WarehouseInstance extends L2NpcInstance
         		}
         	}
         	else
-        		showRetrieveWindow(player);
+        		showRetrieveWindow(player, null, (byte) 0);
         }
         else if (command.startsWith("WithdrawSortedP"))
         {
@@ -339,7 +282,7 @@ public final class L2WarehouseInstance extends L2NpcInstance
         		}
         	}
         	else
-        		showWithdrawWindowClan(player);
+        		showWithdrawWindowClan(player, null, (byte) 0);
         }
         else if (command.startsWith("WithdrawSortedC"))
         {
@@ -375,7 +318,7 @@ public final class L2WarehouseInstance extends L2NpcInstance
             		}
             	}
             	else
-            		showWithdrawWindowFreight(player);
+            		showWithdrawWindowFreight(player, null, (byte) 0);
             }
         }
         else if (command.startsWith("WithdrawSortedF"))