AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ObjectMgr.cpp File Reference
#include "ObjectMgr.h"
#include "AccountMgr.h"
#include "AchievementMgr.h"
#include "ArenaTeamMgr.h"
#include "CharacterCache.h"
#include "Chat.h"
#include "Common.h"
#include "CreatureAIFactory.h"
#include "Config.h"
#include "Containers.h"
#include "DatabaseEnv.h"
#include "DBCStructure.h"
#include "DisableMgr.h"
#include "GameObjectAIFactory.h"
#include "GameEventMgr.h"
#include "GameTime.h"
#include "GossipDef.h"
#include "GroupMgr.h"
#include "GuildMgr.h"
#include "LFGMgr.h"
#include "Language.h"
#include "Log.h"
#include "MapMgr.h"
#include "Pet.h"
#include "PoolMgr.h"
#include "ReputationMgr.h"
#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellAuras.h"
#include "SpellMgr.h"
#include "SpellScript.h"
#include "Transport.h"
#include "Unit.h"
#include "UpdateMask.h"
#include "Util.h"
#include "Vehicle.h"
#include "World.h"
#include "StringConvert.h"
#include "Tokenize.h"
#include <boost/algorithm/string.hpp>

Go to the source code of this file.

Functions

std::string GetScriptsTableNameByType (ScriptsType type)
 
ScriptMapMapGetScriptsMapByType (ScriptsType type)
 
std::string GetScriptCommandName (ScriptCommands command)
 
ReservedNames

Checks NamesReserved.dbc for reserved names

Parameters
nameName to check for match in NamesReserved.dbc
Returns
true/false
bool ReservedNames (std::wstring &name)
 

Variables

ScriptMapMap sSpellScripts
 
ScriptMapMap sEventScripts
 
ScriptMapMap sWaypointScripts
 

ProfanityNames

Checks NamesProfanity.dbc for reserved names

Parameters
nameName to check for match in NamesProfanity.dbc
Returns
true/false
enum  LanguageType {
  LT_BASIC_LATIN = 0x0000 ,
  LT_EXTENDEN_LATIN = 0x0001 ,
  LT_CYRILLIC = 0x0002 ,
  LT_EAST_ASIA = 0x0004 ,
  LT_ANY = 0xFFFF
}
 
LanguageDesc lang_description [LANGUAGES_COUNT]
 
bool ProfanityNames (std::wstring &name)
 
bool normalizePlayerName (std::string &name)
 
LanguageDesc const * GetLanguageDescByID (uint32 lang)
 
