diff --git a/src/main/java/minevalley/core/api/utils/armorstand/EquipmentModifier.java b/src/main/java/minevalley/core/api/utils/armorstand/EquipmentModifier.java index 81c18da8..9f7463c9 100644 --- a/src/main/java/minevalley/core/api/utils/armorstand/EquipmentModifier.java +++ b/src/main/java/minevalley/core/api/utils/armorstand/EquipmentModifier.java @@ -6,25 +6,27 @@ public interface EquipmentModifier { ItemStack getLeftHand(); - void setLeftHand(ItemStack itemStack); + EquipmentModifier setLeftHand(ItemStack itemStack); ItemStack getRightHand(); - void setRightHand(ItemStack itemStack); + EquipmentModifier setRightHand(ItemStack itemStack); ItemStack getHelmet(); - void setHelmet(ItemStack helmet); + EquipmentModifier setHelmet(ItemStack helmet); ItemStack getChestplate(); - void setChestplate(ItemStack chestplate); + EquipmentModifier setChestplate(ItemStack chestplate); ItemStack getLeggings(); - void setLeggings(ItemStack leggings); + EquipmentModifier setLeggings(ItemStack leggings); ItemStack getBoots(); - void setBoots(ItemStack boots); + EquipmentModifier setBoots(ItemStack boots); + + void updateEquipment(); } diff --git a/src/main/java/minevalley/core/api/utils/armorstand/FakeArmorStand.java b/src/main/java/minevalley/core/api/utils/armorstand/FakeArmorStand.java index 8de927d8..b84eb351 100644 --- a/src/main/java/minevalley/core/api/utils/armorstand/FakeArmorStand.java +++ b/src/main/java/minevalley/core/api/utils/armorstand/FakeArmorStand.java @@ -5,7 +5,7 @@ import java.util.List; -public interface FakeArmorStand extends VisibilityModifier, PoseModifier, EquipmentModifier { +public interface FakeArmorStand extends EquipmentModifier, MetadataModifier, PoseModifier, VisibilityModifier { /** * get the custom id from the armorstand @@ -14,11 +14,6 @@ public interface FakeArmorStand extends VisibilityModifier, PoseModifier, Equipm */ int getId(); - /** - * Refreshed the Armorstand with its configuration - */ - void update(); - /** * Spawns the armorstand */ @@ -48,40 +43,6 @@ public interface FakeArmorStand extends VisibilityModifier, PoseModifier, Equipm */ void setLocation(Location location); - /** - * Get the pitch from the armorstand facing - * - * @return float - */ - float getPitch(); - - void setPitch(float pitch); - - /** - * Get the yaw from the armorstand facing - * - * @return float - */ - float getYaw(); - - void setYaw(float yaw); - - boolean hasBasePlate(); - - void setBasePlate(boolean basePlate); - - boolean isSmall(); - - void setSmall(boolean small); - - boolean hasArms(); - - void setArms(boolean arms); - - boolean isMarker(); - - void setMarker(boolean marker); - /** * get the current passenger list * @@ -102,4 +63,34 @@ public interface FakeArmorStand extends VisibilityModifier, PoseModifier, Equipm * @param entity the entity to be removed */ void removePassenger(Entity entity); + + void setOnFire(boolean onFire); + + boolean isOnFire(); + + void setVisible(boolean visible); + + boolean isVisible(); + + void setGlowing(boolean glowing); + + boolean isGlowing(); + + void setGravity(boolean gravity); + + boolean hasGravity(); + + void setCustomName(String customName); + + String getCustomName(); + + void setCustomNameVisible(boolean customNameVisible); + + boolean isCustomNameVisible(); + + void setSilent(boolean silent); + + boolean isSilent(); + + void updateModifier(); } diff --git a/src/main/java/minevalley/core/api/utils/armorstand/MetadataModifier.java b/src/main/java/minevalley/core/api/utils/armorstand/MetadataModifier.java new file mode 100644 index 00000000..75238dbf --- /dev/null +++ b/src/main/java/minevalley/core/api/utils/armorstand/MetadataModifier.java @@ -0,0 +1,22 @@ +package minevalley.core.api.utils.armorstand; + +public interface MetadataModifier { + + boolean hasBasePlate(); + + MetadataModifier setBasePlate(boolean basePlate); + + boolean isSmall(); + + MetadataModifier setSmall(boolean small); + + boolean hasArms(); + + MetadataModifier setArms(boolean arms); + + boolean isMarker(); + + MetadataModifier setMarker(boolean marker); + + void updateModifier(); +} diff --git a/src/main/java/minevalley/core/api/utils/armorstand/PoseModifier.java b/src/main/java/minevalley/core/api/utils/armorstand/PoseModifier.java index a6067338..18aaa292 100644 --- a/src/main/java/minevalley/core/api/utils/armorstand/PoseModifier.java +++ b/src/main/java/minevalley/core/api/utils/armorstand/PoseModifier.java @@ -4,13 +4,19 @@ public interface PoseModifier { - void setLeftArmPose(EulerAngle leftArmPose); + PoseModifier queueHeadPose(float yaw, float pitch); - void setRightArmPose(EulerAngle rightArmPose); + PoseModifier queueHeadPose(EulerAngle headPose); - void setLeftLegPose(EulerAngle leftLegPose); + PoseModifier queueLeftArmPose(EulerAngle leftArmPose); - void setRightLegPose(EulerAngle rightLegPose); + PoseModifier queueRightArmPose(EulerAngle rightArmPose); - void setBodyPose(EulerAngle bodyPose); + PoseModifier queueBodyPose(EulerAngle bodyPose); + + PoseModifier queueLeftLegPose(EulerAngle leftLegPose); + + PoseModifier queueRightLegPose(EulerAngle rightLegPose); + + void updatePose(); } \ No newline at end of file diff --git a/src/main/java/minevalley/core/api/utils/armorstand/VisibilityModifier.java b/src/main/java/minevalley/core/api/utils/armorstand/VisibilityModifier.java index 3b85779f..6c38e399 100644 --- a/src/main/java/minevalley/core/api/utils/armorstand/VisibilityModifier.java +++ b/src/main/java/minevalley/core/api/utils/armorstand/VisibilityModifier.java @@ -17,14 +17,14 @@ public interface VisibilityModifier { */ List getViewersList(); - void addToViewersList(OnlineUser... onlineUsers); + VisibilityModifier addToViewersList(OnlineUser... onlineUsers); - void removeFromViewersList(OnlineUser... onlineUsers); + VisibilityModifier removeFromViewersList(OnlineUser... onlineUsers); /** * Emptying this list results in everyone seeing the armorstand (If not part of hide list) */ - void emptyViewersList(); + VisibilityModifier emptyViewersList(); /** * The armorstand will explicitly hide from the players in this list, even if the viewers list contains them (or is empty)! @@ -33,10 +33,11 @@ public interface VisibilityModifier { */ List getHideList(); - void addToHideList(OnlineUser... onlineUsers); + VisibilityModifier addToHideList(OnlineUser... onlineUsers); - void removeFromHideList(OnlineUser... onlineUsers); + VisibilityModifier removeFromHideList(OnlineUser... onlineUsers); - void emptyHideList(); + VisibilityModifier emptyHideList(); + void updateVisibility(); }