49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
#include "game/client/ClientConnexion.h"
|
|
#include "render/WorldRenderer.h"
|
|
|
|
namespace td {
|
|
namespace client {
|
|
|
|
ClientConnexion::ClientConnexion() : Connexion(&m_Dispatcher) {
|
|
registerHandlers();
|
|
}
|
|
|
|
void ClientConnexion::registerHandlers() {
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::KeepAlive, this);
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::ConnectionInfo, this);
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::Disconnect, this);
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::ServerTps, this);
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::KeepAlivePacket* packet) {
|
|
protocol::KeepAlivePacket keepAlivePacket(packet->getAliveID());
|
|
sendPacket(&keepAlivePacket);
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::ConnexionInfoPacket* packet) {
|
|
m_ConnectionID = packet->getConnectionID();
|
|
login();
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::ServerTpsPacket* packet) {
|
|
m_ServerTPS = packet->getTPS();
|
|
m_Ping = utils::getTime() - packet->getPacketSendTime();
|
|
}
|
|
|
|
void ClientConnexion::login() {
|
|
td::protocol::PlayerLoginPacket loginPacket("Persson" + std::to_string(m_ConnectionID));
|
|
sendPacket(&loginPacket);
|
|
}
|
|
|
|
bool ClientConnexion::updateSocket() {
|
|
return Connexion::updateSocket();
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::DisconnectPacket* packet) {
|
|
m_DisconnectReason = packet->getReason();
|
|
closeConnection();
|
|
}
|
|
|
|
} // namespace client
|
|
} // namespace td
|