Merge remote-tracking branch 'origin/dev/3.0.0' into dev/3.0.0

This commit is contained in:
Andrew Steinborn
2021-06-06 03:52:03 -04:00
10 changed files with 45 additions and 10 deletions

View File

@@ -28,7 +28,6 @@ jar {
attributes 'Implementation-Version': version
attributes 'Implementation-Vendor': "Velocity Contributors"
attributes 'Multi-Release': 'true'
attributes 'Add-Opens': 'java.base/java.lang'
}
}

View File

@@ -602,6 +602,11 @@ public class VelocityServer implements ProxyServer, ForwardingAudience {
return servers.getAllServers();
}
@Override
public RegisteredServer createRawRegisteredServer(ServerInfo server) {
return servers.createRawRegisteredServer(server);
}
@Override
public RegisteredServer registerServer(ServerInfo server) {
return servers.register(server);

View File

@@ -985,7 +985,8 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
&& !connectedServer.hasCompletedJoin())) {
return Optional.of(ConnectionRequestBuilder.Status.CONNECTION_IN_PROGRESS);
}
if (connectedServer != null && connectedServer.getServer().equals(server)) {
if (connectedServer != null
&& connectedServer.getServer().getServerInfo().equals(server.getServerInfo())) {
return Optional.of(ALREADY_CONNECTED);
}
return Optional.empty();

View File

@@ -54,6 +54,17 @@ public class ServerMap {
return ImmutableList.copyOf(servers.values());
}
/**
* Creates a raw implementation of a {@link RegisteredServer} without
* tying it to the internal server map.
*
* @param serverInfo the server to create a registered server with
* @return the {@link RegisteredServer} built from the {@link ServerInfo}
*/
public RegisteredServer createRawRegisteredServer(ServerInfo serverInfo) {
return new VelocityRegisteredServer(server, serverInfo);
}
/**
* Registers a server with the proxy.
*
@@ -63,7 +74,7 @@ public class ServerMap {
public RegisteredServer register(ServerInfo serverInfo) {
Preconditions.checkNotNull(serverInfo, "serverInfo");
String lowerName = serverInfo.getName().toLowerCase(Locale.US);
VelocityRegisteredServer rs = new VelocityRegisteredServer(server, serverInfo);
RegisteredServer rs = createRawRegisteredServer(serverInfo);
RegisteredServer existing = servers.putIfAbsent(lowerName, rs);
if (existing != null && !existing.getServerInfo().equals(serverInfo)) {