aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Battlegrounds/ArenaTeam.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-05-30 20:57:07 +0200
committerShauren <shauren.trinity@gmail.com>2013-05-30 20:57:07 +0200
commitadb78862da66b13984c6494befdffbf5da0cdbe6 (patch)
tree1514857a0131189194c251b7045d234a2bf45d86 /src/server/game/Battlegrounds/ArenaTeam.cpp
parentcf23793b4b04cfe12f6fc1441a7d9f8192f7dfa6 (diff)
parent3a697d4c9f5e9f2fa9c3b08c8e103d90472a871a (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.cpp36
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;