This commit is contained in:
Adrian Bergqvist 2023-03-26 19:56:49 +02:00
parent dbd5e36311
commit 7894acd9f1
No known key found for this signature in database
GPG Key ID: FAE7D8EDE225E686
5 changed files with 1 additions and 114 deletions

@ -1 +1 @@
Subproject commit c7ba5255e3b0170a0e7183f3a38927931de34a03
Subproject commit f744b37ad5c7b6f00ca01681f26b75cad2584b7e

View File

@ -1,49 +0,0 @@
package org.adde0109.ambassador.forge;
public class FML2ClientConnectionPhase {
/*
@Override
public RegisteredServer chooseServer(ConnectedPlayer player) {
forced = Ambassador.getTemporaryForced().remove(player.getUsername());
return forced;
}
@Override
public CompletableFuture<Boolean> reset(RegisteredServer server, ConnectedPlayer player) {
FML2CRPMClientConnectionPhase newPhase = new FML2CRPMClientConnectionPhase(clientPhase,getPayloadManager());
player.setPhase(newPhase);
CompletableFuture<Boolean> future = newPhase.reset(server,player);
future.thenAccept(success -> {
if (!success) {
Ambassador.getTemporaryForced().put(player.getUsername(),server, Ambassador.getInstance().config.getServerSwitchCancellationTime(), TimeUnit.SECONDS);
player.disconnect(Component.text(Ambassador.getInstance().config.getDisconnectResetMessage()));
}
});
return future;
}
/*
public void handleForward(VelocityServerConnection serverConnection, LoginPluginMessage payload) {
final ByteBuf buf = payload.content().duplicate();
ProtocolUtils.readString(buf); //Channel
ProtocolUtils.readVarInt(buf); //Length
if (ProtocolUtils.readVarInt(buf) == 1) {
getPayloadManager().listenFor(payload.getId()).thenAccept(rawResponse -> {
final ByteBuf response = rawResponse.duplicate();
ProtocolUtils.readString(response); //Channel
ProtocolUtils.readVarInt(response); //Length
if (ProtocolUtils.readVarInt(response) == 2) {
String[] mods = ProtocolUtils.readStringArray(response);
if (Arrays.stream(mods).anyMatch(s -> s.equals("clientresetpacket"))) {
serverConnection.getPlayer().setPhase(new FML2CRPMClientConnectionPhase(clientPhase,getPayloadManager()));
}
}
});
}
}
*/
}

View File

@ -1,6 +1,5 @@
package org.adde0109.ambassador.forge;
import com.velocitypowered.api.proxy.messages.ChannelIdentifier;
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import com.velocitypowered.proxy.VelocityServer;
@ -52,7 +51,6 @@ public enum VelocityForgeClientConnectionPhase implements ClientConnectionPhase
connection.getChannel().pipeline().addBefore(Connections.MINECRAFT_DECODER, ForgeConstants.RESET_LISTENER,new FML2CRPMResetCompleteDecoder());
connection.getChannel().pipeline().addAfter(Connections.MINECRAFT_ENCODER, ForgeConstants.FORGE_HANDSHAKE_HOLDER,new OutboundForgeHandshakeHolder());
//player.getConnection().setSessionHandler(new VelocityForgeHandshakeSessionHandler(player.getConnection().getSessionHandler(),player));
connection.write(new PluginMessage("fml:handshake", Unpooled.wrappedBuffer(ForgeHandshakeUtils.generatePluginResetPacket())));
@ -136,15 +134,4 @@ public enum VelocityForgeClientConnectionPhase implements ClientConnectionPhase
}
/*
public void handleKick(KickedFromServerEvent event) {
//If kicked before the client has entered PLAY and has been reset.
if (lastKnownWorking != null && !(event.getResult() instanceof KickedFromServerEvent.RedirectPlayer)) {
net.kyori.adventure.text.Component reason = event.getServerKickReason().orElse(null);
event.setResult(KickedFromServerEvent.RedirectPlayer.create(lastKnownWorking,reason));
lastKnownWorking = null;
}
}
*/
}

View File

@ -42,16 +42,6 @@ public class VelocityEventHandler {
continuation.resume();
}
@Subscribe
public void onPostLoginEvent(PostLoginEvent event, Continuation continuation) {
ConnectedPlayer player = (ConnectedPlayer) event.getPlayer();
if (player.getPhase() instanceof VelocityForgeClientConnectionPhase phase) {
//VelocityForgeHandshakeSessionHandler sessionHandler = new VelocityForgeHandshakeSessionHandler(player.getConnection().getSessionHandler(), player);
//player.getConnection().eventLoop().submit(() -> player.getConnection().setSessionHandler(sessionHandler));
}
continuation.resume();
}
@Subscribe(order = PostOrder.LAST)
public void onPlayerChooseInitialServerEvent(PlayerChooseInitialServerEvent event, Continuation continuation) {
ConnectedPlayer player = (ConnectedPlayer) event.getPlayer();

View File

@ -1,41 +0,0 @@
package org.adde0109.ambassador.velocity.client;
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
import com.velocitypowered.proxy.protocol.packet.LoginPluginResponse;
import io.netty.buffer.ByteBuf;
import org.adde0109.ambassador.forge.VelocityForgeClientConnectionPhase;
public class VelocityForgeHandshakeSessionHandler implements MinecraftSessionHandler {
/*private final MinecraftSessionHandler original;
private final ConnectedPlayer player;
public VelocityForgeHandshakeSessionHandler(MinecraftSessionHandler original, ConnectedPlayer player) {
this.original = original;
this.player = player;
}
@Override
public boolean handle(LoginPluginResponse packet) {
if (player.getPhase() instanceof VelocityForgeClientConnectionPhase phase) {
if (phase.handle(player,packet,player.getConnectionInFlight())) {
return true;
}
}
return original.handle(packet);
}
@Override
public void handleUnknown(ByteBuf buf) {
original.handleUnknown(buf);
}
@Override
public void disconnected() {
original.disconnected();
}
public MinecraftSessionHandler getOriginal() {
return this.original;
}
*/
}