From 6fa3e6421006883d293ea3d67a2377d7d508d548 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 12 Jan 2024 15:18:11 -0500 Subject: [PATCH 1/2] Lower priority of datapack reload exception mixins --- .../perf/datapack_reload_exceptions/LootTableManagerMixin.java | 2 +- .../perf/datapack_reload_exceptions/RecipeManagerMixin.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/LootTableManagerMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/LootTableManagerMixin.java index 3f66f805..3b54f9d9 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/LootTableManagerMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/LootTableManagerMixin.java @@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; -@Mixin(LootTables.class) +@Mixin(value = LootTables.class, priority = 2000) public class LootTableManagerMixin { @Redirect(method = "*(Lnet/minecraft/resources/IResourceManager;Lcom/google/common/collect/ImmutableMap$Builder;Lnet/minecraft/util/ResourceLocation;Lcom/google/gson/JsonElement;)V", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", remap = false), require = 0) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/RecipeManagerMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/RecipeManagerMixin.java index 08555300..101a89f4 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/RecipeManagerMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/datapack_reload_exceptions/RecipeManagerMixin.java @@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; -@Mixin(RecipeManager.class) +@Mixin(value = RecipeManager.class, priority = 2000) public class RecipeManagerMixin { @Redirect(method = "apply(Ljava/util/Map;Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/util/profiling/ProfilerFiller;)V", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", remap = false), require = 0) private void silenceException(Logger instance, String s, Object location, Object exc) { From 03e7df5308fc0bc597904ced4876b44ed13650e6 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 12 Jan 2024 15:28:34 -0500 Subject: [PATCH 2/2] Make dynamic maps return empty immutable collections instead of throwing --- .../embeddedt/modernfix/util/DynamicInt2ObjectMap.java | 9 ++++++--- .../java/org/embeddedt/modernfix/util/DynamicMap.java | 7 ++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/util/DynamicInt2ObjectMap.java b/common/src/main/java/org/embeddedt/modernfix/util/DynamicInt2ObjectMap.java index 5c44208e..7046d4a1 100644 --- a/common/src/main/java/org/embeddedt/modernfix/util/DynamicInt2ObjectMap.java +++ b/common/src/main/java/org/embeddedt/modernfix/util/DynamicInt2ObjectMap.java @@ -2,8 +2,11 @@ package org.embeddedt.modernfix.util; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.IntSet; +import it.unimi.dsi.fastutil.ints.IntSets; import it.unimi.dsi.fastutil.objects.ObjectCollection; +import it.unimi.dsi.fastutil.objects.ObjectLists; import it.unimi.dsi.fastutil.objects.ObjectSet; +import it.unimi.dsi.fastutil.objects.ObjectSets; import java.util.Map; import java.util.function.Function; @@ -15,17 +18,17 @@ public class DynamicInt2ObjectMap extends DynamicMap implements I @Override public IntSet keySet() { - throw new UnsupportedOperationException(); + return IntSets.EMPTY_SET; } @Override public ObjectCollection values() { - throw new UnsupportedOperationException(); + return ObjectLists.emptyList(); } @Override public ObjectSet> entrySet() { - throw new UnsupportedOperationException(); + return ObjectSets.emptySet(); } @Override diff --git a/common/src/main/java/org/embeddedt/modernfix/util/DynamicMap.java b/common/src/main/java/org/embeddedt/modernfix/util/DynamicMap.java index e8803770..07efab65 100644 --- a/common/src/main/java/org/embeddedt/modernfix/util/DynamicMap.java +++ b/common/src/main/java/org/embeddedt/modernfix/util/DynamicMap.java @@ -4,6 +4,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collection; +import java.util.Collections; import java.util.Map; import java.util.Set; import java.util.function.Function; @@ -64,18 +65,18 @@ public class DynamicMap implements Map { @NotNull @Override public Set keySet() { - throw new UnsupportedOperationException(); + return Collections.emptySet(); } @NotNull @Override public Collection values() { - throw new UnsupportedOperationException(); + return Collections.emptyList(); } @NotNull @Override public Set> entrySet() { - throw new UnsupportedOperationException(); + return Collections.emptySet(); } }