geforkt von Mirrors/Velocity
Fix up some more code style issues.
Dieser Commit ist enthalten in:
Ursprung
e2389d96e9
Commit
89e51bbcb9
@ -86,7 +86,7 @@ public class ClientPlaySessionHandler implements MinecraftSessionHandler {
|
||||
@Override
|
||||
public boolean handle(ClientSettings packet) {
|
||||
player.setPlayerSettings(packet);
|
||||
return false; // will forward onto the handleGeneric below, which will write the packet to the remote server
|
||||
return false; // will forward onto the server
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -164,8 +164,7 @@ public class ClientPlaySessionHandler implements MinecraftSessionHandler {
|
||||
List<String> actuallyRegistered = new ArrayList<>();
|
||||
List<String> channels = PluginMessageUtil.getChannels(packet);
|
||||
for (String channel : channels) {
|
||||
if (knownChannels.size() >= MAX_PLUGIN_CHANNELS &&
|
||||
!knownChannels.contains(channel)) {
|
||||
if (knownChannels.size() >= MAX_PLUGIN_CHANNELS && !knownChannels.contains(channel)) {
|
||||
throw new IllegalStateException("Too many plugin message channels registered");
|
||||
}
|
||||
if (knownChannels.add(channel)) {
|
||||
|
@ -184,8 +184,8 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
|
||||
connection.write(pkt);
|
||||
return;
|
||||
} else {
|
||||
// Due to issues with action bar packets, we'll need to convert the text message into a legacy message
|
||||
// and then inject the legacy text into a component... yuck!
|
||||
// Due to issues with action bar packets, we'll need to convert the text message into a
|
||||
// legacy message and then inject the legacy text into a component... yuck!
|
||||
JsonObject object = new JsonObject();
|
||||
object.addProperty("text", ComponentSerializers.LEGACY.serialize(component));
|
||||
json = VelocityServer.GSON.toJson(object);
|
||||
@ -396,49 +396,6 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
|
||||
return server.getServer(toTryName);
|
||||
}
|
||||
|
||||
private Optional<ConnectionRequestBuilder.Status> checkServer(RegisteredServer server) {
|
||||
Preconditions
|
||||
.checkState(server instanceof VelocityRegisteredServer, "Not a valid Velocity server.");
|
||||
if (connectionInFlight != null) {
|
||||
return Optional.of(ConnectionRequestBuilder.Status.CONNECTION_IN_PROGRESS);
|
||||
}
|
||||
if (connectedServer != null && connectedServer.getServer().equals(server)) {
|
||||
return Optional.of(ConnectionRequestBuilder.Status.ALREADY_CONNECTED);
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
private CompletableFuture<ConnectionRequestBuilder.Result> connect(
|
||||
ConnectionRequestBuilderImpl request) {
|
||||
Optional<ConnectionRequestBuilder.Status> initialCheck = checkServer(request.getServer());
|
||||
if (initialCheck.isPresent()) {
|
||||
return CompletableFuture
|
||||
.completedFuture(ConnectionRequestResults.plainResult(initialCheck.get()));
|
||||
}
|
||||
|
||||
// Otherwise, initiate the connection.
|
||||
ServerPreConnectEvent event = new ServerPreConnectEvent(this, request.getServer());
|
||||
return server.getEventManager().fire(event)
|
||||
.thenCompose(newEvent -> {
|
||||
Optional<RegisteredServer> connectTo = newEvent.getResult().getServer();
|
||||
if (!connectTo.isPresent()) {
|
||||
return CompletableFuture.completedFuture(
|
||||
ConnectionRequestResults
|
||||
.plainResult(ConnectionRequestBuilder.Status.CONNECTION_CANCELLED)
|
||||
);
|
||||
}
|
||||
|
||||
RegisteredServer rs = connectTo.get();
|
||||
Optional<ConnectionRequestBuilder.Status> lastCheck = checkServer(rs);
|
||||
if (lastCheck.isPresent()) {
|
||||
return CompletableFuture
|
||||
.completedFuture(ConnectionRequestResults.plainResult(lastCheck.get()));
|
||||
}
|
||||
return new VelocityServerConnection((VelocityRegisteredServer) rs, this, server)
|
||||
.connect();
|
||||
});
|
||||
}
|
||||
|
||||
public void setConnectedServer(@Nullable VelocityServerConnection serverConnection) {
|
||||
this.connectedServer = serverConnection;
|
||||
this.tryIndex = 0; // reset since we got connected to a server
|
||||
@ -515,20 +472,58 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
|
||||
|
||||
private class ConnectionRequestBuilderImpl implements ConnectionRequestBuilder {
|
||||
|
||||
private final RegisteredServer server;
|
||||
private final RegisteredServer toConnect;
|
||||
|
||||
ConnectionRequestBuilderImpl(RegisteredServer server) {
|
||||
this.server = Preconditions.checkNotNull(server, "info");
|
||||
ConnectionRequestBuilderImpl(RegisteredServer toConnect) {
|
||||
this.toConnect = Preconditions.checkNotNull(toConnect, "info");
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisteredServer getServer() {
|
||||
return server;
|
||||
return toConnect;
|
||||
}
|
||||
|
||||
private Optional<ConnectionRequestBuilder.Status> checkServer(RegisteredServer server) {
|
||||
Preconditions
|
||||
.checkState(server instanceof VelocityRegisteredServer, "Not a valid Velocity server.");
|
||||
if (connectionInFlight != null) {
|
||||
return Optional.of(ConnectionRequestBuilder.Status.CONNECTION_IN_PROGRESS);
|
||||
}
|
||||
if (connectedServer != null && connectedServer.getServer().equals(server)) {
|
||||
return Optional.of(ConnectionRequestBuilder.Status.ALREADY_CONNECTED);
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Result> connect() {
|
||||
return ConnectedPlayer.this.connect(this);
|
||||
Optional<ConnectionRequestBuilder.Status> initialCheck = checkServer(toConnect);
|
||||
if (initialCheck.isPresent()) {
|
||||
return CompletableFuture
|
||||
.completedFuture(ConnectionRequestResults.plainResult(initialCheck.get()));
|
||||
}
|
||||
|
||||
// Otherwise, initiate the connection.
|
||||
ServerPreConnectEvent event = new ServerPreConnectEvent(ConnectedPlayer.this, toConnect);
|
||||
return server.getEventManager().fire(event)
|
||||
.thenCompose(newEvent -> {
|
||||
Optional<RegisteredServer> connectTo = newEvent.getResult().getServer();
|
||||
if (!connectTo.isPresent()) {
|
||||
return CompletableFuture.completedFuture(
|
||||
ConnectionRequestResults
|
||||
.plainResult(ConnectionRequestBuilder.Status.CONNECTION_CANCELLED)
|
||||
);
|
||||
}
|
||||
|
||||
RegisteredServer rs = connectTo.get();
|
||||
Optional<ConnectionRequestBuilder.Status> lastCheck = checkServer(rs);
|
||||
if (lastCheck.isPresent()) {
|
||||
return CompletableFuture
|
||||
.completedFuture(ConnectionRequestResults.plainResult(lastCheck.get()));
|
||||
}
|
||||
return new VelocityServerConnection((VelocityRegisteredServer) toConnect,
|
||||
ConnectedPlayer.this, server).connect();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -536,7 +531,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
|
||||
return connect()
|
||||
.whenCompleteAsync((status, throwable) -> {
|
||||
if (throwable != null) {
|
||||
handleConnectionException(server, throwable);
|
||||
handleConnectionException(toConnect, throwable);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -551,7 +546,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
|
||||
// Ignored; the plugin probably already handled this.
|
||||
break;
|
||||
case SERVER_DISCONNECTED:
|
||||
handleConnectionException(server, Disconnect.create(status.getReason()
|
||||
handleConnectionException(toConnect, Disconnect.create(status.getReason()
|
||||
.orElse(ConnectionMessages.INTERNAL_SERVER_CONNECTION_ERROR)));
|
||||
break;
|
||||
default:
|
||||
|
@ -95,22 +95,22 @@ public class HandshakeSessionHandler implements MinecraftSessionHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Determine if we're using Forge (1.8 to 1.12, may not be the case in 1.13) and store that in the connection
|
||||
// Determine if we're using Forge (1.8 to 1.12, may not be the case in 1.13).
|
||||
boolean isForge = handshake.getServerAddress().endsWith("\0FML\0");
|
||||
connection.setLegacyForge(isForge);
|
||||
|
||||
// Make sure legacy forwarding is not in use on this connection. Make sure that we do _not_ reject Forge
|
||||
// Make sure legacy forwarding is not in use on this connection. Make sure that we do _not_
|
||||
// reject Forge.
|
||||
if (handshake.getServerAddress().contains("\0") && !isForge) {
|
||||
connection.closeWith(Disconnect
|
||||
.create(TextComponent.of("Running Velocity behind Velocity is unsupported.")));
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the proxy is configured for modern forwarding, we must deny connections from 1.12.2 and lower,
|
||||
// otherwise IP information will never get forwarded.
|
||||
// If the proxy is configured for modern forwarding, we must deny connections from 1.12.2
|
||||
// and lower, otherwise IP information will never get forwarded.
|
||||
if (server.getConfiguration().getPlayerInfoForwardingMode() == PlayerInfoForwarding.MODERN
|
||||
&& handshake.getProtocolVersion() <
|
||||
ProtocolConstants.MINECRAFT_1_13) {
|
||||
&& handshake.getProtocolVersion() < ProtocolConstants.MINECRAFT_1_13) {
|
||||
connection.closeWith(Disconnect
|
||||
.create(TextComponent.of("This server is only compatible with 1.13 and above.")));
|
||||
return true;
|
||||
|
@ -133,8 +133,8 @@ public class LoginSessionHandler implements MinecraftSessionHandler {
|
||||
return;
|
||||
}
|
||||
|
||||
// Go ahead and enable encryption. Once the client sends EncryptionResponse, encryption is
|
||||
// enabled.
|
||||
// Go ahead and enable encryption. Once the client sends EncryptionResponse, encryption
|
||||
// is enabled.
|
||||
try {
|
||||
inbound.enableEncryption(decryptedSharedSecret);
|
||||
} catch (GeneralSecurityException e) {
|
||||
@ -146,8 +146,7 @@ public class LoginSessionHandler implements MinecraftSessionHandler {
|
||||
initializePlayer(
|
||||
VelocityServer.GSON.fromJson(profileResponse.getBody(), GameProfile.class), true);
|
||||
} else if (profileResponse.getCode() == 204) {
|
||||
// Apparently an offline-mode user logged onto this online-mode proxy. The client has enabled
|
||||
// encryption, so we need to do that as well.
|
||||
// Apparently an offline-mode user logged onto this online-mode proxy.
|
||||
logger.warn("An offline-mode client ({} from {}) tried to connect!",
|
||||
login.getUsername(), playerIp);
|
||||
inbound.closeWith(Disconnect.create(TextComponent
|
||||
|
@ -41,8 +41,8 @@ public class NettyHttpClient {
|
||||
|
||||
@Override
|
||||
public void channelAcquired(Channel channel) throws Exception {
|
||||
// We don't do anything special when acquiring channels. The channel handler cleans up after
|
||||
// each connection is used.
|
||||
// We don't do anything special when acquiring channels. The channel handler cleans up
|
||||
// after each connection is used.
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -59,6 +59,11 @@ public class NettyHttpClient {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempts an HTTP GET request to the specified URL.
|
||||
* @param url the URL to fetch
|
||||
* @return a future representing the response
|
||||
*/
|
||||
public CompletableFuture<SimpleHttpResponse> get(URL url) {
|
||||
String host = url.getHost();
|
||||
int port = url.getPort();
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren