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

View File

@ -3667,7 +3667,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3690,7 +3689,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -475,34 +475,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList(false);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3669,7 +3669,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3692,7 +3691,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -475,34 +475,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList(false);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3671,7 +3671,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3694,7 +3693,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -475,34 +475,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList(false);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3667,7 +3667,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3690,7 +3689,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -475,34 +475,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList(false);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3697,7 +3697,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3720,7 +3719,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -479,34 +479,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3710,7 +3710,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3733,7 +3732,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -479,34 +479,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3711,7 +3711,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3734,7 +3733,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -479,34 +479,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3648,7 +3648,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3671,7 +3670,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -479,34 +479,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3679,7 +3679,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3702,7 +3701,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -480,34 +480,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3696,7 +3696,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3719,7 +3718,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -480,34 +480,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3710,7 +3710,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3733,7 +3732,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
import org.l2jmobius.gameserver.model.variables.ItemVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
public class PlayerInventory extends Inventory
{
@ -480,34 +481,40 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
// Einhasad coin UI update.
if (item.getId() == Inventory.EINHASAD_COIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3738,7 +3738,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3761,7 +3760,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
import org.l2jmobius.gameserver.model.variables.ItemVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
public class PlayerInventory extends Inventory
{
@ -480,34 +481,40 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
// Einhasad coin UI update.
if (item.getId() == Inventory.EINHASAD_COIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -37,6 +37,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -222,6 +223,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -248,12 +250,21 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If new items where created send InventoryUpdate.
if ((item != null) && (!item.isStackable() || (item.getCount() == count)) && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
}
refreshWeight();

View File

@ -37,6 +37,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -222,6 +223,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -248,12 +250,21 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If new items where created send InventoryUpdate.
if ((item != null) && (!item.isStackable() || (item.getCount() == count)) && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
}
refreshWeight();

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -260,6 +261,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -278,12 +280,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
}
refreshWeight();

View File

@ -461,13 +461,21 @@ public class PlayerInventory extends Inventory
{
_ancientAdena = item;
}
if (actor != null)
{
// Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE)
{
final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -260,6 +261,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -278,12 +280,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
}
refreshWeight();

View File

@ -478,13 +478,21 @@ public class PlayerInventory extends Inventory
{
_ancientAdena = item;
}
if (actor != null)
{
// Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE)
{
final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -260,6 +261,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -278,12 +280,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendPacket(iu);
}
}
refreshWeight();

View File

@ -478,13 +478,21 @@ public class PlayerInventory extends Inventory
{
_ancientAdena = item;
}
if (actor != null)
{
// Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE)
{
final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendPacket(playerIU);
}
else

View File

@ -3646,7 +3646,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3669,7 +3668,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -503,34 +503,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList(false);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3646,7 +3646,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3669,7 +3668,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -503,34 +503,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList(false);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3644,7 +3644,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3667,7 +3666,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -507,34 +507,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3671,7 +3671,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3694,7 +3693,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -507,34 +507,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3671,7 +3671,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3694,7 +3693,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -507,34 +507,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3598,7 +3598,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3621,7 +3620,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -507,34 +507,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3627,7 +3627,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3650,7 +3649,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -475,34 +475,34 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList(false);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3672,7 +3672,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3695,7 +3694,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -481,40 +481,40 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3714,7 +3714,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3737,7 +3736,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -481,40 +481,40 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3729,7 +3729,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3752,7 +3751,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -481,40 +481,40 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}

View File

@ -3762,7 +3762,6 @@ public class Player extends Playable
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
}
else
@ -3785,7 +3784,6 @@ public class Player extends Playable
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
}
else

View File

@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Advi
@ -243,6 +244,7 @@ public abstract class ItemContainer
}
else // If item hasn't be found in inventory, create new one
{
final InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < count; i++)
{
final ItemTemplate template = ItemTable.getInstance().getTemplate(itemId);
@ -260,12 +262,24 @@ public abstract class ItemContainer
// Add item in inventory
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 (template.isStackable() || !Config.MULTIPLE_ITEM_DROP)
{
break;
}
}
// If additional items where created send InventoryUpdate.
if ((count > 1) && (item != null) && !item.isStackable() && (item.getItemLocation() == ItemLocation.INVENTORY))
{
actor.sendInventoryUpdate(iu);
}
}
refreshWeight();

View File

@ -481,40 +481,40 @@ public class PlayerInventory extends Inventory
{
_beautyTickets = item;
}
}
if ((item != null) && (actor != null))
{
// Send inventory update packet
if (update)
if (actor != null)
{
if (!Config.FORCE_INVENTORY_UPDATE)
// Send inventory update packet
if (update)
{
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
if (!Config.FORCE_INVENTORY_UPDATE)
{
playerIU.addModifiedItem(item);
final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
}
else
{
playerIU.addNewItem(item);
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// LCoin UI update.
if (item.getId() == Inventory.LCOIN_ID)
{
actor.sendPacket(new ExBloodyCoinCount(actor));
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
// Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, item), actor, item.getTemplate());
}
return item;
}