2020-07-24 10:17:36 +01:00
|
|
|
#pragma once
|
|
|
|
|
2020-07-31 02:53:40 +01:00
|
|
|
#include "MinecraftClient.h"
|
|
|
|
#include "ServerStatus.h"
|
2020-11-07 01:18:39 +00:00
|
|
|
#include "config/ServerProperties.h"
|
|
|
|
|
2020-08-03 06:07:32 +01:00
|
|
|
#include "protocol/Protocol.h"
|
2020-08-06 02:16:28 +01:00
|
|
|
#include "PacketReader.h"
|
2020-08-23 02:41:07 +01:00
|
|
|
//#include "JobManager.h"
|
2020-07-31 02:53:40 +01:00
|
|
|
|
2020-08-07 05:48:54 +01:00
|
|
|
#include "world/WorldManager.h"
|
|
|
|
|
2020-07-29 01:46:31 +01:00
|
|
|
#include "network/IListenerInterface.h"
|
2020-07-24 10:17:36 +01:00
|
|
|
|
|
|
|
namespace Feather
|
|
|
|
{
|
2020-07-29 01:46:31 +01:00
|
|
|
class DedicatedServer final : public Network::IListenerInterface
|
2020-07-24 10:17:36 +01:00
|
|
|
{
|
|
|
|
public:
|
2020-11-07 01:18:39 +00:00
|
|
|
DedicatedServer(Config::ServerProperties* properties);
|
2020-07-24 10:17:36 +01:00
|
|
|
~DedicatedServer();
|
2020-07-29 01:46:31 +01:00
|
|
|
|
2020-08-01 04:38:20 +01:00
|
|
|
void OnClientConnect(Network::TCPClientHandle&& client) override;
|
2020-08-01 04:54:31 +01:00
|
|
|
void OnClientDisconnect(const Network::TCPClient* client) override;
|
2020-07-29 01:46:31 +01:00
|
|
|
|
2020-08-03 06:07:32 +01:00
|
|
|
void HandleLegacyPing(MinecraftClient& client);
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
void HandlePacket(MinecraftClient& client, const T& message);
|
2020-08-01 02:36:29 +01:00
|
|
|
|
2020-08-06 02:16:28 +01:00
|
|
|
void HandleUnknownPacket(MinecraftClient& client, int32_t id, const PacketReader& packet);
|
|
|
|
|
2020-07-24 10:17:36 +01:00
|
|
|
private:
|
2020-11-07 01:18:39 +00:00
|
|
|
Config::ServerProperties* m_properties;
|
2020-07-25 03:01:16 +01:00
|
|
|
Network::TCPListener m_listener;
|
2020-07-31 02:53:40 +01:00
|
|
|
ServerStatus m_status;
|
2020-07-29 01:46:31 +01:00
|
|
|
|
2020-07-31 02:53:40 +01:00
|
|
|
LockableList<MinecraftClient> m_clients;
|
2020-08-07 05:48:54 +01:00
|
|
|
|
|
|
|
WorldManager m_worldManager;
|
2020-08-23 02:41:07 +01:00
|
|
|
//JobRunner m_jobRunner;
|
2020-07-24 10:17:36 +01:00
|
|
|
};
|
|
|
|
}
|