Dropped ForceInventoryUpdate configuration.

This commit is contained in:
MobiusDevelopment
2022-08-19 22:31:14 +00:00
parent 8ab5c31458
commit 58f30044d5
403 changed files with 3443 additions and 8712 deletions
-6
View File
@@ -234,12 +234,6 @@ AutoDeleteInvalidQuestData = False
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -475,7 +475,6 @@ public class Config
public static boolean ORDER_QUEST_LIST_BY_QUESTID; public static boolean ORDER_QUEST_LIST_BY_QUESTID;
public static boolean AUTODELETE_INVALID_QUEST_DATA; public static boolean AUTODELETE_INVALID_QUEST_DATA;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -1988,7 +1987,6 @@ public class Config
ORDER_QUEST_LIST_BY_QUESTID = generalConfig.getBoolean("OrderQuestListByQuestId", true); ORDER_QUEST_LIST_BY_QUESTID = generalConfig.getBoolean("OrderQuestListByQuestId", true);
AUTODELETE_INVALID_QUEST_DATA = generalConfig.getBoolean("AutoDeleteInvalidQuestData", false); AUTODELETE_INVALID_QUEST_DATA = generalConfig.getBoolean("AutoDeleteInvalidQuestData", false);
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -84,16 +83,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList(false);
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -589,31 +589,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packet
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList(false);
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList(false);
}
success = true; success = true;
} }
@@ -3082,22 +3082,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList(false);
{
sendItemList(false);
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(false); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3130,16 +3123,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3180,16 +3166,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3232,16 +3211,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
} }
} }
@@ -3272,16 +3245,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3488,23 +3454,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3604,23 +3563,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3666,45 +3618,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(false); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
else if (target instanceof PetInventory) else if (target instanceof PetInventory)
{ {
@@ -3807,16 +3745,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3881,16 +3812,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -417,16 +417,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -483,23 +476,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(false); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1095,14 +1081,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList(false);
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(true); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -400,7 +400,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }
@@ -163,7 +163,7 @@ public class RequestPackageSend implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder i : _items) for (ItemHolder i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -182,16 +182,13 @@ public class RequestPackageSend implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
// Remove item objects from the world. // Remove item objects from the world.
@@ -202,13 +199,6 @@ public class RequestPackageSend implements IClientIncomingPacket
warehouse.deleteMe(); warehouse.deleteMe();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
@@ -184,7 +184,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -205,16 +205,13 @@ public class RequestPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{ }
playerIU.addModifiedItem(newItem); else
} {
else playerIU.addNewItem(newItem);
{
playerIU.addNewItem(newItem);
}
} }
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
@@ -224,10 +221,8 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -310,7 +310,7 @@ public class RequestSendPost implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (AttachmentItem i : _items) for (AttachmentItem i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -328,28 +328,19 @@ public class RequestSendPost implements IClientIncomingPacket
continue; continue;
} }
newItem.setItemLocation(newItem.getItemLocation(), msg.getId()); newItem.setItemLocation(newItem.getItemLocation(), msg.getId());
if (playerIU != null)
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
return true; return true;
} }
@@ -168,7 +168,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder itemHolder : _items) for (ItemHolder itemHolder : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -191,27 +191,17 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
@@ -242,12 +242,6 @@ ExaltedForHonorItemMax = 45873,100
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -485,7 +485,6 @@ public class Config
public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX; public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX;
public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX; public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -2012,7 +2011,6 @@ public class Config
EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1])); EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1]));
EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1])); EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1]));
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -84,16 +83,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList(false);
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -589,31 +589,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packet
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList(false);
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList(false);
}
success = true; success = true;
} }
@@ -3084,22 +3084,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList(false);
{
sendItemList(false);
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(false); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3132,16 +3125,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3182,16 +3168,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3234,16 +3213,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
} }
} }
@@ -3274,16 +3247,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3490,23 +3456,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3606,23 +3565,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3668,45 +3620,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(false); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
else if (target instanceof PetInventory) else if (target instanceof PetInventory)
{ {
@@ -3809,16 +3747,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3883,16 +3814,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -417,16 +417,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -483,23 +476,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(false); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1099,14 +1085,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList(false);
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(true); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -400,7 +400,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }
@@ -163,7 +163,7 @@ public class RequestPackageSend implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder i : _items) for (ItemHolder i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -182,16 +182,13 @@ public class RequestPackageSend implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
// Remove item objects from the world. // Remove item objects from the world.
@@ -202,13 +199,6 @@ public class RequestPackageSend implements IClientIncomingPacket
warehouse.deleteMe(); warehouse.deleteMe();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
@@ -184,7 +184,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -205,16 +205,13 @@ public class RequestPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{ }
playerIU.addModifiedItem(newItem); else
} {
else playerIU.addNewItem(newItem);
{
playerIU.addNewItem(newItem);
}
} }
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
@@ -224,10 +221,8 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -310,7 +310,7 @@ public class RequestSendPost implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (AttachmentItem i : _items) for (AttachmentItem i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -328,28 +328,19 @@ public class RequestSendPost implements IClientIncomingPacket
continue; continue;
} }
newItem.setItemLocation(newItem.getItemLocation(), msg.getId()); newItem.setItemLocation(newItem.getItemLocation(), msg.getId());
if (playerIU != null)
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
return true; return true;
} }
@@ -168,7 +168,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder itemHolder : _items) for (ItemHolder itemHolder : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -191,27 +191,17 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
-6
View File
@@ -242,12 +242,6 @@ ExaltedForHonorItemMax = 45873,100
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -485,7 +485,6 @@ public class Config
public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX; public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX;
public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX; public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -2025,7 +2024,6 @@ public class Config
EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1])); EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1]));
EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1])); EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1]));
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -84,16 +83,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList(false);
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -589,31 +589,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packet
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList(false);
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList(false);
}
success = true; success = true;
} }
@@ -3086,22 +3086,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList(false);
{
sendItemList(false);
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(false); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3134,16 +3127,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3184,16 +3170,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3236,16 +3215,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
} }
} }
@@ -3276,16 +3249,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3492,23 +3458,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3608,23 +3567,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3670,45 +3622,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(false); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
else if (target instanceof PetInventory) else if (target instanceof PetInventory)
{ {
@@ -3811,16 +3749,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3885,16 +3816,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -417,16 +417,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -483,23 +476,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(false); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1099,14 +1085,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList(false);
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(true); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -400,7 +400,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }
@@ -163,7 +163,7 @@ public class RequestPackageSend implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder i : _items) for (ItemHolder i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -182,16 +182,13 @@ public class RequestPackageSend implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
// Remove item objects from the world. // Remove item objects from the world.
@@ -202,13 +199,6 @@ public class RequestPackageSend implements IClientIncomingPacket
warehouse.deleteMe(); warehouse.deleteMe();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
@@ -184,7 +184,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -205,16 +205,13 @@ public class RequestPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{ }
playerIU.addModifiedItem(newItem); else
} {
else playerIU.addNewItem(newItem);
{
playerIU.addNewItem(newItem);
}
} }
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
@@ -224,10 +221,8 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -310,7 +310,7 @@ public class RequestSendPost implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (AttachmentItem i : _items) for (AttachmentItem i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -328,28 +328,19 @@ public class RequestSendPost implements IClientIncomingPacket
continue; continue;
} }
newItem.setItemLocation(newItem.getItemLocation(), msg.getId()); newItem.setItemLocation(newItem.getItemLocation(), msg.getId());
if (playerIU != null)
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
return true; return true;
} }
@@ -168,7 +168,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder itemHolder : _items) for (ItemHolder itemHolder : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -191,27 +191,17 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
@@ -242,12 +242,6 @@ ExaltedForHonorItemMax = 45873,100
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -479,7 +479,6 @@ public class Config
public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX; public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX;
public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX; public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -2005,7 +2004,6 @@ public class Config
EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1])); EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1]));
EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1])); EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1]));
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -84,16 +83,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList(false);
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -591,31 +591,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packet
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList(false);
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList(false);
}
success = true; success = true;
} }
@@ -3082,22 +3082,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList(false);
{
sendItemList(false);
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(false); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3130,16 +3123,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3180,16 +3166,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3232,16 +3211,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
} }
} }
@@ -3272,16 +3245,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList(false);
}
if (sendMessage) if (sendMessage)
{ {
@@ -3488,23 +3454,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3604,23 +3563,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3666,45 +3618,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(false); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(false); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
else if (target instanceof PetInventory) else if (target instanceof PetInventory)
{ {
@@ -3807,16 +3745,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3881,16 +3812,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList(false);
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -417,16 +417,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList(false);
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -483,23 +476,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(false); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1099,14 +1085,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList(false);
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(true); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -401,7 +401,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }
@@ -163,7 +163,7 @@ public class RequestPackageSend implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder i : _items) for (ItemHolder i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -182,16 +182,13 @@ public class RequestPackageSend implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
// Remove item objects from the world. // Remove item objects from the world.
@@ -202,13 +199,6 @@ public class RequestPackageSend implements IClientIncomingPacket
warehouse.deleteMe(); warehouse.deleteMe();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
@@ -184,7 +184,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -205,16 +205,13 @@ public class RequestPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{ }
playerIU.addModifiedItem(newItem); else
} {
else playerIU.addNewItem(newItem);
{
playerIU.addNewItem(newItem);
}
} }
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
@@ -224,10 +221,8 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(false); player.sendItemList(false);
@@ -310,7 +310,7 @@ public class RequestSendPost implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (AttachmentItem i : _items) for (AttachmentItem i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -328,28 +328,19 @@ public class RequestSendPost implements IClientIncomingPacket
continue; continue;
} }
newItem.setItemLocation(newItem.getItemLocation(), msg.getId()); newItem.setItemLocation(newItem.getItemLocation(), msg.getId());
if (playerIU != null)
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
return true; return true;
} }
@@ -168,7 +168,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder itemHolder : _items) for (ItemHolder itemHolder : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -191,27 +191,17 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList(false);
}
} }
} }
@@ -242,12 +242,6 @@ ExaltedForHonorItemMax = 45873,100
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -478,7 +478,6 @@ public class Config
public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX; public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX;
public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX; public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -2014,7 +2013,6 @@ public class Config
EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1])); EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1]));
EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1])); EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1]));
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -84,16 +83,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList();
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -591,31 +591,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packets
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList();
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList();
}
success = true; success = true;
} }
@@ -3112,22 +3112,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList();
{
sendItemList();
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3160,16 +3153,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3210,16 +3196,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3262,16 +3241,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
} }
} }
@@ -3302,16 +3275,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3518,23 +3484,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3634,23 +3593,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3696,45 +3648,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
return newItem; return newItem;
} }
@@ -3823,16 +3761,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3897,16 +3828,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -421,16 +421,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -487,23 +480,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1140,14 +1126,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList();
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(); player.sendItemList();
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -401,7 +401,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }
@@ -163,7 +163,7 @@ public class RequestPackageSend implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder i : _items) for (ItemHolder i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -182,16 +182,13 @@ public class RequestPackageSend implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
// Remove item objects from the world. // Remove item objects from the world.
@@ -202,13 +199,6 @@ public class RequestPackageSend implements IClientIncomingPacket
warehouse.deleteMe(); warehouse.deleteMe();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
} }
} }
@@ -184,7 +184,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -205,16 +205,13 @@ public class RequestPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{ }
playerIU.addModifiedItem(newItem); else
} {
else playerIU.addNewItem(newItem);
{
playerIU.addNewItem(newItem);
}
} }
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
@@ -224,10 +221,8 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(); player.sendItemList();
@@ -310,7 +310,7 @@ public class RequestSendPost implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (AttachmentItem i : _items) for (AttachmentItem i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -328,28 +328,19 @@ public class RequestSendPost implements IClientIncomingPacket
continue; continue;
} }
newItem.setItemLocation(newItem.getItemLocation(), msg.getId()); newItem.setItemLocation(newItem.getItemLocation(), msg.getId());
if (playerIU != null)
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
return true; return true;
} }
@@ -168,7 +168,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder itemHolder : _items) for (ItemHolder itemHolder : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -191,27 +191,17 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
} }
} }
@@ -242,12 +242,6 @@ ExaltedForHonorItemMax = 45873,100
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -478,7 +478,6 @@ public class Config
public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX; public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX;
public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX; public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -2021,7 +2020,6 @@ public class Config
EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1])); EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1]));
EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1])); EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1]));
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -82,16 +81,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList();
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -591,31 +591,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packets
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList();
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList();
}
success = true; success = true;
} }
@@ -3125,22 +3125,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList();
{
sendItemList();
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3173,16 +3166,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3223,16 +3209,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3275,16 +3254,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
} }
} }
@@ -3315,16 +3288,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3531,23 +3497,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3647,23 +3606,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3709,45 +3661,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
return newItem; return newItem;
} }
@@ -3836,16 +3774,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3910,16 +3841,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -421,16 +421,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -487,23 +480,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1140,14 +1126,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList();
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(); player.sendItemList();
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -401,7 +401,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }
@@ -163,7 +163,7 @@ public class RequestPackageSend implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder i : _items) for (ItemHolder i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -182,16 +182,13 @@ public class RequestPackageSend implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
// Remove item objects from the world. // Remove item objects from the world.
@@ -202,13 +199,6 @@ public class RequestPackageSend implements IClientIncomingPacket
warehouse.deleteMe(); warehouse.deleteMe();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
} }
} }
@@ -184,7 +184,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -205,16 +205,13 @@ public class RequestPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{ }
playerIU.addModifiedItem(newItem); else
} {
else playerIU.addNewItem(newItem);
{
playerIU.addNewItem(newItem);
}
} }
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
@@ -224,10 +221,8 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(); player.sendItemList();
@@ -310,7 +310,7 @@ public class RequestSendPost implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (AttachmentItem i : _items) for (AttachmentItem i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -328,28 +328,19 @@ public class RequestSendPost implements IClientIncomingPacket
continue; continue;
} }
newItem.setItemLocation(newItem.getItemLocation(), msg.getId()); newItem.setItemLocation(newItem.getItemLocation(), msg.getId());
if (playerIU != null)
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
return true; return true;
} }
@@ -168,7 +168,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder itemHolder : _items) for (ItemHolder itemHolder : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -191,27 +191,17 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
} }
} }
-6
View File
@@ -242,12 +242,6 @@ ExaltedForHonorItemMax = 45873,100
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -479,7 +479,6 @@ public class Config
public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX; public static ItemHolder EXALTED_FOR_GLORY_ITEM_MAX;
public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX; public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -2060,7 +2059,6 @@ public class Config
EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1])); EXALTED_FOR_GLORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForGloryItemMax", "45872,80").split(",")[1]));
EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1])); EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,100").split(",")[1]));
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -82,16 +81,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList();
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -591,31 +591,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packets
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList();
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList();
}
success = true; success = true;
} }
@@ -3126,22 +3126,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList();
{
sendItemList();
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3174,16 +3167,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3224,16 +3210,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3276,16 +3255,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
} }
} }
@@ -3316,16 +3289,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3532,23 +3498,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3648,23 +3607,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3710,45 +3662,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
return newItem; return newItem;
} }
@@ -3837,16 +3775,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3911,16 +3842,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -421,16 +421,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -487,23 +480,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1140,14 +1126,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList();
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(); player.sendItemList();
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -403,7 +403,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }
@@ -163,7 +163,7 @@ public class RequestPackageSend implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder i : _items) for (ItemHolder i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -182,16 +182,13 @@ public class RequestPackageSend implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
// Remove item objects from the world. // Remove item objects from the world.
@@ -202,13 +199,6 @@ public class RequestPackageSend implements IClientIncomingPacket
warehouse.deleteMe(); warehouse.deleteMe();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
} }
} }
@@ -184,7 +184,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -205,16 +205,13 @@ public class RequestPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{ }
playerIU.addModifiedItem(newItem); else
} {
else playerIU.addNewItem(newItem);
{
playerIU.addNewItem(newItem);
}
} }
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
@@ -224,10 +221,8 @@ public class RequestPostAttachment implements IClientIncomingPacket
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(); player.sendItemList();
@@ -310,7 +310,7 @@ public class RequestSendPost implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (AttachmentItem i : _items) for (AttachmentItem i : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -328,28 +328,19 @@ public class RequestSendPost implements IClientIncomingPacket
continue; continue;
} }
newItem.setItemLocation(newItem.getItemLocation(), msg.getId()); newItem.setItemLocation(newItem.getItemLocation(), msg.getId());
if (playerIU != null)
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
return true; return true;
} }
@@ -168,7 +168,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (ItemHolder itemHolder : _items) for (ItemHolder itemHolder : _items)
{ {
// Check validity of requested item // Check validity of requested item
@@ -191,27 +191,17 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
continue; continue;
} }
if (playerIU != null) if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
if ((oldItem.getCount() > 0) && (oldItem != newItem)) playerIU.addModifiedItem(oldItem);
{ }
playerIU.addModifiedItem(oldItem); else
} {
else playerIU.addRemovedItem(oldItem);
{
playerIU.addRemovedItem(oldItem);
}
} }
} }
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
else
{
player.sendItemList();
}
} }
} }
@@ -243,12 +243,6 @@ ExaltedForVictoryItemMax = 80825,30
# Default: True # Default: True
MultipleItemDrop = True MultipleItemDrop = True
# Forces full item inventory packet to be sent for any item change.
# Notes:
# This can increase network traffic
# Default: False
ForceInventoryUpdate = False
# True = Load html's into cache only on first time html is requested. # True = Load html's into cache only on first time html is requested.
# False = Load all html's into cache on server startup. # False = Load all html's into cache on server startup.
# Default: False # Default: False
@@ -480,7 +480,6 @@ public class Config
public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX; public static ItemHolder EXALTED_FOR_HONOR_ITEM_MAX;
public static ItemHolder EXALTED_FOR_VICTORY_ITEM_MAX; public static ItemHolder EXALTED_FOR_VICTORY_ITEM_MAX;
public static boolean MULTIPLE_ITEM_DROP; public static boolean MULTIPLE_ITEM_DROP;
public static boolean FORCE_INVENTORY_UPDATE;
public static boolean LAZY_CACHE; public static boolean LAZY_CACHE;
public static boolean CHECK_HTML_ENCODING; public static boolean CHECK_HTML_ENCODING;
public static boolean CACHE_CHAR_NAMES; public static boolean CACHE_CHAR_NAMES;
@@ -2071,7 +2070,6 @@ public class Config
EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,20").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,20").split(",")[1])); EXALTED_FOR_HONOR_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,20").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForHonorItemMax", "45873,20").split(",")[1]));
EXALTED_FOR_VICTORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForVictoryItemMax", "80825,30").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForVictoryItemMax", "80825,30").split(",")[1])); EXALTED_FOR_VICTORY_ITEM_MAX = new ItemHolder(Integer.parseInt(generalConfig.getString("ExaltedForVictoryItemMax", "80825,30").split(",")[0]), Integer.parseInt(generalConfig.getString("ExaltedForVictoryItemMax", "80825,30").split(",")[1]));
MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true); MULTIPLE_ITEM_DROP = generalConfig.getBoolean("MultipleItemDrop", true);
FORCE_INVENTORY_UPDATE = generalConfig.getBoolean("ForceInventoryUpdate", false);
LAZY_CACHE = generalConfig.getBoolean("LazyCache", true); LAZY_CACHE = generalConfig.getBoolean("LazyCache", true);
CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true); CHECK_HTML_ENCODING = generalConfig.getBoolean("CheckHtmlEncoding", true);
CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true); CACHE_CHAR_NAMES = generalConfig.getBoolean("CacheCharNames", true);
@@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -82,16 +81,10 @@ public class CombatFlag
_player.sendPacket(sm); _player.sendPacket(sm);
// Refresh inventory // Refresh inventory
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(_item);
final InventoryUpdate iu = new InventoryUpdate(); _player.sendInventoryUpdate(iu);
iu.addItem(_item);
_player.sendInventoryUpdate(iu);
}
else
{
_player.sendItemList();
}
// Refresh player stats // Refresh player stats
_player.broadcastUserInfo(); _player.broadcastUserInfo();
_player.setCombatFlagEquipped(true); _player.setCombatFlagEquipped(true);
@@ -591,31 +591,17 @@ public class TradeList
else else
{ {
// Prepare inventory update packet // Prepare inventory update packet
final InventoryUpdate ownerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate ownerIU = new InventoryUpdate();
final InventoryUpdate partnerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate partnerIU = new InventoryUpdate();
// Transfer items // Transfer items
partnerList.TransferItems(_owner, partnerIU, ownerIU); partnerList.TransferItems(_owner, partnerIU, ownerIU);
TransferItems(partnerList.getOwner(), ownerIU, partnerIU); TransferItems(partnerList.getOwner(), ownerIU, partnerIU);
// Send inventory update packet // Send inventory update packets
if (ownerIU != null) _owner.sendInventoryUpdate(ownerIU);
{ _partner.sendInventoryUpdate(partnerIU);
_owner.sendInventoryUpdate(ownerIU);
}
else
{
_owner.sendItemList();
}
if (partnerIU != null)
{
_partner.sendInventoryUpdate(partnerIU);
}
else
{
_partner.sendItemList();
}
success = true; success = true;
} }
@@ -3062,22 +3062,15 @@ public class Player extends Playable
_inventory.addAdena(process, count, this, reference); _inventory.addAdena(process, count, this, reference);
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) if (count == getAdena())
{ {
if (count == getAdena()) sendItemList();
{
sendItemList();
}
else
{
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
}
} }
else else
{ {
sendItemList(); final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(_inventory.getAdenaInstance());
sendInventoryUpdate(iu);
} }
} }
} }
@@ -3110,16 +3103,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(adenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(adenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3160,16 +3146,9 @@ public class Player extends Playable
} }
// Send update packet // Send update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(beautyTickets);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(beautyTickets);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3212,16 +3191,10 @@ public class Player extends Playable
if (count > 0) if (count > 0)
{ {
_inventory.addAncientAdena(process, count, this, reference); _inventory.addAncientAdena(process, count, this, reference);
if (!Config.FORCE_INVENTORY_UPDATE)
{ final InventoryUpdate iu = new InventoryUpdate();
final InventoryUpdate iu = new InventoryUpdate(); iu.addItem(_inventory.getAncientAdenaInstance());
iu.addItem(_inventory.getAncientAdenaInstance()); sendInventoryUpdate(iu);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
} }
} }
@@ -3252,16 +3225,9 @@ public class Player extends Playable
return false; return false;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
{ iu.addItem(ancientAdenaItem);
final InventoryUpdate iu = new InventoryUpdate(); sendInventoryUpdate(iu);
iu.addItem(ancientAdenaItem);
sendInventoryUpdate(iu);
}
else
{
sendItemList();
}
if (sendMessage) if (sendMessage)
{ {
@@ -3468,23 +3434,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(destoyedItem);
if (destoyedItem.isStackable() && (destoyedItem.getCount() > 0))
{
playerIU.addModifiedItem(destoyedItem);
}
else
{
playerIU.addRemovedItem(destoyedItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(destoyedItem);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3584,23 +3543,16 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > 0))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > 0))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addRemovedItem(item);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(item);
} }
sendInventoryUpdate(playerIU);
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3646,45 +3598,31 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(oldItem);
if ((oldItem.getCount() > 0) && (oldItem != newItem))
{
playerIU.addModifiedItem(oldItem);
}
else
{
playerIU.addRemovedItem(oldItem);
}
sendInventoryUpdate(playerIU);
} }
else else
{ {
sendItemList(); playerIU.addRemovedItem(oldItem);
} }
sendInventoryUpdate(playerIU);
// Send target update packet // Send target update packet
if (target instanceof PlayerInventory) if (target instanceof PlayerInventory)
{ {
final Player targetPlayer = ((PlayerInventory) target).getOwner(); final Player targetPlayer = ((PlayerInventory) target).getOwner();
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate targetIU = new InventoryUpdate();
if (newItem.getCount() > count)
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); targetIU.addModifiedItem(newItem);
if (newItem.getCount() > count)
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
targetPlayer.sendPacket(playerIU);
} }
else else
{ {
targetPlayer.sendItemList(); targetIU.addNewItem(newItem);
} }
targetPlayer.sendPacket(targetIU);
} }
return newItem; return newItem;
} }
@@ -3773,16 +3711,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(droppedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(droppedItem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -3847,16 +3778,9 @@ public class Player extends Playable
} }
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(invitem);
final InventoryUpdate playerIU = new InventoryUpdate(); sendInventoryUpdate(playerIU);
playerIU.addItem(invitem);
sendInventoryUpdate(playerIU);
}
else
{
sendItemList();
}
// Sends message to client if requested // Sends message to client if requested
if (sendMessage) if (sendMessage)
@@ -421,16 +421,9 @@ public class PlayerInventory extends Inventory
if (actor != null) if (actor != null)
{ {
// Send inventory update packet // Send inventory update packet
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
{ playerIU.addItem(addedItem);
final InventoryUpdate playerIU = new InventoryUpdate(); actor.sendInventoryUpdate(playerIU);
playerIU.addItem(addedItem);
actor.sendInventoryUpdate(playerIU);
}
else
{
actor.sendItemList();
}
// Notify to scripts // Notify to scripts
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate()); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemAdd(actor, addedItem), actor, addedItem.getTemplate());
@@ -487,23 +480,16 @@ public class PlayerInventory extends Inventory
// Send inventory update packet // Send inventory update packet
if (update) if (update)
{ {
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate playerIU = new InventoryUpdate();
if (item.isStackable() && (item.getCount() > count))
{ {
final InventoryUpdate playerIU = new InventoryUpdate(); playerIU.addModifiedItem(item);
if (item.isStackable() && (item.getCount() > count))
{
playerIU.addModifiedItem(item);
}
else
{
playerIU.addNewItem(item);
}
actor.sendInventoryUpdate(playerIU);
} }
else else
{ {
actor.sendItemList(); playerIU.addNewItem(item);
} }
actor.sendInventoryUpdate(playerIU);
} }
// Notify to scripts // Notify to scripts
@@ -1140,14 +1126,7 @@ public class PlayerInventory extends Inventory
} }
finally finally
{ {
if (Config.FORCE_INVENTORY_UPDATE) _owner.sendInventoryUpdate(iu);
{
_owner.sendItemList();
}
else
{
_owner.sendInventoryUpdate(iu);
}
} }
} }
@@ -161,7 +161,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
} }
// Proceed to the transfer // Proceed to the transfer
final InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); final InventoryUpdate playerIU = new InventoryUpdate();
for (Item item : attachments.getItems()) for (Item item : attachments.getItems())
{ {
if (item == null) if (item == null)
@@ -176,17 +176,15 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
return; return;
} }
if (playerIU != null) if (newItem.isStackable() && (newItem.getCount() > count))
{ {
if (newItem.isStackable() && (newItem.getCount() > count)) playerIU.addModifiedItem(newItem);
{
playerIU.addModifiedItem(newItem);
}
else
{
playerIU.addNewItem(newItem);
}
} }
else
{
playerIU.addNewItem(newItem);
}
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S2_S1);
sm.addItemName(item.getId()); sm.addItemName(item.getId());
sm.addLong(count); sm.addLong(count);
@@ -196,10 +194,8 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
msg.removeAttachments(); msg.removeAttachments();
// Send updated item list to the player // Send updated item list to the player
if (playerIU != null) player.sendInventoryUpdate(playerIU);
{
player.sendInventoryUpdate(playerIU);
}
// Send full list to avoid duplicates. // Send full list to avoid duplicates.
player.sendItemList(); player.sendItemList();
@@ -207,22 +207,15 @@ public class RequestDestroyItem implements IClientIncomingPacket
return; return;
} }
if (!Config.FORCE_INVENTORY_UPDATE) final InventoryUpdate iu = new InventoryUpdate();
if (removedItem.getCount() == 0)
{ {
final InventoryUpdate iu = new InventoryUpdate(); iu.addRemovedItem(removedItem);
if (removedItem.getCount() == 0)
{
iu.addRemovedItem(removedItem);
}
else
{
iu.addModifiedItem(removedItem);
}
player.sendInventoryUpdate(iu);
} }
else else
{ {
player.sendItemList(); iu.addModifiedItem(removedItem);
} }
player.sendInventoryUpdate(iu);
} }
} }
@@ -403,7 +403,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
player.sendPacket(sm); player.sendPacket(sm);
} }
if (!Config.FORCE_INVENTORY_UPDATE && (crystals != null)) if (crystals != null)
{ {
iu.addItem(crystals); iu.addItem(crystals);
} }

Some files were not shown because too many files have changed in this diff Show More