From 41c2bb733e42f8448f2724ce3a653769da4ea6dd Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 3 Jun 2023 20:01:19 -0400 Subject: [PATCH 1/3] Add name change easter egg when running on snapshots --- common/src/main/java/org/embeddedt/modernfix/ModernFix.java | 5 +++++ .../main/java/org/embeddedt/modernfix/ModernFixClient.java | 2 +- .../modernfix/core/config/ModernFixEarlyConfig.java | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/ModernFix.java b/common/src/main/java/org/embeddedt/modernfix/ModernFix.java index 4e6e89d1..73dd1ac1 100644 --- a/common/src/main/java/org/embeddedt/modernfix/ModernFix.java +++ b/common/src/main/java/org/embeddedt/modernfix/ModernFix.java @@ -1,5 +1,6 @@ package org.embeddedt.modernfix; +import net.minecraft.SharedConstants; import net.minecraft.Util; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ChunkMap; @@ -24,6 +25,8 @@ public class ModernFix { public static final String MODID = "modernfix"; + public static String NAME = "ModernFix"; + public static ModernFix INSTANCE; // Used to skip computing the blockstate caches twice @@ -46,6 +49,8 @@ public class ModernFix { public ModernFix() { INSTANCE = this; + if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.snapshot_easter_egg.NameChange") && !SharedConstants.getCurrentVersion().isStable()) + NAME = "PreemptiveFix"; ModernFixPlatformHooks.onServerCommandRegister(ModernFixCommands::register); if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.spam_thread_dump.ThreadDumper")) { Thread t = new Thread() { diff --git a/common/src/main/java/org/embeddedt/modernfix/ModernFixClient.java b/common/src/main/java/org/embeddedt/modernfix/ModernFixClient.java index be5fd14a..1c1c74dc 100644 --- a/common/src/main/java/org/embeddedt/modernfix/ModernFixClient.java +++ b/common/src/main/java/org/embeddedt/modernfix/ModernFixClient.java @@ -41,7 +41,7 @@ public class ModernFixClient { // clear reserve as it's not needed Minecraft.reserve = new byte[0]; if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.branding.F3Screen")) { - brandingString = "ModernFix " + ModernFixPlatformHooks.getVersionString(); + brandingString = ModernFix.NAME + " " + ModernFixPlatformHooks.getVersionString(); } for(String className : ModernFixPlatformHooks.getCustomModOptions().get(IntegrationConstants.CLIENT_INTEGRATION_CLASS)) { try { diff --git a/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java b/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java index befc9a5b..a9540db6 100644 --- a/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java +++ b/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java @@ -152,6 +152,7 @@ public class ModernFixEarlyConfig { .put("mixin.feature.integrated_server_watchdog", true) .put("mixin.perf.faster_item_rendering", false) .put("mixin.feature.spam_thread_dump", false) + .put("mixin.feature.snapshot_easter_egg", true) .put("mixin.perf.blast_search_trees", shouldReplaceSearchTrees) .put("mixin.devenv", isDevEnv) .put("mixin.perf.remove_spawn_chunks", isDevEnv) From 54759008e5ddcc3bdeb1bb619cdabcc4734c0b4b Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 3 Jun 2023 20:01:34 -0400 Subject: [PATCH 2/3] Allow Fabric version to run on >=1.16.2 --- fabric/src/main/resources/fabric.mod.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 40277be7..57145e29 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -33,7 +33,7 @@ "fabric-screen-api-v1": "*", "fabric-command-api-v1": "*", "fabric-models-v0": "*", - "minecraft": ">=1.16.5" + "minecraft": ">=1.16.2" }, "breaks": { "dashloader": "*" From b430b670524793d15bc47475a9b4b44a05e983be Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 5 Jun 2023 19:43:25 -0400 Subject: [PATCH 3/3] Return missing model for null BlockState --- .../perf/dynamic_resources/BlockModelShaperMixin.java | 8 +++++++- .../modernfix/dynamicresources/ModelLocationCache.java | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockModelShaperMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockModelShaperMixin.java index c5c70db9..3f737e53 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockModelShaperMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockModelShaperMixin.java @@ -3,6 +3,7 @@ package org.embeddedt.modernfix.common.mixin.perf.dynamic_resources; import net.minecraft.client.renderer.block.BlockModelShaper; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.world.level.block.state.BlockState; import org.embeddedt.modernfix.annotation.ClientOnlyMixin; import org.embeddedt.modernfix.dynamicresources.ModelLocationCache; @@ -37,9 +38,14 @@ public class BlockModelShaperMixin { public void rebuildCache() { } + /** + * @author embeddedt + * @reason get the model from the dynamic model provider + */ @Overwrite public BakedModel getBlockModel(BlockState state) { - BakedModel model = modelManager.getModel(ModelLocationCache.get(state)); + ModelResourceLocation mrl = ModelLocationCache.get(state); + BakedModel model = mrl == null ? null : modelManager.getModel(mrl); if (model == null) { model = modelManager.getMissingModel(); } diff --git a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java index 7370d58a..2d737bbd 100644 --- a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java +++ b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java @@ -31,6 +31,8 @@ public class ModelLocationCache { }); public static ModelResourceLocation get(BlockState state) { + if(state == null) + return null; try { return blockLocationCache.get(state); } catch(ExecutionException e) { @@ -39,6 +41,8 @@ public class ModelLocationCache { } public static ModelResourceLocation get(Item item) { + if(item == null) + return null; try { return itemLocationCache.get(item); } catch(ExecutionException e) {