Prechádzať zdrojové kódy

minor pixies, thx JIV

janiii 15 rokov pred
rodič
commit
ee7497a0ce

+ 6 - 0
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/CharacterCreate.java

@@ -251,6 +251,12 @@ public final class CharacterCreate extends L2GameClientPacket
 		{
 			L2ItemInstance item = newChar.getInventory().addItem("Init", ia.getItemId(), ia.getAmount(), newChar, null);
 			
+			if (item == null)
+			{
+				_log.warning("Could not create item during char creation: itemId " + ia.getItemId() + ", amount " + ia.getAmount() + ".");
+				continue;
+			}
+			
 			// add tutbook shortcut
 			if (item.getItemId() == 5588)
 			{

+ 26 - 1
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestPrivateStoreBuy.java

@@ -64,7 +64,15 @@ public final class RequestPrivateStoreBuy extends L2GameClientPacket
 				_items = null;
 				return;
 			}
-			_items[i] = new ItemRequest(objectId, cnt, price);
+			// check if object id already present in buy list
+			if (!checkId(objectId))
+			{
+				Util.handleIllegalPlayerAction(getClient().getActiveChar(), "Duplicate object id in private store buy list", Config.DEFAULT_PUNISH);
+				_items = null;
+				return;
+			} else {
+				_items[i] = new ItemRequest(objectId, cnt, price);
+			}
 		}
 	}
 	
@@ -172,6 +180,23 @@ public final class RequestPrivateStoreBuy extends L2GameClientPacket
 				}*/
 	}
 	
+	/**
+	 * Check if the buy list already contains given object id.
+	 * @param objId object id to check for duplicate in the buy list
+	 * @return true if object id not found in buy list, else return false
+	 */
+	private boolean checkId(int objId)
+	{
+		for (ItemRequest i : _items)
+		{
+			if (i != null && i.getObjectId() == objId)
+			{
+				return false;
+			}
+		}
+		return true;
+	}
+	
 	@Override
 	public String getType()
 	{