1er commit

This commit is contained in:
2021-08-21 10:14:47 +02:00
commit a99ecf7c2d
99 changed files with 66605 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
#include "protocol/PacketFactory.h"
#include <map>
#include <functional>
namespace td {
namespace protocol {
namespace PacketFactory{
using PacketCreator = std::function<Packet*()>;
static std::map<PacketType, PacketCreator> packets = {
{PacketType::PlayerLogin, []() -> Packet* {return new PlayerLoginPacket();} },
{PacketType::WorldBeginData, []() -> Packet* {return new WorldBeginDataPacket();} },
{PacketType::WorldData, []() -> Packet* {return new WorldDataPacket();} },
{PacketType::KeepAlive, []() -> Packet* {return new KeepAlivePacket();} },
{PacketType::UpdateMoney, []() -> Packet* {return new UpdateMoneyPacket();} },
{PacketType::UpdateEXP, []() -> Packet* {return new UpdateExpPacket();} },
{PacketType::UpdateLobbyTime, []() -> Packet* {return new UpdateLobbyTimePacket(); } },
{PacketType::UpdateGameState, []() -> Packet* {return new UpdateGameStatePacket(); } },
{PacketType::PlayerList, []() -> Packet* {return new PlayerListPacket(); } },
{PacketType::PlayerJoin, []() -> Packet* {return new PlayerJoinPacket(); } },
{PacketType::PlayerLeave, []() -> Packet* {return new PlayerLeavePacket(); } },
{PacketType::ConnectionInfo, []() -> Packet* {return new ConnexionInfoPacket(); } },
{PacketType::SelectTeam, []() -> Packet* {return new SelectTeamPacket(); } },
{PacketType::UpdatePlayerTeam, []() -> Packet* {return new UpdatePlayerTeamPacket(); } },
{PacketType::Disconnect, []() -> Packet* {return new DisconnectPacket(); } },
{PacketType::ServerTps, []() -> Packet* {return new ServerTpsPacket(); } },
{PacketType::SpawnMob, []() -> Packet* {return new SpawnMobPacket(); } },
};
Packet* createPacket(PacketType type, DataBuffer& buffer){
Packet* packet = packets[type]();
packet->Deserialize(buffer);
return packet;
}
}
} // namespace protocol
} // namespace td