From 168c3c6a6bda97ef624d6fae14ea8247d8902658 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Wed, 28 Nov 2018 20:54:23 +0100 Subject: [PATCH] Fixed External Storage sending storage updates when it is disabled. Fixes #2110 --- CHANGELOG.md | 1 + .../apiimpl/autocrafting/task/CraftingTask.java | 2 +- .../apiimpl/network/node/NetworkNodeExternalStorage.java | 2 +- .../refinedstorage/apiimpl/storage/StorageCacheFluid.java | 4 ++-- .../refinedstorage/apiimpl/storage/StorageCacheItem.java | 7 ++++--- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a53dd0a5..e96bd7c09 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### 1.6.12 - Increased the speed of autocrafting (raoulvdberge) +- Fixed External Storage sending storage updates when it is disabled (raoulvdberge) - Added a completion percentage to the Crafting Monitor (raoulvdberge) - Updated Russian translation (kellixon) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index eafc6a252..b517606b9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -122,7 +122,7 @@ public class CraftingTask implements ICraftingTask { this.executionStarted = tag.getLong(NBT_EXECUTION_STARTED); if (tag.hasKey(NBT_TOTAL_STEPS)) { - totalSteps = tag.getInteger(NBT_TOTAL_STEPS); + this.totalSteps = tag.getInteger(NBT_TOTAL_STEPS); } StorageDiskFactoryItem factoryItem = new StorageDiskFactoryItem(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExternalStorage.java index 0b1851ca0..cad19d00a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExternalStorage.java @@ -83,7 +83,7 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP public void update() { super.update(); - if (network != null) { + if (canUpdate()) { if (networkTicks++ == 0) { updateStorage(network); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheFluid.java index 1900f12a4..bc3edd421 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheFluid.java @@ -60,7 +60,7 @@ public class StorageCacheFluid implements IStorageCache { if (!batched) { listeners.forEach(l -> l.onChanged(stack, size)); } else { - batchedChanges.add(Pair.of(stack, size)); + batchedChanges.add(Pair.of(stack.copy(), size)); } } } @@ -71,7 +71,7 @@ public class StorageCacheFluid implements IStorageCache { if (!batched) { listeners.forEach(l -> l.onChanged(stack, -size)); } else { - batchedChanges.add(Pair.of(stack, -size)); + batchedChanges.add(Pair.of(stack.copy(), -size)); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItem.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItem.java index 920fad09d..801ca8eab 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItem.java @@ -62,7 +62,7 @@ public class StorageCacheItem implements IStorageCache { if (!batched) { listeners.forEach(l -> l.onChanged(stack, size)); } else { - batchedChanges.add(Pair.of(stack, size)); + batchedChanges.add(Pair.of(stack.copy(), size)); } } } @@ -73,7 +73,7 @@ public class StorageCacheItem implements IStorageCache { if (!batched) { listeners.forEach(l -> l.onChanged(stack, -size)); } else { - batchedChanges.add(Pair.of(stack, -size)); + batchedChanges.add(Pair.of(stack.copy(), -size)); } } } @@ -81,11 +81,12 @@ public class StorageCacheItem implements IStorageCache { @Override public synchronized void flush() { if (!batchedChanges.isEmpty()) { - if(batchedChanges.size() > 1) { + if (batchedChanges.size() > 1) { listeners.forEach(l -> l.onChangedBulk(batchedChanges)); } else { batchedChanges.forEach(c -> listeners.forEach(l -> l.onChanged(c.getKey(), c.getValue()))); } + batchedChanges.clear(); } }