2021-06-22 09:44:02 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
|
|
|
Date: Mon, 21 Jun 2021 23:56:07 -0400
|
|
|
|
Subject: [PATCH] Missing Entity Behavior API
|
|
|
|
|
|
|
|
|
2021-10-21 03:09:42 +02:00
|
|
|
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
|
2021-11-25 00:26:29 +01:00
|
|
|
index cd278a859c87fc89c421378ffab1bd36a45bd65d..a726006888bbbdb290bcda3ac4fd45d68ba51b79 100644
|
2021-10-21 03:09:42 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
2021-11-25 00:26:29 +01:00
|
|
|
@@ -660,6 +660,14 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
2021-10-21 03:09:42 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper Start - Horse API
|
|
|
|
+ public void setMouthOpen(boolean open) {
|
|
|
|
+ this.setFlag(FLAG_OPEN_MOUTH, open);
|
|
|
|
+ }
|
|
|
|
+ public boolean isMouthOpen() {
|
|
|
|
+ return this.getFlag(FLAG_OPEN_MOUTH);
|
|
|
|
+ }
|
|
|
|
+ // Paper End - Horse API
|
|
|
|
private void openMouth() {
|
|
|
|
if (!this.level.isClientSide) {
|
|
|
|
this.mouthCounter = 1;
|
2021-11-25 00:26:29 +01:00
|
|
|
@@ -672,6 +680,11 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
2021-10-21 03:09:42 +02:00
|
|
|
this.setFlag(16, eatingGrass);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper Start - Horse API
|
|
|
|
+ public void setForceStanding(boolean standing) {
|
|
|
|
+ this.setFlag(FLAG_STANDING, standing);
|
|
|
|
+ }
|
|
|
|
+ // Paper End - Horse API
|
|
|
|
public void setStanding(boolean angry) {
|
|
|
|
if (angry) {
|
|
|
|
this.setEating(false);
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
|
2022-01-01 04:05:42 +01:00
|
|
|
index 254d4f2e45d7c8f572a4368eccd84560d4d0d836..299ab868252c8f326e3a56e878c9ee230c9635dc 100644
|
2021-10-21 03:09:42 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
|
2022-01-01 04:05:42 +01:00
|
|
|
@@ -115,4 +115,36 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
|
2021-10-21 03:09:42 +02:00
|
|
|
public AbstractHorseInventory getInventory() {
|
|
|
|
return new CraftSaddledInventory(getHandle().inventory);
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Paper start - Horse API
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isEatingGrass() {
|
|
|
|
+ return this.getHandle().isEating();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setEatingGrass(boolean eating) {
|
|
|
|
+ this.getHandle().setEating(eating);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isRearing() {
|
|
|
|
+ return this.getHandle().isStanding();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setRearing(boolean rearing) {
|
|
|
|
+ this.getHandle().setForceStanding(rearing);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isEating() {
|
|
|
|
+ return this.getHandle().isMouthOpen();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setEating(boolean eating) {
|
|
|
|
+ this.getHandle().setMouthOpen(eating);
|
|
|
|
+ }
|
|
|
|
+ // Paper end - Horse API
|
|
|
|
}
|
2021-08-27 20:16:41 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
|
|
|
index a4f909123de26d911aea7cd767d2315ed1f697c9..0eee53c068bca070a86645d0ba54fb1ad49a6a5b 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
|
|
|
@@ -49,4 +49,25 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
|
|
|
|
public void setCollarColor(DyeColor color) {
|
|
|
|
this.getHandle().setCollarColor(net.minecraft.world.item.DyeColor.byId(color.getWoolData()));
|
|
|
|
}
|
|
|
|
+ // Paper Start - More cat api
|
|
|
|
+ @Override
|
|
|
|
+ public void setLyingDown(boolean lyingDown) {
|
|
|
|
+ this.getHandle().setLying(lyingDown);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isLyingDown() {
|
|
|
|
+ return this.getHandle().isLying();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setHeadUp(boolean headUp) {
|
|
|
|
+ this.getHandle().setRelaxStateOne(headUp);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isHeadUp() {
|
|
|
|
+ return this.getHandle().isRelaxStateOne();
|
|
|
|
+ }
|
|
|
|
+ // Paper End - More cat api
|
|
|
|
}
|
2021-06-22 09:44:02 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
|
2021-08-27 20:16:41 +02:00
|
|
|
index b647a5b9fdc1da61c4035d6f2cef7814033dc608..9795341efa748c2d94567e882cd5f26adf0f1591 100644
|
2021-06-22 09:44:02 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
|
|
|
|
@@ -114,4 +114,45 @@ public class CraftFox extends CraftAnimals implements Fox {
|
|
|
|
|
|
|
|
this.getHandle().getEntityData().set(net.minecraft.world.entity.animal.Fox.DATA_TRUSTED_ID_1, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
|
|
|
|
}
|
|
|
|
+ // Paper start - Add more fox behavior API
|
|
|
|
+ @Override
|
|
|
|
+ public void setInterested(boolean interested) {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ this.getHandle().setIsInterested(interested);
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isInterested() {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ return this.getHandle().isInterested();
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setLeaping(boolean leaping) {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ this.getHandle().setIsPouncing(leaping);
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isLeaping() {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ return this.getHandle().isPouncing();
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setDefending(boolean defending) {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ this.getHandle().setDefending(defending);
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isDefending() {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ return this.getHandle().isDefending();
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setFaceplanted(boolean faceplanted) {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ this.getHandle().setFaceplanted(faceplanted);
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isFaceplanted() {
|
2021-08-27 20:16:41 +02:00
|
|
|
+ return this.getHandle().isFaceplanted();
|
2021-06-22 09:44:02 +02:00
|
|
|
+ }
|
|
|
|
+ // Paper end - Add more fox behavior API
|
|
|
|
}
|
2022-01-18 00:23:44 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java
|
2022-02-12 14:36:41 +01:00
|
|
|
index 2d2620dbb16aec850e8afda02174508a4be5a313..ba4e6deaaa725296be830324d2c6486844a4e886 100644
|
2022-01-18 00:23:44 +01:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java
|
|
|
|
@@ -46,6 +46,77 @@ public class CraftPanda extends CraftAnimals implements Panda {
|
|
|
|
public void setHiddenGene(Gene gene) {
|
|
|
|
this.getHandle().setHiddenGene(CraftPanda.toNms(gene));
|
|
|
|
}
|
|
|
|
+ // Paper start - Panda API
|
|
|
|
+ @Override
|
|
|
|
+ public void setSneezeTicks(int ticks) {
|
|
|
|
+ this.getHandle().setSneezeCounter(ticks);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int getSneezeTicks() {
|
|
|
|
+ return this.getHandle().getSneezeCounter();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setSneezing(boolean sneeze) {
|
|
|
|
+ this.getHandle().sneeze(sneeze);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isSneezing() {
|
|
|
|
+ return this.getHandle().isSneezing();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setEatingTicks(int ticks) {
|
|
|
|
+ this.getHandle().setEatCounter(ticks);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int getEatingTicks() {
|
|
|
|
+ return this.getHandle().getEatCounter();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setUnhappyTicks(int ticks) {
|
|
|
|
+ this.getHandle().setUnhappyCounter(ticks);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int getUnhappyTicks() {
|
|
|
|
+ return this.getHandle().getUnhappyCounter();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isRolling() {
|
|
|
|
+ return this.getHandle().isRolling();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setRolling(boolean rolling) {
|
|
|
|
+ this.getHandle().roll(rolling);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isOnBack() {
|
|
|
|
+ return this.getHandle().isOnBack();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setIsOnBack(boolean onBack) {
|
|
|
|
+ this.getHandle().setOnBack(onBack);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isSitting() {
|
|
|
|
+ return this.getHandle().isSitting();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
2022-02-12 14:36:41 +01:00
|
|
|
+ public void setSitting(boolean sitting) {
|
2022-01-18 00:23:44 +01:00
|
|
|
+ this.getHandle().sit(sitting);
|
|
|
|
+ }
|
|
|
|
+ // Paper end - Panda API
|
|
|
|
|
|
|
|
public static Gene fromNms(net.minecraft.world.entity.animal.Panda.Gene gene) {
|
|
|
|
Preconditions.checkArgument(gene != null, "Gene may not be null");
|