Skip to content

Commit 48a89bf

Browse files
committed
Merge remote-tracking branch 'origin/master-1.21-lts' into master-1.21
2 parents 8bd589c + c0c9332 commit 48a89bf

7 files changed

Lines changed: 62 additions & 12 deletions

File tree

CHANGELOG-1.19.2.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
# Changelog for Minecraft 1.19.2
22
All notable changes to this project will be documented in this file.
33

4+
<a name="1.19.2-1.6.14"></a>
5+
## [1.19.2-1.6.14](/compare/1.19.2-1.6.13...1.19.2-1.6.14) - 2025-11-24 16:49:25
6+
7+
8+
### Fixed
9+
* Fix rare deadlock when opening terminal
10+
11+
Closes CyclopsMC/IntegratedDynamics#1572
12+
413
<a name="1.19.2-1.6.13"></a>
5-
## [1.19.2-1.6.13](/compare/1.19.2-1.6.12...1.19.2-1.6.13) - 2025-11-16 15:22:42
14+
## [1.19.2-1.6.13](/compare/1.19.2-1.6.12...1.19.2-1.6.13) - 2025-11-16 15:22:42 +0100
615

716

817
### Fixed

CHANGELOG-1.20.1.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
# Changelog for Minecraft 1.20.1
22
All notable changes to this project will be documented in this file.
33

4+
<a name="1.20.1-1.6.14"></a>
5+
## [1.20.1-1.6.14](/compare/1.20.1-1.6.13...1.20.1-1.6.14) - 2025-11-24 16:50:13
6+
7+
8+
### Fixed
9+
* Fix rare deadlock when opening terminal
10+
11+
Closes CyclopsMC/IntegratedDynamics#1572
12+
413
<a name="1.20.1-1.6.13"></a>
5-
## [1.20.1-1.6.13](/compare/1.20.1-1.6.12...1.20.1-1.6.13) - 2025-11-16 15:28:48
14+
## [1.20.1-1.6.13](/compare/1.20.1-1.6.12...1.20.1-1.6.13) - 2025-11-16 15:28:48 +0100
615

716

817
### Fixed

CHANGELOG-1.21.1.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
# Changelog for Minecraft 1.21.1
22
All notable changes to this project will be documented in this file.
33

4+
<a name="1.21.1-1.6.21"></a>
5+
## [1.21.1-1.6.21](https://github.com/CyclopsMC/IntegratedTerminals/compare/1.21.1-1.6.20...1.21.1-1.6.21) - 2025-11-24 16:52:10
6+
7+
8+
### Fixed
9+
* Fix rare deadlock when opening terminal
10+
11+
Closes CyclopsMC/IntegratedDynamics#1572
12+
413
<a name="1.21.1-1.6.20"></a>
5-
## [1.21.1-1.6.20](https://github.com/CyclopsMC/IntegratedTerminals/compare/1.21.1-1.6.19...1.21.1-1.6.20) - 2025-11-16 15:33:59
14+
## [1.21.1-1.6.20](https://github.com/CyclopsMC/IntegratedTerminals/compare/1.21.1-1.6.19...1.21.1-1.6.20) - 2025-11-16 15:33:59 +0100
615

716

817
### Fixed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
As always, don't forget to backup your world before updating!
2+
Requires CyclopsCore version 1.19.4 or higher.
3+
4+
Fixes:
5+
* Fix rare deadlock when opening terminal
6+
7+
Closes CyclopsMC/IntegratedDynamics#1572
8+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
As always, don't forget to backup your world before updating!
2+
Requires CyclopsCore version 1.19.4 or higher.
3+
4+
Fixes:
5+
* Fix rare deadlock when opening terminal
6+
7+
Closes CyclopsMC/IntegratedDynamics#1572
8+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
As always, don't forget to backup your world before updating!
2+
Requires CyclopsCore version 1.25.1 or higher.
3+
4+
Fixes:
5+
* Fix rare deadlock when opening terminal
6+
7+
Closes CyclopsMC/IntegratedDynamics#1572
8+

src/main/java/org/cyclops/integratedterminals/core/terminalstorage/TerminalStorageTabIngredientComponentServer.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)