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 3ed90751c5
commit cc84e0fab8
2 changed files with 73 additions and 0 deletions

View file

@ -0,0 +1,27 @@
From 0000000000000000000000000000000000000000 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
@@ -0,0 +0,0 @@
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
+}
--

View file

@ -0,0 +1,46 @@
From 0000000000000000000000000000000000000000 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
@@ -0,0 +0,0 @@ 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
@@ -0,0 +0,0 @@
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;
@@ -0,0 +0,0 @@ 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";
--