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
|
|
|
|
|
2022-03-11 15:24:45 +01:00
|
|
|
Co-authored-by: Nassim Jahnke <jahnke.nassim@gmail.com>
|
|
|
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
2021-06-22 09:44:02 +02:00
|
|
|
|
2022-03-19 15:30:16 +01:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
2022-06-08 11:31:06 +02:00
|
|
|
index d13f3460644f635ded96bf92ddf9ecf8984c8e47..bd048cc30046f19f9eee89c6ba45d0816a160e67 100644
|
2022-03-19 15:30:16 +01:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
2022-06-08 11:31:06 +02:00
|
|
|
@@ -540,11 +540,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
2022-03-19 15:30:16 +01:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
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
|
2022-06-08 11:31:06 +02:00
|
|
|
index 04a119e6641898454253e2478bc1b4dff181b5ee..a8da601b8342aa6e4902b452eb588c76c98a7adf 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
|
2022-06-08 11:31:06 +02:00
|
|
|
@@ -663,6 +663,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;
|
2022-06-08 11:31:06 +02:00
|
|
|
@@ -675,6 +683,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);
|
2022-03-11 15:24:45 +01:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
|
|
|
index 32b302aad0319ce3ee412912425c1c8db9979f8a..92734f767fde60351a179a88350a97b861be0e88 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
|
|
|
@@ -84,6 +84,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
|
|
|
return entityliving.getMobType() != MobType.UNDEAD && entityliving.attackable();
|
|
|
|
};
|
|
|
|
private static final TargetingConditions TARGETING_CONDITIONS = TargetingConditions.forCombat().range(20.0D).selector(WitherBoss.LIVING_ENTITY_SELECTOR);
|
|
|
|
+ // Paper start
|
|
|
|
+ private boolean canPortal = false;
|
|
|
|
+
|
|
|
|
+ public void setCanTravelThroughPortals(boolean canPortal) { this.canPortal = canPortal; }
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
public WitherBoss(EntityType<? extends WitherBoss> type, Level world) {
|
|
|
|
super(type, world);
|
|
|
|
@@ -602,7 +607,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean canChangeDimensions() {
|
|
|
|
- return false;
|
|
|
|
+ return super.canChangeDimensions() && canPortal; // Paper
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
2022-06-08 11:31:06 +02:00
|
|
|
index e0e32528ed9f2f494b5ee2079c3167021f2e84c4..f22e615dba31619c97bf58930da060476a52facf 100644
|
2022-03-11 15:24:45 +01:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
2022-06-08 11:31:06 +02:00
|
|
|
@@ -433,6 +433,16 @@ public class EnderMan extends Monster implements NeutralMob {
|
2022-03-11 15:24:45 +01:00
|
|
|
this.entityData.set(EnderMan.DATA_STARED_AT, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
+ public void setCreepy(boolean creepy) {
|
|
|
|
+ this.entityData.set(EnderMan.DATA_CREEPY, creepy);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setHasBeenStaredAt(boolean hasBeenStaredAt) {
|
|
|
|
+ this.entityData.set(EnderMan.DATA_STARED_AT, hasBeenStaredAt);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
@Override
|
|
|
|
public boolean requiresCustomPersistence() {
|
|
|
|
return super.requiresCustomPersistence() || this.getCarriedBlock() != null;
|
2022-03-06 22:20:38 +01:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
2022-06-08 11:31:06 +02:00
|
|
|
index 1f3506d38894fea224f3b2f125b45c3b68d705c7..bb2cb17e4e5ce142eeec18951c8948e3d6b3209c 100644
|
2022-03-06 22:20:38 +01:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
|
|
|
@@ -66,6 +66,12 @@ public class Ghast extends FlyingMob implements Enemy {
|
|
|
|
return this.explosionPower;
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
+ public void setExplosionPower(int explosionPower) {
|
|
|
|
+ this.explosionPower = explosionPower;
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
@Override
|
|
|
|
protected boolean shouldDespawnInPeaceful() {
|
|
|
|
return true;
|
2022-03-11 15:24:45 +01:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java
|
|
|
|
index a367f50b0e3fe9e7a1b87892a8c98e88bd678f6f..1b31b32d42eeb54680b902cd7e82d10ba7daa5d0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java
|
|
|
|
@@ -105,6 +105,20 @@ public class ThrownTrident extends AbstractArrow {
|
|
|
|
return (Boolean) this.entityData.get(ThrownTrident.ID_FOIL);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
+ public void setFoil(boolean foil) {
|
|
|
|
+ this.entityData.set(ThrownTrident.ID_FOIL, foil);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public int getLoyalty() {
|
|
|
|
+ return this.entityData.get(ThrownTrident.ID_LOYALTY);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setLoyalty(byte loyalty) {
|
|
|
|
+ this.entityData.set(ThrownTrident.ID_LOYALTY, loyalty);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
@Nullable
|
|
|
|
@Override
|
|
|
|
protected EntityHitResult findHitEntity(Vec3 currentPosition, Vec3 nextPosition) {
|
2021-10-21 03:09:42 +02:00
|
|
|
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
|
|
|
|
}
|
2022-03-19 15:30:16 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java
|
|
|
|
index 8ada3dfbe89c8b55d85c31c71e365af0cbf66d19..b5d3a00a48d3b7618f974bb0f6909aa7c304b012 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java
|
|
|
|
@@ -91,4 +91,22 @@ 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
|
|
|
|
}
|
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
|
2022-06-08 11:31:06 +02:00
|
|
|
index 37352ca3ff267d02a26ed182ce3df3ef775fa9bc..6a504f61c55d3983871f8d1c5c002c7a7b9c50ff 100644
|
2021-08-27 20:16:41 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java
|
2022-06-08 11:31:06 +02:00
|
|
|
@@ -51,4 +51,25 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
|
2021-08-27 20:16:41 +02:00
|
|
|
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
|
|
|
|
}
|
2022-03-11 15:24:45 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
|
|
|
|
index ae669a970aa1f17ed786640de8a481364543c58e..acdc4e578d70f8121c8c6be7682ba1ecef7687cf 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
|
|
|
|
@@ -39,6 +39,28 @@ public class CraftEnderman extends CraftMonster implements Enderman {
|
|
|
|
this.getHandle().setCarriedBlock(blockData == null ? null : ((CraftBlockData) blockData).getState());
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isScreaming() {
|
|
|
|
+ return this.getHandle().isCreepy();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setScreaming(boolean screaming) {
|
|
|
|
+ this.getHandle().setCreepy(screaming);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean hasBeenStaredAt() {
|
|
|
|
+ return this.getHandle().hasBeenStaredAt();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setHasBeenStaredAt(boolean hasBeenStaredAt) {
|
|
|
|
+ this.getHandle().setHasBeenStaredAt(hasBeenStaredAt);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
@Override
|
|
|
|
public EnderMan getHandle() {
|
|
|
|
return (EnderMan) entity;
|
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-03-06 22:20:38 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java
|
|
|
|
index f0f0392a51db75e88df0e68c0db98d6dc1968c20..d0f0f380e9b185668580f31b061bdc08f0573a40 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java
|
|
|
|
@@ -24,4 +24,27 @@ public class CraftGhast extends CraftFlying implements Ghast {
|
|
|
|
public EntityType getType() {
|
|
|
|
return EntityType.GHAST;
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Paper start
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isCharging() {
|
|
|
|
+ return this.getHandle().isCharging();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setCharging(boolean charging) {
|
|
|
|
+ this.getHandle().setCharging(charging);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int getExplosionPower() {
|
|
|
|
+ return this.getHandle().getExplosionPower();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setExplosionPower(int explosionPower) {
|
|
|
|
+ com.google.common.base.Preconditions.checkArgument(explosionPower >= 0 && explosionPower <= 127, "The explosion power has to be between 0 and 127");
|
|
|
|
+ this.getHandle().setExplosionPower(explosionPower);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
}
|
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");
|
2022-03-19 15:30:16 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java
|
|
|
|
index aeda5fc001fe4ce55ee467240b275b6050a29f98..48d0a4e42e1b90d1323784d1284acabfe9497dd6 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java
|
|
|
|
@@ -90,4 +90,15 @@ 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
|
|
|
|
}
|
2022-03-11 15:24:45 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java
|
|
|
|
index da1488c9cae53bd554727c850da2192adda2478a..30a0eac179c86b0fe94a2a40b5bfcd3eee01e53b 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java
|
|
|
|
@@ -23,4 +23,16 @@ public class CraftPolarBear extends CraftAnimals implements PolarBear {
|
|
|
|
public EntityType getType() {
|
|
|
|
return EntityType.POLAR_BEAR;
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Paper start
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isStanding() {
|
|
|
|
+ return this.getHandle().isStanding();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setStanding(boolean standing) {
|
|
|
|
+ this.getHandle().setStanding(standing);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftRaider.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftRaider.java
|
|
|
|
index 27a8a2b1e03254b1fc6fe8edc3ff77841a42f5f6..8d77b870fd9de69b57ae1affdfbd2a02f62e75c7 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftRaider.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftRaider.java
|
|
|
|
@@ -58,4 +58,16 @@ public abstract class CraftRaider extends CraftMonster implements Raider {
|
|
|
|
public void setCanJoinRaid(boolean join) {
|
|
|
|
this.getHandle().setCanJoinRaid(join);
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Paper start
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isCelebrating() {
|
|
|
|
+ return this.getHandle().isCelebrating();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setCelebrating(boolean celebrating) {
|
|
|
|
+ this.getHandle().setCelebrating(celebrating);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java
|
|
|
|
index bf5b2fd6676c4430578db4cc6c603c501cc5e349..832981b07ef5c633ef00a382f56798ee87eec0df 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java
|
|
|
|
@@ -37,4 +37,27 @@ public class CraftTrident extends CraftArrow implements Trident {
|
|
|
|
public EntityType getType() {
|
|
|
|
return EntityType.TRIDENT;
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Paper start
|
|
|
|
+ @Override
|
|
|
|
+ public boolean hasGlint() {
|
|
|
|
+ return this.getHandle().isFoil();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setGlint(boolean glint) {
|
|
|
|
+ this.getHandle().setFoil(glint);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int getLoyaltyLevel() {
|
|
|
|
+ return this.getHandle().getLoyalty();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setLoyaltyLevel(int loyaltyLevel) {
|
|
|
|
+ com.google.common.base.Preconditions.checkArgument(loyaltyLevel >= 0 && loyaltyLevel <= 127, "The loyalty level has to be between 0 and 127");
|
|
|
|
+ this.getHandle().setLoyalty((byte) loyaltyLevel);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
}
|
2022-03-19 15:30:16 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
|
2022-04-30 18:27:41 +02:00
|
|
|
index 2ba16e33dd21c3c72cb12244aa78c59bf53e76d1..634a5099fb6faea03615783f57e643ad0083fa30 100644
|
2022-03-19 15:30:16 +01:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
|
2022-04-30 18:27:41 +02:00
|
|
|
@@ -29,6 +29,26 @@ public class CraftVex extends CraftMonster implements Vex {
|
2022-03-19 15:30:16 +01:00
|
|
|
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
|
2022-03-11 15:24:45 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
2022-05-17 11:51:46 +02:00
|
|
|
index e92355fa2042c4cf15354a11b7058cacbe996f0d..4cf3a374c9ee7c7bcf82e778aa094eb4f8463595 100644
|
2022-03-11 15:24:45 +01:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
2022-05-17 11:51:46 +02:00
|
|
|
@@ -61,4 +61,31 @@ public class CraftWither extends CraftMonster implements Wither, com.destroystok
|
|
|
|
Entity target = this.getHandle().getLevel().getEntity(entityId);
|
|
|
|
return (target != null) ? (LivingEntity) target.getBukkitEntity() : null;
|
2022-03-11 15:24:45 +01:00
|
|
|
}
|
|
|
|
+
|
|
|
|
+ // Paper start
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isCharged() {
|
|
|
|
+ return getHandle().isPowered();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int getInvulnerableTicks() {
|
|
|
|
+ return getHandle().getInvulnerableTicks();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setInvulnerableTicks(int ticks) {
|
|
|
|
+ getHandle().setInvulnerableTicks(ticks);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean canTravelThroughPortals() {
|
|
|
|
+ return getHandle().canChangeDimensions();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setCanTravelThroughPortals(boolean value) {
|
|
|
|
+ getHandle().setCanTravelThroughPortals(value);
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
}
|
2022-03-19 15:30:16 +01:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
|
|
|
index f856b42201c17f8da21251e54fcf052336916e70..a3bec00368aef0f8cc6aa21cce1389938d15f91b 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
|
|
|
@@ -43,4 +43,15 @@ 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
|
|
|
|
}
|