Skip to content

Commit e84f650

Browse files
Name request monitor events
1 parent b483bf7 commit e84f650

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

src/servers/CNLoginServer.cpp

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "servers/CNLoginServer.hpp"
2+
#include "servers/Monitor.hpp"
23

34
#include "core/CNShared.hpp"
45
#include "db/Database.hpp"
@@ -312,6 +313,16 @@ void CNLoginServer::nameSave(CNSocket* sock, CNPacketData* data) {
312313
std::cout << "[WARN] Login Server: Database failed to create new character!" << std::endl;
313314
return invalidCharacter(sock);
314315
}
316+
317+
Player plr;
318+
Database::getPlayer(&plr, (int)resp.iPC_UID);
319+
320+
// fire name check event if needed
321+
if (plr.PCStyle.iNameCheck == 0) {
322+
std::string namereq = std::to_string(resp.iPC_UID) + " " + AUTOU16TOU8(save->szFirstName) + " " + AUTOU16TOU8(save->szLastName);
323+
Monitor::namereqs.push_back(namereq);
324+
}
325+
315326
resp.iSlotNum = save->iSlotNum;
316327
resp.iGender = save->iGender;
317328

@@ -327,7 +338,9 @@ void CNLoginServer::nameSave(CNSocket* sock, CNPacketData* data) {
327338
DEBUGLOG(
328339
std::cout << "Login Server: new character created" << std::endl;
329340
std::cout << "\tSlot: " << (int)save->iSlotNum << std::endl;
330-
std::cout << "\tName: " << AUTOU16TOU8(save->szFirstName) << " " << AUTOU16TOU8(save->szLastName) << std::endl;
341+
std::cout << "\tName: " << AUTOU16TOU8(save->szFirstName) << " " << AUTOU16TOU8(save->szLastName);
342+
if (plr.PCStyle.iNameCheck == 0) std::cout << " (pending approval)";
343+
std::cout << std::endl;
331344
)
332345
}
333346

src/servers/Monitor.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ static sockaddr_in address;
1717
std::vector<std::string> Monitor::chats;
1818
std::vector<std::string> Monitor::bcasts;
1919
std::vector<std::string> Monitor::emails;
20+
std::vector<std::string> Monitor::namereqs;
2021

2122
using namespace Monitor;
2223

@@ -131,6 +132,14 @@ static void tick(CNServer *serv, time_t delta) {
131132
goto outer;
132133
}
133134

135+
// name requests
136+
for (auto& str : namereqs) {
137+
n = std::snprintf(buff, sizeof(buff), "namereq %s\n", str.c_str());
138+
139+
if (!transmit(it, buff, n))
140+
goto outer;
141+
}
142+
134143
if (!transmit(it, (char*)"end\n", 4))
135144
continue;
136145

@@ -140,6 +149,7 @@ static void tick(CNServer *serv, time_t delta) {
140149
chats.clear();
141150
bcasts.clear();
142151
emails.clear();
152+
namereqs.clear();
143153
}
144154

145155
bool Monitor::acceptConnection(SOCKET fd, uint16_t revents) {

src/servers/Monitor.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace Monitor {
66
extern std::vector<std::string> chats;
77
extern std::vector<std::string> bcasts;
88
extern std::vector<std::string> emails;
9+
extern std::vector<std::string> namereqs;
910

1011
SOCKET init();
1112
bool acceptConnection(SOCKET, uint16_t);

0 commit comments

Comments
 (0)