mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-11-25 22:40:16 +00:00
Save connected players to DB when gracefully terminating the server.
This commit is contained in:
parent
8a144a359f
commit
35a2110698
@ -47,9 +47,13 @@ void CNShardServer::keepAliveTimer(CNServer* serv, time_t currTime) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CNShardServer::periodicSaveTimer(CNServer* serv, time_t currTime) {
|
void CNShardServer::periodicSaveTimer(CNServer* serv, time_t currTime) {
|
||||||
|
std::cout << "[INFO] Saving players to DB..." << std::endl;
|
||||||
|
|
||||||
for (auto& pair : PlayerManager::players) {
|
for (auto& pair : PlayerManager::players) {
|
||||||
Database::updatePlayer(pair.second.plr);
|
Database::updatePlayer(pair.second.plr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::cout << "[INFO] Done." << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CNShardServer::newConnection(CNSocket* cns) {
|
void CNShardServer::newConnection(CNSocket* cns) {
|
||||||
@ -85,6 +89,12 @@ void CNShardServer::killConnection(CNSocket *cns) {
|
|||||||
_killConnection(cns);
|
_killConnection(cns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// flush the DB when terminating the server
|
||||||
|
void CNShardServer::kill() {
|
||||||
|
periodicSaveTimer(nullptr, 0);
|
||||||
|
CNServer::kill();
|
||||||
|
}
|
||||||
|
|
||||||
void CNShardServer::onStep() {
|
void CNShardServer::onStep() {
|
||||||
time_t currTime = getTime();
|
time_t currTime = getTime();
|
||||||
|
|
||||||
|
@ -25,5 +25,6 @@ public:
|
|||||||
|
|
||||||
void newConnection(CNSocket* cns);
|
void newConnection(CNSocket* cns);
|
||||||
void killConnection(CNSocket* cns);
|
void killConnection(CNSocket* cns);
|
||||||
|
void kill();
|
||||||
void onStep();
|
void onStep();
|
||||||
};
|
};
|
||||||
|
@ -244,7 +244,6 @@ void TableData::loadPaths(int* nextId) {
|
|||||||
auto sliderPoint = _sliderPoint.value();
|
auto sliderPoint = _sliderPoint.value();
|
||||||
if (sliderPoint["stop"] && sliders % 2 == 0) { // check if this point in the circuit is a stop
|
if (sliderPoint["stop"] && sliders % 2 == 0) { // check if this point in the circuit is a stop
|
||||||
// spawn a slider
|
// spawn a slider
|
||||||
std::cout << "bus ID was " << *nextId << std::endl;
|
|
||||||
BaseNPC* slider = new BaseNPC(sliderPoint["iX"], sliderPoint["iY"], sliderPoint["iZ"], 1, (*nextId)++, NPC_BUS);
|
BaseNPC* slider = new BaseNPC(sliderPoint["iX"], sliderPoint["iY"], sliderPoint["iZ"], 1, (*nextId)++, NPC_BUS);
|
||||||
NPCManager::NPCs[slider->appearanceData.iNPC_ID] = slider;
|
NPCManager::NPCs[slider->appearanceData.iNPC_ID] = slider;
|
||||||
NPCManager::updateNPCPosition(slider->appearanceData.iNPC_ID, slider->appearanceData.iX, slider->appearanceData.iY, slider->appearanceData.iZ);
|
NPCManager::updateNPCPosition(slider->appearanceData.iNPC_ID, slider->appearanceData.iX, slider->appearanceData.iY, slider->appearanceData.iZ);
|
||||||
|
Loading…
Reference in New Issue
Block a user