void CheckGOLockId (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
void CheckGOLinkedTrapId (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
void CheckGOSpellId (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
void CheckAndFixGOChairHeightId (GameObjectTemplate const *goInfo, uint32 const &dataN, uint32 N)
 
void CheckGONoDamageImmuneId (GameObjectTemplate *goTemplate, uint32 dataN, uint32 N)
 
void CheckGOConsumable (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
static LanguageType GetRealmLanguageType (bool create)
 
bool isValidString (std::wstring wstr, uint32 strictMask, bool numericOrSpace, bool create=false)
 
SkillRangeType GetSkillRangeType (SkillRaceClassInfoEntry const *rcEntry)
 

Enumeration Type Documentation

◆ LanguageType

Enumerator
LT_BASIC_LATIN 
LT_EXTENDEN_LATIN 
LT_CYRILLIC 
LT_EAST_ASIA 
LT_ANY 
8311{
8312 LT_BASIC_LATIN = 0x0000,
8313 LT_EXTENDEN_LATIN = 0x0001,
8314 LT_CYRILLIC = 0x0002,
8315 LT_EAST_ASIA = 0x0004,
8316 LT_ANY = 0xFFFF
8317};
@ LT_ANY
Definition: ObjectMgr.cpp:8316
@ LT_EXTENDEN_LATIN
Definition: ObjectMgr.cpp:8313
@ LT_EAST_ASIA
Definition: ObjectMgr.cpp:8315
@ LT_BASIC_LATIN
Definition: ObjectMgr.cpp:8312
@ LT_CYRILLIC
Definition: ObjectMgr.cpp:8314

Function Documentation

◆ CheckAndFixGOChairHeightId()

void CheckAndFixGOChairHeightId ( GameObjectTemplate const *  goInfo,
uint32 const &  dataN,
uint32  N 
)
inline
7146{
7148 return;
7149
7150 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but correct chair height in range 0..{}.",
7151 goInfo->entry, goInfo->type, N, dataN, UNIT_STAND_STATE_SIT_HIGH_CHAIR - UNIT_STAND_STATE_SIT_LOW_CHAIR);
7152
7153 // prevent client and server unexpected work
7154 const_cast<uint32&>(dataN) = 0;
7155}
std::uint32_t uint32
Definition: Define.h:108
#define LOG_ERROR(filterType__,...)
Definition: Log.h:159
@ UNIT_STAND_STATE_SIT_HIGH_CHAIR
Definition: Unit.h:59
@ UNIT_STAND_STATE_SIT_LOW_CHAIR
Definition: Unit.h:57

References GameObjectTemplate::entry, LOG_ERROR, GameObjectTemplate::type, UNIT_STAND_STATE_SIT_HIGH_CHAIR, and UNIT_STAND_STATE_SIT_LOW_CHAIR.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOConsumable()

void CheckGOConsumable ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7167{
7168 // 0/1 correct values
7169 if (dataN <= 1)
7170 return;
7171
7172 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but expected boolean (0/1) consumable field value.",
7173 goInfo->entry, goInfo->type, N, dataN);
7174}

References GameObjectTemplate::entry, LOG_ERROR, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOLinkedTrapId()

void CheckGOLinkedTrapId ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7127{
7128 if (GameObjectTemplate const* trapInfo = sObjectMgr->GetGameObjectTemplate(dataN))
7129 {
7130 if (trapInfo->type != GAMEOBJECT_TYPE_TRAP)
7131 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but GO (Entry {}) have not GAMEOBJECT_TYPE_TRAP ({}) type.",
7132 goInfo->entry, goInfo->type, N, dataN, dataN, GAMEOBJECT_TYPE_TRAP);
7133 }
7134}
#define sObjectMgr
Definition: ObjectMgr.h:1640
@ GAMEOBJECT_TYPE_TRAP
Definition: SharedDefines.h:1538
Definition: GameObjectData.h:32

References GameObjectTemplate::entry, GAMEOBJECT_TYPE_TRAP, LOG_ERROR, sObjectMgr, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOLockId()

void CheckGOLockId ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7118{
7119 if (sLockStore.LookupEntry(dataN))
7120 return;
7121
7122 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but lock (Id: {}) not found.",
7123 goInfo->entry, goInfo->type, N, goInfo->door.lockId, goInfo->door.lockId);
7124}
DBCStorage< LockEntry > sLockStore(LockEntryfmt)

References GameObjectTemplate::door, GameObjectTemplate::entry, GameObjectTemplate::lockId, LOG_ERROR, sLockStore, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGONoDamageImmuneId()

void CheckGONoDamageImmuneId ( GameObjectTemplate goTemplate,
uint32  dataN,
uint32  N 
)
inline
7158{
7159 // 0/1 correct values
7160 if (dataN <= 1)
7161 return;
7162
7163 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but expected boolean (0/1) noDamageImmune field value.", goTemplate->entry, goTemplate->type, N, dataN);
7164}
uint32 type
Definition: GameObjectData.h:34
uint32 entry
Definition: GameObjectData.h:33

References GameObjectTemplate::entry, LOG_ERROR, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOSpellId()

void CheckGOSpellId ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7137{
7138 if (sSpellMgr->GetSpellInfo(dataN))
7139 return;
7140
7141 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but Spell (Entry {}) not exist.",
7142 goInfo->entry, goInfo->type, N, dataN, dataN);
7143}
#define sSpellMgr
Definition: SpellMgr.h:824

References GameObjectTemplate::entry, LOG_ERROR, sSpellMgr, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ GetLanguageDescByID()

LanguageDesc const * GetLanguageDescByID ( uint32  lang)
310{
311 for (uint8 i = 0; i < LANGUAGES_COUNT; ++i)
312 {
313 if (uint32(lang_description[i].lang_id) == lang)
314 return &lang_description[i];
315 }
316
317 return nullptr;
318}
std::uint8_t uint8
Definition: Define.h:110
LanguageDesc lang_description[LANGUAGES_COUNT]
Definition: ObjectMgr.cpp:286
#define LANGUAGES_COUNT
Definition: SharedDefines.h:728

