mirror of
https://github.com/Dreeam-qwq/Gale.git
synced 2025-12-24 01:09:27 +00:00
Skip events without listeners
This commit is contained in:
42
patches/api/0005-Skip-events-without-listeners.patch
Normal file
42
patches/api/0005-Skip-events-without-listeners.patch
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: MartijnMuijsers <martijnmuijsers@live.nl>
|
||||||
|
Date: Thu, 1 Dec 2022 13:45:13 +0100
|
||||||
|
Subject: [PATCH] Skip events without listeners
|
||||||
|
|
||||||
|
License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
|
||||||
|
This patch is based on the following patch:
|
||||||
|
"skip event if no listeners"
|
||||||
|
By: Simon Gardling <titaniumtown@gmail.com>
|
||||||
|
As part of: JettPack (https://gitlab.com/Titaniumtown/JettPack)
|
||||||
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
|
index 9db611841b73fed8dc8a71f4d7fdef95af3cf89d..7edbcee946bb310bba54720cd47cd21f0a36276d 100644
|
||||||
|
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
|
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
|
@@ -651,6 +651,14 @@ public final class SimplePluginManager implements PluginManager {
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void callEvent(@NotNull Event event) {
|
||||||
|
+ // Gale start - JettPack - skip events without listeners
|
||||||
|
+ HandlerList handlers = event.getHandlers();
|
||||||
|
+ RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
+ if (listeners.length == 0) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ // Gale end - JettPack - skip events without listeners
|
||||||
|
+
|
||||||
|
// Paper - replace callEvent by merging to below method
|
||||||
|
if (event.isAsynchronous() && server.isPrimaryThread()) {
|
||||||
|
throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously.");
|
||||||
|
@@ -658,9 +666,6 @@ public final class SimplePluginManager implements PluginManager {
|
||||||
|
throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
|
||||||
|
}
|
||||||
|
|
||||||
|
- HandlerList handlers = event.getHandlers();
|
||||||
|
- RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
-
|
||||||
|
for (RegisteredListener registration : listeners) {
|
||||||
|
if (!registration.getPlugin().isEnabled()) {
|
||||||
|
continue;
|
||||||
Reference in New Issue
Block a user