mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
PlayerSetSpawnerTypeWithEggEvent
This commit is contained in:
committed by
granny
parent
cac5541365
commit
0a46145697
@@ -1,184 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
||||||
Date: Fri, 5 Jul 2019 18:21:15 -0500
|
|
||||||
Subject: [PATCH] PlayerSetSpawnerTypeWithEggEvent
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java b/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000000000000000000000000000000..795c558b481f4e2a550925bd88b8e7d41711456f
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java
|
|
||||||
@@ -0,0 +1,83 @@
|
|
||||||
+package org.purpurmc.purpur.event;
|
|
||||||
+
|
|
||||||
+import org.bukkit.block.Block;
|
|
||||||
+import org.bukkit.block.CreatureSpawner;
|
|
||||||
+import org.bukkit.entity.EntityType;
|
|
||||||
+import org.bukkit.entity.Player;
|
|
||||||
+import org.bukkit.event.Cancellable;
|
|
||||||
+import org.bukkit.event.HandlerList;
|
|
||||||
+import org.bukkit.event.player.PlayerEvent;
|
|
||||||
+import org.jetbrains.annotations.ApiStatus;
|
|
||||||
+import org.jspecify.annotations.NullMarked;
|
|
||||||
+
|
|
||||||
+@NullMarked
|
|
||||||
+public class PlayerSetSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable {
|
|
||||||
+ private static final HandlerList handlers = new HandlerList();
|
|
||||||
+ private final Block block;
|
|
||||||
+ private final CreatureSpawner spawner;
|
|
||||||
+ private EntityType type;
|
|
||||||
+ private boolean cancel;
|
|
||||||
+
|
|
||||||
+ @ApiStatus.Internal
|
|
||||||
+ public PlayerSetSpawnerTypeWithEggEvent(Player player, Block block, CreatureSpawner spawner, EntityType type) {
|
|
||||||
+ super(player);
|
|
||||||
+ this.block = block;
|
|
||||||
+ this.spawner = spawner;
|
|
||||||
+ this.type = type;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Get the spawner Block in the world
|
|
||||||
+ *
|
|
||||||
+ * @return Spawner Block
|
|
||||||
+ */
|
|
||||||
+ public Block getBlock() {
|
|
||||||
+ return block;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Get the spawner state
|
|
||||||
+ *
|
|
||||||
+ * @return Spawner state
|
|
||||||
+ */
|
|
||||||
+ public CreatureSpawner getSpawner() {
|
|
||||||
+ return spawner;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Gets the EntityType being set on the spawner
|
|
||||||
+ *
|
|
||||||
+ * @return EntityType being set
|
|
||||||
+ */
|
|
||||||
+ public EntityType getEntityType() {
|
|
||||||
+ return type;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Sets the EntityType being set on the spawner
|
|
||||||
+ *
|
|
||||||
+ * @param type EntityType to set
|
|
||||||
+ */
|
|
||||||
+ public void setEntityType(EntityType type) {
|
|
||||||
+ this.type = type;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public boolean isCancelled() {
|
|
||||||
+ return cancel;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public void setCancelled(boolean cancel) {
|
|
||||||
+ this.cancel = cancel;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public HandlerList getHandlers() {
|
|
||||||
+ return handlers;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public static HandlerList getHandlerList() {
|
|
||||||
+ return handlers;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java b/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000000000000000000000000000000..1d4dbf60a182a2a5f93c449e387b82743d20616c
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java
|
|
||||||
@@ -0,0 +1,83 @@
|
|
||||||
+package org.purpurmc.purpur.event;
|
|
||||||
+
|
|
||||||
+import org.bukkit.block.Block;
|
|
||||||
+import org.bukkit.block.TrialSpawner;
|
|
||||||
+import org.bukkit.entity.EntityType;
|
|
||||||
+import org.bukkit.entity.Player;
|
|
||||||
+import org.bukkit.event.Cancellable;
|
|
||||||
+import org.bukkit.event.HandlerList;
|
|
||||||
+import org.bukkit.event.player.PlayerEvent;
|
|
||||||
+import org.jetbrains.annotations.ApiStatus;
|
|
||||||
+import org.jspecify.annotations.NullMarked;
|
|
||||||
+
|
|
||||||
+@NullMarked
|
|
||||||
+public class PlayerSetTrialSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable {
|
|
||||||
+ private static final HandlerList handlers = new HandlerList();
|
|
||||||
+ private final Block block;
|
|
||||||
+ private final TrialSpawner spawner;
|
|
||||||
+ private EntityType type;
|
|
||||||
+ private boolean cancel;
|
|
||||||
+
|
|
||||||
+ @ApiStatus.Internal
|
|
||||||
+ public PlayerSetTrialSpawnerTypeWithEggEvent(Player player, Block block, TrialSpawner spawner, EntityType type) {
|
|
||||||
+ super(player);
|
|
||||||
+ this.block = block;
|
|
||||||
+ this.spawner = spawner;
|
|
||||||
+ this.type = type;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Get the spawner Block in the world
|
|
||||||
+ *
|
|
||||||
+ * @return Spawner Block
|
|
||||||
+ */
|
|
||||||
+ public Block getBlock() {
|
|
||||||
+ return block;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Get the spawner state
|
|
||||||
+ *
|
|
||||||
+ * @return Spawner state
|
|
||||||
+ */
|
|
||||||
+ public TrialSpawner getSpawner() {
|
|
||||||
+ return spawner;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Gets the EntityType being set on the spawner
|
|
||||||
+ *
|
|
||||||
+ * @return EntityType being set
|
|
||||||
+ */
|
|
||||||
+ public EntityType getEntityType() {
|
|
||||||
+ return type;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Sets the EntityType being set on the spawner
|
|
||||||
+ *
|
|
||||||
+ * @param type EntityType to set
|
|
||||||
+ */
|
|
||||||
+ public void setEntityType(EntityType type) {
|
|
||||||
+ this.type = type;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public boolean isCancelled() {
|
|
||||||
+ return cancel;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public void setCancelled(boolean cancel) {
|
|
||||||
+ this.cancel = cancel;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public HandlerList getHandlers() {
|
|
||||||
+ return handlers;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public static HandlerList getHandlerList() {
|
|
||||||
+ return handlers;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 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] PlayerSetSpawnerTypeWithEggEvent
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/EntityType.java b/net/minecraft/world/entity/EntityType.java
|
|
||||||
index d23914a3ab3723d532ae867db6b954c843030f75..426d47c14d137906ed70fc3082e3d77e7f48c8d7 100644
|
|
||||||
--- a/net/minecraft/world/entity/EntityType.java
|
|
||||||
+++ b/net/minecraft/world/entity/EntityType.java
|
|
||||||
@@ -404,6 +404,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
|
||||||
return EntityType.register(EntityType.vanillaEntityId(id), type);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Purpur start
|
|
||||||
+ public static EntityType<?> getFromBukkitType(org.bukkit.entity.EntityType bukkitType) {
|
|
||||||
+ return getFromKey(ResourceLocation.parse(bukkitType.getKey().toString()));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public static EntityType<?> getFromKey(ResourceLocation location) {
|
|
||||||
+ return BuiltInRegistries.ENTITY_TYPE.getValue(location);
|
|
||||||
+ }
|
|
||||||
+ // Purpur end
|
|
||||||
+
|
|
||||||
public static ResourceLocation getKey(EntityType<?> type) {
|
|
||||||
return BuiltInRegistries.ENTITY_TYPE.getKey(type);
|
|
||||||
}
|
|
||||||
@@ -614,6 +624,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
|
||||||
return this.category;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Purpur start
|
|
||||||
+ public String getName() {
|
|
||||||
+ return BuiltInRegistries.ENTITY_TYPE.getKey(this).getPath();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public String getTranslatedName() {
|
|
||||||
+ return getDescription().getString();
|
|
||||||
+ }
|
|
||||||
+ // Purpur end
|
|
||||||
+
|
|
||||||
public String getDescriptionId() {
|
|
||||||
return this.descriptionId;
|
|
||||||
}
|
|
||||||
diff --git a/net/minecraft/world/item/SpawnEggItem.java b/net/minecraft/world/item/SpawnEggItem.java
|
|
||||||
index cc7e9b87e919b4ef8cf77cd780c890fd9a9cfa50..a185d098175e504b7bb93d2cff03ca99eabc11eb 100644
|
|
||||||
--- a/net/minecraft/world/item/SpawnEggItem.java
|
|
||||||
+++ b/net/minecraft/world/item/SpawnEggItem.java
|
|
||||||
@@ -68,6 +68,23 @@ public class SpawnEggItem extends Item {
|
|
||||||
Spawner spawner = (Spawner) tileentity;
|
|
||||||
|
|
||||||
entitytypes = this.getType(world.registryAccess(), itemstack);
|
|
||||||
+ // Purpur start
|
|
||||||
+ if (spawner instanceof net.minecraft.world.level.block.entity.SpawnerBlockEntity) {
|
|
||||||
+ org.bukkit.block.Block bukkitBlock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
|
||||||
+ org.purpurmc.purpur.event.PlayerSetSpawnerTypeWithEggEvent event = new org.purpurmc.purpur.event.PlayerSetSpawnerTypeWithEggEvent((org.bukkit.entity.Player) context.getPlayer().getBukkitEntity(), bukkitBlock, (org.bukkit.block.CreatureSpawner) bukkitBlock.getState(), org.bukkit.entity.EntityType.fromName(entitytypes.getName()));
|
|
||||||
+ if (!event.callEvent()) {
|
|
||||||
+ return InteractionResult.FAIL;
|
|
||||||
+ }
|
|
||||||
+ entitytypes = EntityType.getFromBukkitType(event.getEntityType());
|
|
||||||
+ } else if (spawner instanceof net.minecraft.world.level.block.entity.TrialSpawnerBlockEntity) {
|
|
||||||
+ org.bukkit.block.Block bukkitBlock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
|
||||||
+ org.purpurmc.purpur.event.PlayerSetTrialSpawnerTypeWithEggEvent event = new org.purpurmc.purpur.event.PlayerSetTrialSpawnerTypeWithEggEvent((org.bukkit.entity.Player) context.getPlayer().getBukkitEntity(), bukkitBlock, (org.bukkit.block.TrialSpawner) bukkitBlock.getState(), org.bukkit.entity.EntityType.fromName(entitytypes.getName()));
|
|
||||||
+ if (!event.callEvent()) {
|
|
||||||
+ return InteractionResult.FAIL;
|
|
||||||
+ }
|
|
||||||
+ entitytypes = EntityType.getFromBukkitType(event.getEntityType());
|
|
||||||
+ }
|
|
||||||
+ // Purpur end
|
|
||||||
spawner.setEntityId(entitytypes, world.getRandom());
|
|
||||||
world.sendBlockUpdated(blockposition, iblockdata, iblockdata, 3);
|
|
||||||
world.gameEvent((Entity) context.getPlayer(), (Holder) GameEvent.BLOCK_CHANGE, blockposition);
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package org.purpurmc.purpur.event;
|
||||||
|
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.CreatureSpawner;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jspecify.annotations.NullMarked;
|
||||||
|
|
||||||
|
@NullMarked
|
||||||
|
public class PlayerSetSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final Block block;
|
||||||
|
private final CreatureSpawner spawner;
|
||||||
|
private EntityType type;
|
||||||
|
private boolean cancel;
|
||||||
|
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public PlayerSetSpawnerTypeWithEggEvent(Player player, Block block, CreatureSpawner spawner, EntityType type) {
|
||||||
|
super(player);
|
||||||
|
this.block = block;
|
||||||
|
this.spawner = spawner;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the spawner Block in the world
|
||||||
|
*
|
||||||
|
* @return Spawner Block
|
||||||
|
*/
|
||||||
|
public Block getBlock() {
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the spawner state
|
||||||
|
*
|
||||||
|
* @return Spawner state
|
||||||
|
*/
|
||||||
|
public CreatureSpawner getSpawner() {
|
||||||
|
return spawner;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the EntityType being set on the spawner
|
||||||
|
*
|
||||||
|
* @return EntityType being set
|
||||||
|
*/
|
||||||
|
public EntityType getEntityType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the EntityType being set on the spawner
|
||||||
|
*
|
||||||
|
* @param type EntityType to set
|
||||||
|
*/
|
||||||
|
public void setEntityType(EntityType type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package org.purpurmc.purpur.event;
|
||||||
|
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.TrialSpawner;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jspecify.annotations.NullMarked;
|
||||||
|
|
||||||
|
@NullMarked
|
||||||
|
public class PlayerSetTrialSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final Block block;
|
||||||
|
private final TrialSpawner spawner;
|
||||||
|
private EntityType type;
|
||||||
|
private boolean cancel;
|
||||||
|
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public PlayerSetTrialSpawnerTypeWithEggEvent(Player player, Block block, TrialSpawner spawner, EntityType type) {
|
||||||
|
super(player);
|
||||||
|
this.block = block;
|
||||||
|
this.spawner = spawner;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the spawner Block in the world
|
||||||
|
*
|
||||||
|
* @return Spawner Block
|
||||||
|
*/
|
||||||
|
public Block getBlock() {
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the spawner state
|
||||||
|
*
|
||||||
|
* @return Spawner state
|
||||||
|
*/
|
||||||
|
public TrialSpawner getSpawner() {
|
||||||
|
return spawner;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the EntityType being set on the spawner
|
||||||
|
*
|
||||||
|
* @return EntityType being set
|
||||||
|
*/
|
||||||
|
public EntityType getEntityType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the EntityType being set on the spawner
|
||||||
|
*
|
||||||
|
* @param type EntityType to set
|
||||||
|
*/
|
||||||
|
public void setEntityType(EntityType type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
--- a/net/minecraft/world/entity/EntityType.java
|
||||||
|
+++ b/net/minecraft/world/entity/EntityType.java
|
||||||
|
@@ -1083,6 +_,16 @@
|
||||||
|
return register(vanillaEntityId(key), builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Purpur start - PlayerSetSpawnerTypeWithEggEvent
|
||||||
|
+ public static EntityType<?> getFromBukkitType(org.bukkit.entity.EntityType bukkitType) {
|
||||||
|
+ return getFromKey(ResourceLocation.parse(bukkitType.getKey().toString()));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static EntityType<?> getFromKey(ResourceLocation location) {
|
||||||
|
+ return BuiltInRegistries.ENTITY_TYPE.getValue(location);
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - PlayerSetSpawnerTypeWithEggEvent
|
||||||
|
+
|
||||||
|
public static ResourceLocation getKey(EntityType<?> entityType) {
|
||||||
|
return BuiltInRegistries.ENTITY_TYPE.getKey(entityType);
|
||||||
|
}
|
||||||
|
@@ -1311,6 +_,16 @@
|
||||||
|
public MobCategory getCategory() {
|
||||||
|
return this.category;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ // Purpur start - PlayerSetSpawnerTypeWithEggEvent
|
||||||
|
+ public String getName() {
|
||||||
|
+ return BuiltInRegistries.ENTITY_TYPE.getKey(this).getPath();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public String getTranslatedName() {
|
||||||
|
+ return getDescription().getString();
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - PlayerSetSpawnerTypeWithEggEvent
|
||||||
|
|
||||||
|
public String getDescriptionId() {
|
||||||
|
return this.descriptionId;
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
--- a/net/minecraft/world/item/SpawnEggItem.java
|
||||||
|
+++ b/net/minecraft/world/item/SpawnEggItem.java
|
||||||
|
@@ -57,6 +_,23 @@
|
||||||
|
if (level.getBlockEntity(clickedPos) instanceof Spawner spawner) {
|
||||||
|
if (level.paperConfig().entities.spawning.disableMobSpawnerSpawnEggTransformation) return InteractionResult.FAIL; // Paper - Allow disabling mob spawner spawn egg transformation
|
||||||
|
EntityType<?> type = this.getType(level.registryAccess(), itemInHand);
|
||||||
|
+ // Purpur start - PlayerSetSpawnerTypeWithEggEvent
|
||||||
|
+ if (spawner instanceof net.minecraft.world.level.block.entity.SpawnerBlockEntity) {
|
||||||
|
+ org.bukkit.block.Block bukkitBlock = level.getWorld().getBlockAt(clickedPos.getX(), clickedPos.getY(), clickedPos.getZ());
|
||||||
|
+ org.purpurmc.purpur.event.PlayerSetSpawnerTypeWithEggEvent event = new org.purpurmc.purpur.event.PlayerSetSpawnerTypeWithEggEvent((org.bukkit.entity.Player) context.getPlayer().getBukkitEntity(), bukkitBlock, (org.bukkit.block.CreatureSpawner) bukkitBlock.getState(), org.bukkit.entity.EntityType.fromName(type.getName()));
|
||||||
|
+ if (!event.callEvent()) {
|
||||||
|
+ return InteractionResult.FAIL;
|
||||||
|
+ }
|
||||||
|
+ type = EntityType.getFromBukkitType(event.getEntityType());
|
||||||
|
+ } else if (spawner instanceof net.minecraft.world.level.block.entity.TrialSpawnerBlockEntity) {
|
||||||
|
+ org.bukkit.block.Block bukkitBlock = level.getWorld().getBlockAt(clickedPos.getX(), clickedPos.getY(), clickedPos.getZ());
|
||||||
|
+ org.purpurmc.purpur.event.PlayerSetTrialSpawnerTypeWithEggEvent event = new org.purpurmc.purpur.event.PlayerSetTrialSpawnerTypeWithEggEvent((org.bukkit.entity.Player) context.getPlayer().getBukkitEntity(), bukkitBlock, (org.bukkit.block.TrialSpawner) bukkitBlock.getState(), org.bukkit.entity.EntityType.fromName(type.getName()));
|
||||||
|
+ if (!event.callEvent()) {
|
||||||
|
+ return InteractionResult.FAIL;
|
||||||
|
+ }
|
||||||
|
+ type = EntityType.getFromBukkitType(event.getEntityType());
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - PlayerSetSpawnerTypeWithEggEvent
|
||||||
|
spawner.setEntityId(type, level.getRandom());
|
||||||
|
level.sendBlockUpdated(clickedPos, blockState, blockState, 3);
|
||||||
|
level.gameEvent(context.getPlayer(), GameEvent.BLOCK_CHANGE, clickedPos);
|
||||||
Reference in New Issue
Block a user