References lang_description, and LANGUAGES_COUNT.

Referenced by WorldSession::HandleMessagechatOpcode(), ObjectMgr::LoadBroadcastTexts(), and CreatureTextMgr::LoadCreatureTexts().

◆ GetRealmLanguageType()

static LanguageType GetRealmLanguageType ( bool  create)
static
8320{
8321 switch (sWorld->getIntConfig(CONFIG_REALM_ZONE))
8322 {
8323 case REALM_ZONE_UNKNOWN: // any language
8327 return LT_ANY;
8328 case REALM_ZONE_UNITED_STATES: // extended-Latin
8329 case REALM_ZONE_OCEANIC:
8331 case REALM_ZONE_ENGLISH:
8332 case REALM_ZONE_GERMAN:
8333 case REALM_ZONE_FRENCH:
8334 case REALM_ZONE_SPANISH:
8335 return LT_EXTENDEN_LATIN;
8336 case REALM_ZONE_KOREA: // East-Asian
8337 case REALM_ZONE_TAIWAN:
8338 case REALM_ZONE_CHINA:
8339 return LT_EAST_ASIA;
8340 case REALM_ZONE_RUSSIAN: // Cyrillic
8341 return LT_CYRILLIC;
8342 default:
8343 return create ? LT_BASIC_LATIN : LT_ANY; // basic-Latin at create, any at login
8344 }
8345}
@ CONFIG_REALM_ZONE
Definition: IWorld.h:218
#define sWorld
Definition: World.h:449
@ REALM_ZONE_TEST_SERVER
Definition: World.h:118
@ REALM_ZONE_LATIN_AMERICA
Definition: World.h:96
@ REALM_ZONE_SPANISH
Definition: World.h:103
@ REALM_ZONE_OCEANIC
Definition: World.h:95
@ REALM_ZONE_KOREA
Definition: World.h:98
@ REALM_ZONE_UNKNOWN
Definition: World.h:92
@ REALM_ZONE_UNITED_STATES
Definition: World.h:94
@ REALM_ZONE_ENGLISH
Definition: World.h:100
@ REALM_ZONE_FRENCH
Definition: World.h:102
@ REALM_ZONE_QA_SERVER
Definition: World.h:120
@ REALM_ZONE_CHINA
Definition: World.h:108
@ REALM_ZONE_RUSSIAN
Definition: World.h:104
@ REALM_ZONE_DEVELOPMENT
Definition: World.h:93
@ REALM_ZONE_TAIWAN
Definition: World.h:106
@ REALM_ZONE_GERMAN
Definition: World.h:101

References CONFIG_REALM_ZONE, LT_ANY, LT_BASIC_LATIN, LT_CYRILLIC, LT_EAST_ASIA, LT_EXTENDEN_LATIN, REALM_ZONE_CHINA, REALM_ZONE_DEVELOPMENT, REALM_ZONE_ENGLISH, REALM_ZONE_FRENCH, REALM_ZONE_GERMAN, REALM_ZONE_KOREA, REALM_ZONE_LATIN_AMERICA, REALM_ZONE_OCEANIC, REALM_ZONE_QA_SERVER, REALM_ZONE_RUSSIAN, REALM_ZONE_SPANISH, REALM_ZONE_TAIWAN, REALM_ZONE_TEST_SERVER, REALM_ZONE_UNITED_STATES, REALM_ZONE_UNKNOWN, and sWorld.

Referenced by isValidString().

◆ GetScriptCommandName()

