mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-14 02:41:24 +01:00
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
41 lines
1.7 KiB
Diff
41 lines
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Thu, 23 Feb 2023 13:19:13 -0800
|
|
Subject: [PATCH] Fix SpawnEggMeta#get/setSpawnedType
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java
|
|
index 50a5321a59895739d3d42f2d06ac9d1b43480cfa..7ff690f386b7fb9e090c86a28f649119505af7b9 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java
|
|
@@ -219,6 +219,30 @@ public class CraftMetaSpawnEgg extends CraftMetaItem implements SpawnEggMeta {
|
|
public void setSpawnedType(EntityType type) {
|
|
throw new UnsupportedOperationException("Must change item type to set spawned type");
|
|
}
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public EntityType getCustomSpawnedType() {
|
|
+ return java.util.Optional.ofNullable(this.entityTag)
|
|
+ .map(tag -> tag.getString(ENTITY_ID.NBT))
|
|
+ .flatMap(net.minecraft.world.entity.EntityType::byString)
|
|
+ .map(org.bukkit.craftbukkit.util.CraftMagicNumbers::getEntityType)
|
|
+ .orElse(null);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCustomSpawnedType(final EntityType type) {
|
|
+ if (type == null) {
|
|
+ if (this.entityTag != null) {
|
|
+ this.entityTag.remove(ENTITY_ID.NBT);
|
|
+ }
|
|
+ } else {
|
|
+ if (this.entityTag == null) {
|
|
+ this.entityTag = new CompoundTag();
|
|
+ }
|
|
+ this.entityTag.putString(ENTITY_ID.NBT, type.key().toString());
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
|
|
@Override
|
|
public EntitySnapshot getSpawnedEntity() {
|