From 8b230c85b06711d47fe61669c5b1d8e0b77f28ce Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Thu, 29 Dec 2022 05:25:52 +0100 Subject: [PATCH] camel pose time --- nmsutils-core/pom.xml | 2 +- .../de/cubeside/nmsutils/EntityUtils.java | 27 +++++++++++++++++++ .../nmsutils/v1_19_R2/EntityUtilsImpl.java | 14 ++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/nmsutils-core/pom.xml b/nmsutils-core/pom.xml index c2aae54..0f41571 100644 --- a/nmsutils-core/pom.xml +++ b/nmsutils-core/pom.xml @@ -11,7 +11,7 @@ org.spigotmc spigot-api - 1.16.3-R0.1-SNAPSHOT + 1.19.3-R0.1-SNAPSHOT provided diff --git a/nmsutils-core/src/main/java/de/cubeside/nmsutils/EntityUtils.java b/nmsutils-core/src/main/java/de/cubeside/nmsutils/EntityUtils.java index 98d76d4..28b7792 100644 --- a/nmsutils-core/src/main/java/de/cubeside/nmsutils/EntityUtils.java +++ b/nmsutils-core/src/main/java/de/cubeside/nmsutils/EntityUtils.java @@ -1,9 +1,11 @@ package de.cubeside.nmsutils; import java.util.function.Function; +import java.util.logging.Level; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.World; +import org.bukkit.entity.Camel; import org.bukkit.entity.Creature; import org.bukkit.entity.Entity; import org.bukkit.entity.Mob; @@ -174,4 +176,29 @@ default void loadChunkEntities(Chunk c) { * the new celebrating status */ void setCelebrating(Raider entity, boolean celebrating); + + /** + * Set how many ticks ago the last pose change of the camel was + * + * @param entity + * the camel + * @param tick + * number of ticks since the last pose change + */ + default void setCamelLastPoseChange(Camel entity, long tick) { + getNMSUtils().getPlugin().getLogger().log(Level.SEVERE, "Call to unimplemented method", new RuntimeException()); + } + + /** + * Get how many ticks ago the last pose change of a camel happened + * + * @param entity + * the camel + * @return + * number of ticks since the last pose change + */ + default long getCamelLastPoseChange(Camel entity) { + getNMSUtils().getPlugin().getLogger().log(Level.SEVERE, "Call to unimplemented method", new RuntimeException()); + return 0L; + } } diff --git a/nmsutils-v1_19_R2/src/main/java/de/cubeside/nmsutils/v1_19_R2/EntityUtilsImpl.java b/nmsutils-v1_19_R2/src/main/java/de/cubeside/nmsutils/v1_19_R2/EntityUtilsImpl.java index 65300b5..1754007 100644 --- a/nmsutils-v1_19_R2/src/main/java/de/cubeside/nmsutils/v1_19_R2/EntityUtilsImpl.java +++ b/nmsutils-v1_19_R2/src/main/java/de/cubeside/nmsutils/v1_19_R2/EntityUtilsImpl.java @@ -16,6 +16,7 @@ import net.minecraft.world.entity.PathfinderMob; import net.minecraft.world.entity.ai.goal.FloatGoal; import net.minecraft.world.entity.animal.Wolf; +import net.minecraft.world.entity.animal.camel.Camel; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.phys.Vec3; import org.bukkit.Bukkit; @@ -24,6 +25,7 @@ import org.bukkit.World; import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBat; +import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCamel; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCreature; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMob; @@ -341,4 +343,16 @@ public void setCelebrating(org.bukkit.entity.Raider entity, boolean celebrating) net.minecraft.world.entity.raid.Raider nmsEntity = ((CraftRaider) entity).getHandle(); nmsEntity.setCelebrating(celebrating); } + + @Override + public void setCamelLastPoseChange(org.bukkit.entity.Camel entity, long tick) { + Camel nmsEntity = ((CraftCamel) entity).getHandle(); + nmsEntity.resetLastPoseChangeTick(nmsEntity.getLevel().getGameTime() - tick); + } + + @Override + public long getCamelLastPoseChange(org.bukkit.entity.Camel entity) { + Camel nmsEntity = ((CraftCamel) entity).getHandle(); + return nmsEntity.getPoseTime(); + } }