std::string GetScriptCommandName ( ScriptCommands  command)
104{
105 std::string res = "";
106 switch (command)
107 {
109 res = "SCRIPT_COMMAND_TALK";
110 break;
112 res = "SCRIPT_COMMAND_EMOTE";
113 break;
115 res = "SCRIPT_COMMAND_FIELD_SET";
116 break;
118 res = "SCRIPT_COMMAND_MOVE_TO";
119 break;
121 res = "SCRIPT_COMMAND_FLAG_SET";
122 break;
124 res = "SCRIPT_COMMAND_FLAG_REMOVE";
125 break;
127 res = "SCRIPT_COMMAND_TELEPORT_TO";
128 break;
130 res = "SCRIPT_COMMAND_QUEST_EXPLORED";
131 break;
133 res = "SCRIPT_COMMAND_KILL_CREDIT";
134 break;
136 res = "SCRIPT_COMMAND_RESPAWN_GAMEOBJECT";
137 break;
139 res = "SCRIPT_COMMAND_TEMP_SUMMON_CREATURE";
140 break;
142 res = "SCRIPT_COMMAND_OPEN_DOOR";
143 break;
145 res = "SCRIPT_COMMAND_CLOSE_DOOR";
146 break;
148 res = "SCRIPT_COMMAND_ACTIVATE_OBJECT";
149 break;
151 res = "SCRIPT_COMMAND_REMOVE_AURA";
152 break;
154 res = "SCRIPT_COMMAND_CAST_SPELL";
155 break;
157 res = "SCRIPT_COMMAND_PLAY_SOUND";
158 break;
160 res = "SCRIPT_COMMAND_CREATE_ITEM";
161 break;
163 res = "SCRIPT_COMMAND_DESPAWN_SELF";
164 break;
166 res = "SCRIPT_COMMAND_LOAD_PATH";
167 break;
169 res = "SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT";
170 break;
172 res = "SCRIPT_COMMAND_KILL";
173 break;
174 // AzerothCore only
176 res = "SCRIPT_COMMAND_ORIENTATION";
177 break;
179 res = "SCRIPT_COMMAND_EQUIP";
180 break;
182 res = "SCRIPT_COMMAND_MODEL";
183 break;
185 res = "SCRIPT_COMMAND_CLOSE_GOSSIP";
186 break;
188 res = "SCRIPT_COMMAND_PLAYMOVIE";
189 break;
190 default:
191 {
192 char sz[32];
193 snprintf(sz, sizeof(sz), "Unknown command: %d", command);
194 res = sz;
195 break;
196 }
197 }
198 return res;
199}
@ SCRIPT_COMMAND_EMOTE
Definition: ObjectMgr.h:96
@ SCRIPT_COMMAND_CREATE_ITEM
Definition: ObjectMgr.h:112
@ SCRIPT_COMMAND_DESPAWN_SELF
Definition: ObjectMgr.h:113
@ SCRIPT_COMMAND_CLOSE_DOOR
Definition: ObjectMgr.h:107
@ SCRIPT_COMMAND_CAST_SPELL
Definition: ObjectMgr.h:110
@ SCRIPT_COMMAND_RESPAWN_GAMEOBJECT
Definition: ObjectMgr.h:104
@ SCRIPT_COMMAND_QUEST_EXPLORED
Definition: ObjectMgr.h:102
@ SCRIPT_COMMAND_ACTIVATE_OBJECT
Definition: ObjectMgr.h:108
@ SCRIPT_COMMAND_TALK
Definition: ObjectMgr.h:95
@ SCRIPT_COMMAND_OPEN_DOOR
Definition: ObjectMgr.h:106
@ SCRIPT_COMMAND_EQUIP
Definition: ObjectMgr.h:121
@ SCRIPT_COMMAND_FIELD_SET
Definition: ObjectMgr.h:97
@ SCRIPT_COMMAND_PLAYMOVIE
Definition: ObjectMgr.h:124
@ SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT
Definition: ObjectMgr.h:116
@ SCRIPT_COMMAND_TELEPORT_TO
Definition: ObjectMgr.h:101
@ SCRIPT_COMMAND_MOVE_TO
Definition: ObjectMgr.h:98
@ SCRIPT_COMMAND_FLAG_SET
Definition: ObjectMgr.h:99
@ SCRIPT_COMMAND_TEMP_SUMMON_CREATURE
Definition: ObjectMgr.h:105
@ SCRIPT_COMMAND_KILL_CREDIT
Definition: ObjectMgr.h:103
@ SCRIPT_COMMAND_KILL
Definition: ObjectMgr.h:117
@ SCRIPT_COMMAND_LOAD_PATH
Definition: ObjectMgr.h:115
@ SCRIPT_COMMAND_ORIENTATION
Definition: ObjectMgr.h:120
@ SCRIPT_COMMAND_PLAY_SOUND
Definition: ObjectMgr.h:111
@ SCRIPT_COMMAND_MODEL
Definition: ObjectMgr.h:122
@ SCRIPT_COMMAND_CLOSE_GOSSIP
Definition: ObjectMgr.h:123
@ SCRIPT_COMMAND_REMOVE_AURA
Definition: ObjectMgr.h:109
@ SCRIPT_COMMAND_FLAG_REMOVE
Definition: ObjectMgr.h:100

