Core: Revert async query handling in the guild loading code to remove coding style issues.
Also fixes the compiling on Linux. --HG-- branch : trunk
This commit is contained in:
@@ -3451,46 +3451,19 @@ void ObjectMgr::LoadGuilds()
|
|||||||
{
|
{
|
||||||
Guild *newGuild;
|
Guild *newGuild;
|
||||||
|
|
||||||
QueryCallback<int> callback[MAX_OBJMGR_QUERY_CALLBACK];
|
// 0 1 2 3 4 5 6
|
||||||
|
QueryResult result = CharacterDatabase.Query("SELECT guild.guildid,guild.name,leaderguid,EmblemStyle,EmblemColor,BorderStyle,BorderColor,"
|
||||||
SQLQueryHolder generalHolder;
|
|
||||||
generalHolder.SetSize(MAX_OBJMGR_QUERY_CALLBACK);
|
|
||||||
|
|
||||||
SQLQueryHolder guildEventHolder;
|
|
||||||
guildEventHolder.SetSize(MAX_OBJMGR_QUERY_CALLBACK);
|
|
||||||
|
|
||||||
SQLQueryHolder guildBankEventHolder;
|
|
||||||
guildBankEventHolder.SetSize(MAX_OBJMGR_QUERY_CALLBACK);
|
|
||||||
|
|
||||||
SQLQueryHolder guildBankHolder;
|
|
||||||
guildBankHolder.SetSize(MAX_OBJMGR_QUERY_CALLBACK);
|
|
||||||
|
|
||||||
|
|
||||||
// 0 1 2 3 4 5 6
|
|
||||||
guildEventHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDEVENTS, "SELECT LogGuid, EventType, PlayerGuid1, PlayerGuid2, NewRank, TimeStamp, guildid FROM guild_eventlog ORDER BY TimeStamp DESC, LogGuid DESC");
|
|
||||||
|
|
||||||
// 0 1 2 3 4 5 6 7 8
|
|
||||||
guildBankEventHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDBANKEVENTS, "SELECT LogGuid, EventType, PlayerGuid, ItemOrMoney, ItemStackCount, DestTabId, TimeStamp, guildid, TabId FROM guild_bank_eventlog ORDER BY TimeStamp DESC,LogGuid DESC");
|
|
||||||
|
|
||||||
// 0 1 2 3 4
|
|
||||||
guildBankHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDBANKS, "SELECT TabId, TabName, TabIcon, TabText, guildid FROM guild_bank_tab ORDER BY TabId");
|
|
||||||
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
|
||||||
guildBankHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDBANK_ITEMS, "SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, TabId, SlotId, item_guid, item_entry, guildid FROM guild_bank_item JOIN item_instance ON item_guid = guid");
|
|
||||||
|
|
||||||
|
|
||||||
// 0 1 2 3 4 5 6
|
|
||||||
generalHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDS, "SELECT guild.guildid,guild.name,leaderguid,EmblemStyle,EmblemColor,BorderStyle,BorderColor,"
|
|
||||||
// 7 8 9 10 11 12
|
// 7 8 9 10 11 12
|
||||||
"BackgroundColor,info,motd,createdate,BankMoney,COUNT(guild_bank_tab.guildid) "
|
"BackgroundColor,info,motd,createdate,BankMoney,COUNT(guild_bank_tab.guildid) "
|
||||||
"FROM guild LEFT JOIN guild_bank_tab ON guild.guildid = guild_bank_tab.guildid GROUP BY guild.guildid ORDER BY guildid ASC");
|
"FROM guild LEFT JOIN guild_bank_tab ON guild.guildid = guild_bank_tab.guildid GROUP BY guild.guildid ORDER BY guildid ASC");
|
||||||
|
|
||||||
// load guild ranks
|
// load guild ranks
|
||||||
// 0 1 2 3 4
|
// 0 1 2 3 4
|
||||||
generalHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDRANKS, "SELECT guildid,rid,rname,rights,BankMoneyPerDay FROM guild_rank ORDER BY guildid ASC, rid ASC");
|
QueryResult guildRanksResult = CharacterDatabase.Query("SELECT guildid,rid,rname,rights,BankMoneyPerDay FROM guild_rank ORDER BY guildid ASC, rid ASC");
|
||||||
|
|
||||||
// load guild members
|
// load guild members
|
||||||
// 0 1 2 3 4 5 6
|
// 0 1 2 3 4 5 6
|
||||||
generalHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDMEMBERS, "SELECT guildid,guild_member.guid,rank,pnote,offnote,BankResetTimeMoney,BankRemMoney,"
|
QueryResult guildMembersResult = CharacterDatabase.Query("SELECT guildid,guild_member.guid,rank,pnote,offnote,BankResetTimeMoney,BankRemMoney,"
|
||||||
// 7 8 9 10 11 12
|
// 7 8 9 10 11 12
|
||||||
"BankResetTimeTab0,BankRemSlotsTab0,BankResetTimeTab1,BankRemSlotsTab1,BankResetTimeTab2,BankRemSlotsTab2,"
|
"BankResetTimeTab0,BankRemSlotsTab0,BankResetTimeTab1,BankRemSlotsTab1,BankResetTimeTab2,BankRemSlotsTab2,"
|
||||||
// 13 14 15 16 17 18
|
// 13 14 15 16 17 18
|
||||||
@@ -3500,24 +3473,10 @@ void ObjectMgr::LoadGuilds()
|
|||||||
"FROM guild_member LEFT JOIN characters ON characters.guid = guild_member.guid ORDER BY guildid ASC");
|
"FROM guild_member LEFT JOIN characters ON characters.guid = guild_member.guid ORDER BY guildid ASC");
|
||||||
|
|
||||||
// load guild bank tab rights
|
// load guild bank tab rights
|
||||||
// 0 1 2 3 4
|
// 0 1 2 3 4
|
||||||
generalHolder.SetQuery(OBJMGR_QUERY_CALLBACK_GUILDBANKTABRIGHTS, "SELECT guildid,TabId,rid,gbright,SlotPerDay FROM guild_bank_right ORDER BY guildid ASC, TabId ASC");
|
QueryResult guildBankTabRightsResult = CharacterDatabase.Query("SELECT guildid,TabId,rid,gbright,SlotPerDay FROM guild_bank_right ORDER BY guildid ASC, TabId ASC");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QueryResultHolderFuture generalHolderFuture = CharacterDatabase.DelayQueryHolder(&generalHolder);
|
|
||||||
QueryResultHolderFuture guildEventHolderFuture = CharacterDatabase.DelayQueryHolder(&guildEventHolder);
|
|
||||||
QueryResultHolderFuture guildBankEventHolderFuture = CharacterDatabase.DelayQueryHolder(&guildBankEventHolder);
|
|
||||||
QueryResultHolderFuture guildBankHolderFuture = CharacterDatabase.DelayQueryHolder(&guildBankHolder);
|
|
||||||
|
|
||||||
while(!generalHolderFuture.ready())
|
|
||||||
Sleep(5);
|
|
||||||
|
|
||||||
QueryResult result = generalHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDS);
|
|
||||||
QueryResult guildRanksResult = generalHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDRANKS);
|
|
||||||
QueryResult guildMembersResult = generalHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDMEMBERS);
|
|
||||||
QueryResult guildBankTabRightsResult = generalHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDBANKTABRIGHTS);
|
|
||||||
|
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
barGoLink bar(1);
|
barGoLink bar(1);
|
||||||
@@ -3565,53 +3524,20 @@ void ObjectMgr::LoadGuilds()
|
|||||||
for(GuildMap::iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr)
|
for(GuildMap::iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr)
|
||||||
GuildVector[itr->second->GetId()] = (*itr).second;
|
GuildVector[itr->second->GetId()] = (*itr).second;
|
||||||
|
|
||||||
UNORDERED_MAP<ObjectMgrQueryCallbacks, QueryResultHolderFuture*> callbackMap;
|
// 0 1 2 3 4 5 6
|
||||||
callbackMap[OBJMGR_QUERY_CALLBACK_GUILDEVENTS] = &guildEventHolderFuture;
|
QueryResult guildEventResult = CharacterDatabase.Query("SELECT LogGuid, EventType, PlayerGuid1, PlayerGuid2, NewRank, TimeStamp, guildid FROM guild_eventlog ORDER BY TimeStamp DESC, LogGuid DESC");
|
||||||
callbackMap[OBJMGR_QUERY_CALLBACK_GUILDBANKEVENTS] = &guildBankEventHolderFuture;
|
|
||||||
callbackMap[OBJMGR_QUERY_CALLBACK_GUILDBANKS] = &guildBankHolderFuture;
|
|
||||||
|
|
||||||
UNORDERED_MAP<ObjectMgrQueryCallbacks, QueryResultHolderFuture*>::iterator callbackItr = callbackMap.begin();
|
// 0 1 2 3 4 5 6 7 8
|
||||||
while(!callbackMap.empty())
|
QueryResult guildBankEventResult = CharacterDatabase.Query("SELECT LogGuid, EventType, PlayerGuid, ItemOrMoney, ItemStackCount, DestTabId, TimeStamp, guildid, TabId FROM guild_bank_eventlog ORDER BY TimeStamp DESC,LogGuid DESC");
|
||||||
{
|
|
||||||
if(callbackItr->second->ready())
|
|
||||||
{
|
|
||||||
switch(callbackItr->first)
|
|
||||||
{
|
|
||||||
case OBJMGR_QUERY_CALLBACK_GUILDEVENTS:
|
|
||||||
{
|
|
||||||
QueryResult result = guildEventHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDEVENTS);
|
|
||||||
|
|
||||||
LoadGuildEvents(GuildVector, result);
|
// 0 1 2 3 4
|
||||||
break;
|
QueryResult guildBankTabResult = CharacterDatabase.Query("SELECT TabId, TabName, TabIcon, TabText, guildid FROM guild_bank_tab ORDER BY TabId");
|
||||||
}
|
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||||
case OBJMGR_QUERY_CALLBACK_GUILDBANKEVENTS:
|
QueryResult guildBankItemResult = CharacterDatabase.Query("SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, TabId, SlotId, item_guid, item_entry, guildid FROM guild_bank_item JOIN item_instance ON item_guid = guid");
|
||||||
{
|
|
||||||
QueryResult result = guildBankEventHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDBANKEVENTS);
|
|
||||||
|
|
||||||
LoadGuildBankEvents(GuildVector, result);
|
LoadGuildEvents(GuildVector, guildEventResult);
|
||||||
break;
|
LoadGuildBankEvents(GuildVector, guildBankEventResult);
|
||||||
}
|
LoadGuildBanks(GuildVector, guildBankTabResult, guildBankItemResult);
|
||||||
case OBJMGR_QUERY_CALLBACK_GUILDBANKS:
|
|
||||||
{
|
|
||||||
QueryResult result = guildBankHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDBANKS);
|
|
||||||
QueryResult itemResult = guildBankHolder.GetResult(OBJMGR_QUERY_CALLBACK_GUILDBANK_ITEMS);
|
|
||||||
|
|
||||||
LoadGuildBanks(GuildVector, result, itemResult);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
callbackMap.erase(callbackItr++);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
++callbackItr;
|
|
||||||
|
|
||||||
if(callbackItr == callbackMap.end())
|
|
||||||
{
|
|
||||||
callbackItr = callbackMap.begin();
|
|
||||||
Sleep(5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//delete unused LogGuid records in guild_eventlog and guild_bank_eventlog table
|
//delete unused LogGuid records in guild_eventlog and guild_bank_eventlog table
|
||||||
//you can comment these lines if you don't plan to change CONFIG_GUILD_EVENT_LOG_COUNT and CONFIG_GUILD_BANK_EVENT_LOG_COUNT
|
//you can comment these lines if you don't plan to change CONFIG_GUILD_EVENT_LOG_COUNT and CONFIG_GUILD_BANK_EVENT_LOG_COUNT
|
||||||
|
|||||||
@@ -359,20 +359,6 @@ extern LanguageDesc lang_description[LANGUAGES_COUNT];
|
|||||||
|
|
||||||
class PlayerDumpReader;
|
class PlayerDumpReader;
|
||||||
|
|
||||||
enum ObjectMgrQueryCallbacks
|
|
||||||
{
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDEVENTS,
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDBANKEVENTS,
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDBANKS,
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDBANK_ITEMS,
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDS,
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDRANKS,
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDMEMBERS,
|
|
||||||
OBJMGR_QUERY_CALLBACK_GUILDBANKTABRIGHTS,
|
|
||||||
|
|
||||||
MAX_OBJMGR_QUERY_CALLBACK
|
|
||||||
};
|
|
||||||
|
|
||||||
class ObjectMgr
|
class ObjectMgr
|
||||||
{
|
{
|
||||||
friend class PlayerDumpReader;
|
friend class PlayerDumpReader;
|
||||||
|
|||||||
Reference in New Issue
Block a user