Compare commits

...

3 Commits

Author SHA1 Message Date
embeddedt
b582e8911a
Collect JEI ingredients to list first to avoid concurrency issues 2024-10-11 14:13:17 -04:00
embeddedt
d78ae2c754
Fix searching in latest JEI 2024-10-11 14:12:50 -04:00
embeddedt
b541e33e9c
Avoid "timeout is negative" exception in watchdog 2024-10-11 14:01:51 -04:00
4 changed files with 9 additions and 8 deletions

View File

@ -1,6 +1,5 @@
package org.embeddedt.modernfix.searchtree; package org.embeddedt.modernfix.searchtree;
import com.google.common.collect.ImmutableList;
import mezz.jei.api.ingredients.ITypedIngredient; import mezz.jei.api.ingredients.ITypedIngredient;
import mezz.jei.gui.ingredients.IngredientFilter; import mezz.jei.gui.ingredients.IngredientFilter;
import mezz.jei.gui.ingredients.IngredientFilterApi; import mezz.jei.gui.ingredients.IngredientFilterApi;
@ -18,6 +17,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Stream;
/** /**
* Uses JEI to handle search tree lookups. * Uses JEI to handle search tree lookups.
@ -72,19 +72,19 @@ public class JEIBackedSearchTree extends DummySearchTree<ItemStack> {
private List<ItemStack> searchJEI(IngredientFilter filter, String pSearchText) { private List<ItemStack> searchJEI(IngredientFilter filter, String pSearchText) {
if(!pSearchText.equals(lastSearchText)) { if(!pSearchText.equals(lastSearchText)) {
listCache.clear(); listCache.clear();
List<ITypedIngredient<?>> ingredients; Stream<ITypedIngredient<?>> ingredients;
String finalSearchTerm = filteringByTag ? ("$" + pSearchText) : pSearchText; String finalSearchTerm = filteringByTag ? ("$" + pSearchText) : pSearchText;
try { try {
ingredients = (List<ITypedIngredient<?>>)getIngredientListUncached.invokeExact(filter, finalSearchTerm); ingredients = (Stream<ITypedIngredient<?>>)getIngredientListUncached.invokeExact(filter, finalSearchTerm);
} catch(Throwable e) { } catch(Throwable e) {
ModernFix.LOGGER.error("Error searching", e); ModernFix.LOGGER.error("Error searching", e);
ingredients = ImmutableList.of(); ingredients = Stream.empty();
} }
for(ITypedIngredient<?> ingredient : ingredients) { ingredients.toList().forEach(ingredient -> {
if(ingredient.getIngredient() instanceof ItemStack) { if(ingredient.getIngredient() instanceof ItemStack) {
listCache.add((ItemStack)ingredient.getIngredient()); listCache.add((ItemStack)ingredient.getIngredient());
} }
} });
lastSearchText = pSearchText; lastSearchText = pSearchText;
} }
return listCache; return listCache;

View File

@ -45,6 +45,7 @@ public class IntegratedWatchdog extends Thread {
if(delta > MAX_TICK_DELTA) { if(delta > MAX_TICK_DELTA) {
LOGGER.error("A single server tick has taken {}, more than {} milliseconds", delta, MAX_TICK_DELTA); LOGGER.error("A single server tick has taken {}, more than {} milliseconds", delta, MAX_TICK_DELTA);
LOGGER.error(ThreadDumper.obtainThreadDump()); LOGGER.error(ThreadDumper.obtainThreadDump());
delta = 0;
} }
try { try {
Thread.sleep(MAX_TICK_DELTA - delta); Thread.sleep(MAX_TICK_DELTA - delta);

View File

@ -57,6 +57,6 @@ side = "BOTH"
modId = "jei" modId = "jei"
mandatory = false mandatory = false
# This version range declares a minimum of the current minecraft version up to but not including the next major version # This version range declares a minimum of the current minecraft version up to but not including the next major version
versionRange = "[11,)" versionRange = "[11.8.1.1033,)"
ordering = "BEFORE" ordering = "BEFORE"
side = "CLIENT" side = "CLIENT"

View File

@ -10,7 +10,7 @@ enabled_platforms=fabric,forge
forge_version=1.19.2-43.2.0 forge_version=1.19.2-43.2.0
parchment_version=2022.11.27 parchment_version=2022.11.27
refined_storage_version=4392788 refined_storage_version=4392788
jei_version=11.6.0.1011 jei_version=11.8.1.1033
rei_version=9.1.591 rei_version=9.1.591
ctm_version=1.19.2-1.1.7+11 ctm_version=1.19.2-1.1.7+11
kubejs_version=1902.6.0-build.142 kubejs_version=1902.6.0-build.142