References SCRIPT_COMMAND_ACTIVATE_OBJECT, SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT, SCRIPT_COMMAND_CAST_SPELL, SCRIPT_COMMAND_CLOSE_DOOR, SCRIPT_COMMAND_CLOSE_GOSSIP, SCRIPT_COMMAND_CREATE_ITEM, SCRIPT_COMMAND_DESPAWN_SELF, SCRIPT_COMMAND_EMOTE, SCRIPT_COMMAND_EQUIP, SCRIPT_COMMAND_FIELD_SET, SCRIPT_COMMAND_FLAG_REMOVE, SCRIPT_COMMAND_FLAG_SET, SCRIPT_COMMAND_KILL, SCRIPT_COMMAND_KILL_CREDIT, SCRIPT_COMMAND_LOAD_PATH, SCRIPT_COMMAND_MODEL, SCRIPT_COMMAND_MOVE_TO, SCRIPT_COMMAND_OPEN_DOOR, SCRIPT_COMMAND_ORIENTATION, SCRIPT_COMMAND_PLAY_SOUND, SCRIPT_COMMAND_PLAYMOVIE, SCRIPT_COMMAND_QUEST_EXPLORED, SCRIPT_COMMAND_REMOVE_AURA, SCRIPT_COMMAND_RESPAWN_GAMEOBJECT, SCRIPT_COMMAND_TALK, SCRIPT_COMMAND_TELEPORT_TO, and SCRIPT_COMMAND_TEMP_SUMMON_CREATURE.

Referenced by ScriptInfo::GetDebugInfo(), and ObjectMgr::LoadScripts().

◆ GetScriptsMapByType()

ScriptMapMap * GetScriptsMapByType ( ScriptsType  type)
84{
85 ScriptMapMap* res = nullptr;
86 switch (type)
87 {
88 case SCRIPTS_SPELL:
89 res = &sSpellScripts;
90 break;
91 case SCRIPTS_EVENT:
92 res = &sEventScripts;
93 break;
95 res = &sWaypointScripts;
96 break;
97 default:
98 break;
99 }
100 return res;
101}
ScriptMapMap sSpellScripts
Definition: ObjectMgr.cpp:59
ScriptMapMap sEventScripts
Definition: ObjectMgr.cpp:60
ScriptMapMap sWaypointScripts
Definition: ObjectMgr.cpp:61
std::map< uint32, ScriptMap > ScriptMapMap
Definition: ObjectMgr.h:387
@ SCRIPTS_WAYPOINT
Definition: ObjectMgr.h:153
@ SCRIPTS_EVENT
Definition: ObjectMgr.h:152
@ SCRIPTS_SPELL
Definition: ObjectMgr.h:151

References SCRIPTS_EVENT, SCRIPTS_SPELL, SCRIPTS_WAYPOINT, sEventScripts, sSpellScripts, and sWaypointScripts.

Referenced by ObjectMgr::LoadScripts(), and Map::ScriptsProcess().

◆ GetScriptsTableNameByType()

std::string GetScriptsTableNameByType ( ScriptsType  type)
64{
65 std::string res = "";
66 switch (type)
67 {
68 case SCRIPTS_SPELL:
69 res = "spell_scripts";
70 break;
71 case SCRIPTS_EVENT:
72 res = "event_scripts";
73 break;
75 res = "waypoint_scripts";
76 break;
77 default:
78 break;
79 }
80 return res;
81}

References SCRIPTS_EVENT, SCRIPTS_SPELL, and SCRIPTS_WAYPOINT.

Referenced by ScriptInfo::GetDebugInfo(), and ObjectMgr::LoadScripts().

◆ GetSkillRangeType()

