Do not fire pre creature spawn event unless some plugin is listening it
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: MrHua269 <mrhua269@gmail.com>
|
||||||
|
Date: Sun, 15 Jun 2025 16:58:05 +0800
|
||||||
|
Subject: [PATCH] Do not fire pre creature spawn event unless some plugin is
|
||||||
|
listening it
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/net/minecraft/world/level/NaturalSpawner.java b/net/minecraft/world/level/NaturalSpawner.java
|
||||||
|
index f324a74a191d3fe3e270556d07c4543ec34e0195..2fb36cba4cda3f7b84efae9cba6bed2394fb0457 100644
|
||||||
|
--- a/net/minecraft/world/level/NaturalSpawner.java
|
||||||
|
+++ b/net/minecraft/world/level/NaturalSpawner.java
|
||||||
|
@@ -360,16 +360,18 @@ public final class NaturalSpawner {
|
||||||
|
) {
|
||||||
|
EntityType<?> entityType = data.type();
|
||||||
|
// Paper start - PreCreatureSpawnEvent
|
||||||
|
- com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event = new com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent(
|
||||||
|
- org.bukkit.craftbukkit.util.CraftLocation.toBukkit(pos, level),
|
||||||
|
- org.bukkit.craftbukkit.entity.CraftEntityType.minecraftToBukkit(entityType), org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL
|
||||||
|
- );
|
||||||
|
- if (!event.callEvent()) {
|
||||||
|
- if (event.shouldAbortSpawn()) {
|
||||||
|
- return PreSpawnStatus.ABORT;
|
||||||
|
+ if (com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent.getHandlerList().getRegisteredListeners().length != 0) { // Luminol - Do not fire pre creature spawn event unless some plugin is listening it
|
||||||
|
+ com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event = new com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent(
|
||||||
|
+ org.bukkit.craftbukkit.util.CraftLocation.toBukkit(pos, level),
|
||||||
|
+ org.bukkit.craftbukkit.entity.CraftEntityType.minecraftToBukkit(entityType), org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL
|
||||||
|
+ );
|
||||||
|
+ if (!event.callEvent()) {
|
||||||
|
+ if (event.shouldAbortSpawn()) {
|
||||||
|
+ return PreSpawnStatus.ABORT;
|
||||||
|
+ }
|
||||||
|
+ return PreSpawnStatus.CANCELLED;
|
||||||
|
}
|
||||||
|
- return PreSpawnStatus.CANCELLED;
|
||||||
|
- }
|
||||||
|
+ } // Luminol - Do not fire pre creature spawn event unless some plugin is listening it
|
||||||
|
final boolean success = entityType.getCategory() != MobCategory.MISC
|
||||||
|
// Paper end - PreCreatureSpawnEvent
|
||||||
|
&& (
|
||||||
Reference in New Issue
Block a user