tcr/server/src/server/network/HandshakeHandler.java
2025-05-07 18:19:24 +02:00

49 lines
1.5 KiB
Java
Executable file

package server.network;
import common.init.Config;
import common.network.IHandshakeHandler;
import common.network.NetConnection;
import common.network.NetHandler;
import common.network.PacketRegistry;
import common.packet.HPacketHandshake;
import common.packet.RPacketDisconnect;
import server.Server;
public class HandshakeHandler extends NetHandler implements IHandshakeHandler
{
private final Server server;
private final NetConnection networkManager;
public HandshakeHandler(Server serverIn, NetConnection netManager)
{
this.server = serverIn;
this.networkManager = netManager;
}
public void onDisconnect(String reason)
{
}
public void processHandshake(HPacketHandshake packetIn)
{
if(packetIn.getProtocolVersion() == 0) {
this.networkManager.closeChannel("Inkompatibel!");
return;
}
this.networkManager.setConnectionState(PacketRegistry.LOGIN);
if (packetIn.getProtocolVersion() != Config.PROTOCOL)
{
String comp;
if(packetIn.getProtocolVersion() < Config.PROTOCOL)
comp = "Der Server nutzt eine neuere Version: " + Config.VERSION;
else
comp = "Der Server nutzt eine ältere Version: " + Config.VERSION;
this.networkManager.sendPacket(new RPacketDisconnect(comp));
this.networkManager.closeChannel(comp);
}
else
{
this.networkManager.setNetHandler(new LoginHandler(this.server, this.networkManager));
}
}
}