diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eff756..90d9744 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**1.0.3** +* Fix Bug With ``initEquipment`` Redirect + **1.0.2** * Improve Versioning diff --git a/gradle.properties b/gradle.properties index 137cee1..b66618e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.jvmargs = -Xmx1G fabric_loader_version = 0.8.8+build.202 # Mod Properties - mod_version = 1.0.2 + mod_version = 1.0.3 maven_group = com.thebrokenrail # Dependencies diff --git a/src/main/java/com/thebrokenrail/twine/mixin/MixinMobEntity.java b/src/main/java/com/thebrokenrail/twine/mixin/MixinMobEntity.java index 3121127..7905b7d 100644 --- a/src/main/java/com/thebrokenrail/twine/mixin/MixinMobEntity.java +++ b/src/main/java/com/thebrokenrail/twine/mixin/MixinMobEntity.java @@ -65,10 +65,11 @@ public class MixinMobEntity { @Inject(at = @At("HEAD"), method = "isInDaylight", cancellable = true) public void isInDaylight(CallbackInfoReturnable info) { - if (!((MobEntity) (Object) this).getEntityWorld().isClient()) { - StageDataComponent component = StageDataComponent.getFromWorld((ServerWorld) ((MobEntity) (Object) this).getEntityWorld()); + World world = ((MobEntity) (Object) this).getEntityWorld(); + if (!world.isClient()) { + StageDataComponent component = StageDataComponent.getFromWorld((ServerWorld) world); BlockPos blockPos = ((MobEntity) (Object) this).getBlockPos(); - int stage = component.findEffectiveStageOfChunk((ServerWorld) ((MobEntity) (Object) this).getEntityWorld(), blockPos); + int stage = component.findEffectiveStageOfChunk((ServerWorld) world, blockPos); if (stage >= StageUtil.MOBS_NO_LONGER_BURN_IN_SUNLIGHT) { info.setReturnValue(false); } @@ -77,13 +78,15 @@ public class MixinMobEntity { @Redirect(at = @At(value = "INVOKE", target = "Ljava/util/Random;nextFloat()F", ordinal = 0), method = "initEquipment", allow = 1) public float initEquipment(Random random) { - StageDataComponent component = StageDataComponent.getFromWorld((ServerWorld) ((MobEntity) (Object) this).getEntityWorld()); - BlockPos blockPos = ((MobEntity) (Object) this).getBlockPos(); - int stage = component.findEffectiveStageOfChunk((ServerWorld) ((MobEntity) (Object) this).getEntityWorld(), blockPos); - if (stage >= StageUtil.MOBS_GUARANTEED_ARMOR) { - return -1f; - } else { - return random.nextFloat(); + World world = ((MobEntity) (Object) this).getEntityWorld(); + if (!world.isClient()) { + StageDataComponent component = StageDataComponent.getFromWorld((ServerWorld) ((MobEntity) (Object) this).getEntityWorld()); + BlockPos blockPos = ((MobEntity) (Object) this).getBlockPos(); + int stage = component.findEffectiveStageOfChunk((ServerWorld) ((MobEntity) (Object) this).getEntityWorld(), blockPos); + if (stage >= StageUtil.MOBS_GUARANTEED_ARMOR) { + return -1f; + } } + return random.nextFloat(); } }