mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-15 12:13:54 -07:00
Add more missing entity API (#7592)
This commit is contained in:
@@ -221,6 +221,11 @@ public net.minecraft.world.entity.animal.Fox isFaceplanted()Z
|
|||||||
public net.minecraft.world.entity.animal.Fox setFaceplanted(Z)V
|
public net.minecraft.world.entity.animal.Fox setFaceplanted(Z)V
|
||||||
public net.minecraft.world.entity.animal.Panda getEatCounter()I
|
public net.minecraft.world.entity.animal.Panda getEatCounter()I
|
||||||
public net.minecraft.world.entity.animal.Panda setEatCounter(I)V
|
public net.minecraft.world.entity.animal.Panda setEatCounter(I)V
|
||||||
|
public net.minecraft.world.entity.animal.Bee isRolling()Z
|
||||||
|
public net.minecraft.world.entity.animal.Bee setRolling(Z)V
|
||||||
|
public net.minecraft.world.entity.monster.piglin.Piglin isChargingCrossbow()Z
|
||||||
|
public net.minecraft.world.entity.monster.Vex hasLimitedLife
|
||||||
|
public net.minecraft.world.entity.monster.Vex limitedLifeTicks
|
||||||
|
|
||||||
# Cook speed multipler API
|
# Cook speed multipler API
|
||||||
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity recipeType
|
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity recipeType
|
||||||
|
@@ -69,6 +69,39 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ public void setEating(boolean eating);
|
+ public void setEating(boolean eating);
|
||||||
+ // Paper end - Horse API
|
+ // 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/entity/Bee.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/Bee.java
|
||||||
|
@@ -0,0 +0,0 @@ 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
|
diff --git a/src/main/java/org/bukkit/entity/Cat.java b/src/main/java/org/bukkit/entity/Cat.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Cat.java
|
--- a/src/main/java/org/bukkit/entity/Cat.java
|
||||||
@@ -400,6 +433,36 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ boolean isSitting();
|
+ boolean isSitting();
|
||||||
+ // Paper end - Panda API
|
+ // 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/entity/Piglin.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/Piglin.java
|
||||||
|
@@ -0,0 +0,0 @@ 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
|
diff --git a/src/main/java/org/bukkit/entity/PolarBear.java b/src/main/java/org/bukkit/entity/PolarBear.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/PolarBear.java
|
--- a/src/main/java/org/bukkit/entity/PolarBear.java
|
||||||
@@ -498,6 +561,48 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ void setLoyaltyLevel(int loyaltyLevel);
|
+ void setLoyaltyLevel(int loyaltyLevel);
|
||||||
+}
|
+}
|
||||||
+// Paper end
|
+// Paper end
|
||||||
|
diff --git a/src/main/java/org/bukkit/entity/Vex.java b/src/main/java/org/bukkit/entity/Vex.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/entity/Vex.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/Vex.java
|
||||||
|
@@ -0,0 +0,0 @@ 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
|
diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Wither.java
|
--- a/src/main/java/org/bukkit/entity/Wither.java
|
||||||
@@ -537,3 +642,30 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ void setCanTravelThroughPortals(boolean value);
|
+ void setCanTravelThroughPortals(boolean value);
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
}
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/entity/Wolf.java b/src/main/java/org/bukkit/entity/Wolf.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/entity/Wolf.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/Wolf.java
|
||||||
|
@@ -0,0 +0,0 @@ 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
|
||||||
|
}
|
||||||
|
@@ -6,6 +6,24 @@ Subject: [PATCH] Missing Entity Behavior API
|
|||||||
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
|
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
|
||||||
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||||
|
@@ -0,0 +0,0 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||||
|
this.setFlag(4, hasStung);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public net.kyori.adventure.util.TriState rollingOverride = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Rolling override
|
||||||
|
public boolean isRolling() {
|
||||||
|
return this.getFlag(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRolling(boolean nearTarget) {
|
||||||
|
+ nearTarget = rollingOverride.toBooleanOrElse(nearTarget); // Paper - Rolling override
|
||||||
|
this.setFlag(2, nearTarget);
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||||
@@ -166,6 +184,33 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ }
|
+ }
|
||||||
+ // Paper end - Horse API
|
+ // Paper end - Horse API
|
||||||
}
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java
|
||||||
|
@@ -0,0 +0,0 @@ public class CraftBee extends CraftAnimals implements Bee {
|
||||||
|
public void setCannotEnterHiveTicks(int ticks) {
|
||||||
|
this.getHandle().setStayOutOfHiveCountdown(ticks);
|
||||||
|
}
|
||||||
|
+ // Paper start
|
||||||
|
+ @Override
|
||||||
|
+ public void setRollingOverride(net.kyori.adventure.util.TriState rolling) {
|
||||||
|
+ this.getHandle().rollingOverride = rolling;
|
||||||
|
+
|
||||||
|
+ this.getHandle().setRolling(this.getHandle().isRolling()); // Refresh rolling state
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean isRolling() {
|
||||||
|
+ return this.getRollingOverride().toBooleanOrElse(this.getHandle().isRolling());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public net.kyori.adventure.util.TriState getRollingOverride() {
|
||||||
|
+ return this.getHandle().rollingOverride;
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
||||||
@@ -393,6 +438,26 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
|
|
||||||
public static Gene fromNms(net.minecraft.world.entity.animal.Panda.Gene gene) {
|
public static Gene fromNms(net.minecraft.world.entity.animal.Panda.Gene gene) {
|
||||||
Preconditions.checkArgument(gene != null, "Gene may not be null");
|
Preconditions.checkArgument(gene != null, "Gene may not be null");
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java
|
||||||
|
@@ -0,0 +0,0 @@ public class CraftPiglin extends CraftPiglinAbstract implements Piglin, com.dest
|
||||||
|
public String toString() {
|
||||||
|
return "CraftPiglin";
|
||||||
|
}
|
||||||
|
+ // Paper start
|
||||||
|
+ @Override
|
||||||
|
+ public void setChargingCrossbow(boolean chargingCrossbow) {
|
||||||
|
+ this.getHandle().setChargingCrossbow(chargingCrossbow);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean isChargingCrossbow() {
|
||||||
|
+ return this.getHandle().isChargingCrossbow();
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java
|
||||||
@@ -467,6 +532,37 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
}
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
|
||||||
|
@@ -0,0 +0,0 @@ public class CraftVex extends CraftMonster implements Vex {
|
||||||
|
public void setSummoner(org.bukkit.entity.Mob summoner) {
|
||||||
|
getHandle().setOwner(summoner == null ? null : ((CraftMob) summoner).getHandle());
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean hasLimitedLifetime() {
|
||||||
|
+ return this.getHandle().hasLimitedLife;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void setLimitedLifetime(boolean hasLimitedLifetime) {
|
||||||
|
+ this.getHandle().hasLimitedLife = hasLimitedLifetime;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public int getLimitedLifetimeTicks() {
|
||||||
|
+ return this.getHandle().limitedLifeTicks;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void setLimitedLifetimeTicks(int ticks) {
|
||||||
|
+ this.getHandle().limitedLifeTicks = ticks;
|
||||||
|
+ }
|
||||||
|
// Paper end
|
||||||
|
|
||||||
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
||||||
@@ -503,3 +599,23 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
}
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||||
|
@@ -0,0 +0,0 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf {
|
||||||
|
public void setCollarColor(DyeColor color) {
|
||||||
|
this.getHandle().setCollarColor(net.minecraft.world.item.DyeColor.byId(color.getWoolData()));
|
||||||
|
}
|
||||||
|
+ // Paper start
|
||||||
|
+ @Override
|
||||||
|
+ public void setInterested(boolean interested) {
|
||||||
|
+ this.getHandle().setIsInterested(interested);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean isInterested() {
|
||||||
|
+ return this.getHandle().isInterested();
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user