MCPcopy Create free account
hub / github.com/EQEmu/EQEmu / ProcessMessage

Method ProcessMessage

ucs/worldserver.cpp:62–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60}
61
62void WorldServer::ProcessMessage(uint16 opcode, EQ::Net::Packet &p)
63{
64 ServerPacket tpack(opcode, p);
65 ServerPacket *pack = &tpack;
66
67 LogNetcode("Received Opcode: {:#04x}", opcode);
68
69 switch (opcode)
70 {
71 case 0: {
72 break;
73 }
74 case ServerOP_KeepAlive:
75 {
76 break;
77 }
78 case ServerOP_ServerReloadRequest: {
79 auto o = (ServerReload::Request*) pack->pBuffer;
80 if (o->type == ServerReload::Type::Logs) {
81 EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
82 PlayerEventLogs::Instance()->ReloadSettings();
83 }
84
85 break;
86 }
87 case ServerOP_PlayerEvent: {
88 auto n = PlayerEvent::PlayerEventContainer{};
89 auto s = (ServerSendPlayerEvent_Struct*) pack->pBuffer;
90 EQ::Util::MemoryStreamReader ss(s->cereal_data, s->cereal_size);
91 cereal::BinaryInputArchive archive(ss);
92 archive(n);
93
94 DiscordManager::Instance()->QueuePlayerEventMessage(n);
95
96 break;
97 }
98 case ServerOP_DiscordWebhookMessage: {
99 auto *q = (DiscordWebhookMessage_Struct *) p.Data();
100
101 DiscordManager::Instance()->QueueWebhookMessage(
102 q->webhook_id,
103 q->message
104 );
105
106 break;
107 }
108 case ServerOP_UCSMessage:
109 {
110 char *Buffer = (char *)pack->pBuffer;
111
112 auto From = new char[strlen(Buffer) + 1];
113
114 VARSTRUCT_DECODE_STRING(From, Buffer);
115
116 std::string Message = Buffer;
117
118 LogInfo("Player: [{}], Sent Message: [{}]", From, Message.c_str());
119

Callers

nothing calls this directly

Calls 15

Client45ToServerSayLinkFunction · 0.85
Client50ToServerSayLinkFunction · 0.85
Client55ToServerSayLinkFunction · 0.85
stringFunction · 0.85
ReloadSettingsMethod · 0.80
QueueWebhookMessageMethod · 0.80
ProcessOPMailCommandMethod · 0.80
DataMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected