2018-06-27 04:08:01 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Aikar <aikar@aikar.co>
|
|
|
|
Date: Tue, 26 Jun 2018 22:00:49 -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/CraftRangedEntity.java b/src/main/java/com/destroystokyo/paper/entity/CraftRangedEntity.java
|
|
|
|
new file mode 100644
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
2018-06-27 04:08:01 +02:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/src/main/java/com/destroystokyo/paper/entity/CraftRangedEntity.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
+package com.destroystokyo.paper.entity;
|
|
|
|
+
|
|
|
|
+import net.minecraft.server.IRangedEntity;
|
|
|
|
+import org.bukkit.craftbukkit.entity.CraftLivingEntity;
|
|
|
|
+import org.bukkit.entity.LivingEntity;
|
|
|
|
+
|
|
|
|
+public interface CraftRangedEntity<T extends IRangedEntity> extends RangedEntity {
|
|
|
|
+ T getHandle();
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ default void rangedAttack(LivingEntity target, float charge) {
|
|
|
|
+ getHandle().rangedAttack(((CraftLivingEntity) target).getHandle(), charge);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
2018-06-29 06:55:29 +02:00
|
|
|
+ default void setChargingAttack(boolean raiseHands) {
|
|
|
|
+ getHandle().setChargingAttack(raiseHands);
|
2018-06-27 04:08:01 +02:00
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/IRangedEntity.java b/src/main/java/net/minecraft/server/IRangedEntity.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2018-06-27 04:08:01 +02:00
|
|
|
--- a/src/main/java/net/minecraft/server/IRangedEntity.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/IRangedEntity.java
|
2019-01-01 04:15:55 +01:00
|
|
|
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
2018-06-27 04:08:01 +02:00
|
|
|
|
|
|
|
public interface IRangedEntity {
|
|
|
|
|
2019-01-01 04:15:55 +01:00
|
|
|
- void a(EntityLiving entityliving, float f);
|
|
|
|
+ void a(EntityLiving entityliving, float f); default void rangedAttack(EntityLiving entityliving, float f) { a(entityliving, f); } // Paper - OBFHELPER
|
2019-04-30 03:20:24 +02:00
|
|
|
+
|
|
|
|
+ // - see EntitySkeletonAbstract melee goal
|
2020-06-26 14:04:38 +02:00
|
|
|
+ void setAggressive(boolean flag); default void setChargingAttack(boolean charging) { setAggressive(charging); }; // Paper
|
2018-06-27 04:08:01 +02:00
|
|
|
}
|
2020-04-10 03:30:38 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2020-04-10 03:30:38 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
|
|
|
|
+import com.destroystokyo.paper.entity.CraftRangedEntity;
|
|
|
|
import net.minecraft.server.EntityDrowned;
|
|
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
|
|
import org.bukkit.entity.Drowned;
|
|
|
|
import org.bukkit.entity.EntityType;
|
|
|
|
|
|
|
|
-public class CraftDrowned extends CraftZombie implements Drowned {
|
|
|
|
+public class CraftDrowned extends CraftZombie implements Drowned, CraftRangedEntity<EntityDrowned> { // Paper
|
|
|
|
|
|
|
|
public CraftDrowned(CraftServer server, EntityDrowned entity) {
|
|
|
|
super(server, entity);
|
2018-06-27 04:08:01 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2018-06-27 04:08:01 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
|
|
|
|
+import com.destroystokyo.paper.entity.CraftRangedEntity;
|
|
|
|
import net.minecraft.server.EntityIllagerIllusioner;
|
|
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
|
|
import org.bukkit.entity.EntityType;
|
|
|
|
import org.bukkit.entity.Illusioner;
|
|
|
|
|
|
|
|
-public class CraftIllusioner extends CraftSpellcaster implements Illusioner {
|
|
|
|
+public class CraftIllusioner extends CraftSpellcaster implements Illusioner, CraftRangedEntity<EntityIllagerIllusioner> { // Paper
|
|
|
|
|
|
|
|
public CraftIllusioner(CraftServer server, EntityIllagerIllusioner entity) {
|
|
|
|
super(server, entity);
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2018-06-27 04:08:01 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
|
|
|
|
+import com.destroystokyo.paper.entity.CraftRangedEntity;
|
|
|
|
import com.google.common.base.Preconditions;
|
|
|
|
import net.minecraft.server.EntityLlama;
|
|
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
|
|
@@ -0,0 +0,0 @@ import org.bukkit.entity.Horse;
|
|
|
|
import org.bukkit.entity.Llama;
|
|
|
|
import org.bukkit.inventory.LlamaInventory;
|
|
|
|
|
|
|
|
-public class CraftLlama extends CraftChestedHorse implements Llama {
|
|
|
|
+public class CraftLlama extends CraftChestedHorse implements Llama, CraftRangedEntity<EntityLlama> { // Paper
|
|
|
|
|
|
|
|
public CraftLlama(CraftServer server, EntityLlama entity) {
|
|
|
|
super(server, entity);
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2018-06-27 04:08:01 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
|
|
|
|
+import com.destroystokyo.paper.entity.CraftRangedEntity;
|
|
|
|
import net.minecraft.server.EntitySkeletonAbstract;
|
|
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
|
|
import org.bukkit.entity.EntityType;
|
|
|
|
import org.bukkit.entity.Skeleton;
|
|
|
|
|
|
|
|
-public class CraftSkeleton extends CraftMonster implements Skeleton {
|
|
|
|
+public class CraftSkeleton extends CraftMonster implements Skeleton, CraftRangedEntity<EntitySkeletonAbstract> { // Paper
|
|
|
|
|
|
|
|
public CraftSkeleton(CraftServer server, EntitySkeletonAbstract entity) {
|
|
|
|
super(server, entity);
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2018-06-27 04:08:01 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
|
|
|
|
+import com.destroystokyo.paper.entity.CraftRangedEntity;
|
|
|
|
import net.minecraft.server.EntitySnowman;
|
|
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
|
|
import org.bukkit.entity.EntityType;
|
|
|
|
import org.bukkit.entity.Snowman;
|
|
|
|
|
|
|
|
-public class CraftSnowman extends CraftGolem implements Snowman {
|
|
|
|
+public class CraftSnowman extends CraftGolem implements Snowman, CraftRangedEntity<EntitySnowman> { // Paper
|
|
|
|
public CraftSnowman(CraftServer server, EntitySnowman entity) {
|
|
|
|
super(server, entity);
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2018-06-27 04:08:01 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
|
2019-04-30 03:20:24 +02:00
|
|
|
+import com.destroystokyo.paper.entity.CraftRangedEntity; // Paper
|
2018-06-27 04:08:01 +02:00
|
|
|
import net.minecraft.server.EntityWitch;
|
|
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
|
|
import org.bukkit.entity.EntityType;
|
2019-04-30 03:20:24 +02:00
|
|
|
import org.bukkit.entity.Witch;
|
2018-06-27 04:08:01 +02:00
|
|
|
|
2019-04-30 03:20:24 +02:00
|
|
|
-public class CraftWitch extends CraftRaider implements Witch {
|
|
|
|
+public class CraftWitch extends CraftRaider implements Witch, CraftRangedEntity<EntityWitch> { // Paper
|
2018-06-27 04:08:01 +02:00
|
|
|
public CraftWitch(CraftServer server, EntityWitch entity) {
|
|
|
|
super(server, entity);
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
2020-05-06 11:48:49 +02:00
|
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
2018-06-27 04:08:01 +02:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
|
|
|
|
+import com.destroystokyo.paper.entity.CraftRangedEntity;
|
|
|
|
import net.minecraft.server.EntityWither;
|
2018-11-11 06:37:15 +01:00
|
|
|
import org.bukkit.boss.BossBar;
|
2018-06-27 04:08:01 +02:00
|
|
|
import org.bukkit.craftbukkit.CraftServer;
|
2018-11-11 06:37:15 +01:00
|
|
|
@@ -0,0 +0,0 @@ import org.bukkit.craftbukkit.boss.CraftBossBar;
|
2018-06-27 04:08:01 +02:00
|
|
|
import org.bukkit.entity.EntityType;
|
2018-11-11 06:37:15 +01:00
|
|
|
import org.bukkit.entity.Wither;
|
2018-06-27 04:08:01 +02:00
|
|
|
|
|
|
|
-public class CraftWither extends CraftMonster implements Wither {
|
|
|
|
+public class CraftWither extends CraftMonster implements Wither, CraftRangedEntity<EntityWither> { // Paper
|
2018-11-11 06:37:15 +01:00
|
|
|
|
|
|
|
private BossBar bossBar;
|
|
|
|
|