diff --git a/api/src/main/java/com/velocitypowered/api/command/CommandManager.java b/api/src/main/java/com/velocitypowered/api/command/CommandManager.java index 968c7a259..b8f14fe8e 100644 --- a/api/src/main/java/com/velocitypowered/api/command/CommandManager.java +++ b/api/src/main/java/com/velocitypowered/api/command/CommandManager.java @@ -69,33 +69,6 @@ public interface CommandManager { */ void unregister(String alias); - /** - * Attempts to execute a command from the given {@code cmdLine} in - * a blocking fashion. - * - * @param source the source to execute the command for - * @param cmdLine the command to run - * @return {@code true} if the command was found and executed - * @deprecated this method blocks the current thread during the event call and - * the command execution. Prefer {@link #executeAsync(CommandSource, String)} - * instead. - */ - @Deprecated - boolean execute(CommandSource source, String cmdLine); - - /** - * Attempts to execute a command from the given {@code cmdLine} without - * firing a {@link CommandExecuteEvent} in a blocking fashion. - * - * @param source the source to execute the command for - * @param cmdLine the command to run - * @return {@code true} if the command was found and executed - * @deprecated this methods blocks the current thread during the command execution. - * Prefer {@link #executeImmediatelyAsync(CommandSource, String)} instead. - */ - @Deprecated - boolean executeImmediately(CommandSource source, String cmdLine); - /** * Attempts to asynchronously execute a command from the given {@code cmdLine}. * @@ -104,7 +77,7 @@ public interface CommandManager { * @return a future that may be completed with the result of the command execution. * Can be completed exceptionally if an exception is thrown during execution. */ - CompletableFuture executeAsync(CommandSource source, String cmdLine); + CompletableFuture execute(CommandSource source, String cmdLine); /** * Attempts to asynchronously execute a command from the given {@code cmdLine} @@ -115,7 +88,7 @@ public interface CommandManager { * @return a future that may be completed with the result of the command execution. * Can be completed exceptionally if an exception is thrown during execution. */ - CompletableFuture executeImmediatelyAsync(CommandSource source, String cmdLine); + CompletableFuture executeImmediately(CommandSource source, String cmdLine); /** * Returns whether the given alias is registered on this manager. diff --git a/api/src/main/java/com/velocitypowered/api/event/connection/DisconnectEvent.java b/api/src/main/java/com/velocitypowered/api/event/connection/DisconnectEvent.java index 773a39146..c4c2d6fdd 100644 --- a/api/src/main/java/com/velocitypowered/api/event/connection/DisconnectEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/connection/DisconnectEvent.java @@ -7,10 +7,6 @@ package com.velocitypowered.api.event.connection; -import static com.velocitypowered.api.event.connection.DisconnectEvent.LoginStatus.CANCELLED_BY_PROXY; -import static com.velocitypowered.api.event.connection.DisconnectEvent.LoginStatus.CONFLICTING_LOGIN; -import static com.velocitypowered.api.event.connection.DisconnectEvent.LoginStatus.SUCCESSFUL_LOGIN; - import com.google.common.base.Preconditions; import com.velocitypowered.api.proxy.Player; @@ -23,17 +19,6 @@ public final class DisconnectEvent { private final Player player; private final LoginStatus loginStatus; - @Deprecated - public DisconnectEvent(Player player) { - this(player, false); - } - - @Deprecated - public DisconnectEvent(Player player, - boolean disconnectedDuringLogin) { - this(player, disconnectedDuringLogin ? CANCELLED_BY_PROXY : SUCCESSFUL_LOGIN); - } - public DisconnectEvent(Player player, LoginStatus loginStatus) { this.player = Preconditions.checkNotNull(player, "player"); this.loginStatus = Preconditions.checkNotNull(loginStatus, "loginStatus"); @@ -43,11 +28,6 @@ public final class DisconnectEvent { return player; } - @Deprecated - public boolean disconnectedDuringLogin() { - return this.loginStatus == CANCELLED_BY_PROXY || this.loginStatus == CONFLICTING_LOGIN; - } - public LoginStatus getLoginStatus() { return loginStatus; } diff --git a/api/src/main/java/com/velocitypowered/api/event/player/ServerConnectedEvent.java b/api/src/main/java/com/velocitypowered/api/event/player/ServerConnectedEvent.java index 3534133ef..fdf18f13e 100644 --- a/api/src/main/java/com/velocitypowered/api/event/player/ServerConnectedEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/player/ServerConnectedEvent.java @@ -36,11 +36,6 @@ public final class ServerConnectedEvent { this.previousServer = previousServer; } - @Deprecated - public ServerConnectedEvent(Player player, RegisteredServer server) { - this(player, server, null); - } - public Player getPlayer() { return player; } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/command/VelocityCommandManager.java b/proxy/src/main/java/com/velocitypowered/proxy/command/VelocityCommandManager.java index a7bf32596..62ec0be4c 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/command/VelocityCommandManager.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/command/VelocityCommandManager.java @@ -130,13 +130,7 @@ public class VelocityCommandManager implements CommandManager { return eventManager.fire(new CommandExecuteEvent(source, cmdLine)); } - @Override - public boolean execute(final CommandSource source, final String cmdLine) { - return executeAsync(source, cmdLine).join(); - } - - @Override - public boolean executeImmediately(final CommandSource source, final String cmdLine) { + private boolean executeImmediately0(final CommandSource source, final String cmdLine) { Preconditions.checkNotNull(source, "source"); Preconditions.checkNotNull(cmdLine, "cmdLine"); @@ -160,27 +154,27 @@ public class VelocityCommandManager implements CommandManager { } @Override - public CompletableFuture executeAsync(final CommandSource source, final String cmdLine) { + public CompletableFuture execute(final CommandSource source, final String cmdLine) { Preconditions.checkNotNull(source, "source"); Preconditions.checkNotNull(cmdLine, "cmdLine"); - return callCommandEvent(source, cmdLine).thenApply(event -> { + return callCommandEvent(source, cmdLine).thenApplyAsync(event -> { CommandResult commandResult = event.getResult(); if (commandResult.isForwardToServer() || !commandResult.isAllowed()) { return false; } - return executeImmediately(source, commandResult.getCommand().orElse(event.getCommand())); - }); + return executeImmediately0(source, commandResult.getCommand().orElse(event.getCommand())); + }, eventManager.getService()); } @Override - public CompletableFuture executeImmediatelyAsync( + public CompletableFuture executeImmediately( final CommandSource source, final String cmdLine) { Preconditions.checkNotNull(source, "source"); Preconditions.checkNotNull(cmdLine, "cmdLine"); return CompletableFuture.supplyAsync( - () -> executeImmediately(source, cmdLine), eventManager.getService()); + () -> executeImmediately0(source, cmdLine), eventManager.getService()); } /** diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java index 8ac397500..8bf606be6 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java @@ -598,7 +598,7 @@ public class ClientPlaySessionHandler implements MinecraftSessionHandler { return CompletableFuture.runAsync(() -> smc.write(Chat.createServerbound("/" + commandToRun)), smc.eventLoop()); } else { - return server.getCommandManager().executeImmediatelyAsync(player, commandToRun) + return server.getCommandManager().executeImmediately(player, commandToRun) .thenAcceptAsync(hasRun -> { if (!hasRun) { smc.write(Chat.createServerbound("/" + commandToRun)); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/console/VelocityConsole.java b/proxy/src/main/java/com/velocitypowered/proxy/console/VelocityConsole.java index 6b465193f..93e2260fc 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/console/VelocityConsole.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/console/VelocityConsole.java @@ -27,6 +27,7 @@ import com.velocitypowered.proxy.VelocityServer; import java.util.List; import net.kyori.adventure.identity.Identity; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.text.TextComponent; import net.kyori.text.format.TextColor; import net.minecrell.terminalconsole.SimpleTerminalConsole; @@ -119,8 +120,8 @@ public final class VelocityConsole extends SimpleTerminalConsole implements Cons @Override protected void runCommand(String command) { try { - if (!this.server.getCommandManager().execute(this, command)) { - sendMessage(TextComponent.of("Command not found.", TextColor.RED)); + if (!this.server.getCommandManager().execute(this, command).join()) { + sendMessage(Component.text("Command not found.", NamedTextColor.RED)); } } catch (Exception e) { logger.error("An error occurred while running this command.", e); diff --git a/proxy/src/test/java/com/velocitypowered/proxy/command/CommandManagerTests.java b/proxy/src/test/java/com/velocitypowered/proxy/command/CommandManagerTests.java index 4faf06ace..8faf8efc3 100644 --- a/proxy/src/test/java/com/velocitypowered/proxy/command/CommandManagerTests.java +++ b/proxy/src/test/java/com/velocitypowered/proxy/command/CommandManagerTests.java @@ -45,7 +45,6 @@ import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.qual.NonNull; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -72,8 +71,8 @@ public class CommandManagerTests { VelocityCommandManager manager = createManager(); assertFalse(manager.hasCommand("foo")); assertTrue(manager.getDispatcher().getRoot().getChildren().isEmpty()); - assertFalse(manager.execute(MockCommandSource.INSTANCE, "foo")); - assertFalse(manager.executeImmediately(MockCommandSource.INSTANCE, "bar")); + assertFalse(manager.execute(MockCommandSource.INSTANCE, "foo").join()); + assertFalse(manager.executeImmediately(MockCommandSource.INSTANCE, "bar").join()); assertTrue(manager.offerSuggestions(MockCommandSource.INSTANCE, "").join().isEmpty()); } @@ -113,7 +112,7 @@ public class CommandManagerTests { assertTrue(manager.hasCommand("foO")); manager.unregister("fOo"); assertFalse(manager.hasCommand("foo")); - assertFalse(manager.execute(MockCommandSource.INSTANCE, "foo")); + assertFalse(manager.execute(MockCommandSource.INSTANCE, "foo").join()); manager.register("foo", command, "bAr", "BAZ"); assertTrue(manager.hasCommand("bar")); @@ -170,14 +169,15 @@ public class CommandManagerTests { node.addChild(quantityNode); manager.register(new BrigadierCommand(node)); - assertTrue(manager.executeAsync(MockCommandSource.INSTANCE, "buy ").join()); + assertTrue(manager.execute(MockCommandSource.INSTANCE, "buy ").join()); assertTrue(executed.compareAndSet(true, false), "was executed"); - assertTrue(manager.executeImmediatelyAsync(MockCommandSource.INSTANCE, "buy 14").join()); + assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "buy 14").join()); assertTrue(checkedRequires.compareAndSet(true, false)); assertTrue(executed.get()); - assertTrue(manager.execute(MockCommandSource.INSTANCE, "buy 9"), + assertFalse(manager.execute(MockCommandSource.INSTANCE, "buy 9").join(), "Invalid arg returns false"); - assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "buy 12 bananas")); + assertFalse(manager.executeImmediately(MockCommandSource.INSTANCE, "buy 12 bananas") + .join()); assertTrue(checkedRequires.get()); } @@ -192,7 +192,7 @@ public class CommandManagerTests { }; manager.register("foo", command); - assertTrue(manager.executeAsync(MockCommandSource.INSTANCE, "foo bar 254").join()); + assertTrue(manager.execute(MockCommandSource.INSTANCE, "foo bar 254").join()); assertTrue(executed.get()); SimpleCommand noPermsCommand = new SimpleCommand() { @@ -208,8 +208,9 @@ public class CommandManagerTests { }; manager.register("dangerous", noPermsCommand, "veryDangerous"); - assertFalse(manager.execute(MockCommandSource.INSTANCE, "dangerous")); - assertFalse(manager.executeImmediately(MockCommandSource.INSTANCE, "verydangerous 123")); + assertFalse(manager.execute(MockCommandSource.INSTANCE, "dangerous").join()); + assertFalse(manager.executeImmediately(MockCommandSource.INSTANCE, "verydangerous 123") + .join()); } @Test @@ -226,7 +227,8 @@ public class CommandManagerTests { }; manager.register("sendMe", command); - assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "sendMe lobby 23")); + assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "sendMe lobby 23") + .join()); assertTrue(executed.compareAndSet(true, false)); RawCommand noArgsCommand = new RawCommand() { @@ -238,9 +240,9 @@ public class CommandManagerTests { }; manager.register("noargs", noArgsCommand); - assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "noargs")); + assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "noargs").join()); assertTrue(executed.get()); - assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "noargs ")); + assertTrue(manager.executeImmediately(MockCommandSource.INSTANCE, "noargs ").join()); RawCommand noPermsCommand = new RawCommand() { @Override @@ -255,7 +257,8 @@ public class CommandManagerTests { }; manager.register("sendThem", noPermsCommand); - assertFalse(manager.executeImmediately(MockCommandSource.INSTANCE, "sendThem foo")); + assertFalse(manager.executeImmediately(MockCommandSource.INSTANCE, "sendThem foo") + .join()); } @Test @@ -420,16 +423,16 @@ public class CommandManagerTests { manager.register(meta, command); expectedArgs.set("notBarOrBaz"); - assertTrue(manager.execute(MockCommandSource.INSTANCE, "foo notBarOrBaz")); + assertTrue(manager.execute(MockCommandSource.INSTANCE, "foo notBarOrBaz").join()); assertTrue(executed.compareAndSet(true, false)); expectedArgs.set("anotherArg 123"); - assertTrue(manager.execute(MockCommandSource.INSTANCE, "Foo2 anotherArg 123")); + assertTrue(manager.execute(MockCommandSource.INSTANCE, "Foo2 anotherArg 123").join()); assertTrue(executed.compareAndSet(true, false)); expectedArgs.set("bar"); - assertTrue(manager.execute(MockCommandSource.INSTANCE, "foo bar")); + assertTrue(manager.execute(MockCommandSource.INSTANCE, "foo bar").join()); assertTrue(executed.compareAndSet(true, false)); expectedArgs.set("bar 123"); - assertTrue(manager.execute(MockCommandSource.INSTANCE, "foo2 bar 123")); + assertTrue(manager.execute(MockCommandSource.INSTANCE, "foo2 bar 123").join()); assertTrue(executed.compareAndSet(true, false)); assertEquals(ImmutableList.of("bar", "baz", "raw"),