forked from hpfxd/PandaSpigot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path0084-Implement-SpawnerPreSpawnEvent.patch
28 lines (24 loc) · 1.65 KB
/
0084-Implement-SpawnerPreSpawnEvent.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: mechoriet <[email protected]>
Date: Mon, 19 Dec 2022 23:48:44 +0100
Subject: [PATCH] Implement SpawnerPreSpawnEvent
Added registered listeners check to avoid alloc if no plugins are
listening.
diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
index e54f7edbd1d834391f6760ea7b82cf6af4ddf994..c74bd1b944b6628d315a6f5b7b745ccc4133a6be 100644
--- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
+++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
@@ -91,6 +91,15 @@ public abstract class MobSpawnerAbstract {
boolean flag = false;
for (int i = 0; i < this.spawnCount; ++i) {
+ // PandaSpigot start - SpawnerPreSpawnEvent
+ if (net.techcable.tacospigot.event.entity.SpawnerPreSpawnEvent.getHandlerList().getRegisteredListeners().length > 0) {
+ net.techcable.tacospigot.event.entity.SpawnerPreSpawnEvent event = new net.techcable.tacospigot.event.entity.SpawnerPreSpawnEvent(new org.bukkit.Location(this.a().getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ()), org.bukkit.entity.EntityType.fromName(this.getMobName()));
+ if (!event.callEvent()) {
+ flag = true;
+ break;
+ }
+ }
+ // PandaSpigot end
Entity entity = EntityTypes.createEntityByName(this.getMobName(), this.a());
if (entity == null) {