Created private utility methods ClearAllGroups and ClearAllGroupLeaders

This commit is contained in:
Arthur Ice 2014-07-05 11:33:49 -07:00 committed by Arthur Ice
parent 695e6f2026
commit 586e177f98
2 changed files with 36 additions and 14 deletions

View File

@ -1770,13 +1770,10 @@ void Database::SetGroupID(const char* name, uint32 id, uint32 charid, uint32 ism
LogFile->write(EQEMuLog::Error, "Error adding character to group id: %s", results.ErrorMessage().c_str()); LogFile->write(EQEMuLog::Error, "Error adding character to group id: %s", results.ErrorMessage().c_str());
} }
void Database::ClearGroup(uint32 gid) { void Database::ClearAllGroups(void)
ClearGroupLeader(gid); {
char *query = nullptr; char *query = nullptr;
if(gid == 0)
{
//clear all groups
auto results = QueryDatabase(query, MakeAnyLenString(&query, "delete from group_id")); auto results = QueryDatabase(query, MakeAnyLenString(&query, "delete from group_id"));
safe_delete_array(query); safe_delete_array(query);
@ -1786,8 +1783,18 @@ void Database::ClearGroup(uint32 gid) {
return; return;
} }
//clear a specific group void Database::ClearGroup(uint32 gid) {
ClearGroupLeader(gid);
char *query = nullptr;
if(gid == 0)
{
//clear all groups
ClearAllGroups();
return;
}
//clear a specific group
auto results = QueryDatabase(query, MakeAnyLenString(&query, "delete from group_id where groupid = %lu", (unsigned long)gid)); auto results = QueryDatabase(query, MakeAnyLenString(&query, "delete from group_id where groupid = %lu", (unsigned long)gid));
safe_delete_array(query); safe_delete_array(query);
@ -1910,12 +1917,10 @@ char *Database::GetGroupLeadershipInfo(uint32 gid, char* leaderbuf, char* mainta
return leaderbuf; return leaderbuf;
} }
void Database::ClearGroupLeader(uint32 gid) { // Clearing all group leaders
char *query = nullptr; void Database::ClearAllGroupLeaders(void)
if(gid == 0)
{ {
//clear all group leaders char *query = nullptr;
auto results = QueryDatabase(query, MakeAnyLenString(&query, "DELETE from group_leaders")); auto results = QueryDatabase(query, MakeAnyLenString(&query, "DELETE from group_leaders"));
safe_delete_array(query); safe_delete_array(query);
@ -1925,6 +1930,15 @@ void Database::ClearGroupLeader(uint32 gid) {
return; return;
} }
void Database::ClearGroupLeader(uint32 gid) {
char *query = nullptr;
if(gid == 0)
{
ClearAllGroupLeaders();
return;
}
auto results = QueryDatabase(query, MakeAnyLenString(&query, "DELETE from group_leaders where gid = %lu", (unsigned long)gid)); auto results = QueryDatabase(query, MakeAnyLenString(&query, "DELETE from group_leaders where gid = %lu", (unsigned long)gid));
safe_delete_array(query); safe_delete_array(query);

View File

@ -208,6 +208,7 @@ public:
GroupLeadershipAA_Struct* GLAA = nullptr); GroupLeadershipAA_Struct* GLAA = nullptr);
void ClearGroupLeader(uint32 gid = 0); void ClearGroupLeader(uint32 gid = 0);
/* /*
* Raids * Raids
*/ */
@ -262,6 +263,13 @@ private:
uint32 varcache_max; uint32 varcache_max;
VarCache_Struct** varcache_array; VarCache_Struct** varcache_array;
uint32 varcache_lastupdate; uint32 varcache_lastupdate;
/*
* Groups, utility methods.
*/
void ClearAllGroupLeaders();
void ClearAllGroups();
}; };
bool FetchRowMap(MYSQL_RES *result, std::map<std::string,std::string> &rowmap); bool FetchRowMap(MYSQL_RES *result, std::map<std::string,std::string> &rowmap);