diff options
| author | Shauren <shauren.trinity@gmail.com> | 2013-05-30 20:57:07 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2013-05-30 20:57:07 +0200 |
| commit | adb78862da66b13984c6494befdffbf5da0cdbe6 (patch) | |
| tree | 1514857a0131189194c251b7045d234a2bf45d86 /src/server/game/Battlegrounds/ArenaTeam.cpp | |
| parent | cf23793b4b04cfe12f6fc1441a7d9f8192f7dfa6 (diff) | |
| parent | 3a697d4c9f5e9f2fa9c3b08c8e103d90472a871a (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/Achievements/AchievementMgr.cpp
src/server/game/Entities/Unit/Unit.cpp
src/server/game/Entities/Vehicle/Vehicle.cpp
src/server/game/Handlers/ItemHandler.cpp
src/server/game/Handlers/MailHandler.cpp
src/server/game/Server/Protocol/Opcodes.cpp
src/server/game/Server/Protocol/Opcodes.h
src/server/scripts/Commands/cs_misc.cpp
Diffstat (limited to 'src/server/game/Battlegrounds/ArenaTeam.cpp')
| -rw-r--r-- | src/server/game/Battlegrounds/ArenaTeam.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index 668858618cb..9639e36f204 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -271,6 +271,19 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult result) return true; } +bool ArenaTeam::SetName(std::string const& name) +{ + if (TeamName == name || name.empty() || name.length() > 24 || sObjectMgr->IsReservedName(name) || !ObjectMgr::IsValidCharterName(name)) + return false; + + TeamName = name; + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_NAME); + stmt->setString(0, TeamName); + stmt->setUInt32(1, GetId()); + CharacterDatabase.Execute(stmt); + return true; +} + void ArenaTeam::SetCaptain(uint64 guid) { // Disable remove/promote buttons @@ -360,6 +373,29 @@ void ArenaTeam::Disband(WorldSession* session) sArenaTeamMgr->RemoveArenaTeam(TeamId); } +void ArenaTeam::Disband() +{ + // Remove all members from arena team + while (!Members.empty()) + DelMember(Members.front().Guid, false); + + // Update database + SQLTransaction trans = CharacterDatabase.BeginTransaction(); + + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM); + stmt->setUInt32(0, TeamId); + trans->Append(stmt); + + stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM_MEMBERS); + stmt->setUInt32(0, TeamId); + trans->Append(stmt); + + CharacterDatabase.CommitTransaction(trans); + + // Remove arena team from ObjectMgr + sArenaTeamMgr->RemoveArenaTeam(TeamId); +} + void ArenaTeam::Roster(WorldSession* session) { Player* player = NULL; |
