@@ -266,6 +266,7 @@ public void onChange(IIngredientComponentStorageObservable.StorageChangeEvent<T,
266266 protected void reApplyFilter (@ Nullable IIngredientComponentStorageObservable .StorageChangeEvent <T , M > event ) {
267267 boolean firstChannel = true ;
268268 for (int channel : event == null ? this .unfilteredIngredientsViews .keySet () : Collections .singleton (event .getChannel ())) {
269+ long maxQuantity = this .ingredientNetwork .getChannel (channel ).getMaxQuantity ();
269270 Predicate <T > ingredientsFilter = getIngredientsFilter ();
270271 if (ingredientsFilter != null || event == null ) {
271272 Iterator <T > newFilteredIngredients = getUnfilteredIngredientsView (channel )
@@ -276,22 +277,22 @@ protected void reApplyFilter(@Nullable IIngredientComponentStorageObservable.Sto
276277 IngredientCollectionDiff <T , M > diffOut = filteredDiffManager .onChange (newFilteredIngredients );
277278 if (!initialized || diffOut .hasAdditions ()) {
278279 this .sendToClient (new IIngredientComponentStorageObservable .StorageChangeEvent <>(channel , null ,
279- IIngredientComponentStorageObservable .Change .ADDITION , false , diffOut .getAdditions (), false ));
280+ IIngredientComponentStorageObservable .Change .ADDITION , false , diffOut .getAdditions (), false ), maxQuantity );
280281 }
281282 if (diffOut .hasDeletions ()) {
282283 this .sendToClient (new IIngredientComponentStorageObservable .StorageChangeEvent <>(channel , null ,
283- IIngredientComponentStorageObservable .Change .DELETION , diffOut .isCompletelyEmpty (), diffOut .getDeletions (), false ));
284+ IIngredientComponentStorageObservable .Change .DELETION , diffOut .isCompletelyEmpty (), diffOut .getDeletions (), false ), maxQuantity );
284285 }
285286 } else {
286287 // If the filter is null (=show all ingredients), forward the diff to the client as-is.
287288 // This allows us to skip the expensive filteredDiffManager.onChange call.
288289 if (!initialized || event .getDiff ().hasAdditions ()) {
289290 this .sendToClient (new IIngredientComponentStorageObservable .StorageChangeEvent <>(channel , null ,
290- IIngredientComponentStorageObservable .Change .ADDITION , false , event .getDiff ().getAdditions (), false ));
291+ IIngredientComponentStorageObservable .Change .ADDITION , false , event .getDiff ().getAdditions (), false ), maxQuantity );
291292 }
292293 if (event .getDiff ().hasDeletions ()) {
293294 this .sendToClient (new IIngredientComponentStorageObservable .StorageChangeEvent <>(channel , null ,
294- IIngredientComponentStorageObservable .Change .DELETION , event .getDiff ().isCompletelyEmpty (), event .getDiff ().getDeletions (), false ));
295+ IIngredientComponentStorageObservable .Change .DELETION , event .getDiff ().isCompletelyEmpty (), event .getDiff ().getDeletions (), false ), maxQuantity );
295296 }
296297
297298 // Also apply the diff to our diff manager
@@ -336,9 +337,7 @@ protected void reApplyFilter(@Nullable IIngredientComponentStorageObservable.Sto
336337 initialized = true ;
337338 }
338339
339- protected void sendToClient (IIngredientComponentStorageObservable .StorageChangeEvent <T , M > event ) {
340- long maxQuantity = this .ingredientNetwork .getChannel (event .getChannel ()).getMaxQuantity ();
341-
340+ protected void sendToClient (IIngredientComponentStorageObservable .StorageChangeEvent <T , M > event , long maxQuantity ) {
342341 // Only allow ingredient collection of a max given size to be sent in a packet
343342 if (event .getInstances ().size () <= GeneralConfig .terminalStoragePacketMaxInstances ) {
344343 IntegratedTerminals ._instance .getPacketHandler ().sendToPlayer (
@@ -369,11 +368,11 @@ protected void sendToClient(IIngredientComponentStorageObservable.StorageChangeE
369368 if (GeneralConfig .packetSerializationEnableMultithreading ) {
370369 packetSerializer .execute (() -> sendToClient (new IIngredientComponentStorageObservable .StorageChangeEvent <>(
371370 event .getChannel (), event .getPos (), event .getChangeType (), event .isCompleteChange (), chunk , false
372- )));
371+ ), maxQuantity ));
373372 } else {
374373 sendToClient (new IIngredientComponentStorageObservable .StorageChangeEvent <>(
375374 event .getChannel (), event .getPos (), event .getChangeType (), event .isCompleteChange (), chunk , false
376- ));
375+ ), maxQuantity );
377376 }
378377 }
379378 }
0 commit comments