mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
d61d127882
This includes Strays and matches the mojang RangedAttackMob
183 lines
7.1 KiB
Diff
183 lines
7.1 KiB
Diff
From 0000000000000000000000000000000000000000 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/entity/RangedEntity.java
|
|
@@ -0,0 +0,0 @@
|
|
+package com.destroystokyo.paper.entity;
|
|
+
|
|
+import org.bukkit.entity.LivingEntity;
|
|
+import org.bukkit.entity.Mob;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+public interface RangedEntity extends Mob {
|
|
+ /**
|
|
+ * Attack the specified entity using a ranged attack.
|
|
+ *
|
|
+ * @param target the entity to target
|
|
+ * @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(@NotNull 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/AbstractSkeleton.java b/src/main/java/org/bukkit/entity/AbstractSkeleton.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/AbstractSkeleton.java
|
|
+++ b/src/main/java/org/bukkit/entity/AbstractSkeleton.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
* of this type, instanceOf checks against the specific subtypes listed prior
|
|
* are recommended.
|
|
*/
|
|
-public interface AbstractSkeleton extends Monster {
|
|
+public interface AbstractSkeleton extends Monster, com.destroystokyo.paper.entity.RangedEntity { // Paper
|
|
|
|
/**
|
|
* Gets the current type of this skeleton.
|
|
diff --git a/src/main/java/org/bukkit/entity/Drowned.java b/src/main/java/org/bukkit/entity/Drowned.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Drowned.java
|
|
+++ b/src/main/java/org/bukkit/entity/Drowned.java
|
|
@@ -0,0 +0,0 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Drowned zombie.
|
|
*/
|
|
-public interface Drowned extends Zombie { }
|
|
+public interface Drowned extends Zombie, RangedEntity { } // Paper
|
|
diff --git a/src/main/java/org/bukkit/entity/Illusioner.java b/src/main/java/org/bukkit/entity/Illusioner.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Illusioner.java
|
|
+++ b/src/main/java/org/bukkit/entity/Illusioner.java
|
|
@@ -0,0 +0,0 @@
|
|
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Llama.java
|
|
+++ b/src/main/java/org/bukkit/entity/Llama.java
|
|
@@ -0,0 +0,0 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
import org.bukkit.inventory.LlamaInventory;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
/**
|
|
* 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/Piglin.java b/src/main/java/org/bukkit/entity/Piglin.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Piglin.java
|
|
+++ b/src/main/java/org/bukkit/entity/Piglin.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
/**
|
|
* Represents a Piglin.
|
|
*/
|
|
-public interface Piglin extends PiglinAbstract, InventoryHolder {
|
|
+public interface Piglin extends PiglinAbstract, InventoryHolder, com.destroystokyo.paper.entity.RangedEntity { // Paper
|
|
|
|
/**
|
|
* Get whether the piglin is able to hunt hoglins.
|
|
diff --git a/src/main/java/org/bukkit/entity/Pillager.java b/src/main/java/org/bukkit/entity/Pillager.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Pillager.java
|
|
+++ b/src/main/java/org/bukkit/entity/Pillager.java
|
|
@@ -0,0 +0,0 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity; // Paper
|
|
+
|
|
import org.bukkit.inventory.InventoryHolder;
|
|
|
|
/**
|
|
* Illager entity.
|
|
*/
|
|
-public interface Pillager extends Illager, InventoryHolder { }
|
|
+public interface Pillager extends Illager, InventoryHolder, RangedEntity { } // Paper
|
|
diff --git a/src/main/java/org/bukkit/entity/Snowman.java b/src/main/java/org/bukkit/entity/Snowman.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Snowman.java
|
|
+++ b/src/main/java/org/bukkit/entity/Snowman.java
|
|
@@ -0,0 +0,0 @@
|
|
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Witch.java
|
|
+++ b/src/main/java/org/bukkit/entity/Witch.java
|
|
@@ -0,0 +0,0 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Represents a Witch
|
|
*/
|
|
-public interface Witch extends Raider {
|
|
+public interface Witch extends Raider, RangedEntity { // Paper
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Wither.java
|
|
+++ b/src/main/java/org/bukkit/entity/Wither.java
|
|
@@ -0,0 +0,0 @@
|
|
package org.bukkit.entity;
|
|
|
|
+import com.destroystokyo.paper.entity.RangedEntity;
|
|
+
|
|
/**
|
|
* Represents a Wither boss
|
|
*/
|
|
-public interface Wither extends Monster, Boss {
|
|
+public interface Wither extends Monster, Boss, RangedEntity { // Paper
|
|
}
|