45 ArenaTeamContainer::const_iterator itr =
ArenaTeamStore.find(arenaTeamId);
62 if (team->GetCaptain() == guid)
70 ASSERT((team ==
nullptr) || (team == arenaTeam),
"Duplicate arena team with ID %u", arenaTeam->
GetId());
83 TC_LOG_ERROR(
"bg.battleground",
"Arena team ids overflow!! Can't continue, shutting down server. ");
94 CharacterDatabase.DirectExecute(
"DELETE FROM arena_team_member WHERE arenaTeamId NOT IN (SELECT arenaTeamId FROM arena_team)");
97 QueryResult result =
CharacterDatabase.Query(
"SELECT arenaTeamId, name, captainGuid, type, backgroundColor, emblemStyle, emblemColor, borderStyle, borderColor, "
99 "rating, weekGames, weekWins, seasonGames, seasonWins, `rank` FROM arena_team ORDER BY arenaTeamId ASC");
103 TC_LOG_INFO(
"server.loading",
">> Loaded 0 arena teams. DB table `arena_team` is empty!");
109 "SELECT arenaTeamId, atm.guid, atm.weekGames, atm.weekWins, atm.seasonGames, atm.seasonWins, c.name, class, personalRating, matchMakerRating FROM arena_team_member atm"
110 " INNER JOIN arena_team ate USING (arenaTeamId)"
111 " LEFT JOIN characters AS c ON atm.guid = c.guid"
112 " LEFT JOIN character_arena_stats AS cas ON c.guid = cas.guid AND (cas.slot = 0 AND ate.type = 2 OR cas.slot = 1 AND ate.type = 3 OR cas.slot = 2 AND ate.type = 5)"
113 " ORDER BY atm.arenateamid ASC");
122 newArenaTeam->
Disband(
nullptr);
131 while (result->NextRow());
std::shared_ptr< ResultSet > QueryResult
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
#define TC_LOG_ERROR(filterType__,...)
#define TC_LOG_INFO(filterType__,...)
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
bool StringEqualI(std::string_view a, std::string_view b)
uint32 GenerateArenaTeamId()
ArenaTeam * GetArenaTeamByCaptain(ObjectGuid guid) const
ArenaTeam * GetArenaTeamById(uint32 arenaTeamId) const
void AddArenaTeam(ArenaTeam *arenaTeam)
ArenaTeamContainer ArenaTeamStore
ArenaTeam * GetArenaTeamByName(std::string_view arenaTeamName) const
void RemoveArenaTeam(uint32 Id)
static ArenaTeamMgr * instance()
void Disband(WorldSession *session)
bool LoadArenaTeamFromDB(QueryResult arenaTeamDataResult)
bool LoadMembersFromDB(QueryResult arenaTeamMembersResult)
static void StopNow(uint8 exitcode)