aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-03-03 09:29:55 +0800
committershedaniel <daniel@shedaniel.me>2022-03-03 09:29:55 +0800
commit9e180e7ecdcaa2b73310cceedc0afad6693fee47 (patch)
treed18bc2924bf9714448a7856ffc8541848bdeb4d3
parent1d7e34f84cd0ed02a5b89811e21441f54f3af096 (diff)
downloadRoughlyEnoughItems-9e180e7ecdcaa2b73310cceedc0afad6693fee47.tar.gz
RoughlyEnoughItems-9e180e7ecdcaa2b73310cceedc0afad6693fee47.tar.bz2
RoughlyEnoughItems-9e180e7ecdcaa2b73310cceedc0afad6693fee47.zip
Catch SearchFilterPrepareWatcher race condition
-rw-r--r--forge/build.gradle2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/SearchFilterPrepareWatcher.java28
2 files changed, 17 insertions, 13 deletions
diff --git a/forge/build.gradle b/forge/build.gradle
index de045af59..af5ddc41f 100644
--- a/forge/build.gradle
+++ b/forge/build.gradle
@@ -213,7 +213,7 @@ curseforge {
apiKey = project.hasProperty('danielshe_curse_api_key') ? project.property('danielshe_curse_api_key') : System.getenv('danielshe_curse_api_key')
project {
id = "310111"
- releaseType = "release"
+ releaseType = "beta"
changelogType = "html"
changelog = rootProject.releaseChangelog
addGameVersion "1.18.2"
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/SearchFilterPrepareWatcher.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/SearchFilterPrepareWatcher.java
index 436f41724..a6b8a641d 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/SearchFilterPrepareWatcher.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/SearchFilterPrepareWatcher.java
@@ -45,18 +45,22 @@ public class SearchFilterPrepareWatcher implements HintProvider {
@Override
public List<Component> provide() {
lastProcess = null;
- if (Argument.prepareStage != null && Argument.currentStages != null && Argument.prepareStacks != null && Argument.prepareStacks.size() > 100) {
- if (Util.getEpochMillis() - Argument.prepareStart < 500) return Collections.emptyList();
- int prepareStageCurrent = Argument.prepareStage.firstInt();
- int prepareStageTotal = Argument.prepareStage.secondInt();
- IntIntPair currentStage = ArrayUtils.get(Argument.currentStages, prepareStageCurrent - 1);
- int currentStageCurrent = currentStage == null ? 0 : currentStage.firstInt();
- int currentStageTotal = currentStage == null ? 0 : currentStage.secondInt();
- double prepareStageProgress = prepareStageTotal == 0 ? 0 : prepareStageCurrent / (double) prepareStageTotal;
- double currentStageProgress = currentStageTotal == 0 ? 0 : currentStageCurrent / (double) currentStageTotal;
- lastProcess = prepareStageTotal == 0 ? 0 : Math.max(0, prepareStageProgress - (1 - currentStageProgress) / prepareStageTotal);
- return ImmutableList.of(new TranslatableComponent("text.rei.caching.search"),
- new TranslatableComponent("text.rei.caching.search.step", prepareStageCurrent, prepareStageTotal, Math.round(lastProcess * 100)));
+ try {
+ if (Argument.prepareStage != null && Argument.currentStages != null && Argument.prepareStacks != null && Argument.prepareStacks.size() > 100
+ && Argument.prepareStart != null) {
+ if (Util.getEpochMillis() - Argument.prepareStart < 500) return Collections.emptyList();
+ int prepareStageCurrent = Argument.prepareStage.firstInt();
+ int prepareStageTotal = Argument.prepareStage.secondInt();
+ IntIntPair currentStage = ArrayUtils.get(Argument.currentStages, prepareStageCurrent - 1);
+ int currentStageCurrent = currentStage == null ? 0 : currentStage.firstInt();
+ int currentStageTotal = currentStage == null ? 0 : currentStage.secondInt();
+ double prepareStageProgress = prepareStageTotal == 0 ? 0 : prepareStageCurrent / (double) prepareStageTotal;
+ double currentStageProgress = currentStageTotal == 0 ? 0 : currentStageCurrent / (double) currentStageTotal;
+ lastProcess = prepareStageTotal == 0 ? 0 : Math.max(0, prepareStageProgress - (1 - currentStageProgress) / prepareStageTotal);
+ return ImmutableList.of(new TranslatableComponent("text.rei.caching.search"),
+ new TranslatableComponent("text.rei.caching.search.step", prepareStageCurrent, prepareStageTotal, Math.round(lastProcess * 100)));
+ }
+ } catch (NullPointerException ignored) {
}
return Collections.emptyList();
}