--- 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 { @@ -245,6 +_,12 @@ StopCommand.register(this.dispatcher); TransferCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); + org.purpurmc.purpur.command.CreditsCommand.register(this.dispatcher); // Purpur - Add credits command + org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur - Add demo command + org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur - Add ping command + org.purpurmc.purpur.command.UptimeCommand.register(this.dispatcher); // Purpur - Add uptime command + org.purpurmc.purpur.command.TPSBarCommand.register(this.dispatcher); // Purpur - Implement TPSBar + org.purpurmc.purpur.command.CompassCommand.register(this.dispatcher); // Purpur - Add compass command } if (selection.includeIntegrated) { @@ -488,6 +_,7 @@ private void runSync(ServerPlayer player, java.util.Collection bukkit, RootCommandNode rootCommandNode) { // Paper end - Perf: Async command map building new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(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)); }