SkillRangeType GetSkillRangeType ( SkillRaceClassInfoEntry const *  rcEntry)
8764{
8765 SkillLineEntry const* skill = sSkillLineStore.LookupEntry(rcEntry->SkillID);
8766 if (!skill)
8767 {
8768 return SKILL_RANGE_NONE;
8769 }
8770
8771 if (sSkillTiersStore.LookupEntry(rcEntry->SkillTierID))
8772 {
8773 return SKILL_RANGE_RANK;
8774 }
8775
8776 if (rcEntry->SkillID == SKILL_RUNEFORGING)
8777 {
8778 return SKILL_RANGE_MONO;
8779 }
8780
8781 switch (skill->categoryId)
8782 {
8784 return SKILL_RANGE_MONO;
8786 return SKILL_RANGE_LANGUAGE;
8787 }
8788
8789 return SKILL_RANGE_LEVEL;
8790}
DBCStorage< SkillTiersEntry > sSkillTiersStore(SkillTiersfmt)
DBCStorage< SkillLineEntry > sSkillLineStore(SkillLinefmt)
@ SKILL_RANGE_MONO
Definition: ObjectMgr.h:681
@ SKILL_RANGE_NONE
Definition: ObjectMgr.h:683
@ SKILL_RANGE_LANGUAGE
Definition: ObjectMgr.h:679
@ SKILL_RANGE_RANK
Definition: ObjectMgr.h:682
@ SKILL_RANGE_LEVEL
Definition: ObjectMgr.h:680
@ SKILL_CATEGORY_ARMOR
Definition: SharedDefines.h:3047
@ SKILL_CATEGORY_LANGUAGES
Definition: SharedDefines.h:3049
@ SKILL_RUNEFORGING
Definition: SharedDefines.h:2976
Definition: DBCStructure.h:1581
int32 categoryId
Definition: DBCStructure.h:1583

References SkillLineEntry::categoryId, SKILL_CATEGORY_ARMOR, SKILL_CATEGORY_LANGUAGES, SKILL_RANGE_LANGUAGE, SKILL_RANGE_LEVEL, SKILL_RANGE_MONO, SKILL_RANGE_NONE, SKILL_RANGE_RANK, SKILL_RUNEFORGING, SkillRaceClassInfoEntry::SkillID, SkillRaceClassInfoEntry::SkillTierID, sSkillLineStore, and sSkillTiersStore.

Referenced by Player::_LoadSkills(), Player::LearnDefaultSkill(), and Player::UpdateSkillsForLevel().

◆ isValidString()

bool isValidString ( std::wstring  wstr,
uint32  strictMask,
bool  numericOrSpace,
bool  create = false 
)
8348{
8349 if (strictMask == 0) // any language, ignore realm
8350 {
8351 if (isExtendedLatinString(wstr, numericOrSpace))
8352 return true;
8353 if (isCyrillicString(wstr, numericOrSpace))
8354 return true;
8355 if (isEastAsianString(wstr, numericOrSpace))
8356 return true;
8357 return false;
8358 }
8359
8360 if (strictMask & 0x2) // realm zone specific
8361 {
8363 if (lt & LT_EXTENDEN_LATIN)
8364 if (isExtendedLatinString(wstr, numericOrSpace))
8365 return true;
8366 if (lt & LT_CYRILLIC)
8367 if (isCyrillicString(wstr, numericOrSpace))
8368 return true;
8369 if (lt & LT_EAST_ASIA)
8370 if (isEastAsianString(wstr, numericOrSpace))
8371 return true;
8372 }
8373
8374 if (strictMask & 0x1) // basic Latin
8375 {
8376 if (isBasicLatinString(wstr, numericOrSpace))
8377 return true;
8378 }
8379
8380 return false;
8381}
bool isCyrillicString(std::wstring_view wstr, bool numericOrSpace)
Definition: Util.h:255
bool isBasicLatinString(std::wstring_view wstr, bool numericOrSpace)
Definition: Util.h:235
bool isEastAsianString(std::wstring_view wstr, bool numericOrSpace)
Definition: Util.h:265
bool isExtendedLatinString(std::wstring_view wstr, bool numericOrSpace)
Definition: Util.h:245
static LanguageType GetRealmLanguageType(bool create)
Definition: ObjectMgr.cpp:8319
LanguageType
Definition: ObjectMgr.cpp:8311

References GetRealmLanguageType(), isBasicLatinString(), isCyrillicString(), isEastAsianString(), isExtendedLatinString(), LT_CYRILLIC, LT_EAST_ASIA, and LT_EXTENDEN_LATIN.

Referenced by ObjectMgr::CheckPetName(), ObjectMgr::CheckPlayerName(), ObjectMgr::IsValidChannelName(), and ObjectMgr::IsValidCharterName().

◆ normalizePlayerName()

