diff --git a/common/src/main/java/org/embeddedt/modernfix/ModernFix.java b/common/src/main/java/org/embeddedt/modernfix/ModernFix.java index 26ed63dd..dba7fba9 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 9d8e44c5..7fa3f7c3 100644 --- a/common/src/main/java/org/embeddedt/modernfix/ModernFixClient.java +++ b/common/src/main/java/org/embeddedt/modernfix/ModernFixClient.java @@ -45,7 +45,7 @@ public class ModernFixClient { // clear reserve as it's not needed MemoryReserve.release(); if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.branding.F3Screen")) { - brandingString = "ModernFix " + ModernFixPlatformHooks.getVersionString(); + brandingString = ModernFix.NAME + " " + ModernFixPlatformHooks.getVersionString(); } SearchTreeProviderRegistry.register(JEIBackedSearchTree.PROVIDER); SearchTreeProviderRegistry.register(REIBackedSearchTree.PROVIDER); 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/core/config/ModernFixEarlyConfig.java b/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java index 62a7df51..d7b505c2 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 @@ -148,6 +148,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.devenv", isDevEnv) .put("mixin.perf.remove_spawn_chunks", isDevEnv) .build(); 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) { 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": "*"