SPIGOT-6907: Oxygen does not restore up to value set by LivingEntity#setMaximumAir()

By: DerFrZocker <derrieple@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2022-01-23 09:06:19 +11:00
parent cf4feec6b5
commit b80113b447
4 changed files with 145 additions and 84 deletions

View File

@@ -1,6 +1,28 @@
--- a/net/minecraft/world/entity/animal/EntityDolphin.java
+++ b/net/minecraft/world/entity/animal/EntityDolphin.java
@@ -233,6 +233,12 @@
@@ -65,6 +65,12 @@
public class EntityDolphin extends EntityWaterAnimal {
+ // CraftBukkit start - SPIGOT-6907: re-implement LivingEntity#setMaximumAir()
+ @Override
+ public int getDefaultMaxAirSupply() {
+ return TOTAL_AIR_SUPPLY;
+ }
+ // CraftBukkit end
private static final DataWatcherObject<BlockPosition> TREASURE_POS = DataWatcher.defineId(EntityDolphin.class, DataWatcherRegistry.BLOCK_POS);
private static final DataWatcherObject<Boolean> GOT_FISH = DataWatcher.defineId(EntityDolphin.class, DataWatcherRegistry.BOOLEAN);
private static final DataWatcherObject<Integer> MOISTNESS_LEVEL = DataWatcher.defineId(EntityDolphin.class, DataWatcherRegistry.INT);
@@ -192,7 +198,7 @@
@Override
public int getMaxAirSupply() {
- return 4800;
+ return maxAirTicks; // CraftBukkit - SPIGOT-6907: re-implement LivingEntity#setMaximumAir()
}
@Override
@@ -233,6 +239,12 @@
ItemStack itemstack = entityitem.getItem();
if (this.canHoldItem(itemstack)) {
@@ -13,7 +35,7 @@
this.onItemPickup(entityitem);
this.setItemSlot(EnumItemSlot.MAINHAND, itemstack);
this.handDropChances[EnumItemSlot.MAINHAND.getIndex()] = 2.0F;
@@ -391,7 +397,7 @@
@@ -391,7 +403,7 @@
@Override
public boolean canUse() {
@@ -22,7 +44,7 @@
}
@Override
@@ -501,7 +507,7 @@
@@ -501,7 +513,7 @@
@Override
public void start() {
@@ -31,7 +53,7 @@
}
@Override
@@ -520,7 +526,7 @@
@@ -520,7 +532,7 @@
}
if (this.player.isSwimming() && this.player.level.random.nextInt(6) == 0) {