From a560e6402943962e6bd43d6afdcad69210908b3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A4seToatz?= Date: Fri, 26 Dec 2025 03:07:31 +0100 Subject: [PATCH] lightning rod fix --- gradle.properties | 2 +- .../mixin/WeatherCheckLootConditionMixin.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 241285e..5a579c9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ yarn_mappings=1.21.11+build.2 loader_version=0.18.2 loom_version=1.14-SNAPSHOT # Mod Properties -mod_version=1.8 +mod_version=1.9 maven_group=com.kasetoatz archives_base_name=SuperEnchants # Dependencies diff --git a/src/main/java/com/kasetoatz/superenchants/mixin/WeatherCheckLootConditionMixin.java b/src/main/java/com/kasetoatz/superenchants/mixin/WeatherCheckLootConditionMixin.java index 291a5b7..1f36bae 100644 --- a/src/main/java/com/kasetoatz/superenchants/mixin/WeatherCheckLootConditionMixin.java +++ b/src/main/java/com/kasetoatz/superenchants/mixin/WeatherCheckLootConditionMixin.java @@ -1,5 +1,6 @@ package com.kasetoatz.superenchants.mixin; +import net.minecraft.entity.Entity; import net.minecraft.entity.projectile.TridentEntity; import net.minecraft.loot.condition.WeatherCheckLootCondition; import net.minecraft.loot.context.LootContext; @@ -9,14 +10,17 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import java.util.Objects; + @Mixin(WeatherCheckLootCondition.class) public class WeatherCheckLootConditionMixin { @Inject(method="test(Lnet/minecraft/loot/context/LootContext;)Z", at=@At("RETURN"), cancellable=true) public void test(LootContext lootContext, CallbackInfoReturnable cir) { - Integer level = lootContext.get(LootContextParameters.ENCHANTMENT_LEVEL); - if (lootContext.get(LootContextParameters.DIRECT_ATTACKING_ENTITY) instanceof TridentEntity && level != null && level > 1) + Entity entity = Objects.requireNonNullElse(lootContext.get(LootContextParameters.DIRECT_ATTACKING_ENTITY), lootContext.get(LootContextParameters.THIS_ENTITY)); + Integer level = Objects.requireNonNullElse(lootContext.get(LootContextParameters.ENCHANTMENT_LEVEL), 0); + if (entity instanceof TridentEntity && level > 1) { cir.setReturnValue(true); }