Pre-reporting checklist
Description
java.lang.NullPointerException: Cannot read field "nameProtectHack" because the return value of "net.wurstclient.WurstClient.getHax()" is null
at net.minecraft.util.StringDecomposer.modify$djb000$wurst$adjustText(StringDecomposer.java:528)
some mod (like EffectInsights and EnchantmentInsights) parse text components (via ComponentHelper.getAsString) on initialization.
The parsing process will traverse the component styles and call StringDecomposer.iterateFormatted, which will trigger the adjustText method injected by Wurst, resulting in a null pointer exception.
fix
src/main/java/net/wurstclient/mixin/StringDecomposerMixin.java
private static String adjustText(String text)
{
HackList hax = WurstClient.INSTANCE.getHax();
if (hax == null)
return text;
return hax.nameProtectHack.protect(text);
}
Repro steps
- add mod Wurst 7.54 and Enchantment Insights 26.1.0
- launch Minecraft
Wurst Client version
7.54
Minecraft version
26.1.2
Crash report (if applicable)
Time: 2026-06-22 21:39:00
Description: Initializing game
java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'effectinsights' at 'fuzs.effectinsights.fabric.EffectInsightsFabric'!
at net.fabricmc.loader.impl.FabricLoaderImpl.lambda$invokeEntrypoints$0(FabricLoaderImpl.java:413)
at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:411)
at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:52)
at knot//net.minecraft.client.Minecraft.<init>(Minecraft.java:477)
at knot//net.minecraft.client.main.Main.main(Main.java:232)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:514)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Suppressed: java.lang.ExceptionInInitializerError
at knot//fuzs.puzzleslib.common.impl.core.context.ModConstructorImpl.construct(ModConstructorImpl.java:22)
at knot//fuzs.puzzleslib.common.api.core.v1.ModConstructor.construct(ModConstructor.java:35)
at knot//fuzs.puzzleslib.common.api.core.v1.ModConstructor.construct(ModConstructor.java:25)
at knot//fuzs.enchantmentinsights.fabric.EnchantmentInsightsFabric.onInitialize(EnchantmentInsightsFabric.java:11)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:409)
... 6 more
Caused by: java.lang.RuntimeException: java.lang.NullPointerException: Cannot read field "nameProtectHack" because the return value of "net.wurstclient.WurstClient.getHax()" is null
at knot//fuzs.puzzleslib.common.impl.config.ConfigHolderImpl.lambda$construct$0(ConfigHolderImpl.java:35)
at knot//fuzs.puzzleslib.common.impl.config.ConfigDataHolderImpl.<init>(ConfigDataHolderImpl.java:35)
at knot//fuzs.puzzleslib.fabric.impl.config.FabricConfigHolderImpl$FabricConfigDataHolderImpl.<init>(FabricConfigHolderImpl.java:62)
at knot//fuzs.puzzleslib.fabric.impl.config.FabricConfigHolderImpl.client(FabricConfigHolderImpl.java:24)
at knot//fuzs.puzzleslib.common.impl.config.ConfigHolderImpl.client(ConfigHolderImpl.java:53)
at knot//fuzs.enchantmentinsights.common.EnchantmentInsights.<clinit>(EnchantmentInsights.java:15)
... 11 more
Caused by: java.lang.NullPointerException: Cannot read field "nameProtectHack" because the return value of "net.wurstclient.WurstClient.getHax()" is null
at knot//net.minecraft.util.StringDecomposer.modify$djb000$wurst$adjustText(StringDecomposer.java:528)
at knot//net.minecraft.util.StringDecomposer.iterateFormatted(StringDecomposer.java:84)
at knot//net.minecraft.util.StringDecomposer.lambda$iterateFormatted$0(StringDecomposer.java:128)
at knot//net.minecraft.network.chat.contents.PlainTextContents$LiteralContents.visit(PlainTextContents.java:42)
at knot//net.minecraft.network.chat.Component.visit(Component.java:85)
at knot//net.minecraft.util.StringDecomposer.iterateFormatted(StringDecomposer.java:128)
at knot//fuzs.puzzleslib.common.api.util.v1.StyleCombiningCharSink.of(StyleCombiningCharSink.java:38)
at knot//fuzs.puzzleslib.common.api.util.v1.ComponentHelper.getAsString(ComponentHelper.java:61)
at knot//fuzs.tooltipinsights.common.api.v1.config.AbstractClientConfig$StyledTooltips.<init>(AbstractClientConfig.java:19)
at knot//fuzs.tooltipinsights.common.api.v1.config.AbstractClientConfig$ItemTooltips.<init>(AbstractClientConfig.java:35)
at knot//fuzs.enchantmentinsights.common.config.ClientConfig$EnchantmentItemTooltips.<init>(ClientConfig.java:17)
at knot//fuzs.enchantmentinsights.common.config.ClientConfig.<init>(ClientConfig.java:12)
at knot//fuzs.puzzleslib.common.impl.config.ConfigHolderImpl.lambda$construct$0(ConfigHolderImpl.java:33)
... 16 more
Caused by: java.lang.ExceptionInInitializerError
at knot//fuzs.puzzleslib.common.impl.core.context.ModConstructorImpl.construct(ModConstructorImpl.java:22)
at knot//fuzs.puzzleslib.common.api.core.v1.ModConstructor.construct(ModConstructor.java:35)
at knot//fuzs.puzzleslib.common.api.core.v1.ModConstructor.construct(ModConstructor.java:25)
at knot//fuzs.effectinsights.fabric.EffectInsightsFabric.onInitialize(EffectInsightsFabric.java:11)
at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:409)
... 6 more
Caused by: java.lang.RuntimeException: java.lang.NullPointerException: Cannot read field "nameProtectHack" because the return value of "net.wurstclient.WurstClient.getHax()" is null
at knot//fuzs.puzzleslib.common.impl.config.ConfigHolderImpl.lambda$construct$0(ConfigHolderImpl.java:35)
at knot//fuzs.puzzleslib.common.impl.config.ConfigDataHolderImpl.<init>(ConfigDataHolderImpl.java:35)
at knot//fuzs.puzzleslib.fabric.impl.config.FabricConfigHolderImpl$FabricConfigDataHolderImpl.<init>(FabricConfigHolderImpl.java:62)
at knot//fuzs.puzzleslib.fabric.impl.config.FabricConfigHolderImpl.client(FabricConfigHolderImpl.java:24)
at knot//fuzs.puzzleslib.common.impl.config.ConfigHolderImpl.client(ConfigHolderImpl.java:53)
at knot//fuzs.effectinsights.common.EffectInsights.<clinit>(EffectInsights.java:15)
... 11 more
Caused by: java.lang.NullPointerException: Cannot read field "nameProtectHack" because the return value of "net.wurstclient.WurstClient.getHax()" is null
at knot//net.minecraft.util.StringDecomposer.modify$djb000$wurst$adjustText(StringDecomposer.java:528)
at knot//net.minecraft.util.StringDecomposer.iterateFormatted(StringDecomposer.java:84)
at knot//net.minecraft.util.StringDecomposer.lambda$iterateFormatted$0(StringDecomposer.java:128)
at knot//net.minecraft.network.chat.contents.PlainTextContents$LiteralContents.visit(PlainTextContents.java:42)
at knot//net.minecraft.network.chat.Component.visit(Component.java:85)
at knot//net.minecraft.util.StringDecomposer.iterateFormatted(StringDecomposer.java:128)
at knot//fuzs.puzzleslib.common.api.util.v1.StyleCombiningCharSink.of(StyleCombiningCharSink.java:38)
at knot//fuzs.puzzleslib.common.api.util.v1.ComponentHelper.getAsString(ComponentHelper.java:61)
at knot//fuzs.tooltipinsights.common.api.v1.config.AbstractClientConfig$StyledTooltips.<init>(AbstractClientConfig.java:19)
at knot//fuzs.tooltipinsights.common.api.v1.config.AbstractClientConfig$ItemTooltips.<init>(AbstractClientConfig.java:35)
at knot//fuzs.effectinsights.common.config.ClientConfig$EffectWidgetTooltips.<init>(ClientConfig.java:15)
at knot//fuzs.effectinsights.common.config.ClientConfig.<init>(ClientConfig.java:8)
at knot//fuzs.puzzleslib.common.impl.config.ConfigHolderImpl.lambda$construct$0(ConfigHolderImpl.java:33)
... 16 more
Pre-reporting checklist
Description
some mod (like EffectInsights and EnchantmentInsights) parse text components (via ComponentHelper.getAsString) on initialization.
The parsing process will traverse the component styles and call StringDecomposer.iterateFormatted, which will trigger the adjustText method injected by Wurst, resulting in a null pointer exception.
fix
src/main/java/net/wurstclient/mixin/StringDecomposerMixin.java
Repro steps
Wurst Client version
7.54
Minecraft version
26.1.2
Crash report (if applicable)