TrinityCore
Loading...
Searching...
No Matches
World Class Reference

The World. More...

#include <World.h>

Public Types

typedef std::list< WorldSession * > Queue
 

Public Member Functions

WorldSessionFindSession (uint32 id) const
 Find a session by its id.
 
void AddSession (WorldSession *s)
 
void SendAutoBroadcast ()
 
bool RemoveSession (uint32 id)
 Remove a given session.
 
void UpdateMaxSessionCounters ()
 Get the number of current active sessions.
 
SessionMap const & GetAllSessions () const
 
uint32 GetActiveAndQueuedSessionCount () const
 
uint32 GetActiveSessionCount () const
 
uint32 GetQueuedSessionCount () const
 
uint32 GetMaxQueuedSessionCount () const
 Get the maximum number of parallel sessions on the server since last reboot.
 
uint32 GetMaxActiveSessionCount () const
 
uint32 GetPlayerCount () const
 Get number of players.
 
uint32 GetMaxPlayerCount () const
 
void IncreasePlayerCount ()
 Increase/Decrease number of players.
 
void DecreasePlayerCount ()
 
PlayerFindPlayerInZone (uint32 zone)
 Find a player in a specified zone.
 
bool IsClosed () const
 Deny clients?
 
void SetClosed (bool val)
 Close world.
 
AccountTypes GetPlayerSecurityLimit () const
 Security level limitations.
 
void SetPlayerSecurityLimit (AccountTypes sec)
 
void LoadDBAllowedSecurityLevel ()
 
void SetPlayerAmountLimit (uint32 limit)
 Active session server limit.
 
uint32 GetPlayerAmountLimit () const
 
void AddQueuedPlayer (WorldSession *)
 
bool RemoveQueuedPlayer (WorldSession *session)
 
int32 GetQueuePos (WorldSession *)
 
bool HasRecentlyDisconnected (WorldSession *)
 
bool getAllowMovement () const
 
void SetAllowMovement (bool allow)
 Allow/Disallow object movements.
 
void SetMotd (std::string motd)
 Set a new Message of the Day.
 
std::vector< std::string > const & GetMotd () const
 Get the current Message of the Day.
 
void SetNewCharString (std::string const &str)
 Set the string for new characters (first login)
 
std::string const & GetNewCharString () const
 Get the string for new characters (first login)
 
LocaleConstant GetDefaultDbcLocale () const
 
std::string const & GetDataPath () const
 Get the path where data (dbc, maps) are stored on disk.
 
time_t GetNextDailyQuestsResetTime () const
 Next daily quests and random bg reset time.
 
time_t GetNextWeeklyQuestsResetTime () const
 
time_t GetNextRandomBGResetTime () const
 
uint16 GetConfigMaxSkillValue () const
 Get the maximum skill level a player can reach.
 
void SetInitialWorldSettings ()
 Initialize the World.
 
void LoadConfigSettings (bool reload=false)
 Initialize config values.
 
void SendWorldText (uint32 string_id,...)
 Send a System Message to all players (except self if mentioned)
 
void SendGlobalText (char const *text, WorldSession *self)
 DEPRECATED, only for debug purpose. Send a System Message to all players (except self if mentioned)
 
void SendGMText (uint32 string_id,...)
 Send a System Message to all GMs (except self if mentioned)
 
void SendServerMessage (ServerMessageType messageID, std::string stringParam="", Player *player=nullptr)
 Send a server message to the user(s)
 
void SendGlobalMessage (WorldPacket const *packet, WorldSession *self=nullptr, uint32 team=0)
 Send a packet to all players (except self if mentioned)
 
void SendGlobalGMMessage (WorldPacket const *packet, WorldSession *self=nullptr, uint32 team=0)
 Send a packet to all GMs (except self if mentioned)
 
bool IsShuttingDown () const
 Are we in the middle of a shutdown?
 
uint32 GetShutDownTimeLeft () const
 
void ShutdownServ (uint32 time, uint32 options, uint8 exitcode, const std::string &reason=std::string())
 Shutdown the server.
 
uint32 ShutdownCancel ()
 Cancel a planned server shutdown.
 
void ShutdownMsg (bool show=false, Player *player=nullptr, const std::string &reason=std::string())
 Display a shutdown message to the user(s)
 
void Update (uint32 diff)
 Update the World !
 
void UpdateSessions (uint32 diff)
 
void setRate (Rates rate, float value)
 Set a server rate (see Rates)
 
float getRate (Rates rate) const
 Get a server rate (see Rates)
 
