DarkflameServer/dGame/dUtilities/Mail.h
2022-07-28 08:39:57 -05:00

96 lines
2.6 KiB
C++

#pragma once
#include "BitStream.h"
#include "RakNetTypes.h"
#include "dCommonVars.h"
class Entity;
namespace Mail {
enum class MailMessageID {
Send = 0x00,
SendResponse = 0x01,
DataRequest = 0x03,
MailData = 0x04,
AttachmentCollect = 0x05,
AttachmentCollectConfirm = 0x06,
MailDelete = 0x07,
MailDeleteConfirm = 0x08,
MailRead = 0x09,
MailReadConfirm = 0x0a,
NotificationRequest = 0x0b
};
enum class MailSendResponse {
Success = 0,
NotEnoughCoins,
AttachmentNotFound,
ItemCannotBeMailed,
CannotMailSelf,
RecipientNotFound,
DifferentFaction,
Unknown,
ModerationFailure,
AccountIsMuted,
UnknownFailure,
RecipientIsIgnored,
UnknownFailure3,
RecipientIsFTP
};
const std::string ServerName = "Darkflame Universe";
void SendMail(
const Entity* recipient,
const std::string& subject,
const std::string& body,
LOT attachment,
uint16_t attachmentCount
);
void SendMail(
LWOOBJID recipient,
const std::string& recipientName,
const std::string& subject,
const std::string& body,
LOT attachment,
uint16_t attachmentCount,
const SystemAddress& sysAddr
);
void SendMail(
LWOOBJID sender,
const std::string& senderName,
const Entity* recipient,
const std::string& subject,
const std::string& body,
LOT attachment,
uint16_t attachmentCount
);
void SendMail(
LWOOBJID sender,
const std::string& senderName,
LWOOBJID recipient,
const std::string& recipientName,
const std::string& subject,
const std::string& body,
LOT attachment,
uint16_t attachmentCount,
const SystemAddress& sysAddr
);
void HandleMailStuff(RakNet::BitStream* packet, const SystemAddress& sysAddr, Entity* entity);
void HandleSendMail(RakNet::BitStream* packet, const SystemAddress& sysAddr, Entity* entity);
void HandleDataRequest(RakNet::BitStream* packet, const SystemAddress& sysAddr, Entity* player);
void HandleAttachmentCollect(RakNet::BitStream* packet, const SystemAddress& sysAddr, Entity* player);
void HandleMailDelete(RakNet::BitStream* packet, const SystemAddress& sysAddr);
void HandleMailRead(RakNet::BitStream* packet, const SystemAddress& sysAddr);
void HandleNotificationRequest(const SystemAddress& sysAddr, uint32_t objectID);
void SendSendResponse(const SystemAddress& sysAddr, MailSendResponse response);
void SendNotification(const SystemAddress& sysAddr, int mailCount);
void SendAttachmentRemoveConfirm(const SystemAddress& sysAddr, uint64_t mailID);
void SendDeleteConfirm(const SystemAddress& sysAddr, uint64_t mailID, LWOOBJID playerID);
void SendReadConfirm(const SystemAddress& sysAddr, uint64_t mailID);
};