From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: violetc <58360096+s-yh-china@users.noreply.github.com> Date: Mon, 22 Jan 2024 11:41:13 +0800 Subject: [PATCH] Renewable sponges diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java index 5df07b59ff6e39687e361d89d7764381ca3ce9ca..465a46f497d726303859ca31688a848699441234 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java @@ -345,6 +345,28 @@ public class Guardian extends Monster { } + // Leaves start - renewable sponges + @Override + public void thunderHit(net.minecraft.server.level.ServerLevel world, net.minecraft.world.entity.LightningBolt lightning) { + if (org.leavesmc.leaves.LeavesConfig.renewableSponges && !this.isRemoved() && !(this instanceof ElderGuardian)) { + ElderGuardian elderGuardian = new ElderGuardian(EntityType.ELDER_GUARDIAN ,this.level()); + elderGuardian.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); + elderGuardian.finalizeSpawn(world ,this.level().getCurrentDifficultyAt(elderGuardian.blockPosition()), MobSpawnType.CONVERSION, null); + elderGuardian.setNoAi(this.isNoAi()); + + if (this.hasCustomName()) { + elderGuardian.setCustomName(this.getCustomName()); + elderGuardian.setCustomNameVisible(this.isCustomNameVisible()); + } + + this.level().addFreshEntity(elderGuardian); + this.discard(); + } else { + super.thunderHit(world, lightning); + } + } + // Leaves end - renewable sponges + private static class GuardianMoveControl extends MoveControl { private final Guardian guardian;