mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
Skip events if there's no listeners
This commit is contained in:
committed by
granny
parent
c9fbe555c0
commit
cf1fca8846
@@ -1,26 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
||||||
Date: Sat, 4 Apr 2020 03:07:59 -0500
|
|
||||||
Subject: [PATCH] Skip events if there's no listeners
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
|
||||||
index 517cb238ec280aadd1fc54bcb675ed386e798eaf..832930024b0d642496efe17f7e2f8e02413275f0 100644
|
|
||||||
--- a/net/minecraft/commands/Commands.java
|
|
||||||
+++ b/net/minecraft/commands/Commands.java
|
|
||||||
@@ -515,6 +515,7 @@ public class Commands {
|
|
||||||
private void runSync(ServerPlayer player, Collection<String> bukkit, RootCommandNode<SharedSuggestionProvider> rootcommandnode) {
|
|
||||||
// Paper end - Perf: Async command map building
|
|
||||||
new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent<CommandSourceStack>(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, true).callEvent(); // Paper - Brigadier API
|
|
||||||
+ if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Purpur - skip all this crap if there's nothing listening
|
|
||||||
PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit));
|
|
||||||
event.getPlayer().getServer().getPluginManager().callEvent(event);
|
|
||||||
|
|
||||||
@@ -525,6 +526,7 @@ public class Commands {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// CraftBukkit end
|
|
||||||
+ } // Purpur - skip event
|
|
||||||
player.connection.send(new ClientboundCommandsPacket(rootcommandnode));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
--- a/net/minecraft/commands/Commands.java
|
||||||
|
+++ b/net/minecraft/commands/Commands.java
|
||||||
|
@@ -137,6 +_,7 @@
|
||||||
|
import net.minecraft.world.flag.FeatureFlagSet;
|
||||||
|
import net.minecraft.world.flag.FeatureFlags;
|
||||||
|
import net.minecraft.world.level.GameRules;
|
||||||
|
+import org.bukkit.event.player.PlayerCommandSendEvent;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
public class Commands {
|
||||||
|
@@ -488,6 +_,7 @@
|
||||||
|
private void runSync(ServerPlayer player, java.util.Collection<String> bukkit, RootCommandNode<SharedSuggestionProvider> rootCommandNode) {
|
||||||
|
// Paper end - Perf: Async command map building
|
||||||
|
new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent<CommandSourceStack>(player.getBukkitEntity(), (RootCommandNode) rootCommandNode, true).callEvent(); // Paper - Brigadier API
|
||||||
|
+ if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Purpur - Skip events if there's no listeners
|
||||||
|
org.bukkit.event.player.PlayerCommandSendEvent event = new org.bukkit.event.player.PlayerCommandSendEvent(player.getBukkitEntity(), new java.util.LinkedHashSet<>(bukkit));
|
||||||
|
event.getPlayer().getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
@@ -498,6 +_,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// CraftBukkit end
|
||||||
|
+ } // Purpur - Skip events if there's no listeners
|
||||||
|
|
||||||
|
player.connection.send(new ClientboundCommandsPacket(rootCommandNode));
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user