Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 8 additions & 12 deletions dAuthServer/AuthServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

//Auth includes:
#include "AuthPackets.h"
#include "CommonPackets.h"
#include "ServiceType.h"
#include "MessageType/Server.h"
#include "MessageType/Auth.h"
Expand Down Expand Up @@ -164,17 +165,12 @@ int main(int argc, char** argv) {
}

void HandlePacket(Packet* packet) {
if (packet->length < 4) return;

if (packet->data[0] == ID_USER_PACKET_ENUM) {
if (static_cast<ServiceType>(packet->data[1]) == ServiceType::COMMON) {
if (static_cast<MessageType::Server>(packet->data[3]) == MessageType::Server::VERSION_CONFIRM) {
AuthPackets::HandleHandshake(Game::server, packet);
}
} else if (static_cast<ServiceType>(packet->data[1]) == ServiceType::AUTH) {
if (static_cast<MessageType::Auth>(packet->data[3]) == MessageType::Auth::LOGIN_REQUEST) {
AuthPackets::HandleLoginRequest(Game::server, packet);
}
}
CINSTREAM;
LUBitStream luBitStream;
if (!luBitStream.ReadHeader(inStream) && luBitStream.rakNetID != ID_USER_PACKET_ENUM) return;
else if (luBitStream.serviceType == ServiceType::COMMON) {
CommonPackets::Handle(inStream, packet->systemAddress);
} else if (luBitStream.serviceType == ServiceType::AUTH) {
AuthPackets::Handle(inStream, packet->systemAddress);
}
}
24 changes: 0 additions & 24 deletions dCommon/dEnums/eLoginResponse.h

This file was deleted.

24 changes: 0 additions & 24 deletions dCommon/dEnums/eServerDisconnectIdentifiers.h

This file was deleted.

7 changes: 5 additions & 2 deletions dGame/User.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
#include "Logger.h"
#include "Game.h"
#include "dZoneManager.h"
#include "eServerDisconnectIdentifiers.h"
#include "eGameMasterLevel.h"
#include "BitStreamUtils.h"
#include "MessageType/Chat.h"
#include <chrono>
#include <ctime>
#include "CommonPackets.h"

User::User(const SystemAddress& sysAddr, const std::string& username, const std::string& sessionKey) {
m_AccountID = 0;
Expand Down Expand Up @@ -132,7 +132,10 @@ void User::UserOutOfSync() {
if (m_AmountOfTimesOutOfSync > m_MaxDesyncAllowed) {
//YEET
LOG("User %s was out of sync %i times out of %i, disconnecting for suspected speedhacking.", m_Username.c_str(), m_AmountOfTimesOutOfSync, m_MaxDesyncAllowed);
Game::server->Disconnect(this->m_SystemAddress, eServerDisconnectIdentifiers::PLAY_SCHEDULE_TIME_DONE);
CommonPackets::DisconnectNotify notification;
notification.disconnectID = eServerDisconnectIdentifiers::PLAY_SCHEDULE_TIME_DONE;
notification.Send(this->m_SystemAddress);
Game::server->Disconnect(this->m_SystemAddress);
}
}

Expand Down
36 changes: 18 additions & 18 deletions dGame/dUtilities/Mail.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ namespace {
}

namespace Mail {
std::map<eMessageID, std::function<std::unique_ptr<MailLUBitStream>()>> g_Handlers = {
std::map<eMessageID, std::function<std::unique_ptr<MailClientLUBitStream>()>> g_Handlers = {
{eMessageID::SendRequest, []() {
return std::make_unique<SendRequest>();
}},
Expand All @@ -55,11 +55,11 @@ namespace Mail {
}},
};

void MailLUBitStream::Serialize(RakNet::BitStream& bitStream) const {
void MailClientLUBitStream::Serialize(RakNet::BitStream& bitStream) const {
bitStream.Write(messageID);
}

bool MailLUBitStream::Deserialize(RakNet::BitStream& bitstream) {
bool MailClientLUBitStream::Deserialize(RakNet::BitStream& bitstream) {
VALIDATE_READ(bitstream.Read(messageID));
return true;
}
Expand Down Expand Up @@ -133,16 +133,16 @@ namespace Mail {
response.status = eSendResponse::SenderAccountIsMuted;
}
LOG("Finished send with status %s", StringifiedEnum::ToString(response.status).data());
response.Send(sysAddr);
response.Send();
}

void SendResponse::Serialize(RakNet::BitStream& bitStream) const {
MailLUBitStream::Serialize(bitStream);
MailClientLUBitStream::Serialize(bitStream);
bitStream.Write(status);
}

void NotificationResponse::Serialize(RakNet::BitStream& bitStream) const {
MailLUBitStream::Serialize(bitStream);
MailClientLUBitStream::Serialize(bitStream);
bitStream.Write(status);
bitStream.Write<uint64_t>(0); // unused
bitStream.Write<uint64_t>(0); // unused
Expand All @@ -158,12 +158,12 @@ namespace Mail {
auto playerMail = Database::Get()->GetMailForPlayer(character->GetID(), 20);
DataResponse response;
response.playerMail = playerMail;
response.Send(sysAddr);
response.Send();
LOG("DataRequest");
}

void DataResponse::Serialize(RakNet::BitStream& bitStream) const {
MailLUBitStream::Serialize(bitStream);
MailClientLUBitStream::Serialize(bitStream);
bitStream.Write(this->throttled);

bitStream.Write<uint16_t>(this->playerMail.size());
Expand Down Expand Up @@ -199,11 +199,11 @@ namespace Mail {
}
}
LOG("AttachmentCollectResponse %s", StringifiedEnum::ToString(response.status).data());
response.Send(sysAddr);
response.Send();
}

void AttachmentCollectResponse::Serialize(RakNet::BitStream& bitStream) const {
MailLUBitStream::Serialize(bitStream);
MailClientLUBitStream::Serialize(bitStream);
bitStream.Write(status);
bitStream.Write(mailID);
}
Expand All @@ -230,11 +230,11 @@ namespace Mail {
response.status = eDeleteResponse::NotFound;
}
LOG("DeleteRequest status %s", StringifiedEnum::ToString(response.status).data());
response.Send(sysAddr);
response.Send();
}

void DeleteResponse::Serialize(RakNet::BitStream& bitStream) const {
MailLUBitStream::Serialize(bitStream);
MailClientLUBitStream::Serialize(bitStream);
bitStream.Write(status);
bitStream.Write(mailID);
}
Expand All @@ -256,11 +256,11 @@ namespace Mail {
}

LOG("ReadRequest %s", StringifiedEnum::ToString(response.status).data());
response.Send(sysAddr);
response.Send();
}

void ReadResponse::Serialize(RakNet::BitStream& bitStream) const {
MailLUBitStream::Serialize(bitStream);
MailClientLUBitStream::Serialize(bitStream);
bitStream.Write(status);
bitStream.Write(mailID);
}
Expand All @@ -275,13 +275,13 @@ namespace Mail {
}

LOG("NotificationRequest %s", StringifiedEnum::ToString(response.status).data());
response.Send(sysAddr);
response.Send();
}
}

