aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Battlegrounds/ArenaTeam.cpp
diff options
context:
space:
mode:
authorAokromes <jipr@hotmail.com>2013-05-21 15:11:06 -0700
committerAokromes <jipr@hotmail.com>2013-05-21 15:11:06 -0700
commite5bdb8f90a31d6b80b42a0f02b380b24b64ec36b (patch)
tree6d9e6ca245bd22778b52a36206c92a41742f7bbc /src/server/game/Battlegrounds/ArenaTeam.cpp
parent195196361dc7314cb01c8f6091a8f06b7c2f20ba (diff)
parent178cb300d1807e3082eb3a2f67c4282a8936d085 (diff)
Merge pull request #9842 from Bezo/Arena
Core/Command: Implement .arena commands
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 af76ff71223..a84e7ec30db 100644
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -269,6 +269,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;