void setBoolConfig (WorldBoolConfigs index, bool value)
 Set a server configuration element (see #WorldConfigs)
 
bool getBoolConfig (WorldBoolConfigs index) const
 Get a server configuration element (see #WorldConfigs)
 
void setFloatConfig (WorldFloatConfigs index, float value)
 Set a server configuration element (see #WorldConfigs)
 
float getFloatConfig (WorldFloatConfigs index) const
 Get a server configuration element (see #WorldConfigs)
 
void setIntConfig (WorldIntConfigs index, uint32 value)
 Set a server configuration element (see #WorldConfigs)
 
uint32 getIntConfig (WorldIntConfigs index) const
 Get a server configuration element (see #WorldConfigs)
 
void setWorldState (uint32 index, uint64 value)
 
uint64 getWorldState (uint32 index) const
 
void LoadWorldStates ()
 
bool IsPvPRealm () const
 Are we on a "Player versus Player" server?
 
bool IsFFAPvPRealm () const
 
void KickAll ()
 Kick (and save) all players.
 
void KickAllLess (AccountTypes sec)
 Kick (and save) all players with security level less sec
 
BanReturn BanAccount (BanMode mode, std::string const &nameOrIP, std::string const &duration, std::string const &reason, std::string const &author)
 Ban an account or ban an IP address, duration will be parsed using TimeStringToSecs if it is positive, otherwise permban.
 
BanReturn BanAccount (BanMode mode, std::string const &nameOrIP, uint32 duration_secs, std::string const &reason, std::string const &author)
 Ban an account or ban an IP address, duration is in seconds if positive, otherwise permban.
 
bool RemoveBanAccount (BanMode mode, std::string const &nameOrIP)
 Remove a ban from an account or IP address.
 
BanReturn BanCharacter (std::string const &name, std::string const &duration, std::string const &reason, std::string const &author)
 Ban an account or ban an IP address, duration will be parsed using TimeStringToSecs if it is positive, otherwise permban.
 
bool RemoveBanCharacter (std::string const &name)
 Remove a ban from a character.
 
void ProcessCliCommands ()
 
void QueueCliCommand (CliCommandHolder *commandHolder)
 
void ForceGameEventUpdate ()
 
void UpdateRealmCharCount (uint32 accid)
 
LocaleConstant GetAvailableDbcLocale (LocaleConstant locale) const
 
void LoadDBVersion ()
 
char const * GetDBVersion () const
 
void LoadAutobroadcasts ()
 
void UpdateAreaDependentAuras ()
 
uint32 GetCleaningFlags () const
 
void SetCleaningFlags (uint32 flags)
 
void ResetEventSeasonalQuests (uint16 event_id, time_t eventStartTime)
 
void ReloadRBAC ()
 
void RemoveOldCorpses ()
 
void TriggerGuidWarning ()
 
void TriggerGuidAlert ()
 
bool IsGuidWarning ()
 
bool IsGuidAlert ()
 

Static Public Member Functions

static Worldinstance ()
 
static uint8 GetExitCode ()
 
static void StopNow (uint8 exitcode)
 
static bool IsStopped ()
 
static float GetMaxVisibleDistanceOnContinents ()
 
static float GetMaxVisibleDistanceInInstances ()
 
static float GetMaxVisibleDistanceInBG ()
 
static float GetMaxVisibleDistanceInArenas ()
 
static int32 GetVisibilityNotifyPeriodOnContinents ()
 
static int32 GetVisibilityNotifyPeriodInInstances ()
 
static int32 GetVisibilityNotifyPeriodInBG ()
 
static int32 GetVisibilityNotifyPeriodInArenas ()
 

Static Public Attributes

static std::atomic< uint32m_worldLoopCounter
 

Protected Member Functions

void _UpdateGameTime ()
 Update the game time.
 
void _UpdateRealmCharCount (PreparedQueryResult resultCharCount)
 
void InitQuestResetTimes ()
 
void CheckQuestResetTimes ()
 
void ResetDailyQuests ()
 
void ResetWeeklyQuests ()
 
void ResetMonthlyQuests ()
 
void InitRandomBGResetTime ()
 
void InitCalendarOldEventsDeletionTime ()
 
void InitGuildResetTime ()
 
void ResetRandomBG ()
 
void CalendarDeleteOldEvents ()
 
void ResetGuildCap ()
 

Private Types

typedef std::unordered_map< uint32, time_t > DisconnectMap
 
typedef std::map< uint32, uint64WorldStatesMap
 
typedef std::map< uint8, std::string > AutobroadcastsMap
 
typedef std::map< uint8, uint8AutobroadcastsWeightMap
 

Private Member Functions

 World ()
 World constructor.
 
 ~World ()
 World destructor.
 
void DetectDBCLang ()
 
void AddSession_ (WorldSession *s)
 
void ProcessQueryCallbacks ()
 
void SendGuidWarning ()
 
void DoGuidWarningRestart ()
 
void DoGuidAlertRestart ()
 

Private Attributes

uint32 m_ShutdownTimer
 
uint32 m_ShutdownMask
 
uint32 m_CleaningFlags
 
bool m_isClosed
 
IntervalTimer m_timers [WUPDATE_COUNT]
 
time_t mail_timer
 
time_t mail_timer_expires
 
SessionMap m_sessions
 
DisconnectMap m_disconnects
 
uint32 m_maxActiveSessionCount
 
uint32 m_maxQueuedSessionCount
 
uint32 m_PlayerCount
 
uint32 m_MaxPlayerCount
 
std::string m_newCharString
 
float rate_values [MAX_RATES]
 
uint32 m_int_configs [INT_CONFIG_VALUE_COUNT]
 
bool m_bool_configs [BOOL_CONFIG_VALUE_COUNT]
 
float m_float_configs [FLOAT_CONFIG_VALUE_COUNT]
 
WorldStatesMap m_worldstates
 
uint32 m_playerLimit
 
AccountTypes m_allowedSecurityLevel
 
LocaleConstant m_defaultDbcLocale
 
uint32 m_availableDbcLocaleMask
 
bool m_allowMovement
 
std::vector< std::string > _motd
 
std::string m_dataPath
 
LockedQueue< CliCommandHolder * > cliCmdQueue
 
time_t m_NextDailyQuestReset
 
time_t m_NextWeeklyQuestReset
 
time_t m_NextMonthlyQuestReset
 
time_t m_NextRandomBGReset
 
time_t m_NextCalendarOldEventsDeletionTime
 
time_t m_NextGuildReset
 
Queue m_QueuedPlayer
 
LockedQueue< WorldSession * > addSessQueue
 
std::string m_DBVersion
 
AutobroadcastsMap m_Autobroadcasts
 
AutobroadcastsWeightMap m_AutobroadcastsWeights
 
QueryCallbackProcessor _queryProcessor
 
std::string _guidWarningMsg
 
std::string _alertRestartReason
 
std::mutex _guidAlertLock
 
bool _guidWarn
 
bool _guidAlert
 
uint32 _warnDiff
 
time_t _warnShutdownTime
 

Static Private Attributes

static std::atomic< bool > m_stopEvent
 
static uint8 m_ExitCode = SHUTDOWN_EXIT_CODE
 
static float m_MaxVisibleDistanceOnContinents = DEFAULT_VISIBILITY_DISTANCE
 
static float m_MaxVisibleDistanceInInstances = DEFAULT_VISIBILITY_INSTANCE
 
static float m_MaxVisibleDistanceInBG = DEFAULT_VISIBILITY_BGARENAS
 
static float m_MaxVisibleDistanceInArenas = DEFAULT_VISIBILITY_BGARENAS
 
static int32 m_visibility_notify_periodOnContinents = DEFAULT_VISIBILITY_NOTIFY_PERIOD
 
static int32 m_visibility_notify_periodInInstances = DEFAULT_VISIBILITY_NOTIFY_PERIOD
 
static int32 m_visibility_notify_periodInBG = DEFAULT_VISIBILITY_NOTIFY_PERIOD
 
static int32 m_visibility_notify_periodInArenas = DEFAULT_VISIBILITY_NOTIFY_PERIOD
 

Friends

class debug_commandscript
 

Detailed Description

The World.

Definition at line 568 of file World.h.

Member Typedef Documentation

◆ AutobroadcastsMap

typedef std::map<uint8, std::string> World::AutobroadcastsMap
private

Definition at line 871 of file World.h.

◆ AutobroadcastsWeightMap

typedef std::map<uint8, uint8> World::AutobroadcastsWeightMap
private

Definition at line 874 of file World.h.

◆ DisconnectMap

typedef std::unordered_map<uint32, time_t> World::DisconnectMap
private

Definition at line 815 of file World.h.

◆ Queue

typedef std::list<WorldSession*> World::Queue

Definition at line 617 of file World.h.

◆ WorldStatesMap

typedef std::map<uint32, uint64> World::WorldStatesMap
private

Definition at line 828 of file World.h.

Constructor & Destructor Documentation

◆ World()

World::World ( )
private

World constructor.

Definition at line 109 of file World.cpp.

+ Here is the call graph for this function:

◆ ~World()

World::~World ( )
private

World destructor.

  • Empty the kicked session set
Todo:
free addSessQueue

Definition at line 150 of file World.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ _UpdateGameTime()

void World::_UpdateGameTime ( )
protected

Update the game time.

  • update the time
  • if there is a shutdown timer
  • ... and it is overdue, stop the world (set m_stopEvent)
  • ... else decrease it and if necessary display a shutdown countdown to the users

Definition at line 2990 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _UpdateRealmCharCount()

void World::_UpdateRealmCharCount ( PreparedQueryResult  resultCharCount)
protected

Definition at line 3223 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddQueuedPlayer()

void World::AddQueuedPlayer ( WorldSession sess)

Definition at line 433 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddSession()

void World::AddSession ( WorldSession s)

Definition at line 329 of file World.cpp.

+ Here is the call graph for this function:

◆ AddSession_()

void World::AddSession_ ( WorldSession s)
private
  • kick already loaded player with same account (if any) and remove session
  • if player is in loading and want to load again, return

Definition at line 334 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ BanAccount() [1/2]

BanReturn World::BanAccount ( BanMode  mode,
std::string const &  nameOrIP,
std::string const &  duration,
std::string const &  reason,
std::string const &  author 
)

Ban an account or ban an IP address, duration will be parsed using TimeStringToSecs if it is positive, otherwise permban.

Definition at line 2801 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ BanAccount() [2/2]

BanReturn World::BanAccount ( BanMode  mode,
std::string const &  nameOrIP,
uint32  duration_secs,
std::string const &  reason,
std::string const &  author 
)

Ban an account or ban an IP address, duration is in seconds if positive, otherwise permban.

  • Update the database with ban information
  • Disconnect all affected players (for IP it can be several)

Definition at line 2808 of file World.cpp.

+ Here is the call graph for this function:

◆ BanCharacter()

BanReturn World::BanCharacter ( std::string const &  name,
std::string const &  duration,
std::string const &  reason,
std::string const &  author 
)

Ban an account or ban an IP address, duration will be parsed using TimeStringToSecs if it is positive, otherwise permban.

Pick a player to ban if not online

Definition at line 2923 of file World.cpp.

+ Here is the call graph for this function:

◆ CalendarDeleteOldEvents()

void World::CalendarDeleteOldEvents ( )
protected

Definition at line 3464 of file World.cpp.

+ Here is the caller graph for this function:

◆ CheckQuestResetTimes()

void World::CheckQuestResetTimes ( )
protected

Definition at line 3351 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DecreasePlayerCount()

void World::DecreasePlayerCount ( )
inline

Definition at line 597 of file World.h.

◆ DetectDBCLang()

void World::DetectDBCLang ( )
private

Definition at line 2275 of file World.cpp.

+ Here is the caller graph for this function:

◆ DoGuidAlertRestart()

void World::DoGuidAlertRestart ( )
private

Definition at line 286 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoGuidWarningRestart()

void World::DoGuidWarningRestart ( )
private

Definition at line 277 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FindPlayerInZone()

Player * World::FindPlayerInZone ( uint32  zone)

Find a player in a specified zone.

  • circle through active sessions and return the first player found in the zone

Definition at line 177 of file World.cpp.

+ Here is the call graph for this function:

◆ FindSession()

WorldSession * World::FindSession ( uint32  id) const

Find a session by its id.

Definition at line 302 of file World.cpp.

+ Here is the caller graph for this function:

◆ ForceGameEventUpdate()

void World::ForceGameEventUpdate ( )

Definition at line 2628 of file World.cpp.

+ Here is the call graph for this function:

◆ GetActiveAndQueuedSessionCount()

uint32 World::GetActiveAndQueuedSessionCount ( ) const
inline

Definition at line 582 of file World.h.

+ Here is the caller graph for this function:

◆ GetActiveSessionCount()

uint32 World::GetActiveSessionCount ( ) const
inline

Definition at line 583 of file World.h.

+ Here is the caller graph for this function:

◆ getAllowMovement()

bool World::getAllowMovement ( ) const
inline
Todo:
Actions on m_allowMovement still to be implemented Is movement allowed?

Definition at line 625 of file World.h.

◆ GetAllSessions()

SessionMap const & World::GetAllSessions ( ) const
inline

Definition at line 581 of file World.h.

◆ GetAvailableDbcLocale()

LocaleConstant World::GetAvailableDbcLocale ( LocaleConstant  locale) const
inline

Definition at line 757 of file World.h.

◆ getBoolConfig()

bool World::getBoolConfig ( WorldBoolConfigs  index) const
inline

Get a server configuration element (see #WorldConfigs)

Definition at line 692 of file World.h.

◆ GetCleaningFlags()

uint32 World::GetCleaningFlags ( ) const
inline

Definition at line 767 of file World.h.

◆ GetConfigMaxSkillValue()

uint16 World::GetConfigMaxSkillValue ( ) const
inline

Get the maximum skill level a player can reach.

Definition at line 650 of file World.h.

◆ GetDataPath()

std::string const & World::GetDataPath ( ) const
inline

Get the path where data (dbc, maps) are stored on disk.

Definition at line 642 of file World.h.

◆ GetDBVersion()

char const * World::GetDBVersion ( ) const
inline

Definition at line 761 of file World.h.

◆ GetDefaultDbcLocale()

LocaleConstant World::GetDefaultDbcLocale ( ) const
inline

Definition at line 639 of file World.h.

+ Here is the caller graph for this function:

◆ GetExitCode()

static uint8 World::GetExitCode ( )
inlinestatic

Definition at line 672 of file World.h.

+ Here is the caller graph for this function:

◆ getFloatConfig()

float World::getFloatConfig ( WorldFloatConfigs  index) const
inline

Get a server configuration element (see #WorldConfigs)

Definition at line 705 of file World.h.

◆ getIntConfig()

uint32 World::getIntConfig ( WorldIntConfigs  index) const
inline

Get a server configuration element (see #WorldConfigs)

Definition at line 718 of file World.h.

+ Here is the caller graph for this function:

◆ GetMaxActiveSessionCount()

uint32 World::GetMaxActiveSessionCount ( ) const
inline

Definition at line 587 of file World.h.

◆ GetMaxPlayerCount()

uint32 World::GetMaxPlayerCount ( ) const
inline

Definition at line 590 of file World.h.

+ Here is the caller graph for this function:

◆ GetMaxQueuedSessionCount()

uint32 World::GetMaxQueuedSessionCount ( ) const
inline

Get the maximum number of parallel sessions on the server since last reboot.

Definition at line 586 of file World.h.

◆ GetMaxVisibleDistanceInArenas()

static float World::GetMaxVisibleDistanceInArenas ( )
inlinestatic

Definition at line 743 of file World.h.

+ Here is the caller graph for this function:

◆ GetMaxVisibleDistanceInBG()

static float World::GetMaxVisibleDistanceInBG ( )
inlinestatic

Definition at line 742 of file World.h.

+ Here is the caller graph for this function:

◆ GetMaxVisibleDistanceInInstances()

static float World::GetMaxVisibleDistanceInInstances ( )
inlinestatic

Definition at line 741 of file World.h.

+ Here is the caller graph for this function:

◆ GetMaxVisibleDistanceOnContinents()

static float World::GetMaxVisibleDistanceOnContinents ( )
inlinestatic

Definition at line 740 of file World.h.

+ Here is the caller graph for this function:

◆ GetMotd()

std::vector< std::string > const & World::GetMotd ( ) const

Get the current Message of the Day.

Definition at line 243 of file World.cpp.

◆ GetNewCharString()

std::string const & World::GetNewCharString ( ) const
inline

Get the string for new characters (first login)

Definition at line 637 of file World.h.

◆ GetNextDailyQuestsResetTime()

time_t World::GetNextDailyQuestsResetTime ( ) const
inline

Next daily quests and random bg reset time.

Definition at line 645 of file World.h.

◆ GetNextRandomBGResetTime()

time_t World::GetNextRandomBGResetTime ( ) const
inline

Definition at line 647 of file World.h.

◆ GetNextWeeklyQuestsResetTime()

time_t World::GetNextWeeklyQuestsResetTime ( ) const
inline

Definition at line 646 of file World.h.

◆ GetPlayerAmountLimit()

uint32 World::GetPlayerAmountLimit ( ) const
inline

Definition at line 614 of file World.h.

+ Here is the caller graph for this function:

◆ GetPlayerCount()

uint32 World::GetPlayerCount ( ) const
inline

Get number of players.

Definition at line 589 of file World.h.

◆ GetPlayerSecurityLimit()

AccountTypes World::GetPlayerSecurityLimit ( ) const
inline

Security level limitations.

Definition at line 608 of file World.h.

◆ GetQueuedSessionCount()

uint32 World::GetQueuedSessionCount ( ) const
inline

Definition at line 584 of file World.h.

+ Here is the caller graph for this function:

◆ GetQueuePos()

int32 World::GetQueuePos ( WorldSession sess)

Definition at line 422 of file World.cpp.

+ Here is the caller graph for this function:

◆ getRate()

float World::getRate ( Rates  rate) const
inline

Get a server rate (see Rates)

Definition at line 682 of file World.h.

+ Here is the caller graph for this function:

◆ GetShutDownTimeLeft()

uint32 World::GetShutDownTimeLeft ( ) const
inline

Definition at line 668 of file World.h.

◆ GetVisibilityNotifyPeriodInArenas()

static int32 World::GetVisibilityNotifyPeriodInArenas ( )
inlinestatic

Definition at line 748 of file World.h.

+ Here is the caller graph for this function:

◆ GetVisibilityNotifyPeriodInBG()

static int32 World::GetVisibilityNotifyPeriodInBG ( )
inlinestatic

Definition at line 747 of file World.h.

+ Here is the caller graph for this function:

◆ GetVisibilityNotifyPeriodInInstances()

static int32 World::GetVisibilityNotifyPeriodInInstances ( )
inlinestatic

Definition at line 746 of file World.h.

+ Here is the caller graph for this function:

◆ GetVisibilityNotifyPeriodOnContinents()

static int32 World::GetVisibilityNotifyPeriodOnContinents ( )
inlinestatic

Definition at line 745 of file World.h.

+ Here is the caller graph for this function:

◆ getWorldState()

uint64 World::getWorldState ( uint32  index) const

Definition at line 3580 of file World.cpp.

+ Here is the caller graph for this function:

◆ HasRecentlyDisconnected()

bool World::HasRecentlyDisconnected ( WorldSession session)

Definition at line 400 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IncreasePlayerCount()

void World::IncreasePlayerCount ( )
inline

Increase/Decrease number of players.

Definition at line 592 of file World.h.

◆ InitCalendarOldEventsDeletionTime()

void World::InitCalendarOldEventsDeletionTime ( )
protected

Definition at line 3390 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InitGuildResetTime()

void World::InitGuildResetTime ( )
protected

Definition at line 3407 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InitQuestResetTimes()

void World::InitQuestResetTimes ( )
protected

Definition at line 3243 of file World.cpp.

+ Here is the caller graph for this function:

◆ InitRandomBGResetTime()

void World::InitRandomBGResetTime ( )
protected

Definition at line 3362 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ instance()

World * World::instance ( )
static

Definition at line 170 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsClosed()

bool World::IsClosed ( ) const

Deny clients?

Definition at line 196 of file World.cpp.

◆ IsFFAPvPRealm()

bool World::IsFFAPvPRealm ( ) const

Definition at line 3547 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsGuidAlert()

bool World::IsGuidAlert ( )
inline

Definition at line 777 of file World.h.

◆ IsGuidWarning()

bool World::IsGuidWarning ( )
inline

Definition at line 776 of file World.h.

◆ IsPvPRealm()

bool World::IsPvPRealm ( ) const

Are we on a "Player versus Player" server?

Definition at line 3542 of file World.cpp.

+ Here is the call graph for this function:

◆ IsShuttingDown()

bool World::IsShuttingDown ( ) const
inline

Are we in the middle of a shutdown?

Definition at line 667 of file World.h.

◆ IsStopped()

static bool World::IsStopped ( )
inlinestatic

Definition at line 674 of file World.h.

+ Here is the caller graph for this function:

◆ KickAll()

void World::KickAll ( )

Kick (and save) all players.

Definition at line 2782 of file World.cpp.

◆ KickAllLess()

void World::KickAllLess ( AccountTypes  sec)

Kick (and save) all players with security level less sec

Definition at line 2792 of file World.cpp.

+ Here is the caller graph for this function:

◆ LoadAutobroadcasts()

void World::LoadAutobroadcasts ( )

Definition at line 2321 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LoadConfigSettings()

void World::LoadConfigSettings ( bool  reload = false)

Initialize config values.

  • Read the player limit and the Message of the day from the config file
  • Read ticket system setting from the config file
  • Get string for new logins (newly created characters)
  • Send server info on login?
  • Read all rates from the config file
  • Read other configuration items from the config file
Todo:
Add MonsterSight (with meaning) in worldserver.conf or put them as define
  • Load the CharDelete related config options
  • Read the "Data" directory from the config file

Definition at line 493 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LoadDBAllowedSecurityLevel()

void World::LoadDBAllowedSecurityLevel ( )

Definition at line 209 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LoadDBVersion()

void World::LoadDBVersion ( )

Definition at line 3488 of file World.cpp.

+ Here is the call graph for this function:

◆ LoadWorldStates()

void World::LoadWorldStates ( )

Definition at line 3515 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ProcessCliCommands()

void World::ProcessCliCommands ( )

Definition at line 3141 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ProcessQueryCallbacks()

void World::ProcessQueryCallbacks ( )
private

Definition at line 3586 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ QueueCliCommand()

void World::QueueCliCommand ( CliCommandHolder commandHolder)
inline

Definition at line 751 of file World.h.

◆ ReloadRBAC()

void World::ReloadRBAC ( )

Definition at line 3591 of file World.cpp.

◆ RemoveBanAccount()

bool World::RemoveBanAccount ( BanMode  mode,
std::string const &  nameOrIP 
)

Remove a ban from an account or IP address.

Definition at line 2894 of file World.cpp.

+ Here is the call graph for this function:

◆ RemoveBanCharacter()

bool World::RemoveBanCharacter ( std::string const &  name)

Remove a ban from a character.

Pick a player to ban if not online

Definition at line 2963 of file World.cpp.

+ Here is the call graph for this function:

◆ RemoveOldCorpses()

void World::RemoveOldCorpses ( )

Definition at line 3600 of file World.cpp.

+ Here is the call graph for this function:

◆ RemoveQueuedPlayer()

bool World::RemoveQueuedPlayer ( WorldSession session)

Definition at line 442 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveSession()

bool World::RemoveSession ( uint32  id)

Remove a given session.

  • Find the session, kick the user, but we can't delete session at this moment to prevent iterator invalidation

Definition at line 313 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ResetDailyQuests()

void World::ResetDailyQuests ( )
protected

Definition at line 3255 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ResetEventSeasonalQuests()

void World::ResetEventSeasonalQuests ( uint16  event_id,
time_t  eventStartTime 
)

Definition at line 3435 of file World.cpp.

+ Here is the call graph for this function:

◆ ResetGuildCap()

void World::ResetGuildCap ( )
protected

Definition at line 3473 of file World.cpp.

+ Here is the caller graph for this function:

◆ ResetMonthlyQuests()

void World::ResetMonthlyQuests ( )
protected

Definition at line 3327 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ResetRandomBG()

void World::ResetRandomBG ( )
protected

Definition at line 3449 of file World.cpp.

+ Here is the caller graph for this function:

◆ ResetWeeklyQuests()

void World::ResetWeeklyQuests ( )
protected

Definition at line 3291 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendAutoBroadcast()

void World::SendAutoBroadcast ( )

Definition at line 3159 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendGlobalGMMessage()

void World::SendGlobalGMMessage ( WorldPacket const *  packet,
WorldSession self = nullptr,
uint32  team = 0 
)

Send a packet to all GMs (except self if mentioned)

Definition at line 2654 of file World.cpp.

+ Here is the call graph for this function:

◆ SendGlobalMessage()

void World::SendGlobalMessage ( WorldPacket const *  packet,
WorldSession self = nullptr,
uint32  team = 0 
)

Send a packet to all players (except self if mentioned)

Definition at line 2637 of file World.cpp.

+ Here is the caller graph for this function:

◆ SendGlobalText()

void World::SendGlobalText ( char const *  text,
WorldSession self 
)

DEPRECATED, only for debug purpose. Send a System Message to all players (except self if mentioned)

Definition at line 2764 of file World.cpp.

+ Here is the call graph for this function:

◆ SendGMText()

void World::SendGMText ( uint32  string_id,
  ... 
)

Send a System Message to all GMs (except self if mentioned)

Definition at line 2738 of file World.cpp.

+ Here is the call graph for this function:

◆ SendGuidWarning()

void World::SendGuidWarning ( )
private

Definition at line 294 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendServerMessage()

void World::SendServerMessage ( ServerMessageType  messageID,
std::string  stringParam = "",
Player player = nullptr 
)

Send a server message to the user(s)

Definition at line 3090 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendWorldText()

void World::SendWorldText ( uint32  string_id,
  ... 
)

Send a System Message to all players (except self if mentioned)

Definition at line 2719 of file World.cpp.

◆ SetAllowMovement()

void World::SetAllowMovement ( bool  allow)
inline

Allow/Disallow object movements.

Definition at line 627 of file World.h.

◆ setBoolConfig()

void World::setBoolConfig ( WorldBoolConfigs  index,
bool  value 
)
inline

Set a server configuration element (see #WorldConfigs)

Definition at line 685 of file World.h.

◆ SetCleaningFlags()

void World::SetCleaningFlags ( uint32  flags)
inline

Definition at line 768 of file World.h.

◆ SetClosed()

void World::SetClosed ( bool  val)

Close world.

Definition at line 201 of file World.cpp.

◆ setFloatConfig()

void World::setFloatConfig ( WorldFloatConfigs  index,
float  value 
)
inline

Set a server configuration element (see #WorldConfigs)

Definition at line 698 of file World.h.

◆ SetInitialWorldSettings()

void World::SetInitialWorldSettings ( )

Initialize the World.

  • Server startup begin
  • Initialize the random number generator
  • Initialize detour memory management
  • Initialize VMapManager function pointers (to untangle game/collision circular deps)
  • Initialize config settings
  • Initialize Allowed Security Level
  • Init highest guids before any table loading to prevent using not initialized guids in some code.
  • Check the existence of the map files for all races' startup areas.
  • Initialize pool manager
  • Initialize game event manager
  • Loading strings. Getting no records means core load has to be canceled because no error message can be output.
  • Update the realm entry in the database with the realm type from the config file
  • Load the DBC files
  • Initialize static helper structures
  • Load dynamic data tables from the database
  • Handle outdated emails (delete/return)
  • Load and initialize scripts
  • Initialize game time and timers
Todo:
Get rid of magic numbers
  • Initialize Battlegrounds
  • Initialize outdoor pvp

Definition at line 1598 of file World.cpp.

+ Here is the call graph for this function:

◆ setIntConfig()

void World::setIntConfig ( WorldIntConfigs  index,
uint32  value 
)
inline

Set a server configuration element (see #WorldConfigs)

Definition at line 711 of file World.h.

◆ SetMotd()

void World::SetMotd ( std::string  motd)

Set a new Message of the Day.

we are using a string copy here to allow modifications in script hooks

Definition at line 228 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetNewCharString()

void World::SetNewCharString ( std::string const &  str)
inline

Set the string for new characters (first login)

Definition at line 635 of file World.h.

+ Here is the caller graph for this function:

◆ SetPlayerAmountLimit()

void World::SetPlayerAmountLimit ( uint32  limit)
inline

Active session server limit.

Definition at line 613 of file World.h.

+ Here is the caller graph for this function:

◆ SetPlayerSecurityLimit()

void World::SetPlayerSecurityLimit ( AccountTypes  sec)

Definition at line 219 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setRate()

void World::setRate ( Rates  rate,
float  value 
)
inline

Set a server rate (see Rates)

Definition at line 680 of file World.h.

◆ setWorldState()

void World::setWorldState ( uint32  index,
uint64  value 
)

Definition at line 3553 of file World.cpp.

+ Here is the call graph for this function:

◆ ShutdownCancel()

uint32 World::ShutdownCancel ( )

Cancel a planned server shutdown.

Definition at line 3069 of file World.cpp.

+ Here is the call graph for this function:

◆ ShutdownMsg()

void World::ShutdownMsg ( bool  show = false,
Player player = nullptr,
const std::string &  reason = std::string() 
)

Display a shutdown message to the user(s)

  • Display a message every 12 hours, hours, 5 minutes, minute, 5 seconds and finally seconds

Definition at line 3043 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ShutdownServ()

void World::ShutdownServ ( uint32  time,
uint32  options,
uint8  exitcode,
const std::string &  reason = std::string() 
)

Shutdown the server.

  • If the shutdown time is 0, evaluate shutdown on next tick (no message)
  • Else set the shutdown timer and warn users

Definition at line 3020 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StopNow()

static void World::StopNow ( uint8  exitcode)
inlinestatic

Definition at line 673 of file World.h.

+ Here is the caller graph for this function:

◆ TriggerGuidAlert()

void World::TriggerGuidAlert ( )

Definition at line 267 of file World.cpp.

+ Here is the call graph for this function:

◆ TriggerGuidWarning()

void World::TriggerGuidWarning ( )

Definition at line 248 of file World.cpp.

+ Here is the call graph for this function:

◆ Update()

void World::Update ( uint32  diff)

Update the World !

  • Update the game time and check for shutdown time
  • Update the different timers
  • Update Who List Storage
  • Handle auctions when the timer has passed

    • Update mails (return old mails with item, or delete them)
    • Handle expired auctions

  • Handle AHBot operations

  • Handle file changes

  • Handle session updates when the timer has passed

  • Update uptime table

  • Clean logs table

  • Handle all other objects

    • Update objects when the timer has passed (maps, transport, creatures, ...)
    • Delete all characters which have been deleted X days before
    • Erase corpses once every 20 minutes
    • Process Game events when necessary
    • Ping to keep MySQL connections alive

Definition at line 2356 of file World.cpp.

+ Here is the call graph for this function:

◆ UpdateAreaDependentAuras()

void World::UpdateAreaDependentAuras ( )

Definition at line 3504 of file World.cpp.

◆ UpdateMaxSessionCounters()

void World::UpdateMaxSessionCounters ( )

Get the number of current active sessions.

Definition at line 3482 of file World.cpp.

+ Here is the caller graph for this function:

◆ UpdateRealmCharCount()

void World::UpdateRealmCharCount ( uint32  accid)

Definition at line 3216 of file World.cpp.

+ Here is the call graph for this function:

◆ UpdateSessions()

void World::UpdateSessions ( uint32  diff)
  • Add new sessions
  • Then send an update signal to remaining ones
  • and remove not active sessions from the list

Definition at line 3103 of file World.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ debug_commandscript

friend class debug_commandscript
friend

Definition at line 894 of file World.h.

Member Data Documentation

◆ _alertRestartReason

std::string World::_alertRestartReason
private

Definition at line 885 of file World.h.

◆ _guidAlert

bool World::_guidAlert
private

Definition at line 890 of file World.h.

◆ _guidAlertLock

std::mutex World::_guidAlertLock
private

Definition at line 887 of file World.h.

◆ _guidWarn

bool World::_guidWarn
private

Definition at line 889 of file World.h.

◆ _guidWarningMsg

std::string World::_guidWarningMsg
private

Definition at line 884 of file World.h.

◆ _motd

std::vector<std::string> World::_motd
private

Definition at line 836 of file World.h.

◆ _queryProcessor

QueryCallbackProcessor World::_queryProcessor
private

Definition at line 882 of file World.h.

◆ _warnDiff

uint32 World::_warnDiff
private

Definition at line 891 of file World.h.

◆ _warnShutdownTime

time_t World::_warnShutdownTime
private

Definition at line 892 of file World.h.

◆ addSessQueue

LockedQueue<WorldSession*> World::addSessQueue
private

Definition at line 866 of file World.h.

◆ cliCmdQueue

LockedQueue<CliCommandHolder*> World::cliCmdQueue
private

Definition at line 851 of file World.h.

◆ m_allowedSecurityLevel

AccountTypes World::m_allowedSecurityLevel
private

Definition at line 831 of file World.h.

◆ m_allowMovement

bool World::m_allowMovement
private

Definition at line 835 of file World.h.

◆ m_Autobroadcasts

AutobroadcastsMap World::m_Autobroadcasts
private

Definition at line 872 of file World.h.

◆ m_AutobroadcastsWeights

AutobroadcastsWeightMap World::m_AutobroadcastsWeights
private

Definition at line 875 of file World.h.

◆ m_availableDbcLocaleMask

uint32 World::m_availableDbcLocaleMask
private

Definition at line 833 of file World.h.

◆ m_bool_configs

bool World::m_bool_configs[BOOL_CONFIG_VALUE_COUNT]
private

Definition at line 826 of file World.h.

◆ m_CleaningFlags

uint32 World::m_CleaningFlags
private

Definition at line 806 of file World.h.

◆ m_dataPath

std::string World::m_dataPath
private

Definition at line 837 of file World.h.

◆ m_DBVersion

std::string World::m_DBVersion
private

Definition at line 869 of file World.h.

◆ m_defaultDbcLocale

LocaleConstant World::m_defaultDbcLocale
private

Definition at line 832 of file World.h.

◆ m_disconnects

DisconnectMap World::m_disconnects
private

Definition at line 816 of file World.h.

◆ m_ExitCode

TC_GAME_API uint8 World::m_ExitCode = SHUTDOWN_EXIT_CODE
staticprivate

Definition at line 802 of file World.h.

◆ m_float_configs

float World::m_float_configs[FLOAT_CONFIG_VALUE_COUNT]
private

Definition at line 827 of file World.h.

◆ m_int_configs

uint32 World::m_int_configs[INT_CONFIG_VALUE_COUNT]
private

Definition at line 825 of file World.h.

◆ m_isClosed

bool World::m_isClosed
private

Definition at line 808 of file World.h.

◆ m_maxActiveSessionCount

uint32 World::m_maxActiveSessionCount
private

Definition at line 817 of file World.h.

◆ m_MaxPlayerCount

uint32 World::m_MaxPlayerCount
private

Definition at line 820 of file World.h.

◆ m_maxQueuedSessionCount

uint32 World::m_maxQueuedSessionCount
private

Definition at line 818 of file World.h.

◆ m_MaxVisibleDistanceInArenas

TC_GAME_API float World::m_MaxVisibleDistanceInArenas = DEFAULT_VISIBILITY_BGARENAS
staticprivate

Definition at line 843 of file World.h.

◆ m_MaxVisibleDistanceInBG

TC_GAME_API float World::m_MaxVisibleDistanceInBG = DEFAULT_VISIBILITY_BGARENAS
staticprivate

Definition at line 842 of file World.h.

◆ m_MaxVisibleDistanceInInstances

TC_GAME_API float World::m_MaxVisibleDistanceInInstances = DEFAULT_VISIBILITY_INSTANCE
staticprivate

Definition at line 841 of file World.h.

◆ m_MaxVisibleDistanceOnContinents

TC_GAME_API float World::m_MaxVisibleDistanceOnContinents = DEFAULT_VISIBILITY_DISTANCE
staticprivate

Definition at line 840 of file World.h.

◆ m_newCharString

std::string World::m_newCharString
private

Definition at line 822 of file World.h.

◆ m_NextCalendarOldEventsDeletionTime

time_t World::m_NextCalendarOldEventsDeletionTime
private

Definition at line 858 of file World.h.

◆ m_NextDailyQuestReset

time_t World::m_NextDailyQuestReset
private

Definition at line 854 of file World.h.

◆ m_NextGuildReset

time_t World::m_NextGuildReset
private

Definition at line 859 of file World.h.

◆ m_NextMonthlyQuestReset

time_t World::m_NextMonthlyQuestReset
private

Definition at line 856 of file World.h.

◆ m_NextRandomBGReset

time_t World::m_NextRandomBGReset
private

Definition at line 857 of file World.h.

◆ m_NextWeeklyQuestReset

time_t World::m_NextWeeklyQuestReset
private

Definition at line 855 of file World.h.

◆ m_PlayerCount

uint32 World::m_PlayerCount
private

Definition at line 819 of file World.h.

◆ m_playerLimit

uint32 World::m_playerLimit
private

Definition at line 830 of file World.h.

◆ m_QueuedPlayer

Queue World::m_QueuedPlayer
private

Definition at line 862 of file World.h.

◆ m_sessions

SessionMap World::m_sessions
private

Definition at line 814 of file World.h.

◆ m_ShutdownMask

uint32 World::m_ShutdownMask
private

Definition at line 804 of file World.h.

◆ m_ShutdownTimer

uint32 World::m_ShutdownTimer
private

Definition at line 803 of file World.h.

◆ m_stopEvent

TC_GAME_API std::atomic< bool > World::m_stopEvent
staticprivate

Definition at line 801 of file World.h.

◆ m_timers

IntervalTimer World::m_timers[WUPDATE_COUNT]
private

Definition at line 810 of file World.h.

◆ m_visibility_notify_periodInArenas

TC_GAME_API int32 World::m_visibility_notify_periodInArenas = DEFAULT_VISIBILITY_NOTIFY_PERIOD
staticprivate

Definition at line 848 of file World.h.

◆ m_visibility_notify_periodInBG

TC_GAME_API int32 World::m_visibility_notify_periodInBG = DEFAULT_VISIBILITY_NOTIFY_PERIOD
staticprivate

Definition at line 847 of file World.h.

◆ m_visibility_notify_periodInInstances

TC_GAME_API int32 World::m_visibility_notify_periodInInstances = DEFAULT_VISIBILITY_NOTIFY_PERIOD
staticprivate

Definition at line 846 of file World.h.

◆ m_visibility_notify_periodOnContinents

TC_GAME_API int32 World::m_visibility_notify_periodOnContinents = DEFAULT_VISIBILITY_NOTIFY_PERIOD
staticprivate

Definition at line 845 of file World.h.

◆ m_worldLoopCounter

TC_GAME_API std::atomic< uint32 > World::m_worldLoopCounter
static

Definition at line 573 of file World.h.

◆ m_worldstates

WorldStatesMap World::m_worldstates
private

Definition at line 829 of file World.h.

◆ mail_timer

time_t World::mail_timer
private

Definition at line 811 of file World.h.

◆ mail_timer_expires

time_t World::mail_timer_expires
private

Definition at line 812 of file World.h.

◆ rate_values

float World::rate_values[MAX_RATES]
private

Definition at line 824 of file World.h.


The documentation for this class was generated from the following files: