commit 497a601c424e8e728ef0a8e61f049982f2d4af16 Author: Persson-dev <sim16.prib@gmail.com> Date: Sat Aug 12 10:32:52 2023 +0200 fix warning commit 1bfd019a1ea00dcdb6323d1f285e2cdd3ebb4020 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:05:13 2023 +0200 refactor: update cast commit 5bbc23a7d37e53eb74a885685f18e714f9448fd9 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:04:15 2023 +0200 moved GetImguiTeamColor commit fd0e2d2470ea5cca3553acf280aa371de5c06f4c Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:03:37 2023 +0200 packets forward declaration commit 06eb9b99a96731f4b9a2167c00ed0bcd03702e3b Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 18:30:55 2023 +0200 remove Protocol.h includes commit 165f63d2e8b468f3e38992baddc221270010f801 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 18:30:30 2023 +0200 split packets into separate source files commit f247f146c6c1e804a44b86f65cf3059859c07c6c Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 17:45:24 2023 +0200 split packets into separate headers
56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
#include "game/client/ClientConnexion.h"
|
|
#include "render/WorldRenderer.h"
|
|
|
|
#include "protocol/packets/ConnectionInfoPacket.h"
|
|
#include "protocol/packets/DisconnectPacket.h"
|
|
#include "protocol/packets/KeepAlivePacket.h"
|
|
#include "protocol/packets/PlayerLoginPacket.h"
|
|
#include "protocol/packets/ServerTpsPacket.h"
|
|
|
|
namespace td {
|
|
namespace client {
|
|
|
|
ClientConnexion::ClientConnexion() : Connexion(&m_Dispatcher), m_ServerTPS(0) {
|
|
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_ServerMSPT = packet->GetMSPT();
|
|
m_Ping = utils::GetTime() - packet->GetPacketSendTime();
|
|
}
|
|
|
|
void ClientConnexion::Login() {
|
|
td::protocol::PlayerLoginPacket loginPacket("Persson" + std::to_string(static_cast<unsigned int>(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
|