diff --git a/CHANGELOG.md b/CHANGELOG.md index 512df331b..44cd1183f 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### 1.5.25 - Fixed not being able to autocraft different Storage Drawers' wood drawers (raoulvdberge) - Fixed not being able to autocraft certain Modular Routers items (raoulvdberge) +- Fixed last modified date not being sent when extracting from an External Storage (raoulvdberge) ### 1.5.24 - The Grid now displays last modified information (player name and date) and size on tooltips of stacks (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java index 797ce5f1c..997fae302 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java @@ -69,11 +69,12 @@ public class ItemGridHandler implements IItemGridHandler { size = Math.min(size, maxItemSize); + // Do this before actually extracting, since external storage sends updates as soon as a change happens (so before the storage tracker used to track) + network.getItemStorageTracker().changed(player, item.copy()); + ItemStack took = network.extractItem(item, size, true); if (took != null) { - network.getItemStorageTracker().changed(player, took.copy()); - if ((flags & EXTRACT_SHIFT) == EXTRACT_SHIFT) { IItemHandler playerInventory = player.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, EnumFacing.UP); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java index 422b18caf..c8a7c15fc 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java @@ -69,11 +69,12 @@ public class ItemGridHandlerPortable implements IItemGridHandler { size = Math.min(size, maxItemSize); + // Do this before actually extracting, since portable grid sends updates as soon as a change happens (so before the storage tracker used to track) + portableGrid.getStorageTracker().changed(player, item.copy()); + ItemStack took = portableGrid.getStorage().extract(item, size, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT, true); if (took != null) { - portableGrid.getStorageTracker().changed(player, took.copy()); - if ((flags & EXTRACT_SHIFT) == EXTRACT_SHIFT) { IItemHandler playerInventory = player.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, EnumFacing.UP); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java index 749d938e3..6f9492e4d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java @@ -85,7 +85,7 @@ public class MessageGridItemDelta implements IMessage, IMessageHandler delta : deltas) { StackUtils.writeItemStack(buf, delta.getLeft(), network, false); - IStorageTracker.IStorageTrackerEntry entry = storageTracker.get(stack); + IStorageTracker.IStorageTrackerEntry entry = storageTracker.get(delta.getLeft()); buf.writeBoolean(entry != null); if (entry != null) { buf.writeLong(entry.getTime());