From ffa19646616b22f3240712a0f7709b1f242c6a99 Mon Sep 17 00:00:00 2001 From: hyper <39167664+heypr@users.noreply.github.com> Date: Tue, 14 Nov 2023 15:44:47 -0500 Subject: [PATCH] ``egg_lay_time`` mech & tag bundle (#2562) * Adds egg lay time!!!!!!!!!!!!!! * Update PaperModule.java --- .../denizen/paper/PaperModule.java | 1 + .../paper/properties/EntityEggLayTime.java | 44 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 paper/src/main/java/com/denizenscript/denizen/paper/properties/EntityEggLayTime.java diff --git a/paper/src/main/java/com/denizenscript/denizen/paper/PaperModule.java b/paper/src/main/java/com/denizenscript/denizen/paper/PaperModule.java index b880aaea4c..0104fbeeb0 100644 --- a/paper/src/main/java/com/denizenscript/denizen/paper/PaperModule.java +++ b/paper/src/main/java/com/denizenscript/denizen/paper/PaperModule.java @@ -100,6 +100,7 @@ public static void init() { PropertyParser.registerProperty(EntityCarryingEgg.class, EntityTag.class); PropertyParser.registerProperty(EntityDrinkingPotion.class, EntityTag.class); if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19)) { + PropertyParser.registerProperty(EntityEggLayTime.class, EntityTag.class); PropertyParser.registerProperty(EntityFriction.class, EntityTag.class); } PropertyParser.registerProperty(EntityLeftHanded.class, EntityTag.class); diff --git a/paper/src/main/java/com/denizenscript/denizen/paper/properties/EntityEggLayTime.java b/paper/src/main/java/com/denizenscript/denizen/paper/properties/EntityEggLayTime.java new file mode 100644 index 0000000000..c9f655cb13 --- /dev/null +++ b/paper/src/main/java/com/denizenscript/denizen/paper/properties/EntityEggLayTime.java @@ -0,0 +1,44 @@ +package com.denizenscript.denizen.paper.properties; + +import com.denizenscript.denizen.objects.EntityTag; +import com.denizenscript.denizen.objects.properties.entity.EntityProperty; +import com.denizenscript.denizencore.objects.Mechanism; +import com.denizenscript.denizencore.objects.core.ElementTag; +import org.bukkit.entity.Chicken; + +public class EntityEggLayTime extends EntityProperty { + + // <--[property] + // @object EntityTag + // @name egg_lay_time + // @input ElementTag(Number) + // @plugin Paper + // @description + // If the entity is a chicken, controls the number of ticks until it lays an egg. + // --> + + public static boolean describes(EntityTag entity) { + return entity.getBukkitEntity() instanceof Chicken; + } + + @Override + public ElementTag getPropertyValue() { + return new ElementTag(as(Chicken.class).getEggLayTime()); + } + + @Override + public String getPropertyId() { + return "egg_lay_time"; + } + + @Override + public void setPropertyValue(ElementTag param, Mechanism mechanism) { + if (mechanism.requireInteger()) { + as(Chicken.class).setEggLayTime(param.asInt()); + } + } + + public static void register() { + autoRegister("egg_lay_time", EntityEggLayTime.class, ElementTag.class, false); + } +}