Merge pull request #253 from OKTW-Network/custom-redirect-message

Allow set redirect message
This commit is contained in:
Andrew Steinborn
2019-10-16 21:56:27 -04:00
committed by GitHub
2 changed files with 19 additions and 4 deletions

View File

@@ -147,10 +147,12 @@ public final class KickedFromServerEvent implements
*/
public static final class RedirectPlayer implements ServerKickResult {
private final Component message;
private final RegisteredServer server;
private RedirectPlayer(RegisteredServer server) {
private RedirectPlayer(RegisteredServer server, @Nullable Component message) {
this.server = Preconditions.checkNotNull(server, "server");
this.message = message;
}
@Override
@@ -162,14 +164,23 @@ public final class KickedFromServerEvent implements
return server;
}
@Nullable
public Component getMessage() {
return message;
}
/**
* Creates a new redirect result to forward the player to the specified {@code server}.
*
* @param server the server to send the player to
* @return the redirect result
*/
public static RedirectPlayer create(RegisteredServer server) {
return new RedirectPlayer(server);
public static RedirectPlayer create(RegisteredServer server, @Nullable Component message) {
return new RedirectPlayer(server, message);
}
public static ServerKickResult create(RegisteredServer server) {
return create(server, null);
}
}

View File

@@ -463,7 +463,11 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
if (newResult == null || !newResult) {
disconnect(friendlyReason);
} else {
sendMessage(VelocityMessages.MOVED_TO_NEW_SERVER.append(friendlyReason));
if (res.getMessage() == null) {
sendMessage(VelocityMessages.MOVED_TO_NEW_SERVER.append(friendlyReason));
} else {
sendMessage(res.getMessage());
}
}
}, connection.eventLoop());
} else if (event.getResult() instanceof Notify) {