ServerRedirect works when connected to vanilla
This commit is contained in:
parent
6983b7abf1
commit
14c23af7c2
|
|
@ -128,7 +128,8 @@ public enum VelocityForgeClientConnectionPhase implements ClientConnectionPhase
|
||||||
Ambassador.getInstance().config.getServerSwitchCancellationTime(), TimeUnit.SECONDS);
|
Ambassador.getInstance().config.getServerSwitchCancellationTime(), TimeUnit.SECONDS);
|
||||||
//Disconnect - Reset
|
//Disconnect - Reset
|
||||||
if(player.getModInfo().isPresent()
|
if(player.getModInfo().isPresent()
|
||||||
&& player.getModInfo().get().getMods().stream().anyMatch((mod -> mod.getId().equals("serverredirect")))
|
&& player.getModInfo().get().getMods().stream().anyMatch((mod -> mod.getId().equals("serverredirect")
|
||||||
|
|| mod.getId().equals("srvredirect:red")))
|
||||||
&& player.getVirtualHost().isPresent()) {
|
&& player.getVirtualHost().isPresent()) {
|
||||||
ByteBuf buf = Unpooled.buffer();
|
ByteBuf buf = Unpooled.buffer();
|
||||||
ProtocolUtils.writeVarInt(buf, 0);
|
ProtocolUtils.writeVarInt(buf, 0);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import com.velocitypowered.api.event.connection.LoginEvent;
|
||||||
import com.velocitypowered.api.event.connection.PostLoginEvent;
|
import com.velocitypowered.api.event.connection.PostLoginEvent;
|
||||||
import com.velocitypowered.api.event.player.*;
|
import com.velocitypowered.api.event.player.*;
|
||||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||||
|
import com.velocitypowered.api.util.ModInfo;
|
||||||
import com.velocitypowered.proxy.VelocityServer;
|
import com.velocitypowered.proxy.VelocityServer;
|
||||||
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
|
||||||
import com.velocitypowered.proxy.network.Connections;
|
import com.velocitypowered.proxy.network.Connections;
|
||||||
|
|
@ -14,6 +15,7 @@ import com.velocitypowered.proxy.protocol.StateRegistry;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.adde0109.ambassador.Ambassador;
|
import org.adde0109.ambassador.Ambassador;
|
||||||
import org.adde0109.ambassador.forge.ForgeConstants;
|
import org.adde0109.ambassador.forge.ForgeConstants;
|
||||||
|
import org.adde0109.ambassador.forge.ForgeFMLConnectionType;
|
||||||
import org.adde0109.ambassador.forge.VelocityForgeClientConnectionPhase;
|
import org.adde0109.ambassador.forge.VelocityForgeClientConnectionPhase;
|
||||||
import org.adde0109.ambassador.forge.pipeline.ForgeLoginWrapperDecoder;
|
import org.adde0109.ambassador.forge.pipeline.ForgeLoginWrapperDecoder;
|
||||||
import org.adde0109.ambassador.forge.pipeline.ForgeLoginWrapperHandler;
|
import org.adde0109.ambassador.forge.pipeline.ForgeLoginWrapperHandler;
|
||||||
|
|
@ -67,4 +69,15 @@ public class VelocityEventHandler {
|
||||||
continuation.resume();
|
continuation.resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onPlayerChannelRegisterEvent(PlayerChannelRegisterEvent event) {
|
||||||
|
ConnectedPlayer player = (ConnectedPlayer) event.getPlayer();
|
||||||
|
if (!(player.getConnection().getType() instanceof ForgeFMLConnectionType)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
player.setModInfo(new ModInfo("Channels", event.getChannels().stream().map((id) -> {
|
||||||
|
return new ModInfo.Mod(id.getId(), "");
|
||||||
|
}).toList()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user