From 9335daff7d3efc76c3c75d243ba973a25c299791 Mon Sep 17 00:00:00 2001 From: PrototypeTrousers Date: Sat, 11 Sep 2021 22:38:26 -0300 Subject: [PATCH] Revert "fixes item showing incorrect amounts" This reverts commit 618e9390c6929ecfceb89be4fb552d8c222fd517. --- gradle.properties | 2 +- .../appeng/me/cache/GridStorageCache.java | 2 ++ .../java/appeng/me/cache/NetworkMonitor.java | 29 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a748b7835..cc89f9cf5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ aechannel=stable aebuild=7 aegroup=appeng aebasename=appliedenergistics2 -trousers=omni-fixes-v46r +trousers=omni-fixes-v46s ######################################################### # Versions # diff --git a/src/main/java/appeng/me/cache/GridStorageCache.java b/src/main/java/appeng/me/cache/GridStorageCache.java index 15f7cd395..99069c750 100644 --- a/src/main/java/appeng/me/cache/GridStorageCache.java +++ b/src/main/java/appeng/me/cache/GridStorageCache.java @@ -249,6 +249,8 @@ public class GridStorageCache implements IStorageGrid } tracker.applyChanges(); + + this.storageMonitors.forEach( ( channel, monitor ) -> monitor.forceUpdate() ); } private , C extends IStorageChannel> void postChangesToNetwork( final C chan, final int upOrDown, final IItemList availableItems, final IActionSource src ) diff --git a/src/main/java/appeng/me/cache/NetworkMonitor.java b/src/main/java/appeng/me/cache/NetworkMonitor.java index 8d82423fc..24c8ba68b 100644 --- a/src/main/java/appeng/me/cache/NetworkMonitor.java +++ b/src/main/java/appeng/me/cache/NetworkMonitor.java @@ -61,6 +61,7 @@ public class NetworkMonitor> implements IMEMonitor private final Object2ObjectMap, Object> listeners; private boolean sendEvent = false; + private boolean forceUpdate = false; @Nonnegative private int localDepthSemaphore = 0; private long gridItemCount; @@ -152,6 +153,13 @@ public class NetworkMonitor> implements IMEMonitor @Override public IItemList getStorageList() { + if( forceUpdate ) + { + forceUpdate = false; + this.cachedList.resetStatus(); + return this.getAvailableItems( this.cachedList ); + } + return this.cachedList; } @@ -282,6 +290,27 @@ public class NetworkMonitor> implements IMEMonitor } } + void forceUpdate() + { + this.forceUpdate = true; + + final Iterator, Object>> i = this.getListeners(); + while ( i.hasNext() ) + { + final Entry, Object> o = i.next(); + final IMEMonitorHandlerReceiver receiver = o.getKey(); + + if( receiver.isValid( o.getValue() ) ) + { + receiver.onListUpdate(); + } + else + { + i.remove(); + } + } + } + void onTick() { if( this.sendEvent )