From 4f06666dd00cd0cedb7a004823b77e301bdf3d4a Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 28 Oct 2020 18:14:58 +0000 Subject: [PATCH] Permanently store item owner in ItemInstance. --- .../model/items/instance/ItemInstance.java | 38 +++++++++++-------- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 16 +++++--- .../model/items/instance/ItemInstance.java | 16 +++++--- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- .../model/items/instance/ItemInstance.java | 12 +++++- 19 files changed, 204 insertions(+), 58 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 75645c85af..7bfa2aee19 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -97,8 +97,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -303,13 +304,13 @@ public class ItemInstance extends WorldObject /** * Sets the ownerID of the item * @param process : String Identifier of process triggering this action - * @param owner_id : int designating the ID of the owner + * @param ownerId : int designating the ID of the owner * @param creator : PlayerInstance Player requesting the item creation * @param reference : Object Object referencing current action like NPC selling item or previous item in transformation */ - public void setOwnerId(String process, int owner_id, PlayerInstance creator, Object reference) + public void setOwnerId(String process, int ownerId, PlayerInstance creator, Object reference) { - setOwnerId(owner_id); + setOwnerId(ownerId); if (Config.LOG_ITEMS) { @@ -358,11 +359,11 @@ public class ItemInstance extends WorldObject /** * Sets the ownerID of the item - * @param owner_id : int designating the ID of the owner + * @param ownerId : int designating the ID of the owner */ - public void setOwnerId(int owner_id) + public void setOwnerId(int ownerId) { - if (owner_id == _ownerId) + if (ownerId == _ownerId) { return; } @@ -370,7 +371,8 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); - _ownerId = owner_id; + _owner = null; + _ownerId = ownerId; _storedInDb = false; // Give any inventory skills to the new owner only if the item is in inventory @@ -400,11 +402,11 @@ public class ItemInstance extends WorldObject * Sets the location of the item.
* Remark : If loc and loc_data different from database, say datas not up-to-date * @param loc : ItemLocation (enumeration) - * @param loc_data : int designating the slot where the item is stored or the village for freights + * @param locData : int designating the slot where the item is stored or the village for freights */ - public void setItemLocation(ItemLocation loc, int loc_data) + public void setItemLocation(ItemLocation loc, int locData) { - if ((loc == _loc) && (loc_data == _locData)) + if ((loc == _loc) && (locData == _locData)) { return; } @@ -413,7 +415,7 @@ public class ItemInstance extends WorldObject removeSkillsFromOwner(); _loc = loc; - _locData = loc_data; + _locData = locData; _storedInDb = false; // Give any inventory skills to the new owner only if the item is in inventory @@ -1805,9 +1807,9 @@ public class ItemInstance extends WorldObject return _decrease; } - public void setInitCount(int InitCount) + public void setInitCount(int initCount) { - _initCount = InitCount; + _initCount = initCount; } public long getInitCount() @@ -1882,7 +1884,7 @@ public class ItemInstance extends WorldObject { return; } - else if (getRemainingTime() <= 0) + if (getRemainingTime() <= 0) { endOfLife(); } @@ -2078,7 +2080,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index f6bdb98976..1101bfad11 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1582,6 +1584,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2085,7 +2089,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index f6bdb98976..1101bfad11 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1582,6 +1584,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2085,7 +2089,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 77dd8f14ba..9f3eade143 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1582,6 +1584,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2085,7 +2089,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 7f73062125..ba877ba58c 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -102,8 +102,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -378,6 +379,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1590,6 +1592,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2093,7 +2097,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 7f73062125..ba877ba58c 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -102,8 +102,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -378,6 +379,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1590,6 +1592,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2093,7 +2097,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 7f73062125..ba877ba58c 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -102,8 +102,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -378,6 +379,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1590,6 +1592,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2093,7 +2097,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 7f73062125..ba877ba58c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -102,8 +102,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -378,6 +379,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1590,6 +1592,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2093,7 +2097,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 7f73062125..ba877ba58c 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -102,8 +102,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -378,6 +379,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1590,6 +1592,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2093,7 +2097,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 1dc96daa0a..b4c4cbe8b2 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -87,8 +87,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -284,13 +285,13 @@ public class ItemInstance extends WorldObject /** * Sets the ownerID of the item * @param process : String Identifier of process triggering this action - * @param owner_id : int designating the ID of the owner + * @param ownerId : int designating the ID of the owner * @param creator : PlayerInstance Player requesting the item creation * @param reference : Object Object referencing current action like NPC selling item or previous item in transformation */ - public void setOwnerId(String process, int owner_id, PlayerInstance creator, Object reference) + public void setOwnerId(String process, int ownerId, PlayerInstance creator, Object reference) { - setOwnerId(owner_id); + setOwnerId(ownerId); if (Config.LOG_ITEMS) { @@ -351,6 +352,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -2070,7 +2072,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index 1dc96daa0a..b4c4cbe8b2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -87,8 +87,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -284,13 +285,13 @@ public class ItemInstance extends WorldObject /** * Sets the ownerID of the item * @param process : String Identifier of process triggering this action - * @param owner_id : int designating the ID of the owner + * @param ownerId : int designating the ID of the owner * @param creator : PlayerInstance Player requesting the item creation * @param reference : Object Object referencing current action like NPC selling item or previous item in transformation */ - public void setOwnerId(String process, int owner_id, PlayerInstance creator, Object reference) + public void setOwnerId(String process, int ownerId, PlayerInstance creator, Object reference) { - setOwnerId(owner_id); + setOwnerId(ownerId); if (Config.LOG_ITEMS) { @@ -351,6 +352,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -2070,7 +2072,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index e1f627b0b9..d45a34dfb7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1580,6 +1582,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2083,7 +2087,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index e1f627b0b9..d45a34dfb7 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1580,6 +1582,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2083,7 +2087,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index e1f627b0b9..d45a34dfb7 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1580,6 +1582,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2083,7 +2087,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index e1f627b0b9..d45a34dfb7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1580,6 +1582,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2083,7 +2087,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index e1f627b0b9..d45a34dfb7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1580,6 +1582,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2083,7 +2087,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index e1f627b0b9..d45a34dfb7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1580,6 +1582,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2083,7 +2087,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index adb32afcc5..2d77b3425a 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -97,8 +97,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -370,6 +371,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1572,6 +1574,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2065,7 +2069,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay() diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index e1f627b0b9..d45a34dfb7 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -99,8 +99,9 @@ public class ItemInstance extends WorldObject private static final Logger LOGGER = Logger.getLogger(ItemInstance.class.getName()); private static final Logger LOG_ITEMS = Logger.getLogger("item"); - /** ID of the owner */ + /** Owner */ private int _ownerId; + private PlayerInstance _owner; /** ID of who dropped the item last, used for knownlist */ private int _dropperObjectId = 0; @@ -375,6 +376,7 @@ public class ItemInstance extends WorldObject // Remove any inventory skills from the old owner. removeSkillsFromOwner(); + _owner = null; _ownerId = ownerId; _storedInDb = false; @@ -1580,6 +1582,8 @@ public class ItemInstance extends WorldObject ThreadPool.execute(new ItemDropTask(this, dropper, x, y, z)); if ((dropper != null) && dropper.isPlayer()) { + _owner = null; + // Notify to scripts EventDispatcher.getInstance().notifyEventAsync(new OnPlayerItemDrop(dropper.getActingPlayer(), this, new Location(x, y, z)), getItem()); } @@ -2083,7 +2087,11 @@ public class ItemInstance extends WorldObject @Override public PlayerInstance getActingPlayer() { - return World.getInstance().getPlayer(getOwnerId()); + if ((_owner == null) && (_ownerId != 0)) + { + _owner = World.getInstance().getPlayer(_ownerId); + } + return _owner; } public int getEquipReuseDelay()