95ac8745f0
The ZombieVillager#setConversionTime API method internally calls startConversion which always broadcasts the entity event responsible for playing the respective sound at the beginning of a conversion. This is not always wanted by developers when modifying already converting zombies in particular. This commit expands the ZombieVillager interface with another overload of the setConversionTime method that also takes a simple toggle flag indicating whether or not the entity event should be published to the world.
730 lines
22 KiB
Diff
730 lines
22 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
|
Date: Fri, 28 May 2021 21:06:59 -0400
|
|
Subject: [PATCH] Missing Entity Behavior API
|
|
|
|
Co-authored-by: Nassim Jahnke <jahnke.nassim@gmail.com>
|
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
|
|
diff --git a/src/main/java/org/bukkit/entity/AbstractHorse.java b/src/main/java/org/bukkit/entity/AbstractHorse.java
|
|
index 0d88dce9978243a1f995c5fb448c5d71b01136eb..cad47139de57642fb3bb483e7a5acaa7fea78cb4 100644
|
|
--- a/src/main/java/org/bukkit/entity/AbstractHorse.java
|
|
+++ b/src/main/java/org/bukkit/entity/AbstractHorse.java
|
|
@@ -119,4 +119,58 @@ public interface AbstractHorse extends Vehicle, InventoryHolder, Tameable {
|
|
@NotNull
|
|
@Override
|
|
public AbstractHorseInventory getInventory();
|
|
+
|
|
+ // Paper start - Horse API
|
|
+ /**
|
|
+ * Gets if a horse is in their eating grass animation.
|
|
+ *
|
|
+ * @return eating grass animation is active
|
|
+ * @deprecated use {@link #isEatingHaystack()}
|
|
+ */
|
|
+ @Deprecated
|
|
+ public boolean isEatingGrass();
|
|
+
|
|
+ /**
|
|
+ * Sets if a horse is in their eating grass animation.
|
|
+ *
|
|
+ * <p>When true, the horse will lower its neck.</p>
|
|
+ *
|
|
+ * @param eating eating grass animation is active
|
|
+ * @deprecated use {@link #setEatingHaystack(boolean)}
|
|
+ */
|
|
+ @Deprecated
|
|
+ public void setEatingGrass(boolean eating);
|
|
+
|
|
+ /**
|
|
+ * Gets if a horse is in their rearing animation.
|
|
+ *
|
|
+ * @return rearing animation is active
|
|
+ */
|
|
+ public boolean isRearing();
|
|
+
|
|
+ /**
|
|
+ * Sets if a horse is in their rearing animation.
|
|
+ *
|
|
+ * <p>When true, the horse will stand on its hind legs.</p>
|
|
+ *
|
|
+ * @param rearing rearing animation is active
|
|
+ */
|
|
+ public void setRearing(boolean rearing);
|
|
+
|
|
+ /**
|
|
+ * Gets if a horse is in their eating animation.
|
|
+ *
|
|
+ * @return eating animation is active
|
|
+ */
|
|
+ public boolean isEating();
|
|
+
|
|
+ /**
|
|
+ * Sets if a horse is in their eating animation.
|
|
+ *
|
|
+ * <p>When true, the horse will bob its head.</p>
|
|
+ *
|
|
+ * @param eating eating animation is active
|
|
+ */
|
|
+ public void setEating(boolean eating);
|
|
+ // Paper end - Horse API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Bee.java b/src/main/java/org/bukkit/entity/Bee.java
|
|
index adb20a9abba33c32d553f620fa82b27dff64ab5f..ca6baec5ce00b4d169ab4ff416f616db32615010 100644
|
|
--- a/src/main/java/org/bukkit/entity/Bee.java
|
|
+++ b/src/main/java/org/bukkit/entity/Bee.java
|
|
@@ -93,4 +93,28 @@ public interface Bee extends Animals {
|
|
* @param ticks Ticks the bee cannot enter a hive for
|
|
*/
|
|
void setCannotEnterHiveTicks(int ticks);
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Sets the override for if the bee is currently rolling.
|
|
+ *
|
|
+ * @param rolling is rolling, or unset for vanilla behavior
|
|
+ */
|
|
+ void setRollingOverride(@org.jetbrains.annotations.NotNull net.kyori.adventure.util.TriState rolling);
|
|
+
|
|
+ /**
|
|
+ * Gets the plugin set override for if the bee is currently rolling.
|
|
+ *
|
|
+ * @return plugin set rolling override
|
|
+ */
|
|
+ @org.jetbrains.annotations.NotNull
|
|
+ net.kyori.adventure.util.TriState getRollingOverride();
|
|
+
|
|
+ /**
|
|
+ * Gets if the bee is currently rolling.
|
|
+ *
|
|
+ * @return is rolling
|
|
+ */
|
|
+ boolean isRolling();
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Cat.java b/src/main/java/org/bukkit/entity/Cat.java
|
|
index c2a566b864c82ffb094b7334d9e6e25a1bfc87d1..c340fecb61bac66baf0f44189d21bc85289b1269 100644
|
|
--- a/src/main/java/org/bukkit/entity/Cat.java
|
|
+++ b/src/main/java/org/bukkit/entity/Cat.java
|
|
@@ -54,4 +54,36 @@ public interface Cat extends Tameable, Sittable {
|
|
JELLIE,
|
|
ALL_BLACK;
|
|
}
|
|
+
|
|
+ // Paper Start - More cat api
|
|
+ /**
|
|
+ * Sets if the cat is lying down.
|
|
+ * This is visual and does not affect the behaviour of the cat.
|
|
+ *
|
|
+ * @param lyingDown whether the cat should lie down
|
|
+ */
|
|
+ public void setLyingDown(boolean lyingDown);
|
|
+
|
|
+ /**
|
|
+ * Gets if the cat is lying down.
|
|
+ *
|
|
+ * @return whether the cat is lying down
|
|
+ */
|
|
+ public boolean isLyingDown();
|
|
+
|
|
+ /**
|
|
+ * Sets if the cat has its head up.
|
|
+ * This is visual and does not affect the behaviour of the cat.
|
|
+ *
|
|
+ * @param headUp head is up
|
|
+ */
|
|
+ public void setHeadUp(boolean headUp);
|
|
+
|
|
+ /**
|
|
+ * Gets if the cat has its head up.
|
|
+ *
|
|
+ * @return head is up
|
|
+ */
|
|
+ public boolean isHeadUp();
|
|
+ // Paper End - More cat api
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Enderman.java b/src/main/java/org/bukkit/entity/Enderman.java
|
|
index 94f3a8c4bf8cf14263d34d866db66728e98dfdb0..7937a0e082199554d3e8db1f9811be29abc9b3fd 100644
|
|
--- a/src/main/java/org/bukkit/entity/Enderman.java
|
|
+++ b/src/main/java/org/bukkit/entity/Enderman.java
|
|
@@ -54,4 +54,36 @@ public interface Enderman extends Monster {
|
|
* @param blockData data to set the carried block to, or null to remove
|
|
*/
|
|
public void setCarriedBlock(@Nullable BlockData blockData);
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Returns whether the enderman is screaming/angry.
|
|
+ *
|
|
+ * @return whether the enderman is screaming
|
|
+ */
|
|
+ boolean isScreaming();
|
|
+
|
|
+ /**
|
|
+ * Sets whether the enderman is screaming/angry.
|
|
+ *
|
|
+ * @param screaming whether the enderman is screaming
|
|
+ */
|
|
+ void setScreaming(boolean screaming);
|
|
+
|
|
+ /**
|
|
+ * Returns whether the enderman has been stared at.
|
|
+ * If set to true, players will hear an ambient sound.
|
|
+ *
|
|
+ * @return whether the enderman has been stared at
|
|
+ */
|
|
+ boolean hasBeenStaredAt();
|
|
+
|
|
+ /**
|
|
+ * Sets whether the enderman has been stared at.
|
|
+ * If set to true, players will hear an ambient sound.
|
|
+ *
|
|
+ * @param hasBeenStaredAt whether the enderman has been stared at
|
|
+ */
|
|
+ void setHasBeenStaredAt(boolean hasBeenStaredAt);
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Fox.java b/src/main/java/org/bukkit/entity/Fox.java
|
|
index 498e182846b81d50b3a594254e8b341fb23e8763..3826363a1954afcddaadec7f96ac18300f8e89e9 100644
|
|
--- a/src/main/java/org/bukkit/entity/Fox.java
|
|
+++ b/src/main/java/org/bukkit/entity/Fox.java
|
|
@@ -85,4 +85,62 @@ public interface Fox extends Animals, Sittable {
|
|
RED,
|
|
SNOW;
|
|
}
|
|
+
|
|
+ // Paper start - Add more fox behavior API
|
|
+ /**
|
|
+ * Sets if the fox is interested.
|
|
+ *
|
|
+ * @param interested is interested
|
|
+ */
|
|
+ public void setInterested(boolean interested);
|
|
+
|
|
+ /**
|
|
+ * Gets if the fox is interested.
|
|
+ *
|
|
+ * @return fox is interested
|
|
+ */
|
|
+ public boolean isInterested();
|
|
+
|
|
+ /**
|
|
+ * Sets if the fox is leaping.
|
|
+ *
|
|
+ * @param leaping is leaping
|
|
+ */
|
|
+ public void setLeaping(boolean leaping);
|
|
+
|
|
+ /**
|
|
+ * Gets if the fox is leaping.
|
|
+ *
|
|
+ * @return fox is leaping
|
|
+ */
|
|
+ public boolean isLeaping();
|
|
+
|
|
+ /**
|
|
+ * Sets if the fox is defending.
|
|
+ *
|
|
+ * @param defending is defending
|
|
+ */
|
|
+ public void setDefending(boolean defending);
|
|
+
|
|
+ /**
|
|
+ * Gets if the fox is defending.
|
|
+ *
|
|
+ * @return fox is defending
|
|
+ */
|
|
+ public boolean isDefending();
|
|
+
|
|
+ /**
|
|
+ * Sets if the fox face planted.
|
|
+ *
|
|
+ * @param faceplanted face planted
|
|
+ */
|
|
+ public void setFaceplanted(boolean faceplanted);
|
|
+
|
|
+ /**
|
|
+ * Gets if the fox face planted.
|
|
+ *
|
|
+ * @return fox face planted
|
|
+ */
|
|
+ public boolean isFaceplanted();
|
|
+ // Paper end - Add more fox behavior API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Ghast.java b/src/main/java/org/bukkit/entity/Ghast.java
|
|
index 3f5edf76ce303502cf4eeeb76f22f21f568dad5a..5930dc682c5c9273c748595e487b364b818a2fac 100644
|
|
--- a/src/main/java/org/bukkit/entity/Ghast.java
|
|
+++ b/src/main/java/org/bukkit/entity/Ghast.java
|
|
@@ -3,4 +3,37 @@ package org.bukkit.entity;
|
|
/**
|
|
* Represents a Ghast.
|
|
*/
|
|
-public interface Ghast extends Flying {}
|
|
+// Paper start
|
|
+public interface Ghast extends Flying {
|
|
+
|
|
+ /**
|
|
+ * Returns whether the ghast is charging an attack.
|
|
+ *
|
|
+ * @return whether the ghast is charging an attack
|
|
+ */
|
|
+ boolean isCharging();
|
|
+
|
|
+ /**
|
|
+ * Sets whether the ghast is charging an attack.
|
|
+ * This determines whether the client displays the charging animation.
|
|
+ *
|
|
+ * @param charging whether the ghast is charging an attack
|
|
+ */
|
|
+ void setCharging(boolean charging);
|
|
+
|
|
+ /**
|
|
+ * Returns the explosion power of shot fireballs.
|
|
+ *
|
|
+ * @return explosion power of shot fireballs
|
|
+ */
|
|
+ int getExplosionPower();
|
|
+
|
|
+ /**
|
|
+ * Sets the explosion power of shot fireballs.
|
|
+ *
|
|
+ * @param explosionPower explosion power of shot fireballs
|
|
+ * @throws IllegalArgumentException if the explosion power is less than 0 or greater than 127
|
|
+ */
|
|
+ void setExplosionPower(int explosionPower);
|
|
+ // Paper end
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/entity/Panda.java b/src/main/java/org/bukkit/entity/Panda.java
|
|
index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..1dcc2c8f4899da029af8b1c1b2ff1b5e368e82c1 100644
|
|
--- a/src/main/java/org/bukkit/entity/Panda.java
|
|
+++ b/src/main/java/org/bukkit/entity/Panda.java
|
|
@@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull;
|
|
/**
|
|
* Panda entity.
|
|
*/
|
|
-public interface Panda extends Animals {
|
|
+public interface Panda extends Animals, Sittable { // Paper
|
|
|
|
/**
|
|
* Gets this Panda's main gene.
|
|
@@ -63,4 +63,125 @@ public interface Panda extends Animals {
|
|
return recessive;
|
|
}
|
|
}
|
|
+
|
|
+ // Paper start - Panda API
|
|
+ /**
|
|
+ * Sets the sneeze progress in this animation.
|
|
+ * This value counts up only if {@link Panda#isSneezing()} is true
|
|
+ *
|
|
+ * @param ticks sneeze progress
|
|
+ */
|
|
+ void setSneezeTicks(int ticks);
|
|
+
|
|
+ /**
|
|
+ * Gets the current sneeze progress, or how many ticks this panda will sneeze for.
|
|
+ *
|
|
+ * @return sneeze progress
|
|
+ */
|
|
+ int getSneezeTicks();
|
|
+
|
|
+ /**
|
|
+ * Sets if the panda is sneezing, which causes the sneeze counter to count.
|
|
+ * <p>
|
|
+ * When false, this will automatically set the sneeze ticks to 0.
|
|
+ *
|
|
+ * @param sneeze if the panda is sneezing or not
|
|
+ */
|
|
+ void setSneezing(boolean sneeze);
|
|
+
|
|
+ /**
|
|
+ * Gets if the panda is sneezing
|
|
+ *
|
|
+ * @return is sneezing
|
|
+ */
|
|
+ boolean isSneezing();
|
|
+
|
|
+ /**
|
|
+ * Sets the eating ticks for this panda.
|
|
+ * <p>
|
|
+ *
|
|
+ * This starts counting up as long as it is greater than 0.
|
|
+ *
|
|
+ * @param ticks eating ticks
|
|
+ */
|
|
+ void setEatingTicks(int ticks);
|
|
+
|
|
+ /**
|
|
+ * Gets the current eating progress, or how many ticks this panda has been eating for.
|
|
+ *
|
|
+ * @return eating progress
|
|
+ */
|
|
+ int getEatingTicks();
|
|
+
|
|
+ /**
|
|
+ * Sets the number of ticks this panda will be unhappy for.
|
|
+ * <p>
|
|
+ * This value counts down.
|
|
+ *
|
|
+ * @param ticks unhappy ticks
|
|
+ */
|
|
+ void setUnhappyTicks(int ticks);
|
|
+
|
|
+ /**
|
|
+ * Gets how many ticks this panda will be unhappy for.
|
|
+ *
|
|
+ * @return unhappy ticks
|
|
+ */
|
|
+ int getUnhappyTicks();
|
|
+
|
|
+ /**
|
|
+ * Sets if this panda is currently rolling.
|
|
+ *
|
|
+ * @param rolling should roll
|
|
+ */
|
|
+ void setRolling(boolean rolling);
|
|
+
|
|
+ /**
|
|
+ * Gets if this panda is currently rolling on the ground.
|
|
+ *
|
|
+ * @return is rolling
|
|
+ */
|
|
+ boolean isRolling();
|
|
+
|
|
+ /**
|
|
+ * Sets if this panda is currently on its back.
|
|
+ *
|
|
+ * @param onBack is on its back
|
|
+ */
|
|
+ void setIsOnBack(boolean onBack);
|
|
+
|
|
+ /**
|
|
+ * Gets if this panda is currently on its back.
|
|
+ *
|
|
+ * @return is on back
|
|
+ */
|
|
+ boolean isOnBack();
|
|
+
|
|
+ /**
|
|
+ * Sets if this panda is currently sitting.
|
|
+ *
|
|
+ * @param sitting is currently sitting
|
|
+ * @deprecated use {@link #setSitting(boolean)}
|
|
+ */
|
|
+ @Deprecated(forRemoval = true)
|
|
+ default void setIsSitting(boolean sitting) {
|
|
+ this.setSitting(sitting);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets if this panda is currently sitting.
|
|
+ *
|
|
+ * @param sitting is currently sitting
|
|
+ */
|
|
+ @Override
|
|
+ void setSitting(boolean sitting);
|
|
+
|
|
+ /**
|
|
+ * Gets if this panda is sitting.
|
|
+ *
|
|
+ * @return is sitting
|
|
+ */
|
|
+ @Override
|
|
+ boolean isSitting();
|
|
+ // Paper end - Panda API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Piglin.java b/src/main/java/org/bukkit/entity/Piglin.java
|
|
index 6fdc0e0bb62189dbf3cf9ce7a87b7fbb995956a3..d4cb4b0ed1d9766a87867dcf1a3a839526ba9332 100644
|
|
--- a/src/main/java/org/bukkit/entity/Piglin.java
|
|
+++ b/src/main/java/org/bukkit/entity/Piglin.java
|
|
@@ -90,4 +90,25 @@ public interface Piglin extends PiglinAbstract, InventoryHolder, com.destroystok
|
|
*/
|
|
@NotNull
|
|
public Set<Material> getBarterList();
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Causes the piglin to appear as if they are charging
|
|
+ * a crossbow.
|
|
+ * <p>
|
|
+ * This works with any item currently held in the piglin's hand.
|
|
+ *
|
|
+ * @param chargingCrossbow is charging
|
|
+ */
|
|
+ void setChargingCrossbow(boolean chargingCrossbow);
|
|
+
|
|
+ /**
|
|
+ * Gets if the piglin is currently charging the
|
|
+ * item in their hand.
|
|
+ *
|
|
+ * @return is charging
|
|
+ */
|
|
+ boolean isChargingCrossbow();
|
|
+ // Paper end
|
|
+
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/PolarBear.java b/src/main/java/org/bukkit/entity/PolarBear.java
|
|
index 479f7a7c54c85cb685f56e60906650d1989c03ff..60267ee382de80fab86b440ff72a2455f427d148 100644
|
|
--- a/src/main/java/org/bukkit/entity/PolarBear.java
|
|
+++ b/src/main/java/org/bukkit/entity/PolarBear.java
|
|
@@ -3,4 +3,21 @@ package org.bukkit.entity;
|
|
/**
|
|
* Represents a polar bear.
|
|
*/
|
|
-public interface PolarBear extends Animals {}
|
|
+// Paper start
|
|
+public interface PolarBear extends Animals {
|
|
+
|
|
+ /**
|
|
+ * Returns whether the polar bear is standing.
|
|
+ *
|
|
+ * @return whether the polar bear is standing
|
|
+ */
|
|
+ boolean isStanding();
|
|
+
|
|
+ /**
|
|
+ * Sets whether the polar bear is standing.
|
|
+ *
|
|
+ * @param standing whether the polar bear should be standing
|
|
+ */
|
|
+ void setStanding(boolean standing);
|
|
+}
|
|
+// Paper end
|
|
diff --git a/src/main/java/org/bukkit/entity/Raider.java b/src/main/java/org/bukkit/entity/Raider.java
|
|
index 9a99b8ca1ec9c3c88b29275c88b1221e1b22bcef..756b4a7794ea0905abd4e4fe777f69ffe36658f5 100644
|
|
--- a/src/main/java/org/bukkit/entity/Raider.java
|
|
+++ b/src/main/java/org/bukkit/entity/Raider.java
|
|
@@ -47,4 +47,20 @@ public interface Raider extends Monster {
|
|
* @param join CanJoinRaid status
|
|
*/
|
|
void setCanJoinRaid(boolean join);
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Returns whether the raider is celebrating a raid victory.
|
|
+ *
|
|
+ * @return whether the raider is celebrating a raid victory
|
|
+ */
|
|
+ boolean isCelebrating();
|
|
+
|
|
+ /**
|
|
+ * Sets whether the raider is celebrating a raid victory.
|
|
+ *
|
|
+ * @param celebrating whether the raider is celebrating a raid victory
|
|
+ */
|
|
+ void setCelebrating(boolean celebrating);
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Trident.java b/src/main/java/org/bukkit/entity/Trident.java
|
|
index 28cdb3b544572ba7aeb9061e3163e3895ac7d4e6..c8015ff610e3c1222cb368ea1d8a0c2f3785d9c7 100644
|
|
--- a/src/main/java/org/bukkit/entity/Trident.java
|
|
+++ b/src/main/java/org/bukkit/entity/Trident.java
|
|
@@ -3,4 +3,40 @@ package org.bukkit.entity;
|
|
/**
|
|
* Represents a thrown trident.
|
|
*/
|
|
-public interface Trident extends AbstractArrow, ThrowableProjectile { }
|
|
+// Paper start
|
|
+public interface Trident extends AbstractArrow, ThrowableProjectile {
|
|
+
|
|
+ /**
|
|
+ * Returns whether the trident has an enchanted glow.
|
|
+ * This can be separate from the underlying item having any enchantments.
|
|
+ *
|
|
+ * @return whether the trident has an enchanted glow
|
|
+ */
|
|
+ boolean hasGlint();
|
|
+
|
|
+ /**
|
|
+ * Sets whether the trident has an enchanted glow.
|
|
+ * This is separate from the underlying item having any enchantments.
|
|
+ *
|
|
+ * @param glint whether the trident should have an enchanted glow
|
|
+ */
|
|
+ void setGlint(boolean glint);
|
|
+
|
|
+ /**
|
|
+ * Returns the loyalty level of the trident.
|
|
+ * This can be separate from the underlying item's enchantments.
|
|
+ *
|
|
+ * @return loyalty level of the trident
|
|
+ */
|
|
+ int getLoyaltyLevel();
|
|
+
|
|
+ /**
|
|
+ * Sets the loyalty level of the trident.
|
|
+ * This is separate from the underlying item's enchantments.
|
|
+ *
|
|
+ * @param loyaltyLevel loyalty level
|
|
+ * @throws IllegalArgumentException if the loyalty level is lower than 0 or greater than 127
|
|
+ */
|
|
+ void setLoyaltyLevel(int loyaltyLevel);
|
|
+}
|
|
+// Paper end
|
|
diff --git a/src/main/java/org/bukkit/entity/Vex.java b/src/main/java/org/bukkit/entity/Vex.java
|
|
index 627e3c1a96ae3331f5aa2dd7803dd2a31c7204be..3c447d2300c866ae605eeca97bd869f400d6be6f 100644
|
|
--- a/src/main/java/org/bukkit/entity/Vex.java
|
|
+++ b/src/main/java/org/bukkit/entity/Vex.java
|
|
@@ -57,21 +57,30 @@ public interface Vex extends Monster {
|
|
* Gets the remaining lifespan of this entity.
|
|
*
|
|
* @return life in ticks
|
|
+ * @deprecated This API duplicates existing API which uses the more
|
|
+ * preferable name due to mirroring internals better
|
|
*/
|
|
+ @Deprecated
|
|
int getLifeTicks();
|
|
|
|
/**
|
|
* Sets the remaining lifespan of this entity.
|
|
*
|
|
* @param lifeTicks life in ticks, or negative for unlimited lifepan
|
|
+ * @deprecated This API duplicates existing API which uses the more
|
|
+ * preferable name due to mirroring internals better
|
|
*/
|
|
+ @Deprecated
|
|
void setLifeTicks(int lifeTicks);
|
|
|
|
/**
|
|
* Gets if the entity has a limited life.
|
|
*
|
|
* @return true if the entity has limited life
|
|
+ * @deprecated This API duplicates existing API which uses the more
|
|
+ * preferable name due to mirroring internals better
|
|
*/
|
|
+ @Deprecated
|
|
boolean hasLimitedLife();
|
|
// Paper start
|
|
|
|
@@ -89,5 +98,37 @@ public interface Vex extends Monster {
|
|
* @param summoner New summoner
|
|
*/
|
|
void setSummoner(@Nullable Mob summoner);
|
|
+
|
|
+ /**
|
|
+ * Gets if this vex should start to take damage
|
|
+ * once {@link Vex#getLimitedLifetimeTicks()} is less than or equal to 0.
|
|
+ *
|
|
+ * @return will take damage
|
|
+ */
|
|
+ boolean hasLimitedLifetime();
|
|
+
|
|
+ /**
|
|
+ * Sets if this vex should start to take damage
|
|
+ * once {@link Vex#getLimitedLifetimeTicks()} is less than or equal to 0.
|
|
+ *
|
|
+ * @param hasLimitedLifetime should take damage
|
|
+ */
|
|
+ void setLimitedLifetime(boolean hasLimitedLifetime);
|
|
+
|
|
+ /**
|
|
+ * Gets the number of ticks remaining until the vex will start
|
|
+ * to take damage.
|
|
+ *
|
|
+ * @return ticks until the vex will start to take damage
|
|
+ */
|
|
+ int getLimitedLifetimeTicks();
|
|
+
|
|
+ /**
|
|
+ * Sets the number of ticks remaining until the vex takes damage.
|
|
+ * This number is ticked down only if {@link Vex#hasLimitedLifetime()} is true.
|
|
+ *
|
|
+ * @param ticks ticks remaining
|
|
+ */
|
|
+ void setLimitedLifetimeTicks(int ticks);
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
|
|
index b86f0196e6eb8070830f63a94f732522c2a6c2f1..a1b42ae35dda2da90ba00a2d6666514f7c5b11dd 100644
|
|
--- a/src/main/java/org/bukkit/entity/Wither.java
|
|
+++ b/src/main/java/org/bukkit/entity/Wither.java
|
|
@@ -48,4 +48,35 @@ public interface Wither extends Monster, Boss, com.destroystokyo.paper.entity.Ra
|
|
LEFT,
|
|
RIGHT
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * @return whether the wither is charged
|
|
+ */
|
|
+ boolean isCharged();
|
|
+
|
|
+ /**
|
|
+ * @return ticks the wither is invulnerable for
|
|
+ */
|
|
+ int getInvulnerableTicks();
|
|
+
|
|
+ /**
|
|
+ * Sets for how long in the future, the wither should be invulnerable.
|
|
+ *
|
|
+ * @param ticks ticks the wither is invulnerable for
|
|
+ */
|
|
+ void setInvulnerableTicks(int ticks);
|
|
+
|
|
+ /**
|
|
+ * @return whether the wither can travel through portals
|
|
+ */
|
|
+ boolean canTravelThroughPortals();
|
|
+
|
|
+ /**
|
|
+ * Sets whether the wither can travel through portals.
|
|
+ *
|
|
+ * @param value whether the wither can travel through portals
|
|
+ */
|
|
+ void setCanTravelThroughPortals(boolean value);
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Wolf.java b/src/main/java/org/bukkit/entity/Wolf.java
|
|
index 0e5decadf31140d6cb121c298f935ccc12c7a7e7..490395f38c4d9977d30a6f48585a4ea0e7faff0f 100644
|
|
--- a/src/main/java/org/bukkit/entity/Wolf.java
|
|
+++ b/src/main/java/org/bukkit/entity/Wolf.java
|
|
@@ -39,4 +39,22 @@ public interface Wolf extends Tameable, Sittable {
|
|
* @param color the color to apply
|
|
*/
|
|
public void setCollarColor(@NotNull DyeColor color);
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Sets if the wolf is interested.
|
|
+ * <p>
|
|
+ * This causes the wolf to tilt its head to the side.
|
|
+ *
|
|
+ * @param interested is interested
|
|
+ */
|
|
+ void setInterested(boolean interested);
|
|
+
|
|
+ /**
|
|
+ * Gets if the wolf is interested.
|
|
+ *
|
|
+ * @return is interested
|
|
+ */
|
|
+ boolean isInterested();
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/ZombieVillager.java b/src/main/java/org/bukkit/entity/ZombieVillager.java
|
|
index 7cc1d9a966454af70b7c25735fe474fe3eb97eb4..ad2eaee347cd2864aef30d2af48c1be6dc115c22 100644
|
|
--- a/src/main/java/org/bukkit/entity/ZombieVillager.java
|
|
+++ b/src/main/java/org/bukkit/entity/ZombieVillager.java
|
|
@@ -90,4 +90,22 @@ public interface ZombieVillager extends Zombie {
|
|
* @param conversionPlayer the player
|
|
*/
|
|
void setConversionPlayer(@Nullable OfflinePlayer conversionPlayer);
|
|
+
|
|
+ // Paper start - missing entity behaviour api - converting without entity event
|
|
+ /**
|
|
+ * Sets the amount of ticks until this entity will be converted to a
|
|
+ * Villager as a result of being cured.
|
|
+ * <p>
|
|
+ * When this reaches 0, the entity will be converted. A value of less than 0
|
|
+ * will stop the current conversion process without converting the current
|
|
+ * entity.
|
|
+ *
|
|
+ * @param time new conversion time
|
|
+ * @param broadcastEntityEvent whether this conversion time mutation should broadcast the
|
|
+ * org.bukkit.{@link org.bukkit.EntityEffect#ZOMBIE_TRANSFORM} entity event to the
|
|
+ * world. If false, no entity event is published, preventing for example the
|
|
+ * org.bukkit.{@link org.bukkit.Sound#ENTITY_ZOMBIE_VILLAGER_CURE} from playing.
|
|
+ */
|
|
+ void setConversionTime(int time, boolean broadcastEntityEvent);
|
|
+ // Paper stop - missing entity behaviour api - converting without entity event
|
|
}
|