Implement ItemFactory#getMonsterEgg

This commit is contained in:
William Blake Galbreath
2019-07-05 16:42:34 -05:00
parent cd652bde92
commit aab22f8353
2 changed files with 81 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
From 6e35aa8c329b3e93f32e2974247e23e42bf2b082 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 16:37:04 -0500
Subject: [PATCH] Implement ItemFactory#getMonsterEgg
---
src/main/java/org/bukkit/inventory/ItemFactory.java | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
index 03ba2265..630c15d2 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
@@ -166,4 +166,15 @@ public interface ItemFactory {
@Nullable
String getI18NDisplayName(@Nullable ItemStack item);
// Paper end
+
+ // Purpur start
+ /**
+ * Get a monster egg ItemStack from an EntityType
+ *
+ * @param type EntityType
+ * @return ItemStack spawner egg
+ */
+ @Nullable
+ ItemStack getMonsterEgg(@Nullable org.bukkit.entity.EntityType type);
+ // Purpur end
}
--
2.20.1

View File

@@ -0,0 +1,49 @@
From 3da9a55c19a7080d6976b28f8c51be51f8f711c5 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 16:36:55 -0500
Subject: [PATCH] Implement ItemFactory#getMonsterEgg
---
.../java/net/minecraft/server/ItemMonsterEgg.java | 2 +-
.../craftbukkit/inventory/CraftItemFactory.java | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/ItemMonsterEgg.java b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
index 4482dd930..bb3b0abd9 100644
--- a/src/main/java/net/minecraft/server/ItemMonsterEgg.java
+++ b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
@@ -8,7 +8,7 @@ import javax.annotation.Nullable;
public class ItemMonsterEgg extends Item {
- private static final Map<EntityTypes<?>, ItemMonsterEgg> a = Maps.newIdentityHashMap();
+ public static final Map<EntityTypes<?>, ItemMonsterEgg> a = Maps.newIdentityHashMap(); // Purpur - private -> public
private final int b;
private final int c;
private final EntityTypes<?> d;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
index 80f71a77b..0dae1fcf7 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
@@ -349,4 +349,18 @@ public final class CraftItemFactory implements ItemFactory {
return nms != null ? net.minecraft.server.LocaleLanguage.getInstance().translateKey(nms.getItem().getName()) : null;
}
// Paper end
+
+ // Purpur start
+ @Override
+ public ItemStack getMonsterEgg(org.bukkit.entity.EntityType type) {
+ if (type == null) {
+ return null;
+ }
+ String name = type.getKey().toString();
+ net.minecraft.server.MinecraftKey key = new net.minecraft.server.MinecraftKey(name);
+ net.minecraft.server.EntityTypes types = net.minecraft.server.EntityTypes.getFromKey(key);
+ net.minecraft.server.ItemMonsterEgg egg = net.minecraft.server.ItemMonsterEgg.a.get(types);
+ return new net.minecraft.server.ItemStack(egg).asBukkitMirror();
+ }
+ // Purpur end
}
--
2.20.1