RangedEntity API

Allows you to determine if an entity is capable of ranged attacks,
and to perform an attack.
This commit is contained in:
Aikar 2018-06-26 22:08:01 -04:00
parent ae79aa3436
commit 7abf2eeeac
No known key found for this signature in database
GPG key ID: 401ADFC9891FAAFE
4 changed files with 300 additions and 3 deletions

View file

@ -1,11 +1,11 @@
From 95f344d24cda39523f06b944ee96d0c7c5893d06 Mon Sep 17 00:00:00 2001
From ac9baf5c2739f255205d959cc519be2db01773da Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Mon, 31 Jul 2017 01:49:43 -0500
Subject: [PATCH] LivingEntity#setKiller
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index be51e389..4a51c519 100644
index 4fafedc9..42cf95e1 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -14,6 +14,8 @@ import org.bukkit.potion.PotionEffect;
@ -34,5 +34,5 @@ index be51e389..4a51c519 100644
* Adds the given {@link PotionEffect} to the living entity.
* <p>
--
2.15.1
2.18.0

View file

@ -0,0 +1,134 @@
From d22cc23fcedf807711836fcaedd9d7fd95f47f2d 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..5153efab
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/entity/RangedEntity.java
@@ -0,0 +1,19 @@
+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 arms
+ * @param charging Whether the entities arms are raised to charge attack
+ */
+ void setChargingAttack(boolean charging);
+}
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