// Non Stuct Functions
void Mail::HandleMail(RakNet::BitStream& inStream, const SystemAddress& sysAddr, Entity* player) {
MailLUBitStream data;
void Mail::Handle(RakNet::BitStream& inStream, const SystemAddress& sysAddr, Entity* player) {
MailClientLUBitStream data;
if (!data.Deserialize(inStream)) {
LOG_DEBUG("Error Reading Mail header");
return;
Expand Down Expand Up @@ -368,5 +368,5 @@ void Mail::SendMail(const LWOOBJID sender, const std::string& senderName, LWOOBJ
if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) return; // TODO: Echo to chat server
NotificationResponse response;
response.status = eNotificationResponse::NewMail;
response.Send(sysAddr);
response.Send();
}
59 changes: 30 additions & 29 deletions dGame/dUtilities/Mail.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
#include "dCommonVars.h"
#include "BitStreamUtils.h"
#include "MailInfo.h"
#include "MessageType/Client.h"
#include "ClientPackets.h"

class Entity;

Expand Down Expand Up @@ -103,112 +105,111 @@ namespace Mail {
UnknownError
};

struct MailLUBitStream : public LUBitStream {
struct MailClientLUBitStream : public ClientPackets::ClientLUBitStream {
eMessageID messageID = eMessageID::UnknownError;
SystemAddress sysAddr = UNASSIGNED_SYSTEM_ADDRESS;
Entity* player = nullptr;

MailLUBitStream() = default;
MailLUBitStream(eMessageID _messageID) : LUBitStream(ServiceType::CLIENT, MessageType::Client::MAIL), messageID{_messageID} {};
MailClientLUBitStream() = default;
MailClientLUBitStream(eMessageID _messageID) : ClientPackets::ClientLUBitStream(MessageType::Client::MAIL), messageID{_messageID} {};

virtual void Serialize(RakNet::BitStream& bitStream) const override;
virtual bool Deserialize(RakNet::BitStream& bitStream) override;
virtual void Handle() override {};
};

struct SendRequest : public MailLUBitStream {
struct SendRequest : public MailClientLUBitStream {
MailInfo mailInfo;

SendRequest() : MailLUBitStream(eMessageID::SendRequest) {}
SendRequest() : MailClientLUBitStream(eMessageID::SendRequest) {}
bool Deserialize(RakNet::BitStream& bitStream) override;
void Handle() override;
};

struct SendResponse :public MailLUBitStream {
struct SendResponse :public MailClientLUBitStream {
eSendResponse status = eSendResponse::UnknownError;

SendResponse() : MailLUBitStream(eMessageID::SendResponse) {}
SendResponse() : MailClientLUBitStream(eMessageID::SendResponse) {}
void Serialize(RakNet::BitStream& bitStream) const override;
};

struct NotificationResponse : public MailLUBitStream {
struct NotificationResponse : public MailClientLUBitStream {
eNotificationResponse status = eNotificationResponse::UnknownError;
LWOOBJID auctionID = LWOOBJID_EMPTY;
uint32_t mailCount = 1;
NotificationResponse() : MailLUBitStream(eMessageID::NotificationResponse) {};
NotificationResponse() : MailClientLUBitStream(eMessageID::NotificationResponse) {};
void Serialize(RakNet::BitStream& bitStream) const override;
};

struct DataRequest : public MailLUBitStream {
DataRequest() : MailLUBitStream(eMessageID::DataRequest) {}
struct DataRequest : public MailClientLUBitStream {
DataRequest() : MailClientLUBitStream(eMessageID::DataRequest) {}
bool Deserialize(RakNet::BitStream& bitStream) override { return true; };
void Handle() override;
};

struct DataResponse : public MailLUBitStream {
struct DataResponse : public MailClientLUBitStream {
uint32_t throttled = 0;
std::vector<MailInfo> playerMail;

DataResponse() : MailLUBitStream(eMessageID::DataResponse) {};
DataResponse() : MailClientLUBitStream(eMessageID::DataResponse) {};
void Serialize(RakNet::BitStream& bitStream) const override;

};

struct AttachmentCollectRequest : public MailLUBitStream {
struct AttachmentCollectRequest : public MailClientLUBitStream {
uint64_t mailID = 0;
LWOOBJID playerID = LWOOBJID_EMPTY;

AttachmentCollectRequest() : MailLUBitStream(eMessageID::AttachmentCollectRequest) {};
AttachmentCollectRequest() : MailClientLUBitStream(eMessageID::AttachmentCollectRequest) {};
bool Deserialize(RakNet::BitStream& bitStream) override;
void Handle() override;
};

struct AttachmentCollectResponse : public MailLUBitStream {
struct AttachmentCollectResponse : public MailClientLUBitStream {
eAttachmentCollectResponse status = eAttachmentCollectResponse::UnknownError;
uint64_t mailID = 0;
AttachmentCollectResponse() : MailLUBitStream(eMessageID::AttachmentCollectResponse) {};
AttachmentCollectResponse() : MailClientLUBitStream(eMessageID::AttachmentCollectResponse) {};
void Serialize(RakNet::BitStream& bitStream) const override;
};

struct DeleteRequest : public MailLUBitStream {
struct DeleteRequest : public MailClientLUBitStream {
uint64_t mailID = 0;
LWOOBJID playerID = LWOOBJID_EMPTY;

DeleteRequest() : MailLUBitStream(eMessageID::DeleteRequest) {};
DeleteRequest() : MailClientLUBitStream(eMessageID::DeleteRequest) {};
bool Deserialize(RakNet::BitStream& bitStream) override;
void Handle() override;
};

struct DeleteResponse : public MailLUBitStream {
struct DeleteResponse : public MailClientLUBitStream {
eDeleteResponse status = eDeleteResponse::UnknownError;
uint64_t mailID = 0;
DeleteResponse() : MailLUBitStream(eMessageID::DeleteResponse) {};
DeleteResponse() : MailClientLUBitStream(eMessageID::DeleteResponse) {};
void Serialize(RakNet::BitStream& bitStream) const override;
};

struct ReadRequest : public MailLUBitStream {
struct ReadRequest : public MailClientLUBitStream {
uint64_t mailID = 0;

ReadRequest() : MailLUBitStream(eMessageID::ReadRequest) {};
ReadRequest() : MailClientLUBitStream(eMessageID::ReadRequest) {};
bool Deserialize(RakNet::BitStream& bitStream) override;
void Handle() override;
};

struct ReadResponse : public MailLUBitStream {
struct ReadResponse : public MailClientLUBitStream {
uint64_t mailID = 0;
eReadResponse status = eReadResponse::UnknownError;

ReadResponse() : MailLUBitStream(eMessageID::ReadResponse) {};
ReadResponse() : MailClientLUBitStream(eMessageID::ReadResponse) {};
void Serialize(RakNet::BitStream& bitStream) const override;
};

struct NotificationRequest : public MailLUBitStream {
NotificationRequest() : MailLUBitStream(eMessageID::NotificationRequest) {};
struct NotificationRequest : public MailClientLUBitStream {
NotificationRequest() : MailClientLUBitStream(eMessageID::NotificationRequest) {};
bool Deserialize(RakNet::BitStream& bitStream) override { return true; };
void Handle() override;
};

void HandleMail(RakNet::BitStream& inStream, const SystemAddress& sysAddr, Entity* player);
void Handle(RakNet::BitStream& inStream, const SystemAddress& sysAddr, Entity* player);

void SendMail(
const Entity* recipient,
Expand Down
Loading
Loading