mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Forcibly disconnect players even if no server target was set in the JavaTransferEvent
This commit is contained in:
parent
91a74603c7
commit
f67c131b8d
4 changed files with 69 additions and 2 deletions
|
@ -27,9 +27,11 @@ package org.geysermc.geyser.translator.protocol.java.entity.player;
|
|||
|
||||
import org.geysermc.geyser.session.GeyserSession;
|
||||
import org.geysermc.geyser.translator.protocol.PacketTranslator;
|
||||
import org.geysermc.geyser.translator.protocol.Translator;
|
||||
import org.geysermc.mcprotocollib.protocol.packet.common.clientbound.ClientboundCookieRequestPacket;
|
||||
import org.geysermc.mcprotocollib.protocol.packet.common.clientbound.ServerboundCookieResponsePacket;
|
||||
|
||||
@Translator(packet = ClientboundCookieRequestPacket.class)
|
||||
public class JavaCookieRequestTranslator extends PacketTranslator<ClientboundCookieRequestPacket> {
|
||||
@Override
|
||||
public void translate(GeyserSession session, ClientboundCookieRequestPacket packet) {
|
||||
|
|
|
@ -27,8 +27,10 @@ package org.geysermc.geyser.translator.protocol.java.entity.player;
|
|||
|
||||
import org.geysermc.geyser.session.GeyserSession;
|
||||
import org.geysermc.geyser.translator.protocol.PacketTranslator;
|
||||
import org.geysermc.geyser.translator.protocol.Translator;
|
||||
import org.geysermc.mcprotocollib.protocol.packet.common.clientbound.ClientboundStoreCookiePacket;
|
||||
|
||||
@Translator(packet = ClientboundStoreCookiePacket.class)
|
||||
public class JavaStoreCookieTranslator extends PacketTranslator<ClientboundStoreCookiePacket> {
|
||||
@Override
|
||||
public void translate(GeyserSession session, ClientboundStoreCookiePacket packet) {
|
||||
|
|
|
@ -28,16 +28,27 @@ package org.geysermc.geyser.translator.protocol.java.entity.player;
|
|||
import org.geysermc.geyser.GeyserImpl;
|
||||
import org.geysermc.geyser.api.event.java.ServerTransferEvent;
|
||||
import org.geysermc.geyser.session.GeyserSession;
|
||||
import org.geysermc.geyser.text.MinecraftLocale;
|
||||
import org.geysermc.geyser.translator.protocol.PacketTranslator;
|
||||
import org.geysermc.geyser.translator.protocol.Translator;
|
||||
import org.geysermc.mcprotocollib.protocol.packet.common.clientbound.ClientboundTransferPacket;
|
||||
|
||||
@Translator(packet = ClientboundTransferPacket.class)
|
||||
public class JavaTransferPacketTranslator extends PacketTranslator<ClientboundTransferPacket> {
|
||||
@Override
|
||||
public void translate(GeyserSession session, ClientboundTransferPacket packet) {
|
||||
GeyserImpl.getInstance().eventBus().fire(new ServerTransferEvent(
|
||||
ServerTransferEvent event = new ServerTransferEvent(
|
||||
session,
|
||||
packet.getHost(),
|
||||
packet.getPort(),
|
||||
session.getCookies()));
|
||||
session.getCookies());
|
||||
|
||||
GeyserImpl.getInstance().eventBus().fire(event);
|
||||
|
||||
if (event.bedrockHost() != null && !event.bedrockHost().isBlank() && event.bedrockPort() != -1) {
|
||||
session.transfer(event.bedrockHost(), event.bedrockPort());
|
||||
} else {
|
||||
session.disconnect(MinecraftLocale.getLocaleString("disconnect.transfer", session.locale()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue