diff --git a/src/main/java/org/embeddedt/modernfix/mixin/UtilMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/UtilMixin.java new file mode 100644 index 00000000..35818447 --- /dev/null +++ b/src/main/java/org/embeddedt/modernfix/mixin/UtilMixin.java @@ -0,0 +1,25 @@ +package org.embeddedt.modernfix.mixin; + +import net.minecraft.util.Util; +import org.embeddedt.modernfix.ModernFix; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(Util.class) +public class UtilMixin { + @ModifyConstant(method = "makeExecutor", constant = @Constant(intValue = 7)) + private static int useHigherThreadCount(int old) { + String requestedMax = System.getProperty("max.bg.threads"); + if(requestedMax != null) { + try { + int newMax = Integer.parseInt(requestedMax); + if(newMax >= 1 && newMax <= 255) + return newMax; + } catch(NumberFormatException e) { + ModernFix.LOGGER.error("max.bg.threads is not a number"); + } + } + return 255; + } +} diff --git a/src/main/resources/modernfix.mixins.json b/src/main/resources/modernfix.mixins.json index 8ae3a8ea..4fd7a941 100644 --- a/src/main/resources/modernfix.mixins.json +++ b/src/main/resources/modernfix.mixins.json @@ -12,7 +12,8 @@ "SaveFormatAccessor", "AbstractBlockStateMixin", "GameDataMixin", - "BlockCallbacksMixin" + "BlockCallbacksMixin", + "UtilMixin" ], "client": [ "MinecraftMixin",