Additional InventoryUpdate when creating more than one non-stackable item.

This commit is contained in:
MobiusDevelopment
2022-06-24 21:06:46 +00:00
parent b89b99498b
commit c2baac74a3
77 changed files with 884 additions and 506 deletions
@@ -3667,7 +3667,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3690,7 +3689,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -475,9 +475,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -504,6 +503,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3669,7 +3669,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3692,7 +3691,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -475,9 +475,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -504,6 +503,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3671,7 +3671,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3694,7 +3693,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -475,9 +475,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -504,6 +503,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3667,7 +3667,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3690,7 +3689,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -475,9 +475,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -504,6 +503,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3697,7 +3697,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3720,7 +3719,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -479,9 +479,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -508,6 +507,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3710,7 +3710,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3733,7 +3732,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -479,9 +479,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -508,6 +507,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3711,7 +3711,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3734,7 +3733,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -479,9 +479,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -508,6 +507,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3648,7 +3648,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3671,7 +3670,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -479,9 +479,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -508,6 +507,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3679,7 +3679,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3702,7 +3701,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -480,9 +480,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -509,6 +508,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3696,7 +3696,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3719,7 +3718,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -480,9 +480,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -509,6 +508,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3710,7 +3710,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3733,7 +3732,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
import org.l2jmobius.gameserver.model.variables.ItemVariables; import org.l2jmobius.gameserver.model.variables.ItemVariables;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate; import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
public class PlayerInventory extends Inventory public class PlayerInventory extends Inventory
{ {
@@ -480,9 +481,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -504,11 +504,18 @@ public class PlayerInventory extends Inventory
{ {
actor.sendItemList(); actor.sendItemList();
} }
// Einhasad coin UI update.
if (item.getId() == Inventory.EINHASAD_COIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
} }
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3738,7 +3738,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3761,7 +3760,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
import org.l2jmobius.gameserver.model.variables.ItemVariables; import org.l2jmobius.gameserver.model.variables.ItemVariables;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate; import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
public class PlayerInventory extends Inventory public class PlayerInventory extends Inventory
{ {
@@ -480,9 +481,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -504,11 +504,18 @@ public class PlayerInventory extends Inventory
{ {
actor.sendItemList(); actor.sendItemList();
} }
// Einhasad coin UI update.
if (item.getId() == Inventory.EINHASAD_COIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
} }
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -37,6 +37,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -222,6 +223,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -248,12 +250,21 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add new item to InventoryUpdate.
iu.addNewItem(item);
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If new items where created send InventoryUpdate.
if ((item != null) && (!item.isStackable() || (item.getCount() == count)) && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -37,6 +37,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -222,6 +223,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -248,12 +250,21 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add new item to InventoryUpdate.
iu.addNewItem(item);
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If new items where created send InventoryUpdate.
if ((item != null) && (!item.isStackable() || (item.getCount() == count)) && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -260,6 +261,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -278,12 +280,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -461,13 +461,21 @@ public class PlayerInventory extends Inventory
{ {
_ancientAdena = item; _ancientAdena = item;
} }
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (!Config.FORCE_INVENTORY_UPDATE)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addItem(item); if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendPacket(playerIU); actor.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -260,6 +261,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -278,12 +280,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -478,13 +478,21 @@ public class PlayerInventory extends Inventory
{ {
_ancientAdena = item; _ancientAdena = item;
} }
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (!Config.FORCE_INVENTORY_UPDATE)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addItem(item); if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendPacket(playerIU); actor.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -260,6 +261,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -278,12 +280,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -478,13 +478,21 @@ public class PlayerInventory extends Inventory
{ {
_ancientAdena = item; _ancientAdena = item;
} }
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (!Config.FORCE_INVENTORY_UPDATE)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addItem(item); if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendPacket(playerIU); actor.sendPacket(playerIU);
} }
else else
@@ -3646,7 +3646,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3669,7 +3668,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -503,9 +503,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -532,6 +531,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3646,7 +3646,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3669,7 +3668,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -503,9 +503,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -532,6 +531,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3644,7 +3644,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3667,7 +3666,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -507,9 +507,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -536,6 +535,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3671,7 +3671,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3694,7 +3693,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -507,9 +507,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -536,6 +535,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3671,7 +3671,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3694,7 +3693,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -507,9 +507,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -536,6 +535,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3598,7 +3598,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3621,7 +3620,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -507,9 +507,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -536,6 +535,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3627,7 +3627,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3650,7 +3649,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -475,9 +475,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -504,6 +503,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3672,7 +3672,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3695,7 +3694,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -481,9 +481,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -516,6 +515,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3714,7 +3714,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3737,7 +3736,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -481,9 +481,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -516,6 +515,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3729,7 +3729,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3752,7 +3751,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -481,9 +481,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -516,6 +515,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }
@@ -3762,7 +3762,6 @@ public class Player extends Playable
{ {
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU); sendInventoryUpdate(playerIU);
} }
else else
@@ -3785,7 +3784,6 @@ public class Player extends Playable
{ {
playerIU.addNewItem(newItem); playerIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(playerIU); targetPlayer.sendPacket(playerIU);
} }
else else
@@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate; import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/** /**
* @author Advi * @author Advi
@@ -243,6 +244,7 @@ public abstract class ItemContainer
} }
else // If item hasn't be found in inventory, create new one else // If item hasn't be found in inventory, create new one
{ {
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId); final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory // Add item in inventory
addItem(item); addItem(item);
// Add additional items to InventoryUpdate.
if ((count > 1) && (i < (count - 1)))
{
iu.addNewItem(item);
}
// If stackable, end loop as entire count is included in 1 instance of item // If stackable, end loop as entire count is included in 1 instance of item
if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP) if (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{ {
break; break;
} }
} }
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
} }
refreshWeight(); refreshWeight();
@@ -481,9 +481,8 @@ public class PlayerInventory extends Inventory
{ {
_beautyTickets = item; _beautyTickets = item;
} }
}
if ((item != null) && (actor != null)) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (update) if (update)
@@ -516,6 +515,7 @@ public class PlayerInventory extends Inventory
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
} }
}
return item; return item;
} }