98555e9b90
How long an entity has raised hands to charge an attack or use an item Also aliased isHandsRaised for isChargingAttack in RangedEntity
143 lines
4.6 KiB
Diff
143 lines
4.6 KiB
Diff
From d2a1657e1c25dc241d143ee6486513c024a5695b Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Tue, 26 Jun 2018 21:34:40 -0400
|
|
Subject: [PATCH] RangedEntity API
|
|
|
|
Allows you to determine if an entity is capable of ranged attacks,
|
|
and to perform an attack.
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/entity/RangedEntity.java b/src/main/java/com/destroystokyo/paper/entity/RangedEntity.java
|
|
new file mode 100644
|
|
index 00000000..7b07f10c
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/entity/RangedEntity.java
|
|
@@ -0,0 +1,28 @@
|
|
+package com.destroystokyo.paper.entity;
|
|
+
|
|
+import org.bukkit.entity.LivingEntity;
|
|
+
|
|
+public interface RangedEntity extends SentientNPC {
|
|
+ /**
|
|
+ * Attack the specified entity using a ranged attack.
|
|
+ *
|
|
+ * @param charge How "charged" the attack is (how far back the bow was pulled for Bow attacks).
|
|
+ * This should be a value between 0 and 1, represented as targetDistance/maxDistance.
|
|
+ */
|
|
+ void rangedAttack(LivingEntity target, float charge);
|
|
+
|
|
+ /**
|
|
+ * Sets that the Entity is "charging" up an attack, by raising its hands
|
|
+ *
|
|
+ * @param raiseHands Whether the entities hands are raised to charge attack
|
|
+ */
|
|
+ void setChargingAttack(boolean raiseHands);
|
|
+
|
|
+ /**
|
|
+ * Alias to {@link LivingEntity#isHandRaised()}, if the entity is charging an attack
|
|
+ * @return If entities hands are raised
|
|
+ */
|
|
+ default boolean isChargingAttack() {
|
|
+ return isHandRaised();
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/entity/Illusioner.java b/src/main/java/org/bukkit/entity/Illusioner.java
|
|
index 7c92c431..14e6c5ee 100644
|
|
--- a/src/main/java/org/bukkit/entity/Illusioner.java
|
|
+++ b/src/main/java/org/bukkit/entity/Illusioner.java
|
|
@@ -1,6 +1,10 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Represents an Illusioner "Illager".
|
|
*/
|
|
-public interface Illusioner extends Spellcaster { }
|
|
+public interface Illusioner extends Spellcaster, RangedEntity { // Paper
|
|
+
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/entity/Llama.java b/src/main/java/org/bukkit/entity/Llama.java
|
|
index 9422d56c..92c30ed5 100644
|
|
--- a/src/main/java/org/bukkit/entity/Llama.java
|
|
+++ b/src/main/java/org/bukkit/entity/Llama.java
|
|
@@ -1,11 +1,12 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
import org.bukkit.inventory.LlamaInventory;
|
|
|
|
/**
|
|
* Represents a Llama.
|
|
*/
|
|
-public interface Llama extends ChestedHorse {
|
|
+public interface Llama extends ChestedHorse, RangedEntity { // Paper
|
|
|
|
/**
|
|
* Represents the base color that the llama has.
|
|
diff --git a/src/main/java/org/bukkit/entity/Skeleton.java b/src/main/java/org/bukkit/entity/Skeleton.java
|
|
index e33d00b3..40157bef 100644
|
|
--- a/src/main/java/org/bukkit/entity/Skeleton.java
|
|
+++ b/src/main/java/org/bukkit/entity/Skeleton.java
|
|
@@ -1,9 +1,11 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Represents a Skeleton.
|
|
*/
|
|
-public interface Skeleton extends Monster {
|
|
+public interface Skeleton extends Monster, RangedEntity { // Paper
|
|
|
|
/**
|
|
* Gets the current type of this skeleton.
|
|
diff --git a/src/main/java/org/bukkit/entity/Snowman.java b/src/main/java/org/bukkit/entity/Snowman.java
|
|
index 818efe2a..10f8f6d4 100644
|
|
--- a/src/main/java/org/bukkit/entity/Snowman.java
|
|
+++ b/src/main/java/org/bukkit/entity/Snowman.java
|
|
@@ -1,9 +1,11 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Represents a snowman entity
|
|
*/
|
|
-public interface Snowman extends Golem {
|
|
+public interface Snowman extends Golem, RangedEntity { // Paper
|
|
|
|
/**
|
|
* Gets whether this snowman is in "derp mode", meaning it is not wearing a
|
|
diff --git a/src/main/java/org/bukkit/entity/Witch.java b/src/main/java/org/bukkit/entity/Witch.java
|
|
index 9c5dc1f9..4b27f689 100644
|
|
--- a/src/main/java/org/bukkit/entity/Witch.java
|
|
+++ b/src/main/java/org/bukkit/entity/Witch.java
|
|
@@ -1,7 +1,9 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Represents a Witch
|
|
*/
|
|
-public interface Witch extends Monster {
|
|
+public interface Witch extends Monster, RangedEntity { // Paper
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
|
|
index 0922c5c6..c550ed06 100644
|
|
--- a/src/main/java/org/bukkit/entity/Wither.java
|
|
+++ b/src/main/java/org/bukkit/entity/Wither.java
|
|
@@ -1,7 +1,9 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Represents a Wither boss
|
|
*/
|
|
-public interface Wither extends Monster {
|
|
+public interface Wither extends Monster, RangedEntity { // Paper
|
|
}
|
|
--
|
|
2.18.0
|
|
|