9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-26 10:29:13 +00:00

Skip-event-if-no-listeners

This commit is contained in:
lilingfengdev
2024-01-17 18:17:07 +08:00
parent 0be2cd0fc6
commit 9cc4b124f7

View File

@@ -0,0 +1,31 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: lilingfengdev <145678359+lilingfengdev@users.noreply.github.com>
Date: Wed, 17 Jan 2024 18:16:38 +0800
Subject: [PATCH] Skip event if no listeners
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
index 06dfd0b27ac0006a2be07f54a0702519a691c6ec..90b40040b2dc0e8a481515a9b139cf1277578545 100644
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
@@ -35,6 +35,10 @@ class PaperEventManager {
// SimplePluginManager
public void callEvent(@NotNull Event event) {
+ // Leaf start - Skip event if no listeners
+ RegisteredListener[] listeners = event.getHandlers().getRegisteredListeners();
+ if (listeners.length == 0) return;
+ // Leaf end
// KTP start - Optimise spigot event bus
if (event.asynchronous() != net.kyori.adventure.util.TriState.NOT_SET) {
final boolean onPrimaryThread = this.server.isPrimaryThread();
@@ -47,9 +51,6 @@ class PaperEventManager {
// KTP stop - Optimise spigot event bus
}
- HandlerList handlers = event.getHandlers();
- RegisteredListener[] listeners = handlers.getRegisteredListeners();
-
for (RegisteredListener registration : listeners) {
if (!registration.getPlugin().isEnabled()) {
continue;