Skip to content

NPE: getHax() is null #1375

Description

@MineYuanlu

Pre-reporting checklist

  • I have searched existing issues and didn't find any previous reports of this bug.
  • This bug still happens in the latest version of Wurst. I've made sure my installation is up to date.
  • I have tried removing all other mods and the bug still happens.

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

  1. add mod Wurst 7.54 and Enchantment Insights 26.1.0
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions