From ee3ff1ad8fd04710f7dceb1612f2352cf701dc57 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 29 Jul 2024 20:34:20 +0200 Subject: [PATCH] Add CommandExecuteEvent handler to forward unauthorized commands --- .../commander/velocity/listener/CommandListener.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/velocity/src/main/java/net/thenextlvl/commander/velocity/listener/CommandListener.java b/velocity/src/main/java/net/thenextlvl/commander/velocity/listener/CommandListener.java index 1e02006..e604789 100644 --- a/velocity/src/main/java/net/thenextlvl/commander/velocity/listener/CommandListener.java +++ b/velocity/src/main/java/net/thenextlvl/commander/velocity/listener/CommandListener.java @@ -2,6 +2,7 @@ import com.velocitypowered.api.event.PostOrder; import com.velocitypowered.api.event.Subscribe; +import com.velocitypowered.api.event.command.CommandExecuteEvent; import com.velocitypowered.api.event.command.PlayerAvailableCommandsEvent; import com.velocitypowered.api.permission.Tristate; import lombok.RequiredArgsConstructor; @@ -21,4 +22,13 @@ public void onCommandSend(PlayerAvailableCommandsEvent event) { return !event.getPlayer().hasPermission(permission); }); } + + @Subscribe(order = PostOrder.LAST) + public void onPlayerChat(CommandExecuteEvent event) { + if (!event.getResult().isAllowed()) return; + var command = event.getCommand().replaceFirst("/", "").stripLeading(); + var permission = commander.permissionOverride().permission(command); + if (permission != null && event.getCommandSource().hasPermission(permission)) return; + event.setResult(CommandExecuteEvent.CommandResult.forwardToServer()); + } }