some more directories

This commit is contained in:
Jake Potrebic
2024-12-13 09:24:26 -08:00
parent 1ed5242f38
commit e9b739bc48
8 changed files with 222 additions and 115 deletions

View File

@@ -0,0 +1,16 @@
--- a/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/net/minecraft/world/entity/animal/frog/Frog.java
@@ -270,7 +_,12 @@
@Override
public void spawnChildFromBreeding(ServerLevel level, Animal mate) {
- this.finalizeSpawnChildFromBreeding(level, mate, null);
+ // Paper start - Add EntityFertilizeEggEvent event
+ final io.papermc.paper.event.entity.EntityFertilizeEggEvent result = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityFertilizeEggEvent(this, mate);
+ if (result.isCancelled()) return;
+
+ this.finalizeSpawnChildFromBreeding(level, mate, null, result.getExperience()); // Paper - use craftbukkit call that takes experience amount
+ // Paper end - Add EntityFertilizeEggEvent event
this.getBrain().setMemory(MemoryModuleType.IS_PREGNANT, Unit.INSTANCE);
}

View File

@@ -0,0 +1,11 @@
--- a/net/minecraft/world/entity/animal/frog/ShootTongue.java
+++ b/net/minecraft/world/entity/animal/frog/ShootTongue.java
@@ -96,7 +_,7 @@
if (entity.isAlive()) {
frog.doHurtTarget(level, entity);
if (!entity.isAlive()) {
- entity.remove(Entity.RemovalReason.KILLED);
+ entity.remove(Entity.RemovalReason.KILLED, org.bukkit.event.entity.EntityRemoveEvent.Cause.DEATH); // CraftBukkit - add Bukkit remove cause
}
}
}

View File

@@ -0,0 +1,84 @@
--- a/net/minecraft/world/entity/animal/frog/Tadpole.java
+++ b/net/minecraft/world/entity/animal/frog/Tadpole.java
@@ -62,6 +_,7 @@
MemoryModuleType.BREED_TARGET,
MemoryModuleType.IS_PANICKING
);
+ public boolean ageLocked; // Paper
public Tadpole(EntityType<? extends AbstractFish> entityType, Level level) {
super(entityType, level);
@@ -113,7 +_,7 @@
@Override
public void aiStep() {
super.aiStep();
- if (!this.level().isClientSide) {
+ if (!this.level().isClientSide && !this.ageLocked) { // Paper
this.setAge(this.age + 1);
}
}
@@ -122,12 +_,14 @@
public void addAdditionalSaveData(CompoundTag tag) {
super.addAdditionalSaveData(tag);
tag.putInt("Age", this.age);
+ tag.putBoolean("AgeLocked", this.ageLocked); // Paper
}
@Override
public void readAdditionalSaveData(CompoundTag tag) {
super.readAdditionalSaveData(tag);
this.setAge(tag.getInt("Age"));
+ this.ageLocked = tag.getBoolean("AgeLocked"); // Paper
}
@Nullable
@@ -177,7 +_,12 @@
@Override
public void saveToBucketTag(ItemStack stack) {
Bucketable.saveDefaultDataToBucketTag(this, stack);
- CustomData.update(DataComponents.BUCKET_ENTITY_DATA, stack, compoundTag -> compoundTag.putInt("Age", this.getAge()));
+ // Paper start - Save tadpole age
+ CustomData.update(DataComponents.BUCKET_ENTITY_DATA, stack, compoundTag -> {
+ compoundTag.putInt("Age", this.getAge());
+ compoundTag.putBoolean("AgeLocked", this.ageLocked);
+ });
+ // Paper end - Save tadpole age
}
@Override
@@ -186,6 +_,7 @@
if (tag.contains("Age")) {
this.setAge(tag.getInt("Age"));
}
+ this.ageLocked = tag.getBoolean("AgeLocked"); // Paper
}
@Override
@@ -217,6 +_,7 @@
}
private void ageUp(int offset) {
+ if (this.ageLocked) return; // Paper
this.setAge(this.age + offset * 20);
}
@@ -229,12 +_,17 @@
private void ageUp() {
if (this.level() instanceof ServerLevel serverLevel) {
- this.convertTo(EntityType.FROG, ConversionParams.single(this, false, false), mob -> {
+ Frog converted = this.convertTo(EntityType.FROG, ConversionParams.single(this, false, false), mob -> { // CraftBukkit
mob.finalizeSpawn(serverLevel, this.level().getCurrentDifficultyAt(mob.blockPosition()), EntitySpawnReason.CONVERSION, null);
mob.setPersistenceRequired();
mob.fudgePositionAfterSizeChange(this.getDimensions(this.getPose()));
this.playSound(SoundEvents.TADPOLE_GROW_UP, 0.15F, 1.0F);
- });
+ // CraftBukkit start
+ }, org.bukkit.event.entity.EntityTransformEvent.TransformReason.METAMORPHOSIS, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.METAMORPHOSIS);
+ if (converted == null) {
+ this.setAge(0); // Sets the age to 0 for avoid a loop if the event is canceled
+ }
+ // CraftBukkit end
}
}