From d13fb0850d4d0166a227785a2a7cd2fb8d2f9f7b Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 4 Jan 2023 09:53:57 -0500 Subject: [PATCH] Use up to 255 worker threads (matches 1.18) --- .../embeddedt/modernfix/mixin/UtilMixin.java | 25 +++++++++++++++++++ src/main/resources/modernfix.mixins.json | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/embeddedt/modernfix/mixin/UtilMixin.java 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",