2025-03-26 03:05:00 +11:00

53 lines
2.4 KiB
Diff

--- a/net/minecraft/world/entity/animal/EntityRabbit.java
+++ b/net/minecraft/world/entity/animal/EntityRabbit.java
@@ -74,6 +74,10 @@
import net.minecraft.world.level.pathfinder.PathEntity;
import net.minecraft.world.phys.Vec3D;
+// CraftBukkit start
+import org.bukkit.craftbukkit.event.CraftEventFactory;
+// CraftBukkit end
+
public class EntityRabbit extends EntityAnimal {
public static final double STROLL_SPEED_MOD = 0.6D;
@@ -99,7 +103,6 @@
super(entitytypes, world);
this.jumpControl = new EntityRabbit.ControllerJumpRabbit(this);
this.moveControl = new EntityRabbit.ControllerMoveRabbit(this);
- this.setSpeedModifier(0.0D);
}
@Override
@@ -498,8 +501,8 @@
}
static {
- PrimitiveCodec primitivecodec = Codec.INT;
- IntFunction intfunction = EntityRabbit.Variant.BY_ID;
+ PrimitiveCodec<Integer> primitivecodec = Codec.INT; // CraftBukkit - decompile error
+ IntFunction<EntityRabbit.Variant> intfunction = EntityRabbit.Variant.BY_ID; // CraftBukkit - decompile error
Objects.requireNonNull(intfunction);
LEGACY_CODEC = primitivecodec.xmap(intfunction::apply, EntityRabbit.Variant::id);
@@ -643,9 +646,19 @@
int i = (Integer) iblockdata.getValue(BlockCarrots.AGE);
if (i == 0) {
+ // CraftBukkit start
+ if (!CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockposition, Blocks.AIR.defaultBlockState())) {
+ return;
+ }
+ // CraftBukkit end
world.setBlock(blockposition, Blocks.AIR.defaultBlockState(), 2);
world.destroyBlock(blockposition, true, this.rabbit);
} else {
+ // CraftBukkit start
+ if (!CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockposition, iblockdata.setValue(BlockCarrots.AGE, i - 1))) {
+ return;
+ }
+ // CraftBukkit end
world.setBlock(blockposition, (IBlockData) iblockdata.setValue(BlockCarrots.AGE, i - 1), 2);
world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.a.of((Entity) this.rabbit));
world.levelEvent(2001, blockposition, Block.getId(iblockdata));