Vex#getOwner API

Get's the NPC that summoned this Vex
This commit is contained in:
Aikar 2018-07-04 15:32:30 -04:00
parent 467d4d463e
commit 3d1f804a22
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
2 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,29 @@
From 02a5c50ac1f88560d7555bc299b4d785f9aa63a4 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 15:29:21 -0400
Subject: [PATCH] Vex#getOwner API
Get's the NPC that summoned this Vex
diff --git a/src/main/java/org/bukkit/entity/Vex.java b/src/main/java/org/bukkit/entity/Vex.java
index a2f2fcae..540135c3 100644
--- a/src/main/java/org/bukkit/entity/Vex.java
+++ b/src/main/java/org/bukkit/entity/Vex.java
@@ -1,6 +1,13 @@
package org.bukkit.entity;
+import com.destroystokyo.paper.entity.SentientNPC;
+
/**
* Represents a Vex.
*/
-public interface Vex extends Monster { }
+public interface Vex extends Monster {
+ /**
+ * @return What Entity (most likely an Evoker, but not guaranteed) summoned this Vex
+ */
+ SentientNPC getOwner(); // Paper
+}
--
2.18.0

View File

@ -0,0 +1,48 @@
From 5a08e37a76a354a044fa503b8f4f4c0d4f9be59a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 15:30:22 -0400
Subject: [PATCH] Vex#getOwner API
Get's the NPC that summoned this Vex
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
index a0abaf431..673c3ff3c 100644
--- a/src/main/java/net/minecraft/server/EntityVex.java
+++ b/src/main/java/net/minecraft/server/EntityVex.java
@@ -90,6 +90,7 @@ public class EntityVex extends EntityMonster {
}
+ public EntityInsentient getOwner() { return p(); } // Paper - OBFHELPER
public EntityInsentient p() {
return this.b;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
index 787a41e01..5d5658136 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java
@@ -1,5 +1,7 @@
package org.bukkit.craftbukkit.entity;
+import com.destroystokyo.paper.entity.SentientNPC;
+import net.minecraft.server.EntityInsentient;
import net.minecraft.server.EntityVex;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
@@ -16,6 +18,13 @@ public class CraftVex extends CraftMonster implements Vex {
return (EntityVex) super.getHandle();
}
+ // Paper start
+ public SentientNPC getOwner() {
+ EntityInsentient owner = getHandle().getOwner();
+ return owner != null ? (SentientNPC) owner.getBukkitEntity() : null;
+ }
+ // Paper end
+
@Override
public String toString() {
return "CraftVex";
--
2.18.0