mirror of
https://github.com/PaperMC/Velocity.git
synced 2026-06-21 09:47:44 +02:00
Convert PlayerChooseInitialServerEvent into a resulted event
This commit is contained in:
@@ -262,14 +262,16 @@ public class AuthSessionHandler implements MinecraftSessionHandler {
|
||||
new PlayerChooseInitialServerEvent(player, initialFromConfig.orElse(null));
|
||||
|
||||
return server.getEventManager().fire(event).thenRunAsync(() -> {
|
||||
Optional<RegisteredServer> toTry = event.getInitialServer();
|
||||
if (toTry.isEmpty()) {
|
||||
player.disconnect0(
|
||||
Component.translatable("velocity.error.no-available-servers", NamedTextColor.RED),
|
||||
true);
|
||||
final PlayerChooseInitialServerEvent.Result result = event.getResult();
|
||||
if (event.getResult() instanceof PlayerChooseInitialServerEvent.Denied(Component reason)) {
|
||||
player.disconnect0(Objects.requireNonNullElse(reason,
|
||||
Component.translatable("velocity.error.no-available-servers", NamedTextColor.RED)),
|
||||
true);
|
||||
//noinspection UnnecessaryReturnStatement
|
||||
return;
|
||||
} else if (result instanceof PlayerChooseInitialServerEvent.Allowed(RegisteredServer initialServer)) {
|
||||
player.createConnectionRequest(initialServer).fireAndForget();
|
||||
}
|
||||
player.createConnectionRequest(toTry.get()).fireAndForget();
|
||||
}, mcConnection.eventLoop());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user