From 941800ce96a84108cab201d298735f4bec786493 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 30 Dec 2019 23:20:25 -0700 Subject: [PATCH 1/2] Add VelocityServer#shutdown(boolean, TextComponent) --- .../velocitypowered/proxy/VelocityServer.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java b/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java index 2f260cce6..ad80a9161 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java @@ -360,11 +360,12 @@ public class VelocityServer implements ProxyServer { } /** - * Shuts down the proxy. + * Shuts down the proxy, kicking players with the specified {@param reason}. * * @param explicitExit whether the user explicitly shut down the proxy + * @param reason message to kick online players with */ - public void shutdown(boolean explicitExit) { + public void shutdown(boolean explicitExit, TextComponent reason) { if (eventManager == null || pluginManager == null || cm == null || scheduler == null) { throw new AssertionError(); } @@ -382,7 +383,7 @@ public class VelocityServer implements ProxyServer { ImmutableList players = ImmutableList.copyOf(connectionsByUuid.values()); for (ConnectedPlayer player : players) { - player.disconnect(TextComponent.of("Proxy shutting down.")); + player.disconnect(reason); } try { @@ -425,6 +426,15 @@ public class VelocityServer implements ProxyServer { thread.start(); } + /** + * Calls {@link #shutdown(boolean, TextComponent)} with the default reason "Proxy shutting down." + * + * @param explicitExit whether the user explicitly shut down the proxy + */ + public void shutdown(boolean explicitExit) { + shutdown(explicitExit, TextComponent.of("Proxy shutting down.")); + } + public AsyncHttpClient getAsyncHttpClient() { return ensureInitialized(cm).getHttpClient(); } From 9f340347b6d08d6ccff4a329ffe0ef8eebe97ddd Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 30 Dec 2019 23:20:55 -0700 Subject: [PATCH 2/2] Allow users to specify a reason in the shutdown command --- .../velocitypowered/proxy/command/ShutdownCommand.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/proxy/src/main/java/com/velocitypowered/proxy/command/ShutdownCommand.java b/proxy/src/main/java/com/velocitypowered/proxy/command/ShutdownCommand.java index ba94083c8..87f53b211 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/command/ShutdownCommand.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/command/ShutdownCommand.java @@ -5,6 +5,7 @@ import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.proxy.VelocityServer; import net.kyori.text.TextComponent; import net.kyori.text.format.TextColor; +import net.kyori.text.serializer.legacy.LegacyComponentSerializer; import org.checkerframework.checker.nullness.qual.NonNull; public class ShutdownCommand implements Command { @@ -17,7 +18,12 @@ public class ShutdownCommand implements Command { @Override public void execute(CommandSource source, String @NonNull [] args) { - server.shutdown(true); + if (args.length == 0) { + server.shutdown(true); + } else { + String reason = String.join(" ", args); + server.shutdown(true, LegacyComponentSerializer.legacy().deserialize(reason, '&')); + } } @Override