bool normalizePlayerName ( std::string &  name)
265{
266 if (name.empty())
267 return false;
268
269 if (name.find(" ") != std::string::npos)
270 return false;
271
272 std::wstring tmp;
273 if (!Utf8toWStr(name, tmp))
274 return false;
275
276 wstrToLower(tmp);
277 if (!tmp.empty())
278 tmp[0] = wcharToUpper(tmp[0]);
279
280 if (!WStrToUtf8(tmp, name))
281 return false;
282
283 return true;
284}
bool WStrToUtf8(wchar_t const *wstr, size_t size, std::string &utf8str)
Definition: Util.cpp:334
void wstrToLower(std::wstring &str)
Definition: Util.cpp:383
bool Utf8toWStr(char const *utf8str, size_t csize, wchar_t *wstr, size_t &wsize)
Definition: Util.cpp:282
wchar_t wcharToUpper(wchar_t wchar)
Definition: Util.h:278

References Utf8toWStr(), wcharToUpper(), wstrToLower(), and WStrToUtf8().

Referenced by ChatHandler::extractLowGuidFromLink(), ChatHandler::extractPlayerNameFromLink(), PlayerNameMapHolder::Find(), character_commandscript::GetDeletedCharacterInfoList(), ChatHandler::GetPlayerGroupAndGUIDByName(), WorldSession::HandleAddFriendOpcode(), WorldSession::HandleAddIgnoreOpcode(), WorldSession::HandleArenaTeamInviteOpcode(), WorldSession::HandleArenaTeamLeaderOpcode(), WorldSession::HandleArenaTeamRemoveOpcode(), ban_commandscript::HandleBanCharacterCommand(), ban_commandscript::HandleBanHelper(), WorldSession::HandleChannelBan(), WorldSession::HandleChannelInvite(), WorldSession::HandleChannelKick(), WorldSession::HandleChannelModerator(), WorldSession::HandleChannelMute(), WorldSession::HandleChannelSetOwner(), WorldSession::HandleChannelUnban(), WorldSession::HandleChannelUnmoderator(), WorldSession::HandleChannelUnmute(), character_commandscript::HandleCharacterRenameCommand(), WorldSession::HandleCharCreateOpcode(), WorldSession::HandleCharCustomizeCallback(), WorldSession::HandleCharFactionOrRaceChangeCallback(), WorldSession::HandleCharRenameOpcode(), deserter_commandscript::HandleDeserterAdd(), ticket_commandscript::HandleGMTicketAssignToCommand(), ticket_commandscript::HandleGMTicketGetByNameCommand(), WorldSession::HandleGroupInviteOpcode(), WorldSession::HandleGroupSwapSubGroupOpcode(), WorldSession::HandleGroupUninviteOpcode(), WorldSession::HandleGuildDemoteOpcode(), WorldSession::HandleGuildInviteOpcode(), WorldSession::HandleGuildLeaderOpcode(), WorldSession::HandleGuildPromoteOpcode(), WorldSession::HandleGuildRemoveOpcode(), WorldSession::HandleGuildSetOfficerNoteOpcode(), WorldSession::HandleGuildSetPublicNoteOpcode(), WorldSession::HandleMessagechatOpcode(), WorldSession::HandleSendMail(), WorldSession::HandleSetPlayerDeclinedNames(), ban_commandscript::HandleUnBanCharacterCommand(), ban_commandscript::HandleUnBanHelper(), message_commandscript::HandleWhispersCommand(), WorldSession::HandleWhoisOpcode(), PlayerDumpReader::LoadDump(), Acore::ChatCommands::PlayerIdentifier::TryConsume(), and character_commandscript::ValidatePDumpTarget().

◆ ProfanityNames()

bool ProfanityNames ( std::wstring &  name)
244{
245 for (NamesProfanityEntry const* profanityStore : sNamesProfanityStore)
246 {
247 std::wstring PatternString;
248
249 Utf8toWStr(profanityStore->Pattern, PatternString);
250
251 boost::algorithm::replace_all(PatternString, "\\<", "");
252 boost::algorithm::replace_all(PatternString, "\\>", "");
253
254 int stringCompare = name.compare(PatternString);
255 if (stringCompare == 0)
256 {
257 return true;
258 }
259 }
260
261 return false;
262}
DBCStorage< NamesProfanityEntry > sNamesProfanityStore(NamesProfanityfmt)
Definition: DBCStructure.h:1403

