diff --git a/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs b/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs
index bb372a2a..af9ab5a4 100644
--- a/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs
+++ b/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs
@@ -9,10 +9,4 @@ public interface IQSBItem : IWorldObject
void PickUpItem(Transform itemSocket);
void DropItem(Vector3 position, Vector3 normal, Sector sector);
void OnCompleteUnsocket();
-
- ///
- /// store the last location when a remote player drops/sockets us
- /// so we can use it if they leave while still holding
- ///
- void StoreLocation();
}
\ No newline at end of file
diff --git a/QSB/ItemSync/WorldObjects/Items/QSBItem.cs b/QSB/ItemSync/WorldObjects/Items/QSBItem.cs
index f860a072..23d466bf 100644
--- a/QSB/ItemSync/WorldObjects/Items/QSBItem.cs
+++ b/QSB/ItemSync/WorldObjects/Items/QSBItem.cs
@@ -29,7 +29,11 @@ internal class QSBItem : WorldObject, IQSBItem
public override void OnRemoval() => QSBPlayerManager.OnRemovePlayer -= OnPlayerLeave;
- public void StoreLocation()
+ ///
+ /// store the last location when a remote player picks up an item
+ /// so we can use it if they leave while still holding it
+ ///
+ private void StoreLocation()
{
_lastParent = AttachedObject.transform.parent;
_lastPosition = AttachedObject.transform.localPosition;
@@ -76,8 +80,11 @@ internal class QSBItem : WorldObject, IQSBItem
public ItemType GetItemType() => AttachedObject.GetItemType();
- public void PickUpItem(Transform holdTransform) =>
+ public void PickUpItem(Transform holdTransform)
+ {
+ StoreLocation();
QSBPatch.RemoteCall(() => AttachedObject.PickUpItem(holdTransform));
+ }
public void DropItem(Vector3 position, Vector3 normal, Sector sector) =>
QSBPatch.RemoteCall(() => AttachedObject.DropItem(position, normal, sector.transform, sector, null));