From beb07337aee3d376b0e5df959b8a9c9dd2a88c36 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 14 Jun 2021 19:20:00 -0700 Subject: [PATCH] fix NPE --- .../terra/api/util/collections/ProbabilityCollection.java | 5 ++++- .../templates/stage/mutator/BorderListMutatorTemplate.java | 4 ++-- .../biome/templates/stage/mutator/BorderMutatorTemplate.java | 2 +- .../templates/stage/mutator/ReplaceListMutatorTemplate.java | 4 ++-- .../templates/stage/mutator/ReplaceMutatorTemplate.java | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java index 9aa42e9c3..1a49948db 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java +++ b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java @@ -49,7 +49,10 @@ public class ProbabilityCollection implements Collection { public ProbabilityCollection map(Function mapper, boolean carryNull) { ProbabilityCollection newCollection = new ProbabilityCollection<>(); - cont.forEach((o, count) -> newCollection.add(mapper.apply(o), count.get())); + cont.forEach((o, count) -> { + if(o != null) newCollection.add(mapper.apply(o), count.get()); + else if(carryNull) newCollection.add(null, count.get()); + }); return newCollection; } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java index 8575036e5..656afe595 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java @@ -30,8 +30,8 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate { public BiomeMutator build(long seed) { Map> replaceMap = new HashMap<>(); - replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.apply(seed), replacements.map(replacement -> replacement.get().apply(seed), true))); + replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.apply(seed), replacements.map(MetaValue::get).map(replacement -> replacement.apply(seed)))); - return new BorderListMutator(replaceMap, from.get(), defaultReplace.get(), noise.get().apply(seed), defaultTo.map(biomeBuilder -> biomeBuilder.get().apply(seed), true)); + return new BorderListMutator(replaceMap, from.get(), defaultReplace.get(), noise.get().apply(seed), defaultTo.map(MetaValue::get).map(biomeBuilder -> biomeBuilder.apply(seed))); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderMutatorTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderMutatorTemplate.java index 1a014021c..30bc64842 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderMutatorTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderMutatorTemplate.java @@ -20,6 +20,6 @@ public class BorderMutatorTemplate extends MutatorStageTemplate { @Override public BiomeMutator build(long seed) { - return new BorderMutator(from.get(), replace.get(), noise.get().apply(seed), to.map(biomeBuilder -> biomeBuilder.get().apply(seed), true)); + return new BorderMutator(from.get(), replace.get(), noise.get().apply(seed), to.map(MetaValue::get).map(biomeBuilder -> biomeBuilder.apply(seed))); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceListMutatorTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceListMutatorTemplate.java index 4d1975254..0cc82acc2 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceListMutatorTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceListMutatorTemplate.java @@ -26,8 +26,8 @@ public class ReplaceListMutatorTemplate extends MutatorStageTemplate { public BiomeMutator build(long seed) { Map> replaceMap = new HashMap<>(); - replace.forEach((biomeBuilder, biomeBuilders) -> replaceMap.put(biomeBuilder.apply(seed), biomeBuilders.map(builder -> builder.get().apply(seed), true))); + replace.forEach((biomeBuilder, biomeBuilders) -> replaceMap.put(biomeBuilder.apply(seed), biomeBuilders.map(MetaValue::get).map(builder -> builder.apply(seed)))); - return new ReplaceListMutator(replaceMap, defaultFrom.get(), defaultTo.map(biomeBuilder -> biomeBuilder.get().apply(seed), true), noise.get().apply(seed)); + return new ReplaceListMutator(replaceMap, defaultFrom.get(), defaultTo.map(MetaValue::get).map(biomeBuilder -> biomeBuilder.apply(seed)), noise.get().apply(seed)); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceMutatorTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceMutatorTemplate.java index 69fde0dea..3446a37bc 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceMutatorTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/ReplaceMutatorTemplate.java @@ -17,6 +17,6 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate { @Override public BiomeMutator build(long seed) { - return new ReplaceMutator(from.get(), to.map(biomeBuilder -> biomeBuilder.get().apply(seed), true), noise.get().apply(seed)); + return new ReplaceMutator(from.get(), to.map(MetaValue::get).map(biomeBuilder -> biomeBuilder.apply(seed)), noise.get().apply(seed)); } }