diff options
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Accounts/AccountMgr.cpp | 23 | ||||
| -rw-r--r-- | src/server/game/Chat/Channels/Channel.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Chat/Commands/Level2.cpp | 52 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 | ||||
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Maps/MapUpdater.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Handlers/MiscHandler.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Handlers/QueryHandler.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSocketMgr.cpp | 25 | ||||
| -rw-r--r-- | src/server/game/Tools/PlayerDump.cpp | 3 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 7 |
16 files changed, 106 insertions, 82 deletions
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp index 4c641fa9d87..8a53daa8278 100644 --- a/src/server/game/Accounts/AccountMgr.cpp +++ b/src/server/game/Accounts/AccountMgr.cpp @@ -48,8 +48,7 @@ AccountOpResult AccountMgr::CreateAccount(std::string username, std::string pass return AOR_NAME_ALREDY_EXIST; // username does already exist } - if (!LoginDatabase.PExecute("INSERT INTO account(username,sha_pass_hash,joindate) VALUES('%s','%s',NOW())", username.c_str(), CalculateShaPassHash(username, password).c_str())) - return AOR_DB_INTERNAL_ERROR; // unexpected error + LoginDatabase.PExecute("INSERT INTO account(username,sha_pass_hash,joindate) VALUES('%s','%s',NOW())", username.c_str(), CalculateShaPassHash(username, password).c_str()); LoginDatabase.Execute("INSERT INTO realmcharacters (realmid, acctid, numchars) SELECT realmlist.id, account.id, 0 FROM realmlist,account LEFT JOIN realmcharacters ON acctid=account.id WHERE acctid IS NULL"); return AOR_OK; // everything's fine @@ -89,16 +88,12 @@ AccountOpResult AccountMgr::DeleteAccount(uint32 accid) LoginDatabase.BeginTransaction(); - bool res = - LoginDatabase.PExecute("DELETE FROM account WHERE id='%d'", accid) && - LoginDatabase.PExecute("DELETE FROM account_access WHERE id ='%d'", accid) && - LoginDatabase.PExecute("DELETE FROM realmcharacters WHERE acctid='%d'", accid); + LoginDatabase.PExecute("DELETE FROM account WHERE id='%d'", accid); + LoginDatabase.PExecute("DELETE FROM account_access WHERE id ='%d'", accid); + LoginDatabase.PExecute("DELETE FROM realmcharacters WHERE acctid='%d'", accid); LoginDatabase.CommitTransaction(); - if (!res) - return AOR_DB_INTERNAL_ERROR; // unexpected error; - return AOR_OK; } @@ -120,9 +115,8 @@ AccountOpResult AccountMgr::ChangeUsername(uint32 accid, std::string new_uname, std::string safe_new_uname = new_uname; LoginDatabase.escape_string(safe_new_uname); - if (!LoginDatabase.PExecute("UPDATE account SET v='0',s='0',username='%s',sha_pass_hash='%s' WHERE id='%d'", safe_new_uname.c_str(), - CalculateShaPassHash(new_uname, new_passwd).c_str(), accid)) - return AOR_DB_INTERNAL_ERROR; // unexpected error + LoginDatabase.PExecute("UPDATE account SET v='0',s='0',username='%s',sha_pass_hash='%s' WHERE id='%d'", safe_new_uname.c_str(), + CalculateShaPassHash(new_uname, new_passwd).c_str(), accid); return AOR_OK; } @@ -141,9 +135,8 @@ AccountOpResult AccountMgr::ChangePassword(uint32 accid, std::string new_passwd) normalizeString(new_passwd); // also reset s and v to force update at next realmd login - if (!LoginDatabase.PExecute("UPDATE account SET v='0', s='0', sha_pass_hash='%s' WHERE id='%d'", - CalculateShaPassHash(username, new_passwd).c_str(), accid)) - return AOR_DB_INTERNAL_ERROR; // unexpected error + LoginDatabase.PExecute("UPDATE account SET v='0', s='0', sha_pass_hash='%s' WHERE id='%d'", + CalculateShaPassHash(username, new_passwd).c_str(), accid); return AOR_OK; } diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp index d1001db5ccb..91b7944a4f5 100644 --- a/src/server/game/Chat/Channels/Channel.cpp +++ b/src/server/game/Chat/Channels/Channel.cpp @@ -84,12 +84,10 @@ Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team) else // save { // _name is already escaped at this point. - if (CharacterDatabase.PExecute("INSERT INTO channels (m_name, m_team, m_announce, m_moderate, m_public, m_password) " - "VALUES ('%s', '%u', '1', '0', '1', '')", _name.c_str(), m_Team)) - { - sLog.outDebug("New Channel(%s) saved", name.c_str()); - m_IsSaved = true; - } + CharacterDatabase.PExecute("INSERT INTO channels (m_name, m_team, m_announce, m_moderate, m_public, m_password) " + "VALUES ('%s', '%u', '1', '0', '1', '')", _name.c_str(), m_Team); + sLog.outDebug("New Channel(%s) saved", name.c_str()); + m_IsSaved = true; } } } @@ -101,8 +99,9 @@ bool Channel::_UpdateStringInDB(const std::string& colName, const std::string& c std::string _colValue(colValue); CharacterDatabase.escape_string(_colValue); CharacterDatabase.escape_string(_name); - return CharacterDatabase.PExecute("UPDATE channels SET %s = '%s' WHERE m_name = '%s' AND m_team = '%u'", + CharacterDatabase.PExecute("UPDATE channels SET %s = '%s' WHERE m_name = '%s' AND m_team = '%u'", colName.c_str(), _colValue.c_str(), _name.c_str(), m_Team); + return true; } bool Channel::_UpdateIntInDB(const std::string& colName, int colValue) const @@ -110,8 +109,9 @@ bool Channel::_UpdateIntInDB(const std::string& colName, int colValue) const // Prevent SQL-injection std::string _name(m_name); CharacterDatabase.escape_string(_name); - return CharacterDatabase.PExecute("UPDATE channels SET %s = '%u' WHERE m_name = '%s' AND m_team = '%u'", + CharacterDatabase.PExecute("UPDATE channels SET %s = '%u' WHERE m_name = '%s' AND m_team = '%u'", colName.c_str(), colValue, _name.c_str(), m_Team); + return true; } void Channel::_UpdateBanListInDB() const diff --git a/src/server/game/Chat/Commands/Level2.cpp b/src/server/game/Chat/Commands/Level2.cpp index cdbdcfb2051..f81c3322916 100644 --- a/src/server/game/Chat/Commands/Level2.cpp +++ b/src/server/game/Chat/Commands/Level2.cpp @@ -1174,7 +1174,7 @@ bool ChatHandler::HandleNpcAddMoveCommand(const char* args) //WaypointMgr.AddLastNode(lowguid, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation(), wait, 0); // update movement type - WorldDatabase.PExecuteLog("UPDATE creature SET MovementType = '%u' WHERE guid = '%u'", WAYPOINT_MOTION_TYPE,lowguid); + WorldDatabase.PExecute("UPDATE creature SET MovementType = '%u' WHERE guid = '%u'", WAYPOINT_MOTION_TYPE,lowguid); if (pCreature && pCreature->GetWaypointPath()) { pCreature->SetDefaultMovementType(WAYPOINT_MOTION_TYPE); @@ -1253,7 +1253,7 @@ bool ChatHandler::HandleNpcFlagCommand(const char* args) pCreature->SetUInt32Value(UNIT_NPC_FLAGS, npcFlags); - WorldDatabase.PExecuteLog("UPDATE creature_template SET npcflag = '%u' WHERE entry = '%u'", npcFlags, pCreature->GetEntry()); + WorldDatabase.PExecute("UPDATE creature_template SET npcflag = '%u' WHERE entry = '%u'", npcFlags, pCreature->GetEntry()); SendSysMessage(LANG_VALUE_SAVED_REJOIN); @@ -1372,7 +1372,7 @@ bool ChatHandler::HandleNpcMoveCommand(const char* args) } } - WorldDatabase.PExecuteLog("UPDATE creature SET position_x = '%f', position_y = '%f', position_z = '%f', orientation = '%f' WHERE guid = '%u'", x, y, z, o, lowguid); + WorldDatabase.PExecute("UPDATE creature SET position_x = '%f', position_y = '%f', position_z = '%f', orientation = '%f' WHERE guid = '%u'", x, y, z, o, lowguid); PSendSysMessage(LANG_COMMAND_CREATUREMOVED); return true; } @@ -1583,7 +1583,7 @@ bool ChatHandler::HandleNpcFactionIdCommand(const char* args) } // and DB - WorldDatabase.PExecuteLog("UPDATE creature_template SET faction_A = '%u', faction_H = '%u' WHERE entry = '%u'", factionId, factionId, pCreature->GetEntry()); + WorldDatabase.PExecute("UPDATE creature_template SET faction_A = '%u', faction_H = '%u' WHERE entry = '%u'", factionId, factionId, pCreature->GetEntry()); return true; } @@ -1621,7 +1621,7 @@ bool ChatHandler::HandleNpcSpawnDistCommand(const char* args) pCreature->Respawn(); } - WorldDatabase.PExecuteLog("UPDATE creature SET spawndist=%f, MovementType=%i WHERE guid=%u",option,mtype,u_guidlow); + WorldDatabase.PExecute("UPDATE creature SET spawndist=%f, MovementType=%i WHERE guid=%u",option,mtype,u_guidlow); PSendSysMessage(LANG_COMMAND_SPAWNDIST,option); return true; } @@ -1653,7 +1653,7 @@ bool ChatHandler::HandleNpcSpawnTimeCommand(const char* args) else return false; - WorldDatabase.PExecuteLog("UPDATE creature SET spawntimesecs=%i WHERE guid=%u",i_stime,u_guidlow); + WorldDatabase.PExecute("UPDATE creature SET spawntimesecs=%i WHERE guid=%u",i_stime,u_guidlow); pCreature->SetRespawnDelay((uint32)i_stime); PSendSysMessage(LANG_COMMAND_SPAWNTIME,i_stime); @@ -2384,7 +2384,7 @@ bool ChatHandler::HandleWpAddCommand(const char* args) Player* player = m_session->GetPlayer(); //Map *map = player->GetMap(); - WorldDatabase.PExecuteLog("INSERT INTO waypoint_data (id, point, position_x, position_y, position_z) VALUES ('%u','%u','%f', '%f', '%f')", + WorldDatabase.PExecute("INSERT INTO waypoint_data (id, point, position_x, position_y, position_z) VALUES ('%u','%u','%f', '%f', '%f')", pathid, point+1, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ()); PSendSysMessage("%s%s%u%s%u%s|r", "|cff00ff00", "PathID: |r|cff00ffff", pathid, "|r|cff00ff00: Waypoint |r|cff00ffff", point+1,"|r|cff00ff00 created. "); @@ -2588,7 +2588,7 @@ bool ChatHandler::HandleWpEventCommand(const char* args) if (result) { - WorldDatabase.PExecuteLog("DELETE FROM waypoint_scripts WHERE guid = %u", id); + WorldDatabase.PExecute("DELETE FROM waypoint_scripts WHERE guid = %u", id); PSendSysMessage("%s%s%u|r","|cff00ff00","Wp Event: Waypoint script removed: ", id); } else @@ -2647,7 +2647,7 @@ bool ChatHandler::HandleWpEventCommand(const char* args) { uint32 newid = atoi(arg_3); PSendSysMessage("%s%s|r|cff00ffff%u|r|cff00ff00%s|r|cff00ffff%u|r","|cff00ff00","Wp Event: Wypoint scipt guid: ", newid," id changed: ", id); - WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET id='%u' WHERE guid='%u'", + WorldDatabase.PExecute("UPDATE waypoint_scripts SET id='%u' WHERE guid='%u'", newid, id); return true; } else @@ -2663,7 +2663,7 @@ bool ChatHandler::HandleWpEventCommand(const char* args) if (arg_str_2 == "posx") { coord = atof(arg_3); - WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET x='%f' WHERE guid='%u'", + WorldDatabase.PExecute("UPDATE waypoint_scripts SET x='%f' WHERE guid='%u'", coord, id); PSendSysMessage("|cff00ff00Waypoint script:|r|cff00ffff %u|r|cff00ff00 position_x updated.|r", id); return true; @@ -2671,7 +2671,7 @@ bool ChatHandler::HandleWpEventCommand(const char* args) else if (arg_str_2 == "posy") { coord = atof(arg_3); - WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET y='%f' WHERE guid='%u'", + WorldDatabase.PExecute("UPDATE waypoint_scripts SET y='%f' WHERE guid='%u'", coord, id); PSendSysMessage("|cff00ff00Waypoint script: %u position_y updated.|r", id); return true; @@ -2679,7 +2679,7 @@ bool ChatHandler::HandleWpEventCommand(const char* args) else if (arg_str_2 == "posz") { coord = atof(arg_3); - WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET z='%f' WHERE guid='%u'", + WorldDatabase.PExecute("UPDATE waypoint_scripts SET z='%f' WHERE guid='%u'", coord, id); PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 position_z updated.|r", id); return true; @@ -2687,14 +2687,14 @@ bool ChatHandler::HandleWpEventCommand(const char* args) else if (arg_str_2 == "orientation") { coord = atof(arg_3); - WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET o='%f' WHERE guid='%u'", + WorldDatabase.PExecute("UPDATE waypoint_scripts SET o='%f' WHERE guid='%u'", coord, id); PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 orientation updated.|r", id); return true; } else if (arg_str_2 == "dataint") { - WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET %s='%u' WHERE guid='%u'", + WorldDatabase.PExecute("UPDATE waypoint_scripts SET %s='%u' WHERE guid='%u'", arg_2, atoi(arg_3), id); PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 dataint updated.|r", id); return true; @@ -2703,7 +2703,7 @@ bool ChatHandler::HandleWpEventCommand(const char* args) { std::string arg_str_3 = arg_3; WorldDatabase.escape_string(arg_str_3); - WorldDatabase.PExecuteLog("UPDATE waypoint_scripts SET %s='%s' WHERE guid='%u'", + WorldDatabase.PExecute("UPDATE waypoint_scripts SET %s='%s' WHERE guid='%u'", arg_2, arg_str_3.c_str(), id); } } @@ -2832,9 +2832,9 @@ bool ChatHandler::HandleWpModifyCommand(const char* args) wpCreature->AddObjectToRemoveList(); } - WorldDatabase.PExecuteLog("DELETE FROM waypoint_data WHERE id='%u' AND point='%u'", + WorldDatabase.PExecute("DELETE FROM waypoint_data WHERE id='%u' AND point='%u'", pathid, point); - WorldDatabase.PExecuteLog("UPDATE waypoint_data SET point=point-1 WHERE id='%u' AND point>'%u'", + WorldDatabase.PExecute("UPDATE waypoint_data SET point=point-1 WHERE id='%u' AND point>'%u'", pathid, point); PSendSysMessage(LANG_WAYPOINT_REMOVED); @@ -2875,7 +2875,7 @@ bool ChatHandler::HandleWpModifyCommand(const char* args) //sMapMgr.GetMap(npcCreature->GetMapId())->Add(wpCreature2); } - WorldDatabase.PExecuteLog("UPDATE waypoint_data SET position_x = '%f',position_y = '%f',position_z = '%f' where id = '%u' AND point='%u'", + WorldDatabase.PExecute("UPDATE waypoint_data SET position_x = '%f',position_y = '%f',position_z = '%f' where id = '%u' AND point='%u'", chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), pathid, point); PSendSysMessage(LANG_WAYPOINT_CHANGED); @@ -2888,7 +2888,7 @@ bool ChatHandler::HandleWpModifyCommand(const char* args) if (text == 0) { // show_str check for present in list of correct values, no sql injection possible - WorldDatabase.PExecuteLog("UPDATE waypoint_data SET %s=NULL WHERE id='%u' AND point='%u'", + WorldDatabase.PExecute("UPDATE waypoint_data SET %s=NULL WHERE id='%u' AND point='%u'", show_str, pathid, point); } else @@ -2896,7 +2896,7 @@ bool ChatHandler::HandleWpModifyCommand(const char* args) // show_str check for present in list of correct values, no sql injection possible std::string text2 = text; WorldDatabase.escape_string(text2); - WorldDatabase.PExecuteLog("UPDATE waypoint_data SET %s='%s' WHERE id='%u' AND point='%u'", + WorldDatabase.PExecute("UPDATE waypoint_data SET %s='%s' WHERE id='%u' AND point='%u'", show_str, text2.c_str(), pathid, point); } @@ -3031,7 +3031,7 @@ bool ChatHandler::HandleWpShowCommand(const char* args) { PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, wpguid); hasError = true; - WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", wpguid); + WorldDatabase.PExecute("DELETE FROM creature WHERE guid = '%u'", wpguid); } else { @@ -3075,7 +3075,7 @@ bool ChatHandler::HandleWpShowCommand(const char* args) sLog.outDebug("DEBUG: UPDATE waypoint_data SET wpguid = '%u"); // set "wpguid" column to the visual waypoint - WorldDatabase.PExecuteLog("UPDATE waypoint_data SET wpguid = '%u' WHERE id = '%u' and point = '%u'", wpCreature->GetGUIDLow(), pathid, point); + WorldDatabase.PExecute("UPDATE waypoint_data SET wpguid = '%u' WHERE id = '%u' and point = '%u'", wpCreature->GetGUIDLow(), pathid, point); wpCreature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), chr->GetPhaseMaskForSpawn()); // To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells(); @@ -3205,7 +3205,7 @@ bool ChatHandler::HandleWpShowCommand(const char* args) { PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, guid); hasError = true; - WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", guid); + WorldDatabase.PExecute("DELETE FROM creature WHERE guid = '%u'", guid); } else { @@ -3216,8 +3216,8 @@ bool ChatHandler::HandleWpShowCommand(const char* args) } while (result->NextRow()); // set "wpguid" column to "empty" - no visual waypoint spawned - WorldDatabase.PExecuteLog("UPDATE waypoint_data SET wpguid = '0'"); - //WorldDatabase.PExecuteLog("UPDATE creature_movement SET wpguid = '0' WHERE wpguid <> '0'"); + WorldDatabase.PExecute("UPDATE waypoint_data SET wpguid = '0'"); + //WorldDatabase.PExecute("UPDATE creature_movement SET wpguid = '0' WHERE wpguid <> '0'"); if (hasError) { @@ -4210,7 +4210,7 @@ bool ChatHandler::HandleNpcAddFormationCommand(const char* args) CreatureGroupMap[lowguid] = group_member; pCreature->SearchFormation(); - WorldDatabase.PExecuteLog("INSERT INTO creature_formations (leaderGUID, memberGUID, dist, angle, groupAI) VALUES ('%u','%u','%f', '%f', '%u')", + WorldDatabase.PExecute("INSERT INTO creature_formations (leaderGUID, memberGUID, dist, angle, groupAI) VALUES ('%u','%u','%f', '%f', '%u')", leaderGUID, lowguid, group_member->follow_dist, group_member->follow_angle, group_member->groupAI); PSendSysMessage("Creature %u added to formation with leader %u", lowguid, leaderGUID); diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index bf1b77edc36..f64cdb57e5f 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1054,7 +1054,7 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask) // updated in DB WorldDatabase.BeginTransaction(); - WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute("DELETE FROM creature WHERE guid = '%u'", m_DBTableGuid); std::ostringstream ss; ss << "INSERT INTO creature VALUES (" @@ -1077,7 +1077,7 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask) << (m_isDeadByDefault ? 1 : 0) << "," //is_dead << GetDefaultMovementType() << ")"; //default movement generator type - WorldDatabase.PExecuteLog(ss.str().c_str()); + WorldDatabase.PExecute(ss.str().c_str()); WorldDatabase.CommitTransaction(); } @@ -1349,10 +1349,10 @@ void Creature::DeleteFromDB() sObjectMgr.DeleteCreatureData(m_DBTableGuid); WorldDatabase.BeginTransaction(); - WorldDatabase.PExecuteLog("DELETE FROM creature WHERE guid = '%u'", m_DBTableGuid); - WorldDatabase.PExecuteLog("DELETE FROM creature_addon WHERE guid = '%u'", m_DBTableGuid); - WorldDatabase.PExecuteLog("DELETE FROM game_event_creature WHERE guid = '%u'", m_DBTableGuid); - WorldDatabase.PExecuteLog("DELETE FROM game_event_model_equip WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute("DELETE FROM creature WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute("DELETE FROM creature_addon WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute("DELETE FROM game_event_creature WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute("DELETE FROM game_event_model_equip WHERE guid = '%u'", m_DBTableGuid); WorldDatabase.CommitTransaction(); } diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index c89f2b866e3..89f17450a83 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -645,8 +645,8 @@ void GameObject::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask) << uint32(GetGoState()) << ")"; WorldDatabase.BeginTransaction(); - WorldDatabase.PExecuteLog("DELETE FROM gameobject WHERE guid = '%u'", m_DBTableGuid); - WorldDatabase.PExecuteLog(ss.str().c_str()); + WorldDatabase.PExecute("DELETE FROM gameobject WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute(ss.str().c_str()); WorldDatabase.CommitTransaction(); } @@ -722,8 +722,8 @@ void GameObject::DeleteFromDB() { sObjectMgr.SaveGORespawnTime(m_DBTableGuid,GetInstanceId(),0); sObjectMgr.DeleteGOData(m_DBTableGuid); - WorldDatabase.PExecuteLog("DELETE FROM gameobject WHERE guid = '%u'", m_DBTableGuid); - WorldDatabase.PExecuteLog("DELETE FROM game_event_gameobject WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute("DELETE FROM gameobject WHERE guid = '%u'", m_DBTableGuid); + WorldDatabase.PExecute("DELETE FROM game_event_gameobject WHERE guid = '%u'", m_DBTableGuid); } GameObject* GameObject::GetGameObject(WorldObject& object, uint64 guid) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9a78bafeba9..ade749671e8 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -59,7 +59,7 @@ #include "OutdoorPvPMgr.h" #include "ArenaTeam.h" #include "Chat.h" -#include "DatabaseImpl.h" +#include "AsyncDatabaseImpl.h" #include "Spell.h" #include "SocialMgr.h" #include "GameEventMgr.h" @@ -15811,7 +15811,7 @@ float Player::GetFloatValueFromArray(Tokens const& data, uint16 index) return result; } -bool Player::LoadFromDB(uint32 guid, SqlQueryHolder *holder) +bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder) { //// 0 1 2 3 4 5 6 7 8 9 10 11 //QueryResult *result = CharacterDatabase.PQuery("SELECT guid, account,name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags," diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 65cc4783ff7..002e1314365 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1407,7 +1407,7 @@ class Player : public Unit, public GridObject<Player> /*** LOAD SYSTEM ***/ /*********************************************************/ - bool LoadFromDB(uint32 guid, SqlQueryHolder *holder); + bool LoadFromDB(uint32 guid, SQLQueryHolder *holder); bool isBeingLoaded() const { return GetSession()->PlayerLoading();} void Initialize(uint32 guid); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 6c434219a1e..d83f7447f4c 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5822,7 +5822,7 @@ bool ObjectMgr::AddGraveYardLink(uint32 id, uint32 zoneId, uint32 team, bool inD // add link to DB if (inDB) { - WorldDatabase.PExecuteLog("INSERT INTO game_graveyard_zone (id,ghost_zone,faction) " + WorldDatabase.PExecute("INSERT INTO game_graveyard_zone (id,ghost_zone,faction) " "VALUES ('%u', '%u','%u')",id,zoneId,team); } @@ -8033,8 +8033,9 @@ bool ObjectMgr::AddGameTele(GameTele& tele) m_GameTeleMap[new_id] = tele; - return WorldDatabase.PExecuteLog("INSERT INTO game_tele (id,position_x,position_y,position_z,orientation,map,name) VALUES (%u,%f,%f,%f,%f,%d,'%s')", + WorldDatabase.PExecute("INSERT INTO game_tele (id,position_x,position_y,position_z,orientation,map,name) VALUES (%u,%f,%f,%f,%f,%d,'%s')", new_id,tele.position_x,tele.position_y,tele.position_z,tele.orientation,tele.mapId,tele.name.c_str()); + return true; } bool ObjectMgr::DeleteGameTele(const std::string& name) @@ -8051,7 +8052,7 @@ bool ObjectMgr::DeleteGameTele(const std::string& name) { if (itr->second.wnameLow == wname) { - WorldDatabase.PExecuteLog("DELETE FROM game_tele WHERE name = '%s'",itr->second.name.c_str()); + WorldDatabase.PExecute("DELETE FROM game_tele WHERE name = '%s'",itr->second.name.c_str()); m_GameTeleMap.erase(itr); return true; } @@ -8577,7 +8578,7 @@ void ObjectMgr::AddVendorItem(uint32 entry,uint32 item, int32 maxcount, uint32 i vList.AddItem(item, maxcount, incrtime, extendedcost); if (savetodb) - WorldDatabase.PExecuteLog("INSERT INTO npc_vendor (entry,item,maxcount,incrtime,extendedcost) VALUES('%u','%u','%u','%u','%u')", entry, item, maxcount, incrtime, extendedcost); + WorldDatabase.PExecute("INSERT INTO npc_vendor (entry,item,maxcount,incrtime,extendedcost) VALUES('%u','%u','%u','%u','%u')", entry, item, maxcount, incrtime, extendedcost); } bool ObjectMgr::RemoveVendorItem(uint32 entry,uint32 item, bool savetodb) @@ -8589,7 +8590,7 @@ bool ObjectMgr::RemoveVendorItem(uint32 entry,uint32 item, bool savetodb) if(!iter->second.RemoveItem(item)) return false; - if (savetodb) WorldDatabase.PExecuteLog("DELETE FROM npc_vendor WHERE entry='%u' AND item='%u'",entry, item); + if (savetodb) WorldDatabase.PExecute("DELETE FROM npc_vendor WHERE entry='%u' AND item='%u'",entry, item); return true; } diff --git a/src/server/game/Maps/MapUpdater.cpp b/src/server/game/Maps/MapUpdater.cpp index 5720ed1eb50..7e1b82f2275 100644 --- a/src/server/game/Maps/MapUpdater.cpp +++ b/src/server/game/Maps/MapUpdater.cpp @@ -16,7 +16,8 @@ class WDBThreadStartReq1 : public ACE_Method_Request virtual int call() { - WorldDatabase.ThreadStart(); + WorldDatabase.Init_MySQL_Connection(); + CharacterDatabase.Init_MySQL_Connection(); return 0; } }; @@ -31,7 +32,8 @@ class WDBThreadEndReq1 : public ACE_Method_Request virtual int call() { - WorldDatabase.ThreadEnd(); + WorldDatabase.End_MySQL_Connection(); + CharacterDatabase.End_MySQL_Connection(); return 0; } }; diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index f25dd5824dc..2a764a366e8 100644 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -27,7 +27,7 @@ #include "WorldSession.h" #include "MD5.h" #include "DatabaseEnv.h" -#include "DatabaseImpl.h" +#include "AsyncDatabaseImpl.h" #include "ArenaTeam.h" #include "Chat.h" @@ -44,7 +44,7 @@ #include "Util.h" #include "ScriptMgr.h" -class LoginQueryHolder : public SqlQueryHolder +class LoginQueryHolder : public SQLQueryHolder { private: uint32 m_accountId; @@ -117,7 +117,7 @@ class CharacterHandler return; session->HandleCharEnum(result); } - void HandlePlayerLoginCallback(QueryResult_AutoPtr /*dummy*/, SqlQueryHolder * holder) + void HandlePlayerLoginCallback(QueryResult_AutoPtr /*dummy*/, SQLQueryHolder * holder) { if (!holder) return; WorldSession *session = sWorld.FindSession(((LoginQueryHolder*)holder)->GetAccountId()); diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp index 2656478f899..79e3374c975 100644 --- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp @@ -21,7 +21,7 @@ #include "Common.h" #include "Language.h" #include "DatabaseEnv.h" -#include "DatabaseImpl.h" +#include "AsyncDatabaseImpl.h" #include "WorldPacket.h" #include "Opcodes.h" #include "Log.h" diff --git a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp index 0aa6ded77f0..7cb60435d69 100644 --- a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp @@ -21,7 +21,7 @@ #include "Common.h" #include "Language.h" #include "DatabaseEnv.h" -#include "DatabaseImpl.h" +#include "AsyncDatabaseImpl.h" #include "WorldPacket.h" #include "WorldSession.h" #include "Opcodes.h" diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp index 9a50456919f..1293849c496 100644 --- a/src/server/game/Server/WorldSocketMgr.cpp +++ b/src/server/game/Server/WorldSocketMgr.cpp @@ -158,7 +158,21 @@ class ReactorRunnable : protected ACE_Task_Base { DEBUG_LOG ("Network Thread Starting"); - WorldDatabase.ThreadStart(); + bool needInit = true; + if (!(sWorld.getConfig(CONFIG_MYSQL_BUNDLE_LOGINDB) & MYSQL_BUNDLE_RA)) + { + LoginDatabase.Init_MySQL_Connection(); + needInit = false; + } + + if (!(sWorld.getConfig(CONFIG_MYSQL_BUNDLE_CHARDB) & MYSQL_BUNDLE_RA)) + { + CharacterDatabase.Init_MySQL_Connection(); + needInit = false; + } + + if (needInit) + MySQL::Thread_Init(); ACE_ASSERT (m_Reactor); @@ -195,7 +209,14 @@ class ReactorRunnable : protected ACE_Task_Base } } - WorldDatabase.ThreadEnd(); + ///- Free MySQL thread resources and deallocate lingering connections + if (!(sWorld.getConfig(CONFIG_MYSQL_BUNDLE_LOGINDB) & MYSQL_BUNDLE_RA)) + LoginDatabase.End_MySQL_Connection(); + if (!(sWorld.getConfig(CONFIG_MYSQL_BUNDLE_CHARDB) & MYSQL_BUNDLE_RA)) + CharacterDatabase.End_MySQL_Connection(); + + if (needInit) + MySQL::Thread_End(); DEBUG_LOG ("Network Thread Exitting"); diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp index 402a274f3cf..4fed5faa7dd 100644 --- a/src/server/game/Tools/PlayerDump.cpp +++ b/src/server/game/Tools/PlayerDump.cpp @@ -629,8 +629,7 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s fixNULLfields(line); - if (!CharacterDatabase.Execute(line.c_str())) - ROLLBACK(DUMP_FILE_BROKEN); + CharacterDatabase.Execute(line.c_str()); } CharacterDatabase.CommitTransaction(); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 0e5bd88fbb8..15794718491 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -54,7 +54,7 @@ #include "VMapFactory.h" #include "GameEventMgr.h" #include "PoolMgr.h" -#include "DatabaseImpl.h" +#include "AsyncDatabaseImpl.h" #include "GridNotifiersImpl.h" #include "CellImpl.h" #include "InstanceSaveMgr.h" @@ -1223,6 +1223,11 @@ void World::LoadConfigSettings(bool reload) // Dungeon finder m_configs[CONFIG_DUNGEON_FINDER_ENABLE] = sConfig.GetBoolDefault("DungeonFinder.Enable", false); + // MySQL thread bundling config for other runnable tasks + m_configs[CONFIG_MYSQL_BUNDLE_LOGINDB] = sConfig.GetIntDefault("LoginDatabase.ThreadBundleMask", MYSQL_BUNDLE_ALL); + m_configs[CONFIG_MYSQL_BUNDLE_CHARDB] = sConfig.GetIntDefault("CharacterDatabase.ThreadBundleMask", MYSQL_BUNDLE_ALL); + m_configs[CONFIG_MYSQL_BUNDLE_WORLDDB] = sConfig.GetIntDefault("WorldDatabase.ThreadBundleMask", MYSQL_BUNDLE_ALL); + sScriptMgr.OnConfigLoad(reload); } @@ -2478,7 +2483,7 @@ void World::SendRNDBroadcast() void World::InitResultQueue() { - m_resultQueue = new SqlResultQueue; + m_resultQueue = new SQLResultQueue; CharacterDatabase.SetResultQueue(m_resultQueue); } diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 817e8253fe8..8a480d0ccc6 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -42,7 +42,7 @@ class WorldSession; class Player; struct ScriptAction; struct ScriptInfo; -class SqlResultQueue; +class SQLResultQueue; class QueryResult; class WorldSocket; class SystemMgr; @@ -286,6 +286,9 @@ enum WorldConfigs CONFIG_CHARDELETE_MIN_LEVEL, CONFIG_CLEAN_CHARACTER_DB, CONFIG_DUNGEON_FINDER_ENABLE, + CONFIG_MYSQL_BUNDLE_LOGINDB, + CONFIG_MYSQL_BUNDLE_CHARDB, + CONFIG_MYSQL_BUNDLE_WORLDDB, CONFIG_VALUE_COUNT }; @@ -761,7 +764,7 @@ class World // CLI command holder to be thread safe ACE_Based::LockedQueue<CliCommandHolder*,ACE_Thread_Mutex> cliCmdQueue; - SqlResultQueue *m_resultQueue; + SQLResultQueue *m_resultQueue; // next daily quests and random bg reset time time_t m_NextDailyQuestReset; |
