aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp27
-rw-r--r--src/server/game/Battlegrounds/Battleground.h10
-rw-r--r--src/server/game/Chat/Chat.cpp10
-rw-r--r--src/server/game/Chat/Chat.h14
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp96
-rw-r--r--src/server/game/Globals/ObjectMgr.h27
-rw-r--r--src/server/game/Miscellaneous/Language.h3
-rw-r--r--src/server/game/Server/WorldSession.cpp2
-rw-r--r--src/server/game/Server/WorldSession.h2
-rw-r--r--src/server/game/World/World.cpp8
-rw-r--r--src/server/game/World/World.h4
11 files changed, 63 insertions, 140 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 88c0035d21d..90a84774a81 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -41,7 +41,7 @@ namespace Trinity
class BattlegroundChatBuilder
{
public:
- BattlegroundChatBuilder(ChatMsg msgtype, int32 textId, Player const* source, va_list* args = NULL)
+ BattlegroundChatBuilder(ChatMsg msgtype, uint32 textId, Player const* source, va_list* args = NULL)
: _msgtype(msgtype), _textId(textId), _source(source), _args(args) { }
void operator()(WorldPacket& data, LocaleConstant loc_idx)
@@ -70,7 +70,7 @@ namespace Trinity
}
ChatMsg _msgtype;
- int32 _textId;
+ uint32 _textId;
Player const* _source;
va_list* _args;
};
@@ -78,7 +78,7 @@ namespace Trinity
class Battleground2ChatBuilder
{
public:
- Battleground2ChatBuilder(ChatMsg msgtype, int32 textId, Player const* source, int32 arg1, int32 arg2)
+ Battleground2ChatBuilder(ChatMsg msgtype, uint32 textId, Player const* source, uint32 arg1, uint32 arg2)
: _msgtype(msgtype), _textId(textId), _source(source), _arg1(arg1), _arg2(arg2) { }
void operator()(WorldPacket& data, LocaleConstant loc_idx)
@@ -95,10 +95,10 @@ namespace Trinity
private:
ChatMsg _msgtype;
- int32 _textId;
+ uint32 _textId;
Player const* _source;
- int32 _arg1;
- int32 _arg2;
+ uint32 _arg1;
+ uint32 _arg2;
};
} // namespace Trinity
@@ -1561,7 +1561,7 @@ bool Battleground::AddSpiritGuide(uint32 type, Position const& pos, TeamId teamI
return AddSpiritGuide(type, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), teamId);
}
-void Battleground::SendMessageToAll(int32 entry, ChatMsg type, Player const* source)
+void Battleground::SendMessageToAll(uint32 entry, ChatMsg type, Player const* source)
{
if (!entry)
return;
@@ -1571,7 +1571,7 @@ void Battleground::SendMessageToAll(int32 entry, ChatMsg type, Player const* sou
BroadcastWorker(bg_do);
}
-void Battleground::PSendMessageToAll(int32 entry, ChatMsg type, Player const* source, ...)
+void Battleground::PSendMessageToAll(uint32 entry, ChatMsg type, Player const* source, ...)
{
if (!entry)
return;
@@ -1586,7 +1586,7 @@ void Battleground::PSendMessageToAll(int32 entry, ChatMsg type, Player const* so
va_end(ap);
}
-void Battleground::SendWarningToAll(int32 entry, ...)
+void Battleground::SendWarningToAll(uint32 entry, ...)
{
if (!entry)
return;
@@ -1612,7 +1612,7 @@ void Battleground::SendWarningToAll(int32 entry, ...)
}
}
-void Battleground::SendMessage2ToAll(int32 entry, ChatMsg type, Player const* source, int32 arg1, int32 arg2)
+void Battleground::SendMessage2ToAll(uint32 entry, ChatMsg type, Player const* source, uint32 arg1, uint32 arg2)
{
Trinity::Battleground2ChatBuilder bg_builder(type, entry, source, arg1, arg2);
Trinity::LocalizedPacketDo<Trinity::Battleground2ChatBuilder> bg_do(bg_builder);
@@ -1626,13 +1626,6 @@ void Battleground::EndNow()
SetEndTime(0);
}
-// To be removed
-char const* Battleground::GetTrinityString(int32 entry)
-{
- // FIXME: now we have different DBC locales and need localized message for each target client
- return sObjectMgr->GetTrinityStringForDBCLocale(entry);
-}
-
// IMPORTANT NOTICE:
// buffs aren't spawned/despawned when players captures anything
// buffs are in their positions when battleground starts
diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h
index ab411e3cfc6..001c33cba40 100644
--- a/src/server/game/Battlegrounds/Battleground.h
+++ b/src/server/game/Battlegrounds/Battleground.h
@@ -360,12 +360,12 @@ class Battleground
virtual void EndBattleground(uint32 winner);
void BlockMovement(Player* player);
- void SendWarningToAll(int32 entry, ...);
- void SendMessageToAll(int32 entry, ChatMsg type, Player const* source = NULL);
- void PSendMessageToAll(int32 entry, ChatMsg type, Player const* source, ...);
+ void SendWarningToAll(uint32 entry, ...);
+ void SendMessageToAll(uint32 entry, ChatMsg type, Player const* source = NULL);
+ void PSendMessageToAll(uint32 entry, ChatMsg type, Player const* source, ...);
// specialized version with 2 string id args
- void SendMessage2ToAll(int32 entry, ChatMsg type, Player const* source, int32 strId1 = 0, int32 strId2 = 0);
+ void SendMessage2ToAll(uint32 entry, ChatMsg type, Player const* source, uint32 strId1 = 0, uint32 strId2 = 0);
// Raid Group
Group* GetBgRaid(uint32 TeamID) const { return TeamID == ALLIANCE ? m_BgRaids[TEAM_ALLIANCE] : m_BgRaids[TEAM_HORDE]; }
@@ -442,8 +442,6 @@ class Battleground
void DoorOpen(uint32 type);
void DoorClose(uint32 type);
- //to be removed
- const char* GetTrinityString(int32 entry);
virtual bool HandlePlayerUnderMap(Player* /*player*/) { return false; }
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index a50cf00ad9e..4099b3ac3fd 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -104,7 +104,7 @@ ChatCommand* ChatHandler::getCommandTable()
return commandTableCache;
}
-std::string ChatHandler::PGetParseString(int32 entry, ...) const
+std::string ChatHandler::PGetParseString(uint32 entry, ...) const
{
const char *format = GetTrinityString(entry);
char str[1024];
@@ -115,7 +115,7 @@ std::string ChatHandler::PGetParseString(int32 entry, ...) const
return std::string(str);
}
-const char *ChatHandler::GetTrinityString(int32 entry) const
+char const* ChatHandler::GetTrinityString(uint32 entry) const
{
return m_session->GetTrinityString(entry);
}
@@ -253,12 +253,12 @@ void ChatHandler::SendGlobalGMSysMessage(const char *str)
free(buf);
}
-void ChatHandler::SendSysMessage(int32 entry)
+void ChatHandler::SendSysMessage(uint32 entry)
{
SendSysMessage(GetTrinityString(entry));
}
-void ChatHandler::PSendSysMessage(int32 entry, ...)
+void ChatHandler::PSendSysMessage(uint32 entry, ...)
{
const char *format = GetTrinityString(entry);
va_list ap;
@@ -1250,7 +1250,7 @@ std::string ChatHandler::GetNameLink(Player* chr) const
return playerLink(chr->GetName());
}
-const char *CliHandler::GetTrinityString(int32 entry) const
+char const* CliHandler::GetTrinityString(uint32 entry) const
{
return sObjectMgr->GetTrinityStringForDBCLocale(entry);
}
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index 6ce4e01585f..9e7dcc88c95 100644
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -64,13 +64,13 @@ class ChatHandler
static char* LineFromMessage(char*& pos) { char* start = strtok(pos, "\n"); pos = NULL; return start; }
// function with different implementation for chat/console
- virtual const char *GetTrinityString(int32 entry) const;
- virtual void SendSysMessage(const char *str);
+ virtual char const* GetTrinityString(uint32 entry) const;
+ virtual void SendSysMessage(char const* str);
- void SendSysMessage(int32 entry);
- void PSendSysMessage(const char *format, ...) ATTR_PRINTF(2, 3);
- void PSendSysMessage(int32 entry, ...);
- std::string PGetParseString(int32 entry, ...) const;
+ void SendSysMessage(uint32 entry);
+ void PSendSysMessage(char const* format, ...) ATTR_PRINTF(2, 3);
+ void PSendSysMessage(uint32 entry, ...);
+ std::string PGetParseString(uint32 entry, ...) const;
bool ParseCommands(const char* text);
@@ -147,7 +147,7 @@ class CliHandler : public ChatHandler
explicit CliHandler(void* callbackArg, Print* zprint) : m_callbackArg(callbackArg), m_print(zprint) { }
// overwrite functions
- const char *GetTrinityString(int32 entry) const override;
+ char const* GetTrinityString(uint32 entry) const override;
bool isAvailable(ChatCommand const& cmd) const override;
bool HasPermission(uint32 /*permission*/) const override { return true; }
void SendSysMessage(const char *str) override;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 475774831ba..50d8ffec5ae 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -7673,112 +7673,48 @@ void ObjectMgr::LoadGameObjectForQuests()
TC_LOG_INFO("server.loading", ">> Loaded %u GameObjects for quests in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
-bool ObjectMgr::LoadTrinityStrings(const char* table, int32 min_value, int32 max_value)
+bool ObjectMgr::LoadTrinityStrings()
{
uint32 oldMSTime = getMSTime();
- int32 start_value = min_value;
- int32 end_value = max_value;
- // some string can have negative indexes range
- if (start_value < 0)
- {
- if (end_value >= start_value)
- {
- TC_LOG_ERROR("sql.sql", "Table '%s' attempt loaded with invalid range (%d - %d), strings not loaded.", table, min_value, max_value);
- return false;
- }
-
- // real range (max+1, min+1) exaple: (-10, -1000) -> -999...-10+1
- std::swap(start_value, end_value);
- ++start_value;
- ++end_value;
- }
- else
- {
- if (start_value >= end_value)
- {
- TC_LOG_ERROR("sql.sql", "Table '%s' attempt loaded with invalid range (%d - %d), strings not loaded.", table, min_value, max_value);
- return false;
- }
- }
-
- // cleanup affected map part for reloading case
- for (TrinityStringLocaleContainer::iterator itr = _trinityStringLocaleStore.begin(); itr != _trinityStringLocaleStore.end();)
- {
- if (itr->first >= start_value && itr->first < end_value)
- _trinityStringLocaleStore.erase(itr++);
- else
- ++itr;
- }
-
- QueryResult result = WorldDatabase.PQuery("SELECT entry, content_default, content_loc1, content_loc2, content_loc3, content_loc4, content_loc5, content_loc6, content_loc7, content_loc8 FROM %s", table);
+ _trinityStringStore.clear(); // for reload case
+ QueryResult result = WorldDatabase.Query("SELECT entry, content_default, content_loc1, content_loc2, content_loc3, content_loc4, content_loc5, content_loc6, content_loc7, content_loc8 FROM trinity_string");
if (!result)
{
- if (min_value == MIN_TRINITY_STRING_ID) // error only in case internal strings
- TC_LOG_ERROR("server.loading", ">> Loaded 0 trinity strings. DB table `%s` is empty. Cannot continue.", table);
- else
- TC_LOG_INFO("server.loading", ">> Loaded 0 string templates. DB table `%s` is empty.", table);
-
+ TC_LOG_ERROR("server.loading", ">> Loaded 0 trinity strings. DB table `trinity_string` is empty.");
return false;
}
- uint32 count = 0;
-
do
{
Field* fields = result->Fetch();
- int32 entry = fields[0].GetInt32();
-
- if (entry == 0)
- {
- TC_LOG_ERROR("sql.sql", "Table `%s` contain reserved entry 0, ignored.", table);
- continue;
- }
- else if (entry < start_value || entry >= end_value)
- {
- TC_LOG_ERROR("sql.sql", "Table `%s` contain entry %i out of allowed range (%d - %d), ignored.", table, entry, min_value, max_value);
- continue;
- }
-
- TrinityStringLocale& data = _trinityStringLocaleStore[entry];
+ uint32 entry = fields[0].GetUInt32();
- if (!data.Content.empty())
- {
- TC_LOG_ERROR("sql.sql", "Table `%s` contain data for already loaded entry %i (from another table?), ignored.", table, entry);
- continue;
- }
+ TrinityString& data = _trinityStringStore[entry];
- data.Content.resize(1);
- ++count;
+ data.Content.resize(DEFAULT_LOCALE + 1);
for (int8 i = TOTAL_LOCALES - 1; i >= 0; --i)
AddLocaleString(fields[i + 1].GetString(), LocaleConstant(i), data.Content);
- } while (result->NextRow());
-
- if (min_value == MIN_TRINITY_STRING_ID)
- TC_LOG_INFO("server.loading", ">> Loaded %u Trinity strings from table %s in %u ms", count, table, GetMSTimeDiffToNow(oldMSTime));
- else
- TC_LOG_INFO("server.loading", ">> Loaded %u string templates from %s in %u ms", count, table, GetMSTimeDiffToNow(oldMSTime));
+ }
+ while (result->NextRow());
+ TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " trinity strings in %u ms", _trinityStringStore.size(), GetMSTimeDiffToNow(oldMSTime));
return true;
}
-const char *ObjectMgr::GetTrinityString(int32 entry, LocaleConstant locale_idx) const
+char const* ObjectMgr::GetTrinityString(uint32 entry, LocaleConstant locale) const
{
- if (TrinityStringLocale const* msl = GetTrinityStringLocale(entry))
+ if (TrinityString const* ts = GetTrinityString(entry))
{
- if (msl->Content.size() > size_t(locale_idx) && !msl->Content[locale_idx].empty())
- return msl->Content[locale_idx].c_str();
-
- return msl->Content[DEFAULT_LOCALE].c_str();
+ if (ts->Content.size() > size_t(locale) && !ts->Content[locale].empty())
+ return ts->Content[locale].c_str();
+ return ts->Content[DEFAULT_LOCALE].c_str();
}
- if (entry > 0)
- TC_LOG_ERROR("sql.sql", "Entry %i not found in `trinity_string` table.", entry);
- else
- TC_LOG_ERROR("sql.sql", "Trinity string entry %i not found in DB.", entry);
+ TC_LOG_ERROR("sql.sql", "Trinity string entry %u not found in DB.", entry);
return "<error>";
}
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index a26e2959769..f7e555d336a 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -463,14 +463,10 @@ struct CellObjectGuids
typedef std::unordered_map<uint32/*cell_id*/, CellObjectGuids> CellObjectGuidsMap;
typedef std::unordered_map<uint32/*(mapid, spawnMode) pair*/, CellObjectGuidsMap> MapObjectGuids;
-// Trinity string ranges
-#define MIN_TRINITY_STRING_ID 1 // 'trinity_string'
-#define MAX_TRINITY_STRING_ID 2000000000
-
// Trinity Trainer Reference start range
#define TRINITY_TRAINER_START_REF 200000
-struct TrinityStringLocale
+struct TrinityString
{
StringVector Content;
};
@@ -486,10 +482,11 @@ typedef std::unordered_map<uint32, ItemSetNameLocale> ItemSetNameLocaleContainer
typedef std::unordered_map<uint32, QuestLocale> QuestLocaleContainer;
typedef std::unordered_map<uint32, NpcTextLocale> NpcTextLocaleContainer;
typedef std::unordered_map<uint32, PageTextLocale> PageTextLocaleContainer;
-typedef std::unordered_map<int32, TrinityStringLocale> TrinityStringLocaleContainer;
typedef std::unordered_map<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer;
typedef std::unordered_map<uint32, PointOfInterestLocale> PointOfInterestLocaleContainer;
+typedef std::unordered_map<uint32, TrinityString> TrinityStringContainer;
+
typedef std::multimap<uint32, uint32> QuestRelations; // unit/go -> quest
typedef std::multimap<uint32, uint32> QuestRelationsReverse; // quest -> unit/go
typedef std::pair<QuestRelations::const_iterator, QuestRelations::const_iterator> QuestRelationBounds;
@@ -955,6 +952,8 @@ class ObjectMgr
return _creatureQuestInvolvedRelationsReverse.equal_range(questId);
}
+ bool LoadTrinityStrings();
+
void LoadEventScripts();
void LoadSpellScripts();
void LoadWaypointScripts();
@@ -964,8 +963,6 @@ class ObjectMgr
void LoadBroadcastTexts();
void LoadBroadcastTextLocales();
- bool LoadTrinityStrings(char const* table, int32 min_value, int32 max_value);
- bool LoadTrinityStrings() { return LoadTrinityStrings("trinity_string", MIN_TRINITY_STRING_ID, MAX_TRINITY_STRING_ID); }
void LoadCreatureClassLevelStats();
void LoadCreatureLocales();
void LoadCreatureTemplates();
@@ -1187,14 +1184,15 @@ class ObjectMgr
GameObjectData& NewGOData(uint32 guid) { return _gameObjectDataStore[guid]; }
void DeleteGOData(uint32 guid);
- TrinityStringLocale const* GetTrinityStringLocale(int32 entry) const
+ TrinityString const* GetTrinityString(uint32 entry) const
{
- TrinityStringLocaleContainer::const_iterator itr = _trinityStringLocaleStore.find(entry);
- if (itr == _trinityStringLocaleStore.end()) return NULL;
+ TrinityStringContainer::const_iterator itr = _trinityStringStore.find(entry);
+ if (itr == _trinityStringStore.end())
+ return nullptr;
return &itr->second;
}
- const char *GetTrinityString(int32 entry, LocaleConstant locale_idx) const;
- const char *GetTrinityStringForDBCLocale(int32 entry) const { return GetTrinityString(entry, DBCLocaleIndex); }
+ char const* GetTrinityString(uint32 entry, LocaleConstant locale) const;
+ char const* GetTrinityStringForDBCLocale(uint32 entry) const { return GetTrinityString(entry, DBCLocaleIndex); }
LocaleConstant GetDBCLocaleIndex() const { return DBCLocaleIndex; }
void SetDBCLocaleIndex(LocaleConstant locale) { DBCLocaleIndex = locale; }
@@ -1438,10 +1436,11 @@ class ObjectMgr
QuestLocaleContainer _questLocaleStore;
NpcTextLocaleContainer _npcTextLocaleStore;
PageTextLocaleContainer _pageTextLocaleStore;
- TrinityStringLocaleContainer _trinityStringLocaleStore;
GossipMenuItemsLocaleContainer _gossipMenuItemsLocaleStore;
PointOfInterestLocaleContainer _pointOfInterestLocaleStore;
+ TrinityStringContainer _trinityStringStore;
+
CacheVendorItemContainer _cacheVendorItemStore;
CacheTrainerSpellContainer _cacheTrainerSpellStore;
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 814deba78db..ae8221ef49f 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -1192,8 +1192,5 @@ enum TrinityStrings
LANG_NPCINFO_INHABIT_TYPE = 11008,
LANG_NPCINFO_FLAGS_EXTRA = 11009
-
- // NOT RESERVED IDS 12000-1999999999
- // For other tables maybe 2000010000-2147483647 (max index)
};
#endif
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index beb6ea54b32..84bb90638f7 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -621,7 +621,7 @@ void WorldSession::SendNotification(uint32 string_id, ...)
}
}
-const char *WorldSession::GetTrinityString(int32 entry) const
+char const* WorldSession::GetTrinityString(uint32 entry) const
{
return sObjectMgr->GetTrinityString(entry, GetSessionDbLocaleIndex());
}
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index e46a58d5098..789bd5ab04f 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -366,7 +366,7 @@ class WorldSession
// Locales
LocaleConstant GetSessionDbcLocale() const { return m_sessionDbcLocale; }
LocaleConstant GetSessionDbLocaleIndex() const { return m_sessionDbLocaleIndex; }
- const char *GetTrinityString(int32 entry) const;
+ char const* GetTrinityString(uint32 entry) const;
uint32 GetLatency() const { return m_latency; }
void SetLatency(uint32 latency) { m_latency = latency; }
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index a34362ddacc..0462148129a 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -2186,7 +2186,7 @@ namespace Trinity
{
public:
typedef std::vector<WorldPacket*> WorldPacketList;
- explicit WorldWorldTextBuilder(int32 textId, va_list* args = NULL) : i_textId(textId), i_args(args) { }
+ explicit WorldWorldTextBuilder(uint32 textId, va_list* args = NULL) : i_textId(textId), i_args(args) { }
void operator()(WorldPacketList& data_list, LocaleConstant loc_idx)
{
char const* text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
@@ -2219,13 +2219,13 @@ namespace Trinity
}
}
- int32 i_textId;
+ uint32 i_textId;
va_list* i_args;
};
} // namespace Trinity
/// Send a System Message to all players (except self if mentioned)
-void World::SendWorldText(int32 string_id, ...)
+void World::SendWorldText(uint32 string_id, ...)
{
va_list ap;
va_start(ap, string_id);
@@ -2244,7 +2244,7 @@ void World::SendWorldText(int32 string_id, ...)
}
/// Send a System Message to all GMs (except self if mentioned)
-void World::SendGMText(int32 string_id, ...)
+void World::SendGMText(uint32 string_id, ...)
{
va_list ap;
va_start(ap, string_id);
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 6394fa42327..9987b8ab62c 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -628,9 +628,9 @@ class World
void SetInitialWorldSettings();
void LoadConfigSettings(bool reload = false);
- void SendWorldText(int32 string_id, ...);
+ void SendWorldText(uint32 string_id, ...);
void SendGlobalText(const char* text, WorldSession* self);
- void SendGMText(int32 string_id, ...);
+ void SendGMText(uint32 string_id, ...);
void SendServerMessage(ServerMessageType type, const char *text = "", Player* player = NULL);
void SendGlobalMessage(WorldPacket* packet, WorldSession* self = nullptr, uint32 team = 0);
void SendGlobalGMMessage(WorldPacket* packet, WorldSession* self = nullptr, uint32 team = 0);