References sNamesProfanityStore, and Utf8toWStr().

Referenced by ObjectMgr::CheckPetName(), ObjectMgr::CheckPlayerName(), and ObjectMgr::IsValidCharterName().

◆ ReservedNames()

bool ReservedNames ( std::wstring &  name)
216{
217 for (NamesReservedEntry const* reservedStore : sNamesReservedStore)
218 {
219 std::wstring PatternString;
220
221 Utf8toWStr(reservedStore->Pattern, PatternString);
222
223 boost::algorithm::replace_all(PatternString, "\\<", "");
224 boost::algorithm::replace_all(PatternString, "\\>", "");
225
226 int stringCompare = name.compare(PatternString);
227 if (stringCompare == 0)
228 {
229 return true;
230 }
231 }
232
233 return false;
234};
DBCStorage< NamesReservedEntry > sNamesReservedStore(NamesReservedfmt)
Definition: DBCStructure.h:1396

References sNamesReservedStore, and Utf8toWStr().

Referenced by ObjectMgr::CheckPetName(), ObjectMgr::CheckPlayerName(), and ObjectMgr::IsValidCharterName().

Variable Documentation

◆ lang_description

LanguageDesc lang_description[LANGUAGES_COUNT]
Initial value:
=
{
{ LANG_ADDON, 0, 0 },
{ LANG_UNIVERSAL, 0, 0 },
{ LANG_ZOMBIE, 0, 0 },
}
@ LANG_TITAN
Definition: SharedDefines.h:714
@ LANG_GNOMISH_BINARY
Definition: SharedDefines.h:723
@ LANG_UNIVERSAL
Definition: SharedDefines.h:707
@ LANG_GNOMISH
Definition: SharedDefines.h:718
@ LANG_GOBLIN_BINARY
Definition: SharedDefines.h:724
@ LANG_DEMONIC
Definition: SharedDefines.h:713
@ LANG_DRAENEI
Definition: SharedDefines.h:721
@ LANG_THALASSIAN
Definition: SharedDefines.h:715
@ LANG_DRACONIC
Definition: SharedDefines.h:716
@ LANG_TROLL
Definition: SharedDefines.h:719
@ LANG_TAURAHE
Definition: SharedDefines.h:710
@ LANG_KALIMAG
Definition: SharedDefines.h:717
@ LANG_ZOMBIE
Definition: SharedDefines.h:722
@ LANG_ADDON
Definition: SharedDefines.h:725
@ LANG_DWARVISH
Definition: SharedDefines.h:711
@ LANG_GUTTERSPEAK
Definition: SharedDefines.h:720
@ LANG_COMMON
Definition: SharedDefines.h:712
@ LANG_ORCISH
Definition: SharedDefines.h:708
@ LANG_DARNASSIAN
Definition: SharedDefines.h:709
@ SKILL_LANG_GNOMISH
Definition: SharedDefines.h:2924
@ SKILL_LANG_COMMON
Definition: SharedDefines.h:2854
@ SKILL_LANG_DRAENEI
Definition: SharedDefines.h:2960
@ SKILL_LANG_ORCISH
Definition: SharedDefines.h:2856
@ SKILL_LANG_TROLL
Definition: SharedDefines.h:2925
@ SKILL_LANG_GUTTERSPEAK
Definition: SharedDefines.h:2952
@ SKILL_LANG_OLD_TONGUE
Definition: SharedDefines.h:2871
@ SKILL_LANG_TAURAHE
Definition: SharedDefines.h:2859
@ SKILL_LANG_TITAN
Definition: SharedDefines.h:2870
@ SKILL_LANG_DARNASSIAN
Definition: SharedDefines.h:2858
@ SKILL_LANG_DEMON_TONGUE
Definition: SharedDefines.h:2869
@ SKILL_LANG_DWARVEN
Definition: SharedDefines.h:2857
@ SKILL_LANG_THALASSIAN
Definition: SharedDefines.h:2867
@ SKILL_LANG_DRACONIC
Definition: SharedDefines.h:2868

Referenced by GetLanguageDescByID(), and learn_commandscript::HandleLearnAllLangCommand().

◆ sEventScripts

◆ sSpellScripts

◆ sWaypointScripts