adjusting GetPlayerCount to GetActiveAndQueuedSessionCount

This commit is contained in:
Flerp 2025-11-15 18:21:24 -08:00
parent a37d449977
commit 8177d4a310

View File

@ -2,20 +2,21 @@
#include "Config.h"
#include "World.h"
#include "Player.h"
#include "WorldSessionMgr.h"
namespace
{
bool sEnabled = true;
uint32 sIntervalIdle = 200u;
uint32 sIntervalActive = 10u;
uint32 sPlayersOnline = 0u;
void ApplyInterval()
{
if (!sEnabled)
return;
uint32 newInterval = (sPlayersOnline > 0) ? sIntervalActive : sIntervalIdle;
bool hasRealPlayer = sWorldSessionMgr->GetActiveAndQueuedSessionCount() > 0;
uint32 newInterval = hasRealPlayer ? sIntervalActive : sIntervalIdle;
sWorld->setIntConfig(CONFIG_INTERVAL_MAPUPDATE, newInterval);
}
}
@ -36,7 +37,6 @@ public:
if (sIntervalActive == 0u)
sIntervalActive = 1u;
sPlayersOnline = sWorld->GetPlayerCount();
ApplyInterval();
}
};
@ -48,21 +48,11 @@ public:
void OnLogin(Player*) override
{
if (!sEnabled)
return;
++sPlayersOnline;
ApplyInterval();
}
void OnLogout(Player*) override
{
if (!sEnabled)
return;
if (sPlayersOnline > 0)
--sPlayersOnline;
ApplyInterval();
}
};