Implement PlayerSetSpawnerTypeWithEggEvent

This commit is contained in:
William Blake Galbreath
2019-07-05 18:55:28 -05:00
parent aab22f8353
commit 6656b86270
2 changed files with 148 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
From a24211c391399fb7eb0a9c83144d59f4e56deea2 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 18:21:00 -0500
Subject: [PATCH] Implement PlayerSetSpawnerTypeWithEggEvent
---
.../java/net/minecraft/server/ItemMonsterEgg.java | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/main/java/net/minecraft/server/ItemMonsterEgg.java b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
index bb3b0abd9..4b77c099a 100644
--- a/src/main/java/net/minecraft/server/ItemMonsterEgg.java
+++ b/src/main/java/net/minecraft/server/ItemMonsterEgg.java
@@ -2,6 +2,11 @@ package net.minecraft.server;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
+import net.pl3x.purpur.event.PlayerSetSpawnerTypeWithEggEvent;
+import org.bukkit.block.CreatureSpawner;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.Player;
+
import java.util.Map;
import java.util.Objects;
import javax.annotation.Nullable;
@@ -41,6 +46,15 @@ public class ItemMonsterEgg extends Item {
MobSpawnerAbstract mobspawnerabstract = ((TileEntityMobSpawner) tileentity).getSpawner();
EntityTypes<?> entitytypes = this.b(itemstack.getTag());
+ // Purpur start
+ org.bukkit.block.Block bukkitBlock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
+ PlayerSetSpawnerTypeWithEggEvent event = new PlayerSetSpawnerTypeWithEggEvent((Player) itemactioncontext.b.getBukkitEntity(), bukkitBlock, (CreatureSpawner) bukkitBlock.getState(), EntityType.fromName(entitytypes.getName()));
+ if (!event.callEvent()) {
+ return EnumInteractionResult.FAIL;
+ }
+ entitytypes = EntityTypes.getFromKey(new MinecraftKey(event.getEntityType().getKey().toString()));
+ // Purpur end
+
mobspawnerabstract.setMobName(entitytypes);
tileentity.update();
world.notify(blockposition, iblockdata, iblockdata, 3);
--
2.20.1