summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKargatum <dowlandtop@yandex.com>2022-02-05 06:37:11 +0700
committerGitHub <noreply@github.com>2022-02-05 00:37:11 +0100
commitde13bf426e162ee10cbd5470cec74122d1d4afa0 (patch)
tree407c1051b09fea21f946c4ad3b3e4727fca5c400
parentd6ead1d1e019bd7afd8230b305ae4dd98babd353 (diff)
feat(Core/DBLayer): replace `char const*` to `std::string_view` (#10211)
* feat(Core/DBLayer): replace `char const*` to `std::string_view` * CString * 1 * chore(Core/Misc): code cleanup * cl * db fix * fmt style sql * to fmt * py * del old * 1 * 2 * 3 * 1 * 1
-rw-r--r--apps/Fmt/FormatReplace.py66
-rw-r--r--data/sql/updates/pending_db_world/rev_1643662892603722900.sql5
-rw-r--r--doc/changelog/pendings/changes_1643570355041139200.md118
-rw-r--r--src/cmake/compiler/msvc/settings.cmake6
-rw-r--r--src/common/Common.h9
-rw-r--r--src/common/Utilities/StringFormat.h2
-rw-r--r--src/common/Utilities/Util.h2
-rw-r--r--src/server/authserver/Server/AuthSession.cpp71
-rw-r--r--src/server/database/Database/AdhocStatement.cpp12
-rw-r--r--src/server/database/Database/AdhocStatement.h4
-rw-r--r--src/server/database/Database/DatabaseLoader.cpp19
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.cpp55
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.h52
-rw-r--r--src/server/database/Database/Field.cpp434
-rw-r--r--src/server/database/Database/Field.h120
-rw-r--r--src/server/database/Database/MySQLConnection.cpp140
-rw-r--r--src/server/database/Database/MySQLConnection.h28
-rw-r--r--src/server/database/Database/MySQLPreparedStatement.cpp55
-rw-r--r--src/server/database/Database/MySQLPreparedStatement.h17
-rw-r--r--src/server/database/Database/PreparedStatement.cpp168
-rw-r--r--src/server/database/Database/PreparedStatement.h30
-rw-r--r--src/server/database/Database/QueryCallback.cpp24
-rw-r--r--src/server/database/Database/QueryCallback.h6
-rw-r--r--src/server/database/Database/QueryHolder.h15
-rw-r--r--src/server/database/Database/QueryResult.cpp452
-rw-r--r--src/server/database/Database/QueryResult.h38
-rw-r--r--src/server/database/Database/SQLOperation.h11
-rw-r--r--src/server/database/Database/Transaction.cpp84
-rw-r--r--src/server/database/Database/Transaction.h26
-rw-r--r--src/server/database/Logging/AppenderDB.cpp12
-rw-r--r--src/server/database/Updater/UpdateFetcher.cpp6
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.cpp78
-rw-r--r--src/server/game/Accounts/AccountMgr.cpp76
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp74
-rw-r--r--src/server/game/Addons/AddonMgr.cpp16
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp58
-rw-r--r--src/server/game/Battlegrounds/ArenaTeam.cpp142
-rw-r--r--src/server/game/Battlegrounds/ArenaTeamMgr.cpp4
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp126
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp32
-rw-r--r--src/server/game/Battlegrounds/BattlegroundQueue.cpp4
-rw-r--r--src/server/game/Cache/CharacterCache.cpp16
-rw-r--r--src/server/game/Calendar/CalendarMgr.cpp74
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp28
-rw-r--r--src/server/game/Chat/Channels/ChannelMgr.cpp24
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommand.cpp6
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp30
-rw-r--r--src/server/game/Conditions/DisableMgr.cpp10
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp30
-rw-r--r--src/server/game/Entities/Corpse/Corpse.cpp70
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp52
-rw-r--r--src/server/game/Entities/Creature/CreatureGroups.cpp14
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp40
-rw-r--r--src/server/game/Entities/Item/Item.cpp90
-rw-r--r--src/server/game/Entities/Item/ItemEnchantmentMgr.cpp6
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp164
-rw-r--r--src/server/game/Entities/Player/Player.cpp692
-rw-r--r--src/server/game/Entities/Player/PlayerMisc.cpp42
-rw-r--r--src/server/game/Entities/Player/PlayerQuest.cpp12
-rw-r--r--src/server/game/Entities/Player/PlayerSettings.cpp10
-rw-r--r--src/server/game/Entities/Player/PlayerStorage.cpp600
-rw-r--r--src/server/game/Entities/Player/PlayerUpdates.cpp34
-rw-r--r--src/server/game/Entities/Player/SocialMgr.cpp34
-rw-r--r--src/server/game/Events/GameEventMgr.cpp158
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp1354
-rw-r--r--src/server/game/Groups/Group.cpp112
-rw-r--r--src/server/game/Groups/GroupMgr.cpp6
-rw-r--r--src/server/game/Guilds/Guild.cpp376
-rw-r--r--src/server/game/Guilds/Guild.h2
-rw-r--r--src/server/game/Guilds/GuildMgr.cpp18
-rw-r--r--src/server/game/Handlers/AuctionHouseHandler.cpp6
-rw-r--r--src/server/game/Handlers/BattleGroundHandler.cpp4
-rw-r--r--src/server/game/Handlers/CalendarHandler.cpp10
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp300
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp20
-rw-r--r--src/server/game/Handlers/MailHandler.cpp12
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp14
-rw-r--r--src/server/game/Handlers/NPCHandler.cpp42
-rw-r--r--src/server/game/Handlers/PetHandler.cpp12
-rw-r--r--src/server/game/Handlers/PetitionsHandler.cpp28
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp4
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp8
-rw-r--r--src/server/game/Handlers/TicketHandler.cpp32
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp8
-rw-r--r--src/server/game/Instances/InstanceSaveMgr.cpp98
-rw-r--r--src/server/game/Instances/InstanceScript.cpp8
-rw-r--r--src/server/game/Loot/LootItemStorage.cpp68
-rw-r--r--src/server/game/Loot/LootMgr.cpp20
-rw-r--r--src/server/game/Mails/Mail.cpp42
-rw-r--r--src/server/game/Maps/Map.cpp66
-rw-r--r--src/server/game/Maps/MapMgr.cpp2
-rw-r--r--src/server/game/Maps/TransportMgr.cpp12
-rw-r--r--src/server/game/Misc/BanMgr.cpp58
-rw-r--r--src/server/game/Misc/GameGraveyard.cpp30
-rw-r--r--src/server/game/Movement/Waypoints/WaypointMgr.cpp40
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvP.cpp6
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp4
-rw-r--r--src/server/game/Petitions/PetitionMgr.cpp4
-rw-r--r--src/server/game/Pools/PoolMgr.cpp42
-rw-r--r--src/server/game/Quests/QuestDef.cpp156
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp20
-rw-r--r--src/server/game/Scripting/ScriptSystem.cpp12
-rw-r--r--src/server/game/Server/WorldSession.cpp38
-rw-r--r--src/server/game/Server/WorldSocket.cpp48
-rw-r--r--src/server/game/Skills/SkillDiscovery.cpp8
-rw-r--r--src/server/game/Skills/SkillExtraItems.cpp16
-rw-r--r--src/server/game/Spells/SpellMgr.cpp160
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp34
-rw-r--r--src/server/game/Tickets/TicketMgr.cpp84
-rw-r--r--src/server/game/Tools/CharacterDatabaseCleaner.cpp12
-rw-r--r--src/server/game/Tools/PlayerDump.cpp26
-rw-r--r--src/server/game/Warden/WardenCheckMgr.cpp22
-rw-r--r--src/server/game/Weather/WeatherMgr.cpp10
-rw-r--r--src/server/game/World/World.cpp66
-rw-r--r--src/server/scripts/Commands/cs_account.cpp76
-rw-r--r--src/server/scripts/Commands/cs_ban.cpp94
-rw-r--r--src/server/scripts/Commands/cs_character.cpp50
-rw-r--r--src/server/scripts/Commands/cs_disable.cpp20
-rw-r--r--src/server/scripts/Commands/cs_gear.cpp22
-rw-r--r--src/server/scripts/Commands/cs_gm.cpp16
-rw-r--r--src/server/scripts/Commands/cs_gobject.cpp64
-rw-r--r--src/server/scripts/Commands/cs_item.cpp46
-rw-r--r--src/server/scripts/Commands/cs_list.cpp110
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp16
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp122
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp76
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp146
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp2
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp10
-rw-r--r--src/server/scripts/Commands/cs_server.cpp4
-rw-r--r--src/server/scripts/Commands/cs_tele.cpp10
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp196
-rw-r--r--src/server/scripts/World/action_ip_logger.cpp40
-rw-r--r--src/server/shared/DataStores/DBCDatabaseLoader.cpp12
-rw-r--r--src/server/shared/Realms/RealmList.cpp38
-rw-r--r--src/server/shared/Secrets/SecretMgr.cpp18
-rw-r--r--src/server/worldserver/Main.cpp40
-rw-r--r--src/server/worldserver/RemoteAccess/RASession.cpp12
-rw-r--r--src/tools/mesh_extractor/DBC.h2
-rw-r--r--src/tools/mesh_extractor/MeshExtractor.cpp4
140 files changed, 4966 insertions, 4793 deletions
diff --git a/apps/Fmt/FormatReplace.py b/apps/Fmt/FormatReplace.py
index 1e4e90da9e..a25a02ed51 100644
--- a/apps/Fmt/FormatReplace.py
+++ b/apps/Fmt/FormatReplace.py
@@ -41,26 +41,26 @@ def islog(line):
# else :
# return False
-# def isPQuery(line):
-# substring = 'PQuery'
-# if substring in line:
-# return True
-# else :
-# return False
+def isPQuery(line):
+ substring = 'PQuery'
+ if substring in line:
+ return True
+ else :
+ return False
-# def isPExecute(line):
-# substring = 'PExecute'
-# if substring in line:
-# return True
-# else :
-# return False
+def isPExecute(line):
+ substring = 'PExecute'
+ if substring in line:
+ return True
+ else :
+ return False
-# def isPAppend(line):
-# substring = 'PAppend'
-# if substring in line:
-# return True
-# else :
-# return False
+def isPAppend(line):
+ substring = 'PAppend'
+ if substring in line:
+ return True
+ else :
+ return False
# def isStringFormat(line):
# substring = 'StringFormat'
@@ -83,12 +83,15 @@ def checkSoloLine(line):
return handleCleanup(line), False
elif islog(line):
return handleCleanup(line), False
- # elif isPExecute(line):
- # return handleCleanup(line), False
- # elif isPQuery(line):
- # return handleCleanup(line), False
- # elif isPAppend(line):
- # return handleCleanup(line), False
+ elif isPExecute(line):
+ line = line.replace("PExecute", "Execute");
+ return handleCleanup(line), False
+ elif isPQuery(line):
+ line = line.replace("PQuery", "Query");
+ return handleCleanup(line), False
+ elif isPAppend(line):
+ line = line.replace("PAppend", "Append");
+ return handleCleanup(line), False
# elif isSendSysMessage(line):
# return handleCleanup(line), False
# elif isPSendSysMessage(line):
@@ -110,12 +113,15 @@ def startMultiLine(line):
# return handleCleanup(line), True
# elif isPSendSysMessage(line):
# return handleCleanup(line), True
- # elif isPQuery(line):
- # return handleCleanup(line), True
- # elif isPExecute(line):
- # return handleCleanup(line), True
- # elif isPAppend(line):
- # return handleCleanup(line), True
+ elif isPQuery(line):
+ line = line.replace("PQuery", "Query");
+ return handleCleanup(line), True
+ elif isPExecute(line):
+ line = line.replace("PExecute", "Execute");
+ return handleCleanup(line), True
+ elif isPAppend(line):
+ line = line.replace("PAppend", "Append");
+ return handleCleanup(line), True
# elif isStringFormat(line):
# return handleCleanup(line), True
else :
diff --git a/data/sql/updates/pending_db_world/rev_1643662892603722900.sql b/data/sql/updates/pending_db_world/rev_1643662892603722900.sql
new file mode 100644
index 0000000000..5f530983db
--- /dev/null
+++ b/data/sql/updates/pending_db_world/rev_1643662892603722900.sql
@@ -0,0 +1,5 @@
+INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1643662892603722900');
+
+UPDATE `creature_template` SET `RegenHealth` = 0 WHERE `RegenHealth` >= 2;
+UPDATE `creature_onkill_reputation` SET `IsTeamAward1` = 0 WHERE `IsTeamAward1` >= 2;
+UPDATE `creature_onkill_reputation` SET `IsTeamAward2` = 0 WHERE `IsTeamAward2` >= 2;
diff --git a/doc/changelog/pendings/changes_1643570355041139200.md b/doc/changelog/pendings/changes_1643570355041139200.md
new file mode 100644
index 0000000000..1e2f018488
--- /dev/null
+++ b/doc/changelog/pendings/changes_1643570355041139200.md
@@ -0,0 +1,118 @@
+## How to upgrade
+- `PrepareStatment`
+
+```diff
+- setNull(...)
++ SetData(...)
+```
+```diff
+- setBool(...)
++ SetData(...)
+```
+```diff
+- setUInt8(...)
++ SetData(...)
+```
+```diff
+- setInt8(...)
++ SetData(...)
+```
+```diff
+- setUInt16(...)
++ SetData(...)
+```
+```diff
+- setInt16(...)
++ SetData(...)
+```
+```diff
+- setUInt32(...)
++ SetData(...)
+```
+```diff
+- setUInt64(...)
++ SetData(...)
+```
+```diff
+- setInt64(...)
++ SetData(...)
+```
+```diff
+- setFloat(...)
++ SetData(...)
+```
+```diff
+- setDouble(...)
++ SetData(...)
+```
+```diff
+- setString(...)
++ SetData(...)
+```
+```diff
+- setStringView(...)
++ SetData(...)
+```
+```diff
+- setBinary(...)
++ SetData(...)
+```
+
+- `Fields`
+
+```diff
+- GetBool()
++ Get<bool>()
+```
+```diff
+- GetUInt8()
++ Get<uint8>()
+```
+```diff
+- GetInt8()
++ Get<int8>()
+```
+```diff
+- GetUInt16()
++ Get<uint16>()
+```
+```diff
+- GetInt16()
++ Get<int16>()
+```
+```diff
+- GetUInt32()
++ Get<uint32>()
+```
+```diff
+- GetInt32()
++ Get<int32>()
+```
+```diff
+- GetUInt64()
++ Get<uint64>()
+```
+```diff
+- GetInt64()
++ Get<int64>()
+```
+```diff
+- GetFloat()
++ Get<float>()
+```
+```diff
+- GetDouble()
++ Get<double>()
+```
+```diff
+- GetString()
++ Get<std::string>()
+```
+```diff
+- GetStringView()
++ Get<std::string_view>()
+```
+```diff
+- GetBinary()
++ Get<Binary>()
+```
diff --git a/src/cmake/compiler/msvc/settings.cmake b/src/cmake/compiler/msvc/settings.cmake
index b6986158dd..8d859b828e 100644
--- a/src/cmake/compiler/msvc/settings.cmake
+++ b/src/cmake/compiler/msvc/settings.cmake
@@ -107,6 +107,12 @@ target_compile_options(acore-compile-option-interface
/wd4351 # C4351: new behavior: elements of array 'x' will be default initialized
/wd4091) # C4091: 'typedef ': ignored on left of '' when no variable is declared
+# Define NOMINMAX
+target_compile_definitions(acore-compile-option-interface
+ INTERFACE
+ -DNOMINMAX)
+message(STATUS "MSVC: Enable NOMINMAX")
+
if(NOT WITH_WARNINGS)
target_compile_options(acore-warning-interface
INTERFACE
diff --git a/src/common/Common.h b/src/common/Common.h
index 4393f93f62..1811d65e6a 100644
--- a/src/common/Common.h
+++ b/src/common/Common.h
@@ -95,15 +95,6 @@ AC_COMMON_API extern char const* localeNames[TOTAL_LOCALES];
AC_COMMON_API LocaleConstant GetLocaleByName(const std::string& name);
AC_COMMON_API void CleanStringForMysqlQuery(std::string& str);
-// we always use stdlibc++ std::max/std::min, undefine some not C++ standard defines (Win API and some other platforms)
-#ifdef max
-#undef max
-#endif
-
-#ifdef min
-#undef min
-#endif
-
#define MAX_QUERY_LEN 32*1024
namespace Acore
diff --git a/src/common/Utilities/StringFormat.h b/src/common/Utilities/StringFormat.h
index e7f6fab3e0..e0e4d1aac9 100644
--- a/src/common/Utilities/StringFormat.h
+++ b/src/common/Utilities/StringFormat.h
@@ -19,7 +19,7 @@
#define _STRING_FORMAT_H_
#include "Define.h"
-#include <fmt/core.h>
+#include <fmt/format.h>
#include <fmt/printf.h>
namespace Acore
diff --git a/src/common/Utilities/Util.h b/src/common/Utilities/Util.h
index ec65748c4d..3648c850d7 100644
--- a/src/common/Utilities/Util.h
+++ b/src/common/Utilities/Util.h
@@ -78,7 +78,7 @@ inline T ApplyPct(T& base, U pct)
template <class T>
inline T RoundToInterval(T& num, T floor, T ceil)
{
- return num = std::min(std::max(num, floor), ceil);
+ return num = std::min<T>(std::max<T>(num, floor), ceil);
}
// UTF8 handling
diff --git a/src/server/authserver/Server/AuthSession.cpp b/src/server/authserver/Server/AuthSession.cpp
index 81e55f3d6b..2940086488 100644
--- a/src/server/authserver/Server/AuthSession.cpp
+++ b/src/server/authserver/Server/AuthSession.cpp
@@ -149,15 +149,15 @@ void AccountInfo::LoadResult(Field* fields)
// aa.gmlevel (, more query-specific fields)
// FROM account a LEFT JOIN account_access aa ON a.id = aa.id LEFT JOIN account_banned ab ON ab.id = a.id AND ab.active = 1 LEFT JOIN ip_banned ipb ON ipb.ip = ? WHERE a.username = ?
- Id = fields[0].GetUInt32();
- Login = fields[1].GetString();
- IsLockedToIP = fields[2].GetBool();
- LockCountry = fields[3].GetString();
- LastIP = fields[4].GetString();
- FailedLogins = fields[5].GetUInt32();
- IsBanned = fields[6].GetBool() || fields[8].GetBool();
- IsPermanentlyBanned = fields[7].GetBool() || fields[9].GetBool();
- SecurityLevel = static_cast<AccountTypes>(fields[10].GetUInt8()) > SEC_CONSOLE ? SEC_CONSOLE : static_cast<AccountTypes>(fields[10].GetUInt8());
+ Id = fields[0].Get<uint32>();
+ Login = fields[1].Get<std::string>();
+ IsLockedToIP = fields[2].Get<bool>();
+ LockCountry = fields[3].Get<std::string>();
+ LastIP = fields[4].Get<std::string>();
+ FailedLogins = fields[5].Get<uint32>();
+ IsBanned = fields[6].Get<bool>() || fields[8].Get<bool>();
+ IsPermanentlyBanned = fields[7].Get<bool>() || fields[9].Get<bool>();
+ SecurityLevel = static_cast<AccountTypes>(fields[10].Get<uint8>()) > SEC_CONSOLE ? SEC_CONSOLE : static_cast<AccountTypes>(fields[10].Get<uint8>());
// Use our own uppercasing of the account name instead of using UPPER() in mysql query
// This is how the account was created in the first place and changing it now would result in breaking
@@ -174,7 +174,7 @@ void AuthSession::Start()
LOG_TRACE("session", "Accepted connection from {}", ip_address);
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_IP_INFO);
- stmt->setString(0, ip_address);
+ stmt->SetData(0, ip_address);
_queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&AuthSession::CheckIpCallback, this, std::placeholders::_1)));
}
@@ -198,7 +198,7 @@ void AuthSession::CheckIpCallback(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- if (fields[0].GetUInt64() != 0)
+ if (fields[0].Get<uint64>() != 0)
banned = true;
} while (result->NextRow());
@@ -309,8 +309,8 @@ bool AuthSession::HandleLogonChallenge()
// Get the account details from the account table
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_LOGONCHALLENGE);
- stmt->setString(0, GetRemoteIpAddress().to_string());
- stmt->setString(1, login);
+ stmt->SetData(0, GetRemoteIpAddress().to_string());
+ stmt->SetData(1, login);
_queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&AuthSession::LogonChallengeCallback, this, std::placeholders::_1)));
return true;
@@ -392,7 +392,7 @@ void AuthSession::LogonChallengeCallback(PreparedQueryResult result)
if (!fields[11].IsNull())
{
securityFlags = 4;
- _totpSecret = fields[11].GetBinary();
+ _totpSecret = fields[11].Get<Binary>();
if (auto const& secret = sSecretMgr->GetSecret(SECRET_TOTP_MASTER_KEY))
{
@@ -407,10 +407,9 @@ void AuthSession::LogonChallengeCallback(PreparedQueryResult result)
}
}
- _srp6.emplace(
- _accountInfo.Login,
- fields[12].GetBinary<Acore::Crypto::SRP6::SALT_LENGTH>(),
- fields[13].GetBinary<Acore::Crypto::SRP6::VERIFIER_LENGTH>());
+ _srp6.emplace(_accountInfo.Login,
+ fields[12].Get<Binary, Acore::Crypto::SRP6::SALT_LENGTH>(),
+ fields[13].Get<Binary, Acore::Crypto::SRP6::VERIFIER_LENGTH>());
// Fill the response packet with the result
if (AuthHelper::IsAcceptedClientBuild(_build))
@@ -518,11 +517,11 @@ bool AuthSession::HandleLogonProof()
std::string address = sConfigMgr->GetOption<bool>("AllowLoggingIPAddressesInDatabase", true, true) ? GetRemoteIpAddress().to_string() : "0.0.0.0";
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LOGONPROOF);
- stmt->setBinary(0, _sessionKey);
- stmt->setString(1, address);
- stmt->setUInt32(2, GetLocaleByName(_localizationName));
- stmt->setString(3, _os);
- stmt->setString(4, _accountInfo.Login);
+ stmt->SetData(0, _sessionKey);
+ stmt->SetData(1, address);
+ stmt->SetData(2, GetLocaleByName(_localizationName));
+ stmt->SetData(3, _os);
+ stmt->SetData(4, _accountInfo.Login);
LoginDatabase.DirectExecute(stmt);
// Finish SRP6 and send the final result to the client
@@ -574,9 +573,9 @@ bool AuthSession::HandleLogonProof()
if (sConfigMgr->GetOption<bool>("WrongPass.Logging", false))
{
LoginDatabasePreparedStatement* logstmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_FALP_IP_LOGGING);
- logstmt->setUInt32(0, _accountInfo.Id);
- logstmt->setString(1, GetRemoteIpAddress().to_string());
- logstmt->setString(2, "Login to WoW Failed - Incorrect Password");
+ logstmt->SetData(0, _accountInfo.Id);
+ logstmt->SetData(1, GetRemoteIpAddress().to_string());
+ logstmt->SetData(2, "Login to WoW Failed - Incorrect Password");
LoginDatabase.Execute(logstmt);
}
@@ -585,7 +584,7 @@ bool AuthSession::HandleLogonProof()
{
//Increment number of failed logins by one and if it reaches the limit temporarily ban that account or IP
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_FAILEDLOGINS);
- stmt->setString(0, _accountInfo.Login);
+ stmt->SetData(0, _accountInfo.Login);
LoginDatabase.Execute(stmt);
if (++_accountInfo.FailedLogins >= MaxWrongPassCount)
@@ -596,8 +595,8 @@ bool AuthSession::HandleLogonProof()
if (WrongPassBanType)
{
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT_AUTO_BANNED);
- stmt->setUInt32(0, _accountInfo.Id);
- stmt->setUInt32(1, WrongPassBanTime);
+ stmt->SetData(0, _accountInfo.Id);
+ stmt->SetData(1, WrongPassBanTime);
LoginDatabase.Execute(stmt);
LOG_DEBUG("server.authserver", "'{}:{}' [AuthChallenge] account {} got banned for '{}' seconds because it failed to authenticate '{}' times",
@@ -606,8 +605,8 @@ bool AuthSession::HandleLogonProof()
else
{
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_IP_AUTO_BANNED);
- stmt->setString(0, GetRemoteIpAddress().to_string());
- stmt->setUInt32(1, WrongPassBanTime);
+ stmt->SetData(0, GetRemoteIpAddress().to_string());
+ stmt->SetData(1, WrongPassBanTime);
LoginDatabase.Execute(stmt);
LOG_DEBUG("server.authserver", "'{}:{}' [AuthChallenge] IP got banned for '{}' seconds because account {} failed to authenticate '{}' times",
@@ -648,8 +647,8 @@ bool AuthSession::HandleReconnectChallenge()
// Get the account details from the account table
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_RECONNECTCHALLENGE);
- stmt->setString(0, GetRemoteIpAddress().to_string());
- stmt->setString(1, login);
+ stmt->SetData(0, GetRemoteIpAddress().to_string());
+ stmt->SetData(1, login);
_queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&AuthSession::ReconnectChallengeCallback, this, std::placeholders::_1)));
return true;
@@ -670,7 +669,7 @@ void AuthSession::ReconnectChallengeCallback(PreparedQueryResult result)
Field* fields = result->Fetch();
_accountInfo.LoadResult(fields);
- _sessionKey = fields[11].GetBinary<SESSION_KEY_LENGTH>();
+ _sessionKey = fields[11].Get<Binary, SESSION_KEY_LENGTH>();
Acore::Crypto::GetRandomBytes(_reconnectProof);
_status = STATUS_RECONNECT_PROOF;
@@ -734,7 +733,7 @@ bool AuthSession::HandleRealmList()
LOG_DEBUG("server.authserver", "Entering _HandleRealmList");
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_REALM_CHARACTER_COUNTS);
- stmt->setUInt32(0, _accountInfo.Id);
+ stmt->SetData(0, _accountInfo.Id);
_queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&AuthSession::RealmListCallback, this, std::placeholders::_1)));
_status = STATUS_WAITING_FOR_REALM_LIST;
@@ -749,7 +748,7 @@ void AuthSession::RealmListCallback(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- characterCounts[fields[0].GetUInt32()] = fields[1].GetUInt8();
+ characterCounts[fields[0].Get<uint32>()] = fields[1].Get<uint8>();
} while (result->NextRow());
}
diff --git a/src/server/database/Database/AdhocStatement.cpp b/src/server/database/Database/AdhocStatement.cpp
index 64ff0908ca..cb39769cae 100644
--- a/src/server/database/Database/AdhocStatement.cpp
+++ b/src/server/database/Database/AdhocStatement.cpp
@@ -19,23 +19,21 @@
#include "Errors.h"
#include "MySQLConnection.h"
#include "QueryResult.h"
-#include <cstdlib>
-#include <cstring>
/*! Basic, ad-hoc queries. */
-BasicStatementTask::BasicStatementTask(char const* sql, bool async) :
-m_result(nullptr)
+BasicStatementTask::BasicStatementTask(std::string_view sql, bool async) : m_result(nullptr)
{
- m_sql = strdup(sql);
+ m_sql = std::string(sql);
m_has_result = async; // If the operation is async, then there's a result
+
if (async)
m_result = new QueryResultPromise();
}
BasicStatementTask::~BasicStatementTask()
{
- free((void*)m_sql);
- if (m_has_result && m_result != nullptr)
+ m_sql.clear();
+ if (m_has_result && m_result)
delete m_result;
}
diff --git a/src/server/database/Database/AdhocStatement.h b/src/server/database/Database/AdhocStatement.h
index f48db291ab..61469c6c28 100644
--- a/src/server/database/Database/AdhocStatement.h
+++ b/src/server/database/Database/AdhocStatement.h
@@ -26,14 +26,14 @@
class AC_DATABASE_API BasicStatementTask : public SQLOperation
{
public:
- BasicStatementTask(char const* sql, bool async = false);
+ BasicStatementTask(std::string_view sql, bool async = false);
~BasicStatementTask();
bool Execute() override;
QueryResultFuture GetFuture() const { return m_result->get_future(); }
private:
- char const* m_sql; //- Raw query to be executed
+ std::string m_sql; //- Raw query to be executed
bool m_has_result;
QueryResultPromise* m_result;
};
diff --git a/src/server/database/Database/DatabaseLoader.cpp b/src/server/database/Database/DatabaseLoader.cpp
index db5ad9e20d..5ca5844e3c 100644
--- a/src/server/database/Database/DatabaseLoader.cpp
+++ b/src/server/database/Database/DatabaseLoader.cpp
@@ -68,7 +68,7 @@ DatabaseLoader& DatabaseLoader::AddDatabase(DatabaseWorkerPool<T>& pool, std::st
while (reconnectCount < attempts)
{
- LOG_INFO(_logger, "> Retrying after {} seconds", static_cast<uint32>(reconnectSeconds.count()));
+ LOG_WARN(_logger, "> Retrying after {} seconds", static_cast<uint32>(reconnectSeconds.count()));
std::this_thread::sleep_for(reconnectSeconds);
error = pool.Open();
@@ -153,7 +153,22 @@ DatabaseLoader& DatabaseLoader::AddDatabase(DatabaseWorkerPool<T>& pool, std::st
bool DatabaseLoader::Load()
{
- return OpenDatabases() && PopulateDatabases() && UpdateDatabases() && PrepareStatements();
+ if (!_updateFlags)
+ LOG_INFO("sql.updates", "Automatic database updates are disabled for all databases!");
+
+ if (!OpenDatabases())
+ return false;
+
+ if (!PopulateDatabases())
+ return false;
+
+ if (!UpdateDatabases())
+ return false;
+
+ if (!PrepareStatements())
+ return false;
+
+ return true;
}
bool DatabaseLoader::OpenDatabases()
diff --git a/src/server/database/Database/DatabaseWorkerPool.cpp b/src/server/database/Database/DatabaseWorkerPool.cpp
index 635851247e..269ecaf350 100644
--- a/src/server/database/Database/DatabaseWorkerPool.cpp
+++ b/src/server/database/Database/DatabaseWorkerPool.cpp
@@ -17,11 +17,10 @@
#include "DatabaseWorkerPool.h"
#include "AdhocStatement.h"
+#include "CharacterDatabase.h"
#include "Errors.h"
-#include "Implementation/CharacterDatabase.h"
-#include "Implementation/LoginDatabase.h"
-#include "Implementation/WorldDatabase.h"
#include "Log.h"
+#include "LoginDatabase.h"
#include "MySQLPreparedStatement.h"
#include "MySQLWorkaround.h"
#include "PCQueue.h"
@@ -31,7 +30,9 @@
#include "QueryResult.h"
#include "SQLOperation.h"
#include "Transaction.h"
+#include "WorldDatabase.h"
#include <mysqld_error.h>
+#include <limits>
#ifdef ACORE_DEBUG
#include <boost/stacktrace.hpp>
@@ -57,9 +58,10 @@ class PingOperation : public SQLOperation
};
template <class T>
-DatabaseWorkerPool<T>::DatabaseWorkerPool()
- : _queue(new ProducerConsumerQueue<SQLOperation*>()),
- _async_threads(0), _synch_threads(0)
+DatabaseWorkerPool<T>::DatabaseWorkerPool() :
+ _queue(new ProducerConsumerQueue<SQLOperation*>()),
+ _async_threads(0),
+ _synch_threads(0)
{
WPFatal(mysql_thread_safe(), "Used MySQL library isn't thread-safe.");
@@ -72,7 +74,7 @@ DatabaseWorkerPool<T>::DatabaseWorkerPool()
#endif
WPFatal(isSupportClientDB, "AzerothCore does not support MySQL versions below 5.7 and MariaDB 10.5\nSearch the wiki for ACE00043 in Common Errors (https://www.azerothcore.org/wiki/common-errors).");
- WPFatal(isSameClientDB, "Used MySQL library version (%s id %lu) does not match the version id used to compile AzerothCore (id %u).\nSearch the wiki for ACE00046 in Common Errors (https://www.azerothcore.org/wiki/common-errors).",
+ WPFatal(isSameClientDB, "Used MySQL library version ({} id {}) does not match the version id used to compile AzerothCore (id {}).\nSearch the wiki for ACE00046 in Common Errors (https://www.azerothcore.org/wiki/common-errors).",
mysql_get_client_info(), mysql_get_client_version(), MYSQL_VERSION_ID);
}
@@ -83,8 +85,7 @@ DatabaseWorkerPool<T>::~DatabaseWorkerPool()
}
template <class T>
-void DatabaseWorkerPool<T>::SetConnectionInfo(std::string const& infoString,
- uint8 const asyncThreads, uint8 const synchThreads)
+void DatabaseWorkerPool<T>::SetConnectionInfo(std::string_view infoString, uint8 const asyncThreads, uint8 const synchThreads)
{
_connectionInfo = std::make_unique<MySQLConnectionInfo>(infoString);
@@ -141,9 +142,9 @@ void DatabaseWorkerPool<T>::Close()
template <class T>
bool DatabaseWorkerPool<T>::PrepareStatements()
{
- for (auto& connections : _connections)
+ for (auto const& connections : _connections)
{
- for (auto& connection : connections)
+ for (auto const& connection : connections)
{
connection->LockIfReady();
if (!connection->PrepareStatements())
@@ -170,8 +171,8 @@ bool DatabaseWorkerPool<T>::PrepareStatements()
{
uint32 const paramCount = stmt->GetParameterCount();
- // TC only supports uint8 indices.
- ASSERT(paramCount < (std::numeric_limits<uint8>::max)());
+ // WH only supports uint8 indices.
+ ASSERT(paramCount < std::numeric_limits<uint8>::max());
_preparedStatementSize[i] = static_cast<uint8>(paramCount);
}
@@ -183,13 +184,13 @@ bool DatabaseWorkerPool<T>::PrepareStatements()
}
template <class T>
-QueryResult DatabaseWorkerPool<T>::Query(char const* sql, T* connection /*= nullptr*/)
+QueryResult DatabaseWorkerPool<T>::Query(std::string_view sql)
{
- if (!connection)
- connection = GetFreeConnection();
+ auto connection = GetFreeConnection();
ResultSet* result = connection->Query(sql);
connection->Unlock();
+
if (!result || !result->GetRowCount() || !result->NextRow())
{
delete result;
@@ -219,7 +220,7 @@ PreparedQueryResult DatabaseWorkerPool<T>::Query(PreparedStatement<T>* stmt)
}
template <class T>
-QueryCallback DatabaseWorkerPool<T>::AsyncQuery(char const* sql)
+QueryCallback DatabaseWorkerPool<T>::AsyncQuery(std::string_view sql)
{
BasicStatementTask* task = new BasicStatementTask(sql, true);
// Store future result before enqueueing - task might get already processed and deleted before returning from this method
@@ -308,6 +309,7 @@ void DatabaseWorkerPool<T>::DirectCommitTransaction(SQLTransaction<T>& transacti
{
T* connection = GetFreeConnection();
int errorCode = connection->ExecuteTransaction(transaction);
+
if (!errorCode)
{
connection->Unlock(); // OK, operation succesful
@@ -320,6 +322,7 @@ void DatabaseWorkerPool<T>::DirectCommitTransaction(SQLTransaction<T>& transacti
{
//todo: handle multiple sync threads deadlocking in a similar way as async threads
uint8 loopBreaker = 5;
+
for (uint8 i = 0; i < loopBreaker; ++i)
{
if (!connection->ExecuteTransaction(transaction))
@@ -368,6 +371,7 @@ void DatabaseWorkerPool<T>::KeepAlive()
//! If one or more worker threads are busy, the ping operations will not be split evenly, but this doesn't matter
//! as the sole purpose is to prevent connections from idling.
auto const count = _connections[IDX_ASYNC].size();
+
for (uint8 i = 0; i < count; ++i)
Enqueue(new PingOperation);
}
@@ -378,7 +382,8 @@ uint32 DatabaseWorkerPool<T>::OpenConnections(InternalIndex type, uint8 numConne
for (uint8 i = 0; i < numConnections; ++i)
{
// Create the connection
- auto connection = [&] {
+ auto connection = [&]
+ {
switch (type)
{
case IDX_ASYNC:
@@ -461,15 +466,15 @@ T* DatabaseWorkerPool<T>::GetFreeConnection()
}
template <class T>
-char const* DatabaseWorkerPool<T>::GetDatabaseName() const
+std::string_view DatabaseWorkerPool<T>::GetDatabaseName() const
{
- return _connectionInfo->database.c_str();
+ return std::string_view{ _connectionInfo->database };
}
template <class T>
-void DatabaseWorkerPool<T>::Execute(char const* sql)
+void DatabaseWorkerPool<T>::Execute(std::string_view sql)
{
- if (Acore::IsFormatEmptyOrNull(sql))
+ if (sql.empty())
return;
BasicStatementTask* task = new BasicStatementTask(sql);
@@ -484,9 +489,9 @@ void DatabaseWorkerPool<T>::Execute(PreparedStatement<T>* stmt)
}
template <class T>
-void DatabaseWorkerPool<T>::DirectExecute(char const* sql)
+void DatabaseWorkerPool<T>::DirectExecute(std::string_view sql)
{
- if (Acore::IsFormatEmptyOrNull(sql))
+ if (sql.empty())
return;
T* connection = GetFreeConnection();
@@ -506,7 +511,7 @@ void DatabaseWorkerPool<T>::DirectExecute(PreparedStatement<T>* stmt)
}
template <class T>
-void DatabaseWorkerPool<T>::ExecuteOrAppend(SQLTransaction<T>& trans, char const* sql)
+void DatabaseWorkerPool<T>::ExecuteOrAppend(SQLTransaction<T>& trans, std::string_view sql)
{
if (!trans)
Execute(sql);
diff --git a/src/server/database/Database/DatabaseWorkerPool.h b/src/server/database/Database/DatabaseWorkerPool.h
index 604483aa1f..c7bc7798a4 100644
--- a/src/server/database/Database/DatabaseWorkerPool.h
+++ b/src/server/database/Database/DatabaseWorkerPool.h
@@ -22,7 +22,6 @@
#include "Define.h"
#include "StringFormat.h"
#include <array>
-#include <string>
#include <vector>
template <typename T>
@@ -45,13 +44,11 @@ private:
public:
/* Activity state */
DatabaseWorkerPool();
-
~DatabaseWorkerPool();
- void SetConnectionInfo(std::string const& infoString, uint8 const asyncThreads, uint8 const synchThreads);
+ void SetConnectionInfo(std::string_view infoString, uint8 const asyncThreads, uint8 const synchThreads);
uint32 Open();
-
void Close();
//! Prepares all prepared statements
@@ -68,17 +65,17 @@ public:
//! Enqueues a one-way SQL operation in string format that will be executed asynchronously.
//! This method should only be used for queries that are only executed once, e.g during startup.
- void Execute(char const* sql);
+ void Execute(std::string_view sql);
//! Enqueues a one-way SQL operation in string format -with variable args- that will be executed asynchronously.
//! This method should only be used for queries that are only executed once, e.g during startup.
- template<typename Format, typename... Args>
- void PExecute(Format&& sql, Args&&... args)
+ template<typename... Args>
+ void Execute(std::string_view sql, Args&&... args)
{
- if (Acore::IsFormatEmptyOrNull(sql))
+ if (sql.empty())
return;
- Execute(Acore::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ Execute(Acore::StringFormatFmt(sql, std::forward<Args>(args)...));
}
//! Enqueues a one-way SQL operation in prepared statement format that will be executed asynchronously.
@@ -91,17 +88,17 @@ public:
//! Directly executes a one-way SQL operation in string format, that will block the calling thread until finished.
//! This method should only be used for queries that are only executed once, e.g during startup.
- void DirectExecute(char const* sql);
+ void DirectExecute(std::string_view sql);
//! Directly executes a one-way SQL operation in string format -with variable args-, that will block the calling thread until finished.
//! This method should only be used for queries that are only executed once, e.g during startup.
- template<typename Format, typename... Args>
- void DirectPExecute(Format&& sql, Args&&... args)
+ template<typename... Args>
+ void DirectExecute(std::string_view sql, Args&&... args)
{
- if (Acore::IsFormatEmptyOrNull(sql))
+ if (sql.empty())
return;
- DirectExecute(Acore::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ DirectExecute(Acore::StringFormatFmt(sql, std::forward<Args>(args)...));
}
//! Directly executes a one-way SQL operation in prepared statement format, that will block the calling thread until finished.
@@ -114,28 +111,17 @@ public:
//! Directly executes an SQL query in string format that will block the calling thread until finished.
//! Returns reference counted auto pointer, no need for manual memory management in upper level code.
- QueryResult Query(char const* sql, T* connection = nullptr);
-
- //! Directly executes an SQL query in string format -with variable args- that will block the calling thread until finished.
- //! Returns reference counted auto pointer, no need for manual memory management in upper level code.
- template<typename Format, typename... Args>
- QueryResult PQuery(Format&& sql, T* conn, Args&&... args)
- {
- if (Acore::IsFormatEmptyOrNull(sql))
- return QueryResult(nullptr);
-
- return Query(Acore::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str(), conn);
- }
+ QueryResult Query(std::string_view sql);
//! Directly executes an SQL query in string format -with variable args- that will block the calling thread until finished.
//! Returns reference counted auto pointer, no need for manual memory management in upper level code.
- template<typename Format, typename... Args>
- QueryResult PQuery(Format&& sql, Args&&... args)
+ template<typename... Args>
+ QueryResult Query(std::string_view sql, Args&&... args)
{
- if (Acore::IsFormatEmptyOrNull(sql))
+ if (sql.empty())
return QueryResult(nullptr);
- return Query(Acore::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ return Query(Acore::StringFormatFmt(sql, std::forward<Args>(args)...));
}
//! Directly executes an SQL query in prepared format that will block the calling thread until finished.
@@ -149,7 +135,7 @@ public:
//! Enqueues a query in string format that will set the value of the QueryResultFuture return object as soon as the query is executed.
//! The return value is then processed in ProcessQueryCallback methods.
- QueryCallback AsyncQuery(char const* sql);
+ QueryCallback AsyncQuery(std::string_view sql);
//! Enqueues a query in prepared format that will set the value of the PreparedQueryResultFuture return object as soon as the query is executed.
//! The return value is then processed in ProcessQueryCallback methods.
@@ -183,7 +169,7 @@ public:
//! Method used to execute ad-hoc statements in a diverse context.
//! Will be wrapped in a transaction if valid object is present, otherwise executed standalone.
- void ExecuteOrAppend(SQLTransaction<T>& trans, char const* sql);
+ void ExecuteOrAppend(SQLTransaction<T>& trans, std::string_view sql);
//! Method used to execute prepared statements in a diverse context.
//! Will be wrapped in a transaction if valid object is present, otherwise executed standalone.
@@ -226,7 +212,7 @@ private:
//! Caller MUST call t->Unlock() after touching the MySQL context to prevent deadlocks.
T* GetFreeConnection();
- [[nodiscard]] char const* GetDatabaseName() const;
+ [[nodiscard]] std::string_view GetDatabaseName() const;
//! Queue shared by async worker threads.
std::unique_ptr<ProducerConsumerQueue<SQLOperation*>> _queue;
diff --git a/src/server/database/Database/Field.cpp b/src/server/database/Database/Field.cpp
index 1de88a6837..35f84c2a0a 100644
--- a/src/server/database/Database/Field.cpp
+++ b/src/server/database/Database/Field.cpp
@@ -19,6 +19,8 @@
#include "Errors.h"
#include "Log.h"
#include "MySQLHacks.h"
+#include "StringConvert.h"
+#include "Types.h"
Field::Field()
{
@@ -28,282 +30,310 @@ Field::Field()
meta = nullptr;
}
-Field::~Field() = default;
-
-uint8 Field::GetUInt8() const
+namespace
{
- if (!data.value)
- return 0;
-
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int8))
+ template<typename T>
+ constexpr T GetDefaultValue()
{
- LogWrongType(__FUNCTION__);
- return 0;
+ if constexpr (std::is_same_v<T, bool>)
+ return false;
+ else if constexpr (std::is_integral_v<T>)
+ return 0;
+ else if constexpr (std::is_floating_point_v<T>)
+ return 1.0f;
+ else if constexpr (std::is_same_v<T, std::vector<uint8>> || std::is_same_v<std::string_view, T>)
+ return {};
+ else
+ return "";
}
-#endif
-
- if (data.raw)
- return *reinterpret_cast<uint8 const*>(data.value);
- return static_cast<uint8>(strtoul(data.value, nullptr, 10));
-}
-
-int8 Field::GetInt8() const
-{
- if (!data.value)
- return 0;
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int8))
+ template<typename T>
+ inline bool IsCorrectFieldType(DatabaseFieldTypes type)
{
- LogWrongType(__FUNCTION__);
- return 0;
+ // Int8
+ if constexpr (std::is_same_v<T, bool> || std::is_same_v<T, int8> || std::is_same_v<T, uint8>)
+ {
+ if (type == DatabaseFieldTypes::Int8)
+ return true;
+ }
+
+ // In16
+ if constexpr (std::is_same_v<T, uint16> || std::is_same_v<T, int16>)
+ {
+ if (type == DatabaseFieldTypes::Int16)
+ return true;
+ }
+
+ // Int32
+ if constexpr (std::is_same_v<T, uint32> || std::is_same_v<T, int32>)
+ {
+ if (type == DatabaseFieldTypes::Int32)
+ return true;
+ }
+
+ // Int64
+ if constexpr (std::is_same_v<T, uint64> || std::is_same_v<T, int64>)
+ {
+ if (type == DatabaseFieldTypes::Int64)
+ return true;
+ }
+
+ // float
+ if constexpr (std::is_same_v<T, float>)
+ {
+ if (type == DatabaseFieldTypes::Float)
+ return true;
+ }
+
+ // dobule
+ if constexpr (std::is_same_v<T, double>)
+ {
+ if (type == DatabaseFieldTypes::Double || type == DatabaseFieldTypes::Decimal)
+ return true;
+ }
+
+ // Binary
+ if constexpr (std::is_same_v<T, Binary>)
+ {
+ if (type == DatabaseFieldTypes::Binary)
+ return true;
+ }
+
+ return false;
}
-#endif
- if (data.raw)
- return *reinterpret_cast<int8 const*>(data.value);
- return static_cast<int8>(strtol(data.value, nullptr, 10));
-}
+ inline Optional<std::string_view> GetCleanAliasName(std::string_view alias)
+ {
+ if (alias.empty())
+ return {};
-uint16 Field::GetUInt16() const
-{
- if (!data.value)
- return 0;
+ auto pos = alias.find_first_of('(');
+ if (pos == std::string_view::npos)
+ return {};
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int16))
- {
- LogWrongType(__FUNCTION__);
- return 0;
+ alias.remove_suffix(alias.length() - pos);
+
+ return { alias };
}
-#endif
- if (data.raw)
- return *reinterpret_cast<uint16 const*>(data.value);
- return static_cast<uint16>(strtoul(data.value, nullptr, 10));
-}
+ template<typename T>
+ inline bool IsCorrectAlias(DatabaseFieldTypes type, std::string_view alias)
+ {
+ if constexpr (std::is_same_v<T, double>)
+ {
+ if ((StringEqualI(alias, "sum") || StringEqualI(alias, "avg")) && type == DatabaseFieldTypes::Decimal)
+ return true;
-int16 Field::GetInt16() const
-{
- if (!data.value)
- return 0;
+ return false;
+ }
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int16))
- {
- LogWrongType(__FUNCTION__);
- return 0;
- }
-#endif
+ if constexpr (std::is_same_v<T, uint64>)
+ {
+ if (StringEqualI(alias, "count") && type == DatabaseFieldTypes::Int64)
+ return true;
- if (data.raw)
- return *reinterpret_cast<int16 const*>(data.value);
- return static_cast<int16>(strtol(data.value, nullptr, 10));
-}
+ return false;
+ }
-uint32 Field::GetUInt32() const
-{
- if (!data.value)
- return 0;
+ if ((StringEqualI(alias, "min") || StringEqualI(alias, "max")) && IsCorrectFieldType<T>(type))
+ {
+ return true;
+ }
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int32))
- {
- LogWrongType(__FUNCTION__);
- return 0;
+ return false;
}
-#endif
+}
- if (data.raw)
- return *reinterpret_cast<uint32 const*>(data.value);
- return static_cast<uint32>(strtoul(data.value, nullptr, 10));
+void Field::GetBinarySizeChecked(uint8* buf, size_t length) const
+{
+ ASSERT(data.value && (data.length == length), "Expected {}-byte binary blob, got {}data ({} bytes) instead", length, data.value ? "" : "no ", data.length);
+ memcpy(buf, data.value, length);
}
-int32 Field::GetInt32() const
+void Field::SetByteValue(char const* newValue, uint32 length)
{
- if (!data.value)
- return 0;
+ // This value stores raw bytes that have to be explicitly cast later
+ data.value = newValue;
+ data.length = length;
+ data.raw = true;
+}
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int32))
- {
- LogWrongType(__FUNCTION__);
- return 0;
- }
-#endif
+void Field::SetStructuredValue(char const* newValue, uint32 length)
+{
+ // This value stores somewhat structured data that needs function style casting
+ data.value = newValue;
+ data.length = length;
+ data.raw = false;
+}
- if (data.raw)
- return *reinterpret_cast<int32 const*>(data.value);
- return static_cast<int32>(strtol(data.value, nullptr, 10));
+bool Field::IsType(DatabaseFieldTypes type) const
+{
+ return meta->Type == type;
}
-uint64 Field::GetUInt64() const
+bool Field::IsNumeric() const
{
- if (!data.value)
- return 0;
+ return (meta->Type == DatabaseFieldTypes::Int8 ||
+ meta->Type == DatabaseFieldTypes::Int16 ||
+ meta->Type == DatabaseFieldTypes::Int32 ||
+ meta->Type == DatabaseFieldTypes::Int64 ||
+ meta->Type == DatabaseFieldTypes::Float ||
+ meta->Type == DatabaseFieldTypes::Double);
+}
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int64))
- {
- LogWrongType(__FUNCTION__);
- return 0;
- }
-#endif
+void Field::LogWrongType(std::string_view getter, std::string_view typeName) const
+{
+ LOG_WARN("sql.sql", "Warning: {}<{}> on {} field {}.{} ({}.{}) at index {}.",
+ getter, typeName, meta->TypeName, meta->TableAlias, meta->Alias, meta->TableName, meta->Name, meta->Index);
+}
- if (data.raw)
- return *reinterpret_cast<uint64 const*>(data.value);
- return static_cast<uint64>(strtoull(data.value, nullptr, 10));
+void Field::SetMetadata(QueryResultFieldMetadata const* fieldMeta)
+{
+ meta = fieldMeta;
}
-int64 Field::GetInt64() const
+template<typename T>
+T Field::GetData() const
{
+ static_assert(std::is_arithmetic_v<T>, "Unsurropt type for Field::GetData()");
+
if (!data.value)
- return 0;
+ return GetDefaultValue<T>();
#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Int64))
+ if (!IsCorrectFieldType<T>(meta->Type))
{
- LogWrongType(__FUNCTION__);
- return 0;
+ LogWrongType(__FUNCTION__, typeid(T).name());
+ //return GetDefaultValue<T>();
}
#endif
- if (data.raw)
- return *reinterpret_cast<int64 const*>(data.value);
- return static_cast<int64>(strtoll(data.value, nullptr, 10));
-}
+ Optional<T> result = {};
-float Field::GetFloat() const
-{
- if (!data.value)
- return 0.0f;
+ if (data.raw)
+ result = *reinterpret_cast<T const*>(data.value);
+ else
+ result = Acore::StringTo<T>(data.value);
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Float))
+ // Correct double fields... this undefined behavior :/
+ if constexpr (std::is_same_v<T, double>)
{
- LogWrongType(__FUNCTION__);
- return 0.0f;
+ if (data.raw && !IsType(DatabaseFieldTypes::Decimal))
+ result = *reinterpret_cast<double const*>(data.value);
+ else
+ result = Acore::StringTo<float>(data.value);
}
-#endif
- if (data.raw)
- return *reinterpret_cast<float const*>(data.value);
- return static_cast<float>(atof(data.value));
-}
+ // Check -1 for *_dbc db tables
+ if constexpr (std::is_same_v<T, uint32>)
+ {
+ std::string_view tableName{ meta->TableName };
+
+ if (!tableName.empty() && tableName.size() > 4)
+ {
+ auto signedResult = Acore::StringTo<int32>(data.value);
+
+ if (signedResult && !result && tableName.substr(tableName.length() - 4) == "_dbc")
+ {
+ LOG_DEBUG("sql.sql", "> Found incorrect value '{}' for type '{}' in _dbc table.", data.value, typeid(T).name());
+ LOG_DEBUG("sql.sql", "> Table name '{}'. Field name '{}'. Try return int32 value", meta->TableName, meta->Name);
+ return GetData<int32>();
+ }
+ }
+ }
-double Field::GetDouble() const
-{
- if (!data.value)
- return 0.0f;
+ if (auto alias = GetCleanAliasName(meta->Alias))
+ {
+ if ((StringEqualI(*alias, "min") || StringEqualI(*alias, "max")) && !IsCorrectAlias<T>(meta->Type, *alias))
+ {
+ LogWrongType(__FUNCTION__, typeid(T).name());
+ }
+
+ if ((StringEqualI(*alias, "sum") || StringEqualI(*alias, "avg")) && !IsCorrectAlias<T>(meta->Type, *alias))
+ {
+ LogWrongType(__FUNCTION__, typeid(T).name());
+ LOG_WARN("sql.sql", "> Please use GetData<double>()");
+ return GetData<double>();
+ }
+
+ if (StringEqualI(*alias, "count") && !IsCorrectAlias<T>(meta->Type, *alias))
+ {
+ LogWrongType(__FUNCTION__, typeid(T).name());
+ LOG_WARN("sql.sql", "> Please use GetData<uint64>()");
+ return GetData<uint64>();
+ }
+ }
-#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
- if (!IsType(DatabaseFieldTypes::Double) && !IsType(DatabaseFieldTypes::Decimal))
+ if (!result)
{
- LogWrongType(__FUNCTION__);
- return 0.0f;
+ LOG_FATAL("sql.sql", "> Incorrect value '{}' for type '{}'. Value is raw ? '{}'", data.value, typeid(T).name(), data.raw);
+ LOG_FATAL("sql.sql", "> Table name '{}'. Field name '{}'", meta->TableName, meta->Name);
+ //ABORT();
+ return GetDefaultValue<T>();
}
-#endif
- if (data.raw && !IsType(DatabaseFieldTypes::Decimal))
- return *reinterpret_cast<double const*>(data.value);
- return static_cast<double>(atof(data.value));
+ return *result;
}
-char const* Field::GetCString() const
+template bool Field::GetData() const;
+template uint8 Field::GetData() const;
+template uint16 Field::GetData() const;
+template uint32 Field::GetData() const;
+template uint64 Field::GetData() const;
+template int8 Field::GetData() const;
+template int16 Field::GetData() const;
+template int32 Field::GetData() const;
+template int64 Field::GetData() const;
+template float Field::GetData() const;
+template double Field::GetData() const;
+
+std::string Field::GetDataString() const
{
if (!data.value)
- return nullptr;
+ return "";
#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
if (IsNumeric() && data.raw)
{
- LogWrongType(__FUNCTION__);
- return nullptr;
+ LogWrongType(__FUNCTION__, "std::string");
+ return "";
}
#endif
- return static_cast<char const*>(data.value);
-}
-
-std::string Field::GetString() const
-{
- if (!data.value)
- return "";
- char const* string = GetCString();
- if (!string)
- return "";
-
- return std::string(string, data.length);
+ return { data.value, data.length };
}
-std::string_view Field::GetStringView() const
+std::string_view Field::GetDataStringView() const
{
if (!data.value)
return {};
- char const* const string = GetCString();
- if (!string)
+#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
+ if (IsNumeric() && data.raw)
+ {
+ LogWrongType(__FUNCTION__, "std::string_view");
return {};
+ }
+#endif
- return { string, data.length };
+ return { data.value, data.length };
}
-std::vector<uint8> Field::GetBinary() const
+Binary Field::GetDataBinary() const
{
- std::vector<uint8> result;
+ Binary result = {};
if (!data.value || !data.length)
return result;
+#ifdef ACORE_STRICT_DATABASE_TYPE_CHECKS
+ if (!IsCorrectFieldType<Binary>(meta->Type))
+ {
+ LogWrongType(__FUNCTION__, "Binary");
+ return {};
+ }
+#endif
+
result.resize(data.length);
memcpy(result.data(), data.value, data.length);
return result;
}
-
-void Field::GetBinarySizeChecked(uint8* buf, size_t length) const
-{
- ASSERT(data.value && (data.length == length), "Expected {}-byte binary blob, got {}data ({} bytes) instead", length, data.value ? "" : "no ", data.length);
- memcpy(buf, data.value, length);
-}
-
-void Field::SetByteValue(char const* newValue, uint32 length)
-{
- // This value stores raw bytes that have to be explicitly cast later
- data.value = newValue;
- data.length = length;
- data.raw = true;
-}
-
-void Field::SetStructuredValue(char const* newValue, uint32 length)
-{
- // This value stores somewhat structured data that needs function style casting
- data.value = newValue;
- data.length = length;
- data.raw = false;
-}
-
-bool Field::IsType(DatabaseFieldTypes type) const
-{
- return meta->Type == type;
-}
-
-bool Field::IsNumeric() const
-{
- return (meta->Type == DatabaseFieldTypes::Int8 ||
- meta->Type == DatabaseFieldTypes::Int16 ||
- meta->Type == DatabaseFieldTypes::Int32 ||
- meta->Type == DatabaseFieldTypes::Int64 ||
- meta->Type == DatabaseFieldTypes::Float ||
- meta->Type == DatabaseFieldTypes::Double);
-}
-
-void Field::LogWrongType(char const* getter) const
-{
- LOG_WARN("sql.sql", "Warning: {} on {} field {}.{} ({}.{}) at index {}.",
- getter, meta->TypeName, meta->TableAlias, meta->Alias, meta->TableName, meta->Name, meta->Index);
-}
-
-void Field::SetMetadata(QueryResultFieldMetadata const* fieldMeta)
-{
- meta = fieldMeta;
-}
diff --git a/src/server/database/Database/Field.h b/src/server/database/Database/Field.h
index a6be06f915..8496560c3c 100644
--- a/src/server/database/Database/Field.h
+++ b/src/server/database/Database/Field.h
@@ -20,11 +20,26 @@
#include "DatabaseEnvFwd.h"
#include "Define.h"
+#include "Duration.h"
#include <array>
-#include <string>
#include <string_view>
#include <vector>
+namespace Acore::Types
+{
+ template <typename T>
+ using is_chrono_v = std::enable_if_t<std::is_same_v<Milliseconds, T>
+ || std::is_same_v<Seconds, T>
+ || std::is_same_v<Minutes, T>
+ || std::is_same_v<Hours, T>
+ || std::is_same_v<Days, T>
+ || std::is_same_v<Weeks, T>
+ || std::is_same_v<Years, T>
+ || std::is_same_v<Months, T>, T>;
+}
+
+using Binary = std::vector<uint8>;
+
enum class DatabaseFieldTypes : uint8
{
Null,
@@ -41,11 +56,11 @@ enum class DatabaseFieldTypes : uint8
struct QueryResultFieldMetadata
{
- char const* TableName = nullptr;
- char const* TableAlias = nullptr;
- char const* Name = nullptr;
- char const* Alias = nullptr;
- char const* TypeName = nullptr;
+ std::string TableName{};
+ std::string TableAlias{};
+ std::string Name{};
+ std::string Alias{};
+ std::string TypeName{};
uint32 Index = 0;
DatabaseFieldTypes Type = DatabaseFieldTypes::Null;
};
@@ -57,20 +72,20 @@ struct QueryResultFieldMetadata
Guideline on field type matching:
- | MySQL type | method to use |
- |------------------------|----------------------------------------|
- | TINYINT | GetBool, GetInt8, GetUInt8 |
- | SMALLINT | GetInt16, GetUInt16 |
- | MEDIUMINT, INT | GetInt32, GetUInt32 |
- | BIGINT | GetInt64, GetUInt64 |
- | FLOAT | GetFloat |
- | DOUBLE, DECIMAL | GetDouble |
- | CHAR, VARCHAR, | GetCString, GetString |
- | TINYTEXT, MEDIUMTEXT, | GetCString, GetString |
- | TEXT, LONGTEXT | GetCString, GetString |
- | TINYBLOB, MEDIUMBLOB, | GetBinary, GetString |
- | BLOB, LONGBLOB | GetBinary, GetString |
- | BINARY, VARBINARY | GetBinary |
+ | MySQL type | method to use |
+ |------------------------|-----------------------------------------|
+ | TINYINT | Get<bool>, Get<int8>, Get<uint8> |
+ | SMALLINT | Get<int16>, Get<uint16> |
+ | MEDIUMINT, INT | Get<int32>, Get<uint32> |
+ | BIGINT | Get<int64>, Get<uint64> |
+ | FLOAT | Get<float> |
+ | DOUBLE, DECIMAL | Get<double> |
+ | CHAR, VARCHAR, | Get<std::string>, Get<std::string_view> |
+ | TINYTEXT, MEDIUMTEXT, | Get<std::string>, Get<std::string_view> |
+ | TEXT, LONGTEXT | Get<std::string>, Get<std::string_view> |
+ | TINYBLOB, MEDIUMBLOB, | Get<Binary>, Get<std::string> |
+ | BLOB, LONGBLOB | Get<Binary>, Get<std::string> |
+ | BINARY, VARBINARY | Get<Binary> |
Return types of aggregate functions:
@@ -87,39 +102,49 @@ friend class PreparedResultSet;
public:
Field();
- ~Field();
+ ~Field() = default;
+
+ [[nodiscard]] inline bool IsNull() const
+ {
+ return data.value == nullptr;
+ }
+
+ template<typename T>
+ inline std::enable_if_t<std::is_arithmetic_v<T>, T> Get() const
+ {
+ return GetData<T>();
+ }
- [[nodiscard]] bool GetBool() const // Wrapper, actually gets integer
+ template<typename T>
+ inline std::enable_if_t<std::is_same_v<std::string, T>, T> Get() const
{
- return GetUInt8() == 1 ? true : false;
+ return GetDataString();
}
- [[nodiscard]] uint8 GetUInt8() const;
- [[nodiscard]] int8 GetInt8() const;
- [[nodiscard]] uint16 GetUInt16() const;
- [[nodiscard]] int16 GetInt16() const;
- [[nodiscard]] uint32 GetUInt32() const;
- [[nodiscard]] int32 GetInt32() const;
- [[nodiscard]] uint64 GetUInt64() const;
- [[nodiscard]] int64 GetInt64() const;
- [[nodiscard]] float GetFloat() const;
- [[nodiscard]] double GetDouble() const;
- [[nodiscard]] char const* GetCString() const;
- [[nodiscard]] std::string GetString() const;
- [[nodiscard]] std::string_view GetStringView() const;
- [[nodiscard]] std::vector<uint8> GetBinary() const;
-
- template <size_t S>
- std::array<uint8, S> GetBinary() const
+ template<typename T>
+ inline std::enable_if_t<std::is_same_v<std::string_view, T>, T> Get() const
{
- std::array<uint8, S> buf;
+ return GetDataStringView();
+ }
+
+ template<typename T>
+ inline std::enable_if_t<std::is_same_v<Binary, T>, T> Get() const
+ {
+ return GetDataBinary();
+ }
+
+ template <typename T, size_t S>
+ inline std::enable_if_t<std::is_same_v<Binary, T>, std::array<uint8, S>> Get() const
+ {
+ std::array<uint8, S> buf = {};
GetBinarySizeChecked(buf.data(), S);
return buf;
}
- [[nodiscard]] bool IsNull() const
+ template<typename T>
+ inline Acore::Types::is_chrono_v<T> Get(bool convertToUin32 = true) const
{
- return data.value == nullptr;
+ return convertToUin32 ? T(GetData<uint32>()) : T(GetData<uint64>());
}
DatabaseFieldTypes GetType() { return meta->Type; }
@@ -138,8 +163,15 @@ protected:
[[nodiscard]] bool IsNumeric() const;
private:
+ template<typename T>
+ T GetData() const;
+
+ std::string GetDataString() const;
+ std::string_view GetDataStringView() const;
+ Binary GetDataBinary() const;
+
QueryResultFieldMetadata const* meta;
- void LogWrongType(char const* getter) const;
+ void LogWrongType(std::string_view getter, std::string_view typeName) const;
void SetMetadata(QueryResultFieldMetadata const* fieldMeta);
void GetBinarySizeChecked(uint8* buf, size_t size) const;
};
diff --git a/src/server/database/Database/MySQLConnection.cpp b/src/server/database/Database/MySQLConnection.cpp
index e594e22434..632df7a456 100644
--- a/src/server/database/Database/MySQLConnection.cpp
+++ b/src/server/database/Database/MySQLConnection.cpp
@@ -23,46 +23,46 @@
#include "MySQLWorkaround.h"
#include "PreparedStatement.h"
#include "QueryResult.h"
+#include "StringConvert.h"
#include "Timer.h"
#include "Tokenize.h"
#include "Transaction.h"
#include "Util.h"
-#include "StringConvert.h"
#include <errmsg.h>
#include <mysqld_error.h>
-MySQLConnectionInfo::MySQLConnectionInfo(std::string const& infoString)
+MySQLConnectionInfo::MySQLConnectionInfo(std::string_view infoString)
{
std::vector<std::string_view> tokens = Acore::Tokenize(infoString, ';', true);
if (tokens.size() != 5 && tokens.size() != 6)
return;
- host.assign(tokens[0]);
- port_or_socket.assign(tokens[1]);
- user.assign(tokens[2]);
- password.assign(tokens[3]);
- database.assign(tokens[4]);
+ host.assign(tokens.at(0));
+ port_or_socket.assign(tokens.at(1));
+ user.assign(tokens.at(2));
+ password.assign(tokens.at(3));
+ database.assign(tokens.at(4));
if (tokens.size() == 6)
- ssl.assign(tokens[5]);
+ ssl.assign(tokens.at(5));
}
MySQLConnection::MySQLConnection(MySQLConnectionInfo& connInfo) :
-m_reconnecting(false),
-m_prepareError(false),
-m_queue(nullptr),
-m_Mysql(nullptr),
-m_connectionInfo(connInfo),
-m_connectionFlags(CONNECTION_SYNCH) { }
+ m_reconnecting(false),
+ m_prepareError(false),
+ m_queue(nullptr),
+ m_Mysql(nullptr),
+ m_connectionInfo(connInfo),
+ m_connectionFlags(CONNECTION_SYNCH) { }
MySQLConnection::MySQLConnection(ProducerConsumerQueue<SQLOperation*>* queue, MySQLConnectionInfo& connInfo) :
-m_reconnecting(false),
-m_prepareError(false),
-m_queue(queue),
-m_Mysql(nullptr),
-m_connectionInfo(connInfo),
-m_connectionFlags(CONNECTION_ASYNC)
+ m_reconnecting(false),
+ m_prepareError(false),
+ m_queue(queue),
+ m_Mysql(nullptr),
+ m_connectionInfo(connInfo),
+ m_connectionFlags(CONNECTION_ASYNC)
{
m_worker = std::make_unique<DatabaseWorker>(m_queue, this);
}
@@ -76,7 +76,6 @@ void MySQLConnection::Close()
{
// Stop the worker thread before the statements are cleared
m_worker.reset();
-
m_stmts.clear();
if (m_Mysql)
@@ -99,7 +98,8 @@ uint32 MySQLConnection::Open()
char const* unix_socket;
mysql_options(mysqlInit, MYSQL_SET_CHARSET_NAME, "utf8");
- #ifdef _WIN32
+
+#ifdef _WIN32
if (m_connectionInfo.host == ".") // named pipe use option (Windows)
{
unsigned int opt = MYSQL_PROTOCOL_PIPE;
@@ -112,7 +112,7 @@ uint32 MySQLConnection::Open()
port = *Acore::StringTo<uint32>(m_connectionInfo.port_or_socket);
unix_socket = 0;
}
- #else
+#else
if (m_connectionInfo.host == ".") // socket use option (Unix/Linux)
{
unsigned int opt = MYSQL_PROTOCOL_SOCKET;
@@ -126,7 +126,7 @@ uint32 MySQLConnection::Open()
port = *Acore::StringTo<uint32>(m_connectionInfo.port_or_socket);
unix_socket = nullptr;
}
- #endif
+#endif
if (m_connectionInfo.ssl != "")
{
@@ -136,6 +136,7 @@ uint32 MySQLConnection::Open()
{
opt_use_ssl = SSL_MODE_REQUIRED;
}
+
mysql_options(mysqlInit, MYSQL_OPT_SSL_MODE, (char const*)&opt_use_ssl);
#else
MySQLBool opt_use_ssl = MySQLBool(0);
@@ -143,6 +144,7 @@ uint32 MySQLConnection::Open()
{
opt_use_ssl = MySQLBool(1);
}
+
mysql_options(mysqlInit, MYSQL_OPT_SSL_ENFORCE, (char const*)&opt_use_ssl);
#endif
}
@@ -156,9 +158,6 @@ uint32 MySQLConnection::Open()
{
LOG_INFO("sql.sql", "MySQL client library: {}", mysql_get_client_info());
LOG_INFO("sql.sql", "MySQL server ver: {} ", mysql_get_server_info(m_Mysql));
- // MySQL version above 5.1 IS required in both client and server and there is no known issue with different versions above 5.1
- // if (mysql_get_server_version(m_Mysql) != mysql_get_client_version())
- // LOG_INFO("sql.sql", "[WARNING] MySQL client/server version mismatch; may conflict with behaviour of prepared statements.");
}
LOG_INFO("sql.sql", "Connected to MySQL database at {}", m_connectionInfo.host);
@@ -166,7 +165,7 @@ uint32 MySQLConnection::Open()
// set connection properties to UTF8 to properly handle locales for different
// server configs - core sends data in UTF8, so MySQL must expect UTF8 too
- mysql_set_character_set(m_Mysql, "utf8");
+ mysql_set_character_set(m_Mysql, "utf8mb4");
return 0;
}
else
@@ -184,7 +183,7 @@ bool MySQLConnection::PrepareStatements()
return !m_prepareError;
}
-bool MySQLConnection::Execute(char const* sql)
+bool MySQLConnection::Execute(std::string_view sql)
{
if (!m_Mysql)
return false;
@@ -192,7 +191,7 @@ bool MySQLConnection::Execute(char const* sql)
{
uint32 _s = getMSTime();
- if (mysql_query(m_Mysql, sql))
+ if (mysql_query(m_Mysql, std::string(sql).c_str()))
{
uint32 lErrno = mysql_errno(m_Mysql);
@@ -219,7 +218,7 @@ bool MySQLConnection::Execute(PreparedStatementBase* stmt)
uint32 index = stmt->GetIndex();
MySQLPreparedStatement* m_mStmt = GetPreparedStatement(index);
- ASSERT(m_mStmt); // Can only be null if preparation failed, server side error or bad query
+ ASSERT(m_mStmt); // Can only be null if preparation failed, server side error or bad query
m_mStmt->BindParameters(stmt);
@@ -291,8 +290,7 @@ bool MySQLConnection::_Query(PreparedStatementBase* stmt, MySQLPreparedStatement
if (mysql_stmt_execute(msql_STMT))
{
uint32 lErrno = mysql_errno(m_Mysql);
- LOG_ERROR("sql.sql", "SQL(p): {}\n [ERROR]: [{}] {}",
- m_mStmt->getQueryString(), lErrno, mysql_stmt_error(msql_STMT));
+ LOG_ERROR("sql.sql", "SQL(p): {}\n [ERROR]: [{}] {}", m_mStmt->getQueryString(), lErrno, mysql_stmt_error(msql_STMT));
if (_HandleMySQLErrno(lErrno)) // If it returns true, an error was handled successfully (i.e. reconnection)
return _Query(stmt, mysqlStmt, pResult, pRowCount, pFieldCount); // Try again
@@ -312,9 +310,9 @@ bool MySQLConnection::_Query(PreparedStatementBase* stmt, MySQLPreparedStatement
return true;
}
-ResultSet* MySQLConnection::Query(char const* sql)
+ResultSet* MySQLConnection::Query(std::string_view sql)
{
- if (!sql)
+ if (sql.empty())
return nullptr;
MySQLResult* result = nullptr;
@@ -328,7 +326,7 @@ ResultSet* MySQLConnection::Query(char const* sql)
return new ResultSet(result, fields, rowCount, fieldCount);
}
-bool MySQLConnection::_Query(const char* sql, MySQLResult** pResult, MySQLField** pFields, uint64* pRowCount, uint32* pFieldCount)
+bool MySQLConnection::_Query(std::string_view sql, MySQLResult** pResult, MySQLField** pFields, uint64* pRowCount, uint32* pFieldCount)
{
if (!m_Mysql)
return false;
@@ -336,13 +334,13 @@ bool MySQLConnection::_Query(const char* sql, MySQLResult** pResult, MySQLField*
{
uint32 _s = getMSTime();
- if (mysql_query(m_Mysql, sql))
+ if (mysql_query(m_Mysql, std::string(sql).c_str()))
{
uint32 lErrno = mysql_errno(m_Mysql);
LOG_INFO("sql.sql", "SQL: {}", sql);
LOG_ERROR("sql.sql", "[{}] {}", lErrno, mysql_error(m_Mysql));
- if (_HandleMySQLErrno(lErrno)) // If it returns true, an error was handled successfully (i.e. reconnection)
+ if (_HandleMySQLErrno(lErrno)) // If it returns true, an error was handled successfully (i.e. reconnection)
return _Query(sql, pResult, pFields, pRowCount, pFieldCount); // We try again
return false;
@@ -355,7 +353,7 @@ bool MySQLConnection::_Query(const char* sql, MySQLResult** pResult, MySQLField*
*pFieldCount = mysql_field_count(m_Mysql);
}
- if (!*pResult )
+ if (!*pResult)
return false;
if (!*pRowCount)
@@ -392,18 +390,29 @@ int MySQLConnection::ExecuteTransaction(std::shared_ptr<TransactionBase> transac
BeginTransaction();
- for (auto itr = queries.begin(); itr != queries.end(); ++itr)
+ for (auto const& data : queries)
{
- SQLElementData const& data = *itr;
- switch (itr->type)
+ switch (data.type)
{
case SQL_ELEMENT_PREPARED:
{
- PreparedStatementBase* stmt = data.element.stmt;
+ PreparedStatementBase* stmt = nullptr;
+
+ try
+ {
+ stmt = std::get<PreparedStatementBase*>(data.element);
+ }
+ catch (const std::bad_variant_access& ex)
+ {
+ LOG_FATAL("sql.sql", "> PreparedStatementBase not found in SQLElementData. {}", ex.what());
+ ABORT();
+ }
+
ASSERT(stmt);
+
if (!Execute(stmt))
{
- LOG_WARN("sql.sql", "Transaction aborted. {} queries not executed.", (uint32)queries.size());
+ LOG_WARN("sql.sql", "Transaction aborted. {} queries not executed.", queries.size());
int errorCode = GetLastError();
RollbackTransaction();
return errorCode;
@@ -412,12 +421,24 @@ int MySQLConnection::ExecuteTransaction(std::shared_ptr<TransactionBase> transac
break;
case SQL_ELEMENT_RAW:
{
- char const* sql = data.element.query;
- ASSERT(sql);
+ std::string sql{};
+
+ try
+ {
+ sql = std::get<std::string>(data.element);
+ }
+ catch (const std::bad_variant_access& ex)
+ {
+ LOG_FATAL("sql.sql", "> std::string not found in SQLElementData. {}", ex.what());
+ ABORT();
+ }
+
+ ASSERT(!sql.empty());
+
if (!Execute(sql))
{
- LOG_WARN("sql.sql", "Transaction aborted. {} queries not executed.", (uint32)queries.size());
- int errorCode = GetLastError();
+ LOG_WARN("sql.sql", "Transaction aborted. {} queries not executed.", queries.size());
+ uint32 errorCode = GetLastError();
RollbackTransaction();
return errorCode;
}
@@ -469,7 +490,9 @@ MySQLPreparedStatement* MySQLConnection::GetPreparedStatement(uint32 index)
{
ASSERT(index < m_stmts.size(), "Tried to access invalid prepared statement index {} (max index {}) on database `{}`, connection type: {}",
index, m_stmts.size(), m_connectionInfo.database, (m_connectionFlags & CONNECTION_ASYNC) ? "asynchronous" : "synchronous");
+
MySQLPreparedStatement* ret = m_stmts[index].get();
+
if (!ret)
LOG_ERROR("sql.sql", "Could not fetch prepared statement {} on database `{}`, connection type: {}.",
index, m_connectionInfo.database, (m_connectionFlags & CONNECTION_ASYNC) ? "asynchronous" : "synchronous");
@@ -477,7 +500,7 @@ MySQLPreparedStatement* MySQLConnection::GetPreparedStatement(uint32 index)
return ret;
}
-void MySQLConnection::PrepareStatement(uint32 index, std::string const& sql, ConnectionFlags flags)
+void MySQLConnection::PrepareStatement(uint32 index, std::string_view sql, ConnectionFlags flags)
{
// Check if specified query should be prepared on this connection
// i.e. don't prepare async statements on synchronous connections
@@ -497,7 +520,7 @@ void MySQLConnection::PrepareStatement(uint32 index, std::string const& sql, Con
}
else
{
- if (mysql_stmt_prepare(stmt, sql.c_str(), static_cast<unsigned long>(sql.size())))
+ if (mysql_stmt_prepare(stmt, std::string(sql).c_str(), static_cast<unsigned long>(sql.size())))
{
LOG_ERROR("sql.sql", "In mysql_stmt_prepare() id: {}, sql: \"{}\"", index, sql);
LOG_ERROR("sql.sql", "{}", mysql_stmt_error(stmt));
@@ -523,6 +546,7 @@ PreparedResultSet* MySQLConnection::Query(PreparedStatementBase* stmt)
{
mysql_next_result(m_Mysql);
}
+
return new PreparedResultSet(mysqlStmt->GetSTMT(), result, rowCount, fieldCount);
}
@@ -556,7 +580,7 @@ bool MySQLConnection::_HandleMySQLErrno(uint32 errNo, uint8 attempts /*= 5*/)
if (!this->PrepareStatements())
{
LOG_FATAL("sql.sql", "Could not re-prepare statements!");
- std::this_thread::sleep_for(std::chrono::seconds(10));
+ std::this_thread::sleep_for(10s);
std::abort();
}
@@ -572,24 +596,24 @@ bool MySQLConnection::_HandleMySQLErrno(uint32 errNo, uint8 attempts /*= 5*/)
{
// Shut down the server when the mysql server isn't
// reachable for some time
- LOG_FATAL("sql.sql", "Failed to reconnect to the MySQL server, "
- "terminating the server to prevent data corruption!");
+ LOG_FATAL("sql.sql", "Failed to reconnect to the MySQL server, terminating the server to prevent data corruption!");
// We could also initiate a shutdown through using std::raise(SIGTERM)
- std::this_thread::sleep_for(std::chrono::seconds(10));
+ std::this_thread::sleep_for(10s);
std::abort();
}
else
{
// It's possible this attempted reconnect throws 2006 at us.
// To prevent crazy recursive calls, sleep here.
- std::this_thread::sleep_for(std::chrono::seconds(3)); // Sleep 3 seconds
+ std::this_thread::sleep_for(3s); // Sleep 3 seconds
return _HandleMySQLErrno(lErrno, attempts); // Call self (recursive)
}
}
case ER_LOCK_DEADLOCK:
- return false; // Implemented in TransactionTask::Execute and DatabaseWorkerPool<T>::DirectCommitTransaction
+ return false; // Implemented in TransactionTask::Execute and DatabaseWorkerPool<T>::DirectCommitTransaction
+
// Query related errors - skip query
case ER_WRONG_VALUE_COUNT:
case ER_DUP_ENTRY:
@@ -599,12 +623,12 @@ bool MySQLConnection::_HandleMySQLErrno(uint32 errNo, uint8 attempts /*= 5*/)
case ER_BAD_FIELD_ERROR:
case ER_NO_SUCH_TABLE:
LOG_ERROR("sql.sql", "Your database structure is not up to date. Please make sure you've executed all queries in the sql/updates folders.");
- std::this_thread::sleep_for(std::chrono::seconds(10));
+ std::this_thread::sleep_for(10s);
std::abort();
return false;
case ER_PARSE_ERROR:
LOG_ERROR("sql.sql", "Error while parsing SQL. Core fix required.");
- std::this_thread::sleep_for(std::chrono::seconds(10));
+ std::this_thread::sleep_for(10s);
std::abort();
return false;
default:
diff --git a/src/server/database/Database/MySQLConnection.h b/src/server/database/Database/MySQLConnection.h
index fe37b14142..2ad64cb5b1 100644
--- a/src/server/database/Database/MySQLConnection.h
+++ b/src/server/database/Database/MySQLConnection.h
@@ -42,7 +42,7 @@ enum ConnectionFlags
struct AC_DATABASE_API MySQLConnectionInfo
{
- explicit MySQLConnectionInfo(std::string const& infoString);
+ explicit MySQLConnectionInfo(std::string_view infoString);
std::string user;
std::string password;
@@ -54,7 +54,9 @@ struct AC_DATABASE_API MySQLConnectionInfo
class AC_DATABASE_API MySQLConnection
{
-template <class T> friend class DatabaseWorkerPool;
+template <class T>
+friend class DatabaseWorkerPool;
+
friend class PingOperation;
public:
@@ -67,11 +69,11 @@ public:
bool PrepareStatements();
- bool Execute(char const* sql);
+ bool Execute(std::string_view sql);
bool Execute(PreparedStatementBase* stmt);
- ResultSet* Query(char const* sql);
+ ResultSet* Query(std::string_view sql);
PreparedResultSet* Query(PreparedStatementBase* stmt);
- bool _Query(char const* sql, MySQLResult** pResult, MySQLField** pFields, uint64* pRowCount, uint32* pFieldCount);
+ bool _Query(std::string_view sql, MySQLResult** pResult, MySQLField** pFields, uint64* pRowCount, uint32* pFieldCount);
bool _Query(PreparedStatementBase* stmt, MySQLPreparedStatement** mysqlStmt, MySQLResult** pResult, uint64* pRowCount, uint32* pFieldCount);
void BeginTransaction();
@@ -93,25 +95,25 @@ protected:
[[nodiscard]] uint32 GetServerVersion() const;
MySQLPreparedStatement* GetPreparedStatement(uint32 index);
- void PrepareStatement(uint32 index, std::string const& sql, ConnectionFlags flags);
+ void PrepareStatement(uint32 index, std::string_view sql, ConnectionFlags flags);
virtual void DoPrepareStatements() = 0;
typedef std::vector<std::unique_ptr<MySQLPreparedStatement>> PreparedStatementContainer;
- PreparedStatementContainer m_stmts; //! PreparedStatements storage
- bool m_reconnecting; //! Are we reconnecting?
- bool m_prepareError; //! Was there any error while preparing statements?
+ PreparedStatementContainer m_stmts; //! PreparedStatements storage
+ bool m_reconnecting; //! Are we reconnecting?
+ bool m_prepareError; //! Was there any error while preparing statements?
private:
bool _HandleMySQLErrno(uint32 errNo, uint8 attempts = 5);
ProducerConsumerQueue<SQLOperation*>* m_queue; //! Queue shared with other asynchronous connections.
std::unique_ptr<DatabaseWorker> m_worker; //! Core worker task.
- MySQLHandle* m_Mysql; //! MySQL Handle.
- MySQLConnectionInfo& m_connectionInfo; //! Connection info (used for logging)
- ConnectionFlags m_connectionFlags; //! Connection flags (for preparing relevant statements)
- std::mutex m_Mutex;
+ MySQLHandle* m_Mysql; //! MySQL Handle.
+ MySQLConnectionInfo& m_connectionInfo; //! Connection info (used for logging)
+ ConnectionFlags m_connectionFlags; //! Connection flags (for preparing relevant statements)
+ std::mutex m_Mutex;
MySQLConnection(MySQLConnection const& right) = delete;
MySQLConnection& operator=(MySQLConnection const& right) = delete;
diff --git a/src/server/database/Database/MySQLPreparedStatement.cpp b/src/server/database/Database/MySQLPreparedStatement.cpp
index 160cd1fecb..0335cf5cbc 100644
--- a/src/server/database/Database/MySQLPreparedStatement.cpp
+++ b/src/server/database/Database/MySQLPreparedStatement.cpp
@@ -35,8 +35,11 @@ template<> struct MySQLType<int64> : std::integral_constant<enum_field_types, MY
template<> struct MySQLType<float> : std::integral_constant<enum_field_types, MYSQL_TYPE_FLOAT> { };
template<> struct MySQLType<double> : std::integral_constant<enum_field_types, MYSQL_TYPE_DOUBLE> { };
-MySQLPreparedStatement::MySQLPreparedStatement(MySQLStmt* stmt, std::string queryString) :
- m_stmt(nullptr), m_Mstmt(stmt), m_bind(nullptr), m_queryString(std::move(queryString))
+MySQLPreparedStatement::MySQLPreparedStatement(MySQLStmt* stmt, std::string_view queryString) :
+ m_stmt(nullptr),
+ m_Mstmt(stmt),
+ m_bind(nullptr),
+ m_queryString(std::string(queryString))
{
/// Initialize variable parameters
m_paramCount = mysql_stmt_param_count(stmt);
@@ -57,6 +60,7 @@ MySQLPreparedStatement::~MySQLPreparedStatement()
delete[] m_Mstmt->bind->length;
delete[] m_Mstmt->bind->is_null;
}
+
mysql_stmt_close(m_Mstmt);
delete[] m_bind;
}
@@ -72,8 +76,10 @@ void MySQLPreparedStatement::BindParameters(PreparedStatementBase* stmt)
{
SetParameter(pos, param);
}, data.data);
+
++pos;
}
+
#ifdef _DEBUG
if (pos < m_paramCount)
LOG_WARN("sql.sql", "[WARNING]: BindParameters() for statement {} did not bind all allocated parameters", stmt->GetIndex());
@@ -86,7 +92,7 @@ void MySQLPreparedStatement::ClearParameters()
{
delete m_bind[i].length;
m_bind[i].length = nullptr;
- delete[] (char*) m_bind[i].buffer;
+ delete[] (char*)m_bind[i].buffer;
m_bind[i].buffer = nullptr;
m_paramsSet[i] = false;
}
@@ -94,7 +100,9 @@ void MySQLPreparedStatement::ClearParameters()
static bool ParamenterIndexAssertFail(uint32 stmtIndex, uint8 index, uint32 paramCount)
{
- LOG_ERROR("sql.driver", "Attempted to bind parameter {}{} on a PreparedStatement {} (statement has only {} parameters)", uint32(index) + 1, (index == 1 ? "st" : (index == 2 ? "nd" : (index == 3 ? "rd" : "nd"))), stmtIndex, paramCount);
+ LOG_ERROR("sql.driver", "Attempted to bind parameter {}{} on a PreparedStatement {} (statement has only {} parameters)",
+ uint32(index) + 1, (index == 1 ? "st" : (index == 2 ? "nd" : (index == 3 ? "rd" : "nd"))), stmtIndex, paramCount);
+
return false;
}
@@ -107,41 +115,41 @@ void MySQLPreparedStatement::AssertValidIndex(uint8 index)
LOG_ERROR("sql.sql", "[ERROR] Prepared Statement (id: {}) trying to bind value on already bound index ({}).", m_stmt->GetIndex(), index);
}
-void MySQLPreparedStatement::SetParameter(uint8 index, std::nullptr_t)
+template<typename T>
+void MySQLPreparedStatement::SetParameter(const uint8 index, T value)
{
AssertValidIndex(index);
m_paramsSet[index] = true;
MYSQL_BIND* param = &m_bind[index];
- param->buffer_type = MYSQL_TYPE_NULL;
+ uint32 len = uint32(sizeof(T));
+ param->buffer_type = MySQLType<T>::value;
delete[] static_cast<char*>(param->buffer);
- param->buffer = nullptr;
+ param->buffer = new char[len];
param->buffer_length = 0;
- param->is_null_value = 1;
- delete param->length;
- param->length = nullptr;
+ param->is_null_value = 0;
+ param->length = nullptr; // Only != NULL for strings
+ param->is_unsigned = std::is_unsigned_v<T>;
+
+ memcpy(param->buffer, &value, len);
}
-void MySQLPreparedStatement::SetParameter(uint8 index, bool value)
+void MySQLPreparedStatement::SetParameter(const uint8 index, bool value)
{
SetParameter(index, uint8(value ? 1 : 0));
}
-template<typename T>
-void MySQLPreparedStatement::SetParameter(uint8 index, T value)
+void MySQLPreparedStatement::SetParameter(const uint8 index, std::nullptr_t /*value*/)
{
AssertValidIndex(index);
m_paramsSet[index] = true;
MYSQL_BIND* param = &m_bind[index];
- uint32 len = uint32(sizeof(T));
- param->buffer_type = MySQLType<T>::value;
+ param->buffer_type = MYSQL_TYPE_NULL;
delete[] static_cast<char*>(param->buffer);
- param->buffer = new char[len];
+ param->buffer = nullptr;
param->buffer_length = 0;
- param->is_null_value = 0;
- param->length = nullptr; // Only != NULL for strings
- param->is_unsigned = std::is_unsigned_v<T>;
-
- memcpy(param->buffer, &value, len);
+ param->is_null_value = 1;
+ delete param->length;
+ param->length = nullptr;
}
void MySQLPreparedStatement::SetParameter(uint8 index, std::string const& value)
@@ -151,7 +159,7 @@ void MySQLPreparedStatement::SetParameter(uint8 index, std::string const& value)
MYSQL_BIND* param = &m_bind[index];
uint32 len = uint32(value.size());
param->buffer_type = MYSQL_TYPE_VAR_STRING;
- delete [] static_cast<char*>(param->buffer);
+ delete[] static_cast<char*>(param->buffer);
param->buffer = new char[len];
param->buffer_length = len;
param->is_null_value = 0;
@@ -168,7 +176,7 @@ void MySQLPreparedStatement::SetParameter(uint8 index, std::vector<uint8> const&
MYSQL_BIND* param = &m_bind[index];
uint32 len = uint32(value.size());
param->buffer_type = MYSQL_TYPE_BLOB;
- delete [] static_cast<char*>(param->buffer);
+ delete[] static_cast<char*>(param->buffer);
param->buffer = new char[len];
param->buffer_length = len;
param->is_null_value = 0;
@@ -183,6 +191,7 @@ std::string MySQLPreparedStatement::getQueryString() const
std::string queryString(m_queryString);
size_t pos = 0;
+
for (PreparedStatementData const& data : m_stmt->GetParameters())
{
pos = queryString.find('?', pos);
diff --git a/src/server/database/Database/MySQLPreparedStatement.h b/src/server/database/Database/MySQLPreparedStatement.h
index 2c6f5c8e69..7bb6ce7725 100644
--- a/src/server/database/Database/MySQLPreparedStatement.h
+++ b/src/server/database/Database/MySQLPreparedStatement.h
@@ -36,7 +36,7 @@ friend class MySQLConnection;
friend class PreparedStatementBase;
public:
- MySQLPreparedStatement(MySQLStmt* stmt, std::string queryString);
+ MySQLPreparedStatement(MySQLStmt* stmt, std::string_view queryString);
~MySQLPreparedStatement();
void BindParameters(PreparedStatementBase* stmt);
@@ -44,18 +44,19 @@ public:
uint32 GetParameterCount() const { return m_paramCount; }
protected:
- void SetParameter(uint8 index, std::nullptr_t);
- void SetParameter(uint8 index, bool value);
+ void SetParameter(const uint8 index, bool value);
+ void SetParameter(const uint8 index, std::nullptr_t /*value*/);
+ void SetParameter(const uint8 index, std::string const& value);
+ void SetParameter(const uint8 index, std::vector<uint8> const& value);
+
template<typename T>
- void SetParameter(uint8 index, T value);
- void SetParameter(uint8 index, std::string const& value);
- void SetParameter(uint8 index, std::vector<uint8> const& value);
+ void SetParameter(const uint8 index, T value);
MySQLStmt* GetSTMT() { return m_Mstmt; }
MySQLBind* GetBind() { return m_bind; }
PreparedStatementBase* m_stmt;
void ClearParameters();
- void AssertValidIndex(uint8 index);
+ void AssertValidIndex(const uint8 index);
std::string getQueryString() const;
private:
@@ -63,7 +64,7 @@ private:
uint32 m_paramCount;
std::vector<bool> m_paramsSet;
MySQLBind* m_bind;
- std::string const m_queryString;
+ std::string m_queryString{};
MySQLPreparedStatement(MySQLPreparedStatement const& right) = delete;
MySQLPreparedStatement& operator=(MySQLPreparedStatement const& right) = delete;
diff --git a/src/server/database/Database/PreparedStatement.cpp b/src/server/database/Database/PreparedStatement.cpp
index ed6dc99acf..4059509dcb 100644
--- a/src/server/database/Database/PreparedStatement.cpp
+++ b/src/server/database/Database/PreparedStatement.cpp
@@ -24,7 +24,8 @@
#include "QueryResult.h"
PreparedStatementBase::PreparedStatementBase(uint32 index, uint8 capacity) :
-m_index(index), statement_data(capacity) { }
+ m_index(index),
+ statement_data(capacity) { }
PreparedStatementBase::~PreparedStatementBase() { }
@@ -36,20 +37,6 @@ Acore::Types::is_non_string_view_v<T> PreparedStatementBase::SetValidData(const
statement_data[index].data.emplace<T>(value);
}
-template<>
-void PreparedStatementBase::SetValidData(const uint8 index, std::string const& value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data.emplace<std::string>(value);
-}
-
-template<>
-void PreparedStatementBase::SetValidData(const uint8 index, std::vector<uint8> const& value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data.emplace<std::vector<uint8>>(value);
-}
-
// Non template functions
void PreparedStatementBase::SetValidData(const uint8 index)
{
@@ -73,103 +60,16 @@ template void PreparedStatementBase::SetValidData(const uint8 index, uint64 cons
template void PreparedStatementBase::SetValidData(const uint8 index, int64 const& value);
template void PreparedStatementBase::SetValidData(const uint8 index, bool const& value);
template void PreparedStatementBase::SetValidData(const uint8 index, float const& value);
-
-// Old api
-void PreparedStatementBase::setBool(const uint8 index, const bool value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setUInt8(const uint8 index, const uint8 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setUInt16(const uint8 index, const uint16 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setUInt32(const uint8 index, const uint32 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setUInt64(const uint8 index, const uint64 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setInt8(const uint8 index, const int8 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setInt16(const uint8 index, const int16 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setInt32(const uint8 index, const int32 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setInt64(const uint8 index, const int64 value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setFloat(const uint8 index, const float value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setDouble(const uint8 index, const double value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setString(const uint8 index, const std::string& value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setStringView(const uint8 index, const std::string_view value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data.emplace<std::string>(value);
-}
-
-void PreparedStatementBase::setBinary(const uint8 index, const std::vector<uint8>& value)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = value;
-}
-
-void PreparedStatementBase::setNull(const uint8 index)
-{
- ASSERT(index < statement_data.size());
- statement_data[index].data = nullptr;
-}
+template void PreparedStatementBase::SetValidData(const uint8 index, std::string const& value);
+template void PreparedStatementBase::SetValidData(const uint8 index, std::vector<uint8> const& value);
//- Execution
PreparedStatementTask::PreparedStatementTask(PreparedStatementBase* stmt, bool async) :
-m_stmt(stmt), m_result(nullptr)
+ m_stmt(stmt),
+ m_result(nullptr)
{
m_has_result = async; // If it's async, then there's a result
+
if (async)
m_result = new PreparedQueryResultPromise();
}
@@ -177,7 +77,8 @@ m_stmt(stmt), m_result(nullptr)
PreparedStatementTask::~PreparedStatementTask()
{
delete m_stmt;
- if (m_has_result && m_result != nullptr)
+
+ if (m_has_result && m_result)
delete m_result;
}
@@ -192,6 +93,7 @@ bool PreparedStatementTask::Execute()
m_result->set_value(PreparedQueryResult(nullptr));
return false;
}
+
m_result->set_value(PreparedQueryResult(result));
return true;
}
@@ -202,45 +104,29 @@ bool PreparedStatementTask::Execute()
template<typename T>
std::string PreparedStatementData::ToString(T value)
{
- return fmt::format("{}", value);
-}
-
-std::string PreparedStatementData::ToString(bool value)
-{
- return ToString<uint32>(value);
-}
-
-std::string PreparedStatementData::ToString(uint8 value)
-{
- return ToString<uint32>(value);
-}
-
-template std::string PreparedStatementData::ToString<uint16>(uint16);
-template std::string PreparedStatementData::ToString<uint32>(uint32);
-template std::string PreparedStatementData::ToString<uint64>(uint64);
-
-std::string PreparedStatementData::ToString(int8 value)
-{
- return ToString<int32>(value);
+ return Acore::StringFormatFmt("{}", value);
}
-template std::string PreparedStatementData::ToString<int16>(int16);
-template std::string PreparedStatementData::ToString<int32>(int32);
-template std::string PreparedStatementData::ToString<int64>(int64);
-template std::string PreparedStatementData::ToString<float>(float);
-template std::string PreparedStatementData::ToString<double>(double);
-
-std::string PreparedStatementData::ToString(std::string const& value)
-{
- return fmt::format("'{}'", value);
-}
-
-std::string PreparedStatementData::ToString(std::vector<uint8> const& /*value*/)
+template<>
+std::string PreparedStatementData::ToString(std::vector<uint8> /*value*/)
{
return "BINARY";
}
-std::string PreparedStatementData::ToString(std::nullptr_t)
+template std::string PreparedStatementData::ToString(uint8);
+template std::string PreparedStatementData::ToString(uint16);
+template std::string PreparedStatementData::ToString(uint32);
+template std::string PreparedStatementData::ToString(uint64);
+template std::string PreparedStatementData::ToString(int8);
+template std::string PreparedStatementData::ToString(int16);
+template std::string PreparedStatementData::ToString(int32);
+template std::string PreparedStatementData::ToString(int64);
+template std::string PreparedStatementData::ToString(std::string);
+template std::string PreparedStatementData::ToString(float);
+template std::string PreparedStatementData::ToString(double);
+template std::string PreparedStatementData::ToString(bool);
+
+std::string PreparedStatementData::ToString(std::nullptr_t /*value*/)
{
return "NULL";
}
diff --git a/src/server/database/Database/PreparedStatement.h b/src/server/database/Database/PreparedStatement.h
index 9053d00d09..766a8e8e26 100644
--- a/src/server/database/Database/PreparedStatement.h
+++ b/src/server/database/Database/PreparedStatement.h
@@ -20,6 +20,7 @@
#include "Define.h"
#include "Duration.h"
+#include "Optional.h"
#include "SQLOperation.h"
#include <future>
#include <tuple>
@@ -60,12 +61,7 @@ struct PreparedStatementData
template<typename T>
static std::string ToString(T value);
- static std::string ToString(bool value);
- static std::string ToString(uint8 value);
- static std::string ToString(int8 value);
- static std::string ToString(std::string const& value);
- static std::string ToString(std::vector<uint8> const& value);
- static std::string ToString(std::nullptr_t);
+ static std::string ToString(std::nullptr_t /*value*/);
};
//- Upper-level class that is used in code
@@ -77,28 +73,6 @@ public:
explicit PreparedStatementBase(uint32 index, uint8 capacity);
virtual ~PreparedStatementBase();
- void setNull(const uint8 index);
- void setBool(const uint8 index, const bool value);
- void setUInt8(const uint8 index, const uint8 value);
- void setUInt16(const uint8 index, const uint16 value);
- void setUInt32(const uint8 index, const uint32 value);
- void setUInt64(const uint8 index, const uint64 value);
- void setInt8(const uint8 index, const int8 value);
- void setInt16(const uint8 index, const int16 value);
- void setInt32(const uint8 index, const int32 value);
- void setInt64(const uint8 index, const int64 value);
- void setFloat(const uint8 index, const float value);
- void setDouble(const uint8 index, const double value);
- void setString(const uint8 index, const std::string& value);
- void setStringView(const uint8 index, const std::string_view value);
- void setBinary(const uint8 index, const std::vector<uint8>& value);
- template <size_t Size>
- void setBinary(const uint8 index, std::array<uint8, Size> const& value)
- {
- std::vector<uint8> vec(value.begin(), value.end());
- setBinary(index, vec);
- }
-
// Set numerlic and default binary
template<typename T>
inline Acore::Types::is_default<T> SetData(const uint8 index, T value)
diff --git a/src/server/database/Database/QueryCallback.cpp b/src/server/database/Database/QueryCallback.cpp
index a5b70fe704..2dd0525d56 100644
--- a/src/server/database/Database/QueryCallback.cpp
+++ b/src/server/database/Database/QueryCallback.cpp
@@ -16,6 +16,7 @@
*/
#include "QueryCallback.h"
+#include "Duration.h"
#include "Errors.h"
template<typename T, typename... Args>
@@ -66,13 +67,15 @@ public:
QueryCallbackData(std::function<void(QueryCallback&, QueryResult)>&& callback) : _string(std::move(callback)), _isPrepared(false) { }
QueryCallbackData(std::function<void(QueryCallback&, PreparedQueryResult)>&& callback) : _prepared(std::move(callback)), _isPrepared(true) { }
- QueryCallbackData(QueryCallbackData&& right)
+
+ QueryCallbackData(QueryCallbackData&& right) noexcept
{
_isPrepared = right._isPrepared;
ConstructActiveMember(this);
MoveFrom(this, std::move(right));
}
- QueryCallbackData& operator=(QueryCallbackData&& right)
+
+ QueryCallbackData& operator=(QueryCallbackData&& right) noexcept
{
if (this != &right)
{
@@ -82,10 +85,13 @@ public:
_isPrepared = right._isPrepared;
ConstructActiveMember(this);
}
+
MoveFrom(this, std::move(right));
}
+
return *this;
}
+
~QueryCallbackData() { DestroyActiveMember(this); }
private:
@@ -105,19 +111,19 @@ private:
};
// Not using initialization lists to work around segmentation faults when compiling with clang without precompiled headers
-QueryCallback::QueryCallback(std::future<QueryResult>&& result)
+QueryCallback::QueryCallback(QueryResultFuture&& result)
{
_isPrepared = false;
Construct(_string, std::move(result));
}
-QueryCallback::QueryCallback(std::future<PreparedQueryResult>&& result)
+QueryCallback::QueryCallback(PreparedQueryResultFuture&& result)
{
_isPrepared = true;
Construct(_prepared, std::move(result));
}
-QueryCallback::QueryCallback(QueryCallback&& right)
+QueryCallback::QueryCallback(QueryCallback&& right) noexcept
{
_isPrepared = right._isPrepared;
ConstructActiveMember(this);
@@ -125,7 +131,7 @@ QueryCallback::QueryCallback(QueryCallback&& right)
_callbacks = std::move(right._callbacks);
}
-QueryCallback& QueryCallback::operator=(QueryCallback&& right)
+QueryCallback& QueryCallback::operator=(QueryCallback&& right) noexcept
{
if (this != &right)
{
@@ -135,9 +141,11 @@ QueryCallback& QueryCallback::operator=(QueryCallback&& right)
_isPrepared = right._isPrepared;
ConstructActiveMember(this);
}
+
MoveFrom(this, std::move(right));
_callbacks = std::move(right._callbacks);
}
+
return *this;
}
@@ -198,7 +206,7 @@ bool QueryCallback::InvokeIfReady()
if (!_isPrepared)
{
- if (_string.valid() && _string.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
+ if (_string.valid() && _string.wait_for(0s) == std::future_status::ready)
{
QueryResultFuture f(std::move(_string));
std::function<void(QueryCallback&, QueryResult)> cb(std::move(callback._string));
@@ -208,7 +216,7 @@ bool QueryCallback::InvokeIfReady()
}
else
{
- if (_prepared.valid() && _prepared.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
+ if (_prepared.valid() && _prepared.wait_for(0s) == std::future_status::ready)
{
PreparedQueryResultFuture f(std::move(_prepared));
std::function<void(QueryCallback&, PreparedQueryResult)> cb(std::move(callback._prepared));
diff --git a/src/server/database/Database/QueryCallback.h b/src/server/database/Database/QueryCallback.h
index e3ef6ae726..c1ee4ea98d 100644
--- a/src/server/database/Database/QueryCallback.h
+++ b/src/server/database/Database/QueryCallback.h
@@ -31,8 +31,9 @@ class AC_DATABASE_API QueryCallback
public:
explicit QueryCallback(QueryResultFuture&& result);
explicit QueryCallback(PreparedQueryResultFuture&& result);
- QueryCallback(QueryCallback&& right);
- QueryCallback& operator=(QueryCallback&& right);
+
+ QueryCallback(QueryCallback&& right) noexcept;
+ QueryCallback& operator=(QueryCallback&& right) noexcept;
~QueryCallback();
QueryCallback&& WithCallback(std::function<void(QueryResult)>&& callback);
@@ -60,6 +61,7 @@ private:
QueryResultFuture _string;
PreparedQueryResultFuture _prepared;
};
+
bool _isPrepared;
struct QueryCallbackData;
diff --git a/src/server/database/Database/QueryHolder.h b/src/server/database/Database/QueryHolder.h
index 260debf4e2..63994b487c 100644
--- a/src/server/database/Database/QueryHolder.h
+++ b/src/server/database/Database/QueryHolder.h
@@ -24,8 +24,7 @@
class AC_DATABASE_API SQLQueryHolderBase
{
friend class SQLQueryHolderTask;
-private:
- std::vector<std::pair<PreparedStatementBase*, PreparedQueryResult>> m_queries;
+
public:
SQLQueryHolderBase() = default;
virtual ~SQLQueryHolderBase();
@@ -35,6 +34,9 @@ public:
protected:
bool SetPreparedQueryImpl(size_t index, PreparedStatementBase* stmt);
+
+private:
+ std::vector<std::pair<PreparedStatementBase*, PreparedQueryResult>> m_queries;
};
template<typename T>
@@ -49,10 +51,6 @@ public:
class AC_DATABASE_API SQLQueryHolderTask : public SQLOperation
{
-private:
- std::shared_ptr<SQLQueryHolderBase> m_holder;
- QueryResultHolderPromise m_result;
-
public:
explicit SQLQueryHolderTask(std::shared_ptr<SQLQueryHolderBase> holder)
: m_holder(std::move(holder)) { }
@@ -61,6 +59,10 @@ public:
bool Execute() override;
QueryResultHolderFuture GetFuture() { return m_result.get_future(); }
+
+private:
+ std::shared_ptr<SQLQueryHolderBase> m_holder;
+ QueryResultHolderPromise m_result;
};
class AC_DATABASE_API SQLQueryHolderCallback
@@ -70,7 +72,6 @@ public:
: m_holder(std::move(holder)), m_future(std::move(future)) { }
SQLQueryHolderCallback(SQLQueryHolderCallback&&) = default;
-
SQLQueryHolderCallback& operator=(SQLQueryHolderCallback&&) = default;
void AfterComplete(std::function<void(SQLQueryHolderBase const&)> callback) &
diff --git a/src/server/database/Database/QueryResult.cpp b/src/server/database/Database/QueryResult.cpp
index 15aabbe7e1..06005a34d2 100644
--- a/src/server/database/Database/QueryResult.cpp
+++ b/src/server/database/Database/QueryResult.cpp
@@ -24,168 +24,234 @@
namespace
{
-static uint32 SizeForType(MYSQL_FIELD* field)
-{
- switch (field->type)
+ static uint32 SizeForType(MYSQL_FIELD* field)
+ {
+ switch (field->type)
+ {
+ case MYSQL_TYPE_NULL:
+ return 0;
+ case MYSQL_TYPE_TINY:
+ return 1;
+ case MYSQL_TYPE_YEAR:
+ case MYSQL_TYPE_SHORT:
+ return 2;
+ case MYSQL_TYPE_INT24:
+ case MYSQL_TYPE_LONG:
+ case MYSQL_TYPE_FLOAT:
+ return 4;
+ case MYSQL_TYPE_DOUBLE:
+ case MYSQL_TYPE_LONGLONG:
+ case MYSQL_TYPE_BIT:
+ return 8;
+
+ case MYSQL_TYPE_TIMESTAMP:
+ case MYSQL_TYPE_DATE:
+ case MYSQL_TYPE_TIME:
+ case MYSQL_TYPE_DATETIME:
+ return sizeof(MYSQL_TIME);
+
+ case MYSQL_TYPE_TINY_BLOB:
+ case MYSQL_TYPE_MEDIUM_BLOB:
+ case MYSQL_TYPE_LONG_BLOB:
+ case MYSQL_TYPE_BLOB:
+ case MYSQL_TYPE_STRING:
+ case MYSQL_TYPE_VAR_STRING:
+ return field->max_length + 1;
+
+ case MYSQL_TYPE_DECIMAL:
+ case MYSQL_TYPE_NEWDECIMAL:
+ return 64;
+
+ case MYSQL_TYPE_GEOMETRY:
+ /*
+ Following types are not sent over the wire:
+ MYSQL_TYPE_ENUM:
+ MYSQL_TYPE_SET:
+ */
+ default:
+ LOG_WARN("sql.sql", "SQL::SizeForType(): invalid field type {}", uint32(field->type));
+ return 0;
+ }
+ }
+
+ DatabaseFieldTypes MysqlTypeToFieldType(enum_field_types type)
{
- case MYSQL_TYPE_NULL:
- return 0;
- case MYSQL_TYPE_TINY:
- return 1;
- case MYSQL_TYPE_YEAR:
- case MYSQL_TYPE_SHORT:
- return 2;
- case MYSQL_TYPE_INT24:
- case MYSQL_TYPE_LONG:
- case MYSQL_TYPE_FLOAT:
- return 4;
- case MYSQL_TYPE_DOUBLE:
- case MYSQL_TYPE_LONGLONG:
- case MYSQL_TYPE_BIT:
- return 8;
-
- case MYSQL_TYPE_TIMESTAMP:
- case MYSQL_TYPE_DATE:
- case MYSQL_TYPE_TIME:
- case MYSQL_TYPE_DATETIME:
- return sizeof(MYSQL_TIME);
-
- case MYSQL_TYPE_TINY_BLOB:
- case MYSQL_TYPE_MEDIUM_BLOB:
- case MYSQL_TYPE_LONG_BLOB:
- case MYSQL_TYPE_BLOB:
- case MYSQL_TYPE_STRING:
- case MYSQL_TYPE_VAR_STRING:
- return field->max_length + 1;
-
- case MYSQL_TYPE_DECIMAL:
- case MYSQL_TYPE_NEWDECIMAL:
- return 64;
-
- case MYSQL_TYPE_GEOMETRY:
- /*
- Following types are not sent over the wire:
- MYSQL_TYPE_ENUM:
- MYSQL_TYPE_SET:
- */
- default:
- LOG_WARN("sql.sql", "SQL::SizeForType(): invalid field type {}", uint32(field->type));
- return 0;
+ switch (type)
+ {
+ case MYSQL_TYPE_NULL:
+ return DatabaseFieldTypes::Null;
+ case MYSQL_TYPE_TINY:
+ return DatabaseFieldTypes::Int8;
+ case MYSQL_TYPE_YEAR:
+ case MYSQL_TYPE_SHORT:
+ return DatabaseFieldTypes::Int16;
+ case MYSQL_TYPE_INT24:
+ case MYSQL_TYPE_LONG:
+ return DatabaseFieldTypes::Int32;
+ case MYSQL_TYPE_LONGLONG:
+ case MYSQL_TYPE_BIT:
+ return DatabaseFieldTypes::Int64;
+ case MYSQL_TYPE_FLOAT:
+ return DatabaseFieldTypes::Float;
+ case MYSQL_TYPE_DOUBLE:
+ return DatabaseFieldTypes::Double;
+ case MYSQL_TYPE_DECIMAL:
+ case MYSQL_TYPE_NEWDECIMAL:
+ return DatabaseFieldTypes::Decimal;
+ case MYSQL_TYPE_TIMESTAMP:
+ case MYSQL_TYPE_DATE:
+ case MYSQL_TYPE_TIME:
+ case MYSQL_TYPE_DATETIME:
+ return DatabaseFieldTypes::Date;
+ case MYSQL_TYPE_TINY_BLOB:
+ case MYSQL_TYPE_MEDIUM_BLOB:
+ case MYSQL_TYPE_LONG_BLOB:
+ case MYSQL_TYPE_BLOB:
+ case MYSQL_TYPE_STRING:
+ case MYSQL_TYPE_VAR_STRING:
+ return DatabaseFieldTypes::Binary;
+ default:
+ LOG_WARN("sql.sql", "MysqlTypeToFieldType(): invalid field type {}", uint32(type));
+ break;
+ }
+
+ return DatabaseFieldTypes::Null;
+ }
+
+ static std::string FieldTypeToString(enum_field_types type)
+ {
+ switch (type)
+ {
+ case MYSQL_TYPE_BIT: return "BIT";
+ case MYSQL_TYPE_BLOB: return "BLOB";
+ case MYSQL_TYPE_DATE: return "DATE";
+ case MYSQL_TYPE_DATETIME: return "DATETIME";
+ case MYSQL_TYPE_NEWDECIMAL: return "NEWDECIMAL";
+ case MYSQL_TYPE_DECIMAL: return "DECIMAL";
+ case MYSQL_TYPE_DOUBLE: return "DOUBLE";
+ case MYSQL_TYPE_ENUM: return "ENUM";
+ case MYSQL_TYPE_FLOAT: return "FLOAT";
+ case MYSQL_TYPE_GEOMETRY: return "GEOMETRY";
+ case MYSQL_TYPE_INT24: return "INT24";
+ case MYSQL_TYPE_LONG: return "LONG";
+ case MYSQL_TYPE_LONGLONG: return "LONGLONG";
+ case MYSQL_TYPE_LONG_BLOB: return "LONG_BLOB";
+ case MYSQL_TYPE_MEDIUM_BLOB: return "MEDIUM_BLOB";
+ case MYSQL_TYPE_NEWDATE: return "NEWDATE";
+ case MYSQL_TYPE_NULL: return "NULL";
+ case MYSQL_TYPE_SET: return "SET";
+ case MYSQL_TYPE_SHORT: return "SHORT";
+ case MYSQL_TYPE_STRING: return "STRING";
+ case MYSQL_TYPE_TIME: return "TIME";
+ case MYSQL_TYPE_TIMESTAMP: return "TIMESTAMP";
+ case MYSQL_TYPE_TINY: return "TINY";
+ case MYSQL_TYPE_TINY_BLOB: return "TINY_BLOB";
+ case MYSQL_TYPE_VAR_STRING: return "VAR_STRING";
+ case MYSQL_TYPE_YEAR: return "YEAR";
+ default: return "-Unknown-";
+ }
+ }
+
+ void InitializeDatabaseFieldMetadata(QueryResultFieldMetadata* meta, MySQLField const* field, uint32 fieldIndex)
+ {
+ meta->TableName = field->org_table;
+ meta->TableAlias = field->table;
+ meta->Name = field->org_name;
+ meta->Alias = field->name;
+ meta->TypeName = FieldTypeToString(field->type);
+ meta->Index = fieldIndex;
+ meta->Type = MysqlTypeToFieldType(field->type);
}
}
-DatabaseFieldTypes MysqlTypeToFieldType(enum_field_types type)
+ResultSet::ResultSet(MySQLResult* result, MySQLField* fields, uint64 rowCount, uint32 fieldCount) :
+ _rowCount(rowCount),
+ _fieldCount(fieldCount),
+ _result(result),
+ _fields(fields)
{
- switch (type)
+ _fieldMetadata.resize(_fieldCount);
+ _currentRow = new Field[_fieldCount];
+
+ for (uint32 i = 0; i < _fieldCount; i++)
{
- case MYSQL_TYPE_NULL:
- return DatabaseFieldTypes::Null;
- case MYSQL_TYPE_TINY:
- return DatabaseFieldTypes::Int8;
- case MYSQL_TYPE_YEAR:
- case MYSQL_TYPE_SHORT:
- return DatabaseFieldTypes::Int16;
- case MYSQL_TYPE_INT24:
- case MYSQL_TYPE_LONG:
- return DatabaseFieldTypes::Int32;
- case MYSQL_TYPE_LONGLONG:
- case MYSQL_TYPE_BIT:
- return DatabaseFieldTypes::Int64;
- case MYSQL_TYPE_FLOAT:
- return DatabaseFieldTypes::Float;
- case MYSQL_TYPE_DOUBLE:
- return DatabaseFieldTypes::Double;
- case MYSQL_TYPE_DECIMAL:
- case MYSQL_TYPE_NEWDECIMAL:
- return DatabaseFieldTypes::Decimal;
- case MYSQL_TYPE_TIMESTAMP:
- case MYSQL_TYPE_DATE:
- case MYSQL_TYPE_TIME:
- case MYSQL_TYPE_DATETIME:
- return DatabaseFieldTypes::Date;
- case MYSQL_TYPE_TINY_BLOB:
- case MYSQL_TYPE_MEDIUM_BLOB:
- case MYSQL_TYPE_LONG_BLOB:
- case MYSQL_TYPE_BLOB:
- case MYSQL_TYPE_STRING:
- case MYSQL_TYPE_VAR_STRING:
- return DatabaseFieldTypes::Binary;
- default:
- LOG_WARN("sql.sql", "MysqlTypeToFieldType(): invalid field type {}", uint32(type));
- break;
+ InitializeDatabaseFieldMetadata(&_fieldMetadata[i], &_fields[i], i);
+ _currentRow[i].SetMetadata(&_fieldMetadata[i]);
}
+}
- return DatabaseFieldTypes::Null;
+ResultSet::~ResultSet()
+{
+ CleanUp();
}
-static char const* FieldTypeToString(enum_field_types type)
+bool ResultSet::NextRow()
{
- switch (type)
+ MYSQL_ROW row;
+
+ if (!_result)
+ return false;
+
+ row = mysql_fetch_row(_result);
+ if (!row)
{
- case MYSQL_TYPE_BIT: return "BIT";
- case MYSQL_TYPE_BLOB: return "BLOB";
- case MYSQL_TYPE_DATE: return "DATE";
- case MYSQL_TYPE_DATETIME: return "DATETIME";
- case MYSQL_TYPE_NEWDECIMAL: return "NEWDECIMAL";
- case MYSQL_TYPE_DECIMAL: return "DECIMAL";
- case MYSQL_TYPE_DOUBLE: return "DOUBLE";
- case MYSQL_TYPE_ENUM: return "ENUM";
- case MYSQL_TYPE_FLOAT: return "FLOAT";
- case MYSQL_TYPE_GEOMETRY: return "GEOMETRY";
- case MYSQL_TYPE_INT24: return "INT24";
- case MYSQL_TYPE_LONG: return "LONG";
- case MYSQL_TYPE_LONGLONG: return "LONGLONG";
- case MYSQL_TYPE_LONG_BLOB: return "LONG_BLOB";
- case MYSQL_TYPE_MEDIUM_BLOB: return "MEDIUM_BLOB";
- case MYSQL_TYPE_NEWDATE: return "NEWDATE";
- case MYSQL_TYPE_NULL: return "NULL";
- case MYSQL_TYPE_SET: return "SET";
- case MYSQL_TYPE_SHORT: return "SHORT";
- case MYSQL_TYPE_STRING: return "STRING";
- case MYSQL_TYPE_TIME: return "TIME";
- case MYSQL_TYPE_TIMESTAMP: return "TIMESTAMP";
- case MYSQL_TYPE_TINY: return "TINY";
- case MYSQL_TYPE_TINY_BLOB: return "TINY_BLOB";
- case MYSQL_TYPE_VAR_STRING: return "VAR_STRING";
- case MYSQL_TYPE_YEAR: return "YEAR";
- default: return "-Unknown-";
+ CleanUp();
+ return false;
+ }
+
+ unsigned long* lengths = mysql_fetch_lengths(_result);
+ if (!lengths)
+ {
+ LOG_WARN("sql.sql", "{}:mysql_fetch_lengths, cannot retrieve value lengths. Error {}.", __FUNCTION__, mysql_error(_result->handle));
+ CleanUp();
+ return false;
}
+
+ for (uint32 i = 0; i < _fieldCount; i++)
+ _currentRow[i].SetStructuredValue(row[i], lengths[i]);
+
+ return true;
}
-void InitializeDatabaseFieldMetadata(QueryResultFieldMetadata* meta, MySQLField const* field, uint32 fieldIndex)
+std::string ResultSet::GetFieldName(uint32 index) const
{
- meta->TableName = field->org_table;
- meta->TableAlias = field->table;
- meta->Name = field->org_name;
- meta->Alias = field->name;
- meta->TypeName = FieldTypeToString(field->type);
- meta->Index = fieldIndex;
- meta->Type = MysqlTypeToFieldType(field->type);
-}
+ ASSERT(index < _fieldCount);
+ return _fields[index].name;
}
-ResultSet::ResultSet(MySQLResult* result, MySQLField* fields, uint64 rowCount, uint32 fieldCount) :
-_rowCount(rowCount),
-_fieldCount(fieldCount),
-_result(result),
-_fields(fields)
+void ResultSet::CleanUp()
{
- _fieldMetadata.resize(_fieldCount);
- _currentRow = new Field[_fieldCount];
- for (uint32 i = 0; i < _fieldCount; i++)
+ if (_currentRow)
{
- InitializeDatabaseFieldMetadata(&_fieldMetadata[i], &_fields[i], i);
- _currentRow[i].SetMetadata(&_fieldMetadata[i]);
+ delete[] _currentRow;
+ _currentRow = nullptr;
}
+
+ if (_result)
+ {
+ mysql_free_result(_result);
+ _result = nullptr;
+ }
+}
+
+Field const& ResultSet::operator[](std::size_t index) const
+{
+ ASSERT(index < _fieldCount);
+ return _currentRow[index];
+}
+
+void ResultSet::AssertRows(std::size_t sizeRows)
+{
+ ASSERT(sizeRows == _fieldCount);
}
PreparedResultSet::PreparedResultSet(MySQLStmt* stmt, MySQLResult* result, uint64 rowCount, uint32 fieldCount) :
-m_rowCount(rowCount),
-m_rowPosition(0),
-m_fieldCount(fieldCount),
-m_rBind(nullptr),
-m_stmt(stmt),
-m_metadataResult(result)
+ m_rowCount(rowCount),
+ m_rowPosition(0),
+ m_fieldCount(fieldCount),
+ m_rBind(nullptr),
+ m_stmt(stmt),
+ m_metadataResult(result)
{
if (!m_metadataResult)
return;
@@ -224,6 +290,7 @@ m_metadataResult(result)
MySQLField* field = reinterpret_cast<MySQLField*>(mysql_fetch_fields(m_metadataResult));
m_fieldMetadata.resize(m_fieldCount);
std::size_t rowSize = 0;
+
for (uint32 i = 0; i < m_fieldCount; ++i)
{
uint32 size = SizeForType(&field[i]);
@@ -258,6 +325,7 @@ m_metadataResult(result)
}
m_rows.resize(uint32(m_rowCount) * m_fieldCount);
+
while (_NextRow())
{
for (uint32 fIndex = 0; fIndex < m_fieldCount; ++fIndex)
@@ -271,90 +339,49 @@ m_metadataResult(result)
void* buffer = m_stmt->bind[fIndex].buffer;
switch (m_rBind[fIndex].buffer_type)
{
- case MYSQL_TYPE_TINY_BLOB:
- case MYSQL_TYPE_MEDIUM_BLOB:
- case MYSQL_TYPE_LONG_BLOB:
- case MYSQL_TYPE_BLOB:
- case MYSQL_TYPE_STRING:
- case MYSQL_TYPE_VAR_STRING:
- // warning - the string will not be null-terminated if there is no space for it in the buffer
- // when mysql_stmt_fetch returned MYSQL_DATA_TRUNCATED
- // we cannot blindly null-terminate the data either as it may be retrieved as binary blob and not specifically a string
- // in this case using Field::GetCString will result in garbage
- // TODO: remove Field::GetCString and use std::string_view in C++17
- if (fetched_length < buffer_length)
- *((char*)buffer + fetched_length) = '\0';
- break;
- default:
- break;
+ case MYSQL_TYPE_TINY_BLOB:
+ case MYSQL_TYPE_MEDIUM_BLOB:
+ case MYSQL_TYPE_LONG_BLOB:
+ case MYSQL_TYPE_BLOB:
+ case MYSQL_TYPE_STRING:
+ case MYSQL_TYPE_VAR_STRING:
+ // warning - the string will not be null-terminated if there is no space for it in the buffer
+ // when mysql_stmt_fetch returned MYSQL_DATA_TRUNCATED
+ // we cannot blindly null-terminate the data either as it may be retrieved as binary blob and not specifically a string
+ // in this case using Field::GetCString will result in garbage
+ // TODO: remove Field::GetCString and use std::string_view in C++17
+ if (fetched_length < buffer_length)
+ *((char*)buffer + fetched_length) = '\0';
+ break;
+ default:
+ break;
}
- m_rows[uint32(m_rowPosition) * m_fieldCount + fIndex].SetByteValue(
- (char const*)buffer,
- fetched_length);
+ m_rows[uint32(m_rowPosition) * m_fieldCount + fIndex].SetByteValue((char const*)buffer, fetched_length);
// move buffer pointer to next part
m_stmt->bind[fIndex].buffer = (char*)buffer + rowSize;
}
else
{
- m_rows[uint32(m_rowPosition) * m_fieldCount + fIndex].SetByteValue(
- nullptr,
- *m_rBind[fIndex].length);
+ m_rows[uint32(m_rowPosition) * m_fieldCount + fIndex].SetByteValue(nullptr, *m_rBind[fIndex].length);
}
}
+
m_rowPosition++;
}
+
m_rowPosition = 0;
/// All data is buffered, let go of mysql c api structures
mysql_stmt_free_result(m_stmt);
}
-ResultSet::~ResultSet()
-{
- CleanUp();
-}
-
PreparedResultSet::~PreparedResultSet()
{
CleanUp();
}
-bool ResultSet::NextRow()
-{
- MYSQL_ROW row;
-
- if (!_result)
- return false;
-
- row = mysql_fetch_row(_result);
- if (!row)
- {
- CleanUp();
- return false;
- }
-
- unsigned long* lengths = mysql_fetch_lengths(_result);
- if (!lengths)
- {
- LOG_WARN("sql.sql", "{}:mysql_fetch_lengths, cannot retrieve value lengths. Error {}.", __FUNCTION__, mysql_error(_result->handle));
- CleanUp();
- return false;
- }
-
- for (uint32 i = 0; i < _fieldCount; i++)
- _currentRow[i].SetStructuredValue(row[i], lengths[i]);
-
- return true;
-}
-
-std::string ResultSet::GetFieldName(uint32 index) const
-{
- ASSERT(index < _fieldCount);
- return _fields[index].name;
-}
-
bool PreparedResultSet::NextRow()
{
/// Only updates the m_rowPosition so upper level code knows in which element
@@ -376,27 +403,6 @@ bool PreparedResultSet::_NextRow()
return retval == 0 || retval == MYSQL_DATA_TRUNCATED;
}
-void ResultSet::CleanUp()
-{
- if (_currentRow)
- {
- delete [] _currentRow;
- _currentRow = nullptr;
- }
-
- if (_result)
- {
- mysql_free_result(_result);
- _result = nullptr;
- }
-}
-
-Field const& ResultSet::operator[](std::size_t index) const
-{
- ASSERT(index < _fieldCount);
- return _currentRow[index];
-}
-
Field* PreparedResultSet::Fetch() const
{
ASSERT(m_rowPosition < m_rowCount);
@@ -422,3 +428,9 @@ void PreparedResultSet::CleanUp()
m_rBind = nullptr;
}
}
+
+void PreparedResultSet::AssertRows(std::size_t sizeRows)
+{
+ ASSERT(m_rowPosition < m_rowCount);
+ ASSERT(sizeRows == m_fieldCount, "> Tuple size != count fields");
+}
diff --git a/src/server/database/Database/QueryResult.h b/src/server/database/Database/QueryResult.h
index d18ce03e45..b64966e0ed 100644
--- a/src/server/database/Database/QueryResult.h
+++ b/src/server/database/Database/QueryResult.h
@@ -20,6 +20,8 @@
#include "DatabaseEnvFwd.h"
#include "Define.h"
+#include "Field.h"
+#include <tuple>
#include <vector>
class AC_DATABASE_API ResultSet
@@ -36,6 +38,22 @@ public:
[[nodiscard]] Field* Fetch() const { return _currentRow; }
Field const& operator[](std::size_t index) const;
+ template<typename... Ts>
+ inline std::tuple<Ts...> FetchTuple()
+ {
+ AssertRows(sizeof...(Ts));
+
+ std::tuple<Ts...> theTuple = {};
+
+ std::apply([this](Ts&... args)
+ {
+ uint8 index{ 0 };
+ ((args = _currentRow[index].Get<Ts>(), index++), ...);
+ }, theTuple);
+
+ return theTuple;
+ }
+
protected:
std::vector<QueryResultFieldMetadata> _fieldMetadata;
uint64 _rowCount;
@@ -44,6 +62,8 @@ protected:
private:
void CleanUp();
+ void AssertRows(std::size_t sizeRows);
+
MySQLResult* _result;
MySQLField* _fields;
@@ -64,6 +84,22 @@ public:
[[nodiscard]] Field* Fetch() const;
Field const& operator[](std::size_t index) const;
+ template<typename... Ts>
+ inline std::tuple<Ts...> FetchTuple()
+ {
+ AssertRows(sizeof...(Ts));
+
+ std::tuple<Ts...> theTuple = {};
+
+ std::apply([this](Ts&... args)
+ {
+ uint8 index{ 0 };
+ ((args = m_rows[uint32(m_rowPosition) * m_fieldCount + index].Get<Ts>(), index++), ...);
+ }, theTuple);
+
+ return theTuple;
+ }
+
protected:
std::vector<QueryResultFieldMetadata> m_fieldMetadata;
std::vector<Field> m_rows;
@@ -79,6 +115,8 @@ private:
void CleanUp();
bool _NextRow();
+ void AssertRows(std::size_t sizeRows);
+
PreparedResultSet(PreparedResultSet const& right) = delete;
PreparedResultSet& operator=(PreparedResultSet const& right) = delete;
};
diff --git a/src/server/database/Database/SQLOperation.h b/src/server/database/Database/SQLOperation.h
index 7322591775..89542886b3 100644
--- a/src/server/database/Database/SQLOperation.h
+++ b/src/server/database/Database/SQLOperation.h
@@ -20,13 +20,7 @@
#include "DatabaseEnvFwd.h"
#include "Define.h"
-
-//- Union that holds element data
-union SQLElementUnion
-{
- PreparedStatementBase* stmt;
- char const* query;
-};
+#include <variant>
//- Type specifier of our element data
enum SQLElementDataType
@@ -38,7 +32,7 @@ enum SQLElementDataType
//- The element
struct SQLElementData
{
- SQLElementUnion element;
+ std::variant<PreparedStatementBase*, std::string> element;
SQLElementDataType type;
};
@@ -55,6 +49,7 @@ public:
Execute();
return 0;
}
+
virtual bool Execute() = 0;
virtual void SetConnection(MySQLConnection* con) { m_conn = con; }
diff --git a/src/server/database/Database/Transaction.cpp b/src/server/database/Database/Transaction.cpp
index 1b669c085f..38f2ab051e 100644
--- a/src/server/database/Database/Transaction.cpp
+++ b/src/server/database/Database/Transaction.cpp
@@ -16,6 +16,7 @@
*/
#include "Transaction.h"
+#include "Errors.h"
#include "Log.h"
#include "MySQLConnection.h"
#include "PreparedStatement.h"
@@ -26,24 +27,24 @@
std::mutex TransactionTask::_deadlockLock;
-#define DEADLOCK_MAX_RETRY_TIME_MS 60000
+constexpr Milliseconds DEADLOCK_MAX_RETRY_TIME_MS = 1min;
//- Append a raw ad-hoc query to the transaction
-void TransactionBase::Append(char const* sql)
+void TransactionBase::Append(std::string_view sql)
{
- SQLElementData data;
+ SQLElementData data = {};
data.type = SQL_ELEMENT_RAW;
- data.element.query = strdup(sql);
- m_queries.push_back(data);
+ data.element = std::string(sql);
+ m_queries.emplace_back(data);
}
//- Append a prepared statement to the transaction
void TransactionBase::AppendPreparedStatement(PreparedStatementBase* stmt)
{
- SQLElementData data;
+ SQLElementData data = {};
data.type = SQL_ELEMENT_PREPARED;
- data.element.stmt = stmt;
- m_queries.push_back(data);
+ data.element = stmt;
+ m_queries.emplace_back(data);
}
void TransactionBase::Cleanup()
@@ -52,15 +53,38 @@ void TransactionBase::Cleanup()
if (_cleanedUp)
return;
- for (SQLElementData const& data : m_queries)
+ for (SQLElementData& data : m_queries)
{
switch (data.type)
{
case SQL_ELEMENT_PREPARED:
- delete data.element.stmt;
+ {
+ try
+ {
+ PreparedStatementBase* stmt = std::get<PreparedStatementBase*>(data.element);
+ ASSERT(stmt);
+
+ delete stmt;
+ }
+ catch (const std::bad_variant_access& ex)
+ {
+ LOG_FATAL("sql.sql", "> PreparedStatementBase not found in SQLElementData. {}", ex.what());
+ ABORT();
+ }
+ }
break;
case SQL_ELEMENT_RAW:
- free((void*)(data.element.query));
+ {
+ try
+ {
+ std::get<std::string>(data.element).clear();
+ }
+ catch (const std::bad_variant_access& ex)
+ {
+ LOG_FATAL("sql.sql", "> std::string not found in SQLElementData. {}", ex.what());
+ ABORT();
+ }
+ }
break;
}
}
@@ -72,6 +96,7 @@ void TransactionBase::Cleanup()
bool TransactionTask::Execute()
{
int errorCode = TryExecute();
+
if (!errorCode)
return true;
@@ -81,15 +106,17 @@ bool TransactionTask::Execute()
threadIdStream << std::this_thread::get_id();
std::string threadId = threadIdStream.str();
- // Make sure only 1 async thread retries a transaction so they don't keep dead-locking each other
- std::lock_guard<std::mutex> lock(_deadlockLock);
-
- for (uint32 loopDuration = 0, startMSTime = getMSTime(); loopDuration <= DEADLOCK_MAX_RETRY_TIME_MS; loopDuration = GetMSTimeDiffToNow(startMSTime))
{
- if (!TryExecute())
- return true;
+ // Make sure only 1 async thread retries a transaction so they don't keep dead-locking each other
+ std::lock_guard<std::mutex> lock(_deadlockLock);
- LOG_WARN("sql.sql", "Deadlocked SQL Transaction, retrying. Loop timer: {} ms, Thread Id: {}", loopDuration, threadId);
+ for (Milliseconds loopDuration = 0s, startMSTime = GetTimeMS(); loopDuration <= DEADLOCK_MAX_RETRY_TIME_MS; loopDuration = GetMSTimeDiffToNow(startMSTime))
+ {
+ if (!TryExecute())
+ return true;
+
+ LOG_WARN("sql.sql", "Deadlocked SQL Transaction, retrying. Loop timer: {} ms, Thread Id: {}", loopDuration.count(), threadId);
+ }
}
LOG_ERROR("sql.sql", "Fatal deadlocked SQL Transaction, it will not be retried anymore. Thread Id: {}", threadId);
@@ -126,17 +153,20 @@ bool TransactionWithResultTask::Execute()
threadIdStream << std::this_thread::get_id();
std::string threadId = threadIdStream.str();
- // Make sure only 1 async thread retries a transaction so they don't keep dead-locking each other
- std::lock_guard<std::mutex> lock(_deadlockLock);
- for (uint32 loopDuration = 0, startMSTime = getMSTime(); loopDuration <= DEADLOCK_MAX_RETRY_TIME_MS; loopDuration = GetMSTimeDiffToNow(startMSTime))
{
- if (!TryExecute())
+ // Make sure only 1 async thread retries a transaction so they don't keep dead-locking each other
+ std::lock_guard<std::mutex> lock(_deadlockLock);
+
+ for (Milliseconds loopDuration = 0s, startMSTime = GetTimeMS(); loopDuration <= DEADLOCK_MAX_RETRY_TIME_MS; loopDuration = GetMSTimeDiffToNow(startMSTime))
{
- m_result.set_value(true);
- return true;
- }
+ if (!TryExecute())
+ {
+ m_result.set_value(true);
+ return true;
+ }
- LOG_WARN("sql.sql", "Deadlocked SQL Transaction, retrying. Loop timer: {} ms, Thread Id: {}", loopDuration, threadId);
+ LOG_WARN("sql.sql", "Deadlocked SQL Transaction, retrying. Loop timer: {} ms, Thread Id: {}", loopDuration.count(), threadId);
+ }
}
LOG_ERROR("sql.sql", "Fatal deadlocked SQL Transaction, it will not be retried anymore. Thread Id: {}", threadId);
@@ -151,7 +181,7 @@ bool TransactionWithResultTask::Execute()
bool TransactionCallback::InvokeIfReady()
{
- if (m_future.valid() && m_future.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
+ if (m_future.valid() && m_future.wait_for(0s) == std::future_status::ready)
{
m_callback(m_future.get());
return true;
diff --git a/src/server/database/Database/Transaction.h b/src/server/database/Database/Transaction.h
index ef3d72fce4..5d82703ae9 100644
--- a/src/server/database/Database/Transaction.h
+++ b/src/server/database/Database/Transaction.h
@@ -30,21 +30,22 @@
/*! Transactions, high level class. */
class AC_DATABASE_API TransactionBase
{
-friend class TransactionTask;
-friend class MySQLConnection;
+ friend class TransactionTask;
+ friend class MySQLConnection;
-template <typename T>
-friend class DatabaseWorkerPool;
+ template <typename T>
+ friend class DatabaseWorkerPool;
public:
TransactionBase() = default;
virtual ~TransactionBase() { Cleanup(); }
- void Append(char const* sql);
- template<typename Format, typename... Args>
- void PAppend(Format&& sql, Args&&... args)
+ void Append(std::string_view sql);
+
+ template<typename... Args>
+ void Append(std::string_view sql, Args&&... args)
{
- Append(Acore::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ Append(Acore::StringFormatFmt(sql, std::forward<Args>(args)...));
}
[[nodiscard]] std::size_t GetSize() const { return m_queries.size(); }
@@ -63,6 +64,7 @@ class Transaction : public TransactionBase
{
public:
using TransactionBase::Append;
+
void Append(PreparedStatement<T>* statement)
{
AppendPreparedStatement(statement);
@@ -72,9 +74,11 @@ public:
/*! Low level class*/
class AC_DATABASE_API TransactionTask : public SQLOperation
{
-template <class T> friend class DatabaseWorkerPool;
-friend class DatabaseWorker;
-friend class TransactionCallback;
+ template <class T>
+ friend class DatabaseWorkerPool;
+
+ friend class DatabaseWorker;
+ friend class TransactionCallback;
public:
TransactionTask(std::shared_ptr<TransactionBase> trans) : m_trans(std::move(trans)) { }
diff --git a/src/server/database/Logging/AppenderDB.cpp b/src/server/database/Logging/AppenderDB.cpp
index 1bf9f08296..1878bb3637 100644
--- a/src/server/database/Logging/AppenderDB.cpp
+++ b/src/server/database/Logging/AppenderDB.cpp
@@ -27,16 +27,16 @@ AppenderDB::~AppenderDB() { }
void AppenderDB::_write(LogMessage const* message)
{
- // Avoid infinite loop, PExecute triggers Logging with "sql.sql" type
+ // Avoid infinite loop, Execute triggers Logging with "sql.sql" type
if (!enabled || (message->type.find("sql") != std::string::npos))
return;
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_LOG);
- stmt->setUInt64(0, message->mtime.count());
- stmt->setUInt32(1, realmId);
- stmt->setString(2, message->type);
- stmt->setUInt8(3, uint8(message->level));
- stmt->setString(4, message->text);
+ stmt->SetData(0, message->mtime.count());
+ stmt->SetData(1, realmId);
+ stmt->SetData(2, message->type);
+ stmt->SetData(3, uint8(message->level));
+ stmt->SetData(4, message->text);
LoginDatabase.Execute(stmt);
}
diff --git a/src/server/database/Updater/UpdateFetcher.cpp b/src/server/database/Updater/UpdateFetcher.cpp
index 3054d0e310..97811954df 100644
--- a/src/server/database/Updater/UpdateFetcher.cpp
+++ b/src/server/database/Updater/UpdateFetcher.cpp
@@ -132,8 +132,8 @@ UpdateFetcher::DirectoryStorage UpdateFetcher::ReceiveIncludedDirectories() cons
{
Field* fields = result->Fetch();
- std::string path = fields[0].GetString();
- std::string state = fields[1].GetString();
+ std::string path = fields[0].Get<std::string>();
+ std::string state = fields[1].Get<std::string>();
if (path.substr(0, 1) == "$")
path = _sourceDirectory->generic_string() + path.substr(1);
@@ -194,7 +194,7 @@ UpdateFetcher::AppliedFileStorage UpdateFetcher::ReceiveAppliedFiles() const
AppliedFileEntry const entry =
{
- fields[0].GetString(), fields[1].GetString(), AppliedFileEntry::StateConvert(fields[2].GetString()), fields[3].GetUInt64()
+ fields[0].Get<std::string>(), fields[1].Get<std::string>(), AppliedFileEntry::StateConvert(fields[2].Get<std::string>()), fields[3].Get<uint64>()
};
map.emplace(entry.name, entry);
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
index 7bd0a91875..6e7605f1fe 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
@@ -76,14 +76,14 @@ void SmartWaypointMgr::LoadFromDB()
do
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 id = fields[1].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 id = fields[1].Get<uint32>();
float x, y, z, o;
- x = fields[2].GetFloat();
- y = fields[3].GetFloat();
- z = fields[4].GetFloat();
- o = fields[5].GetFloat();
- uint32 delay = fields[6].GetUInt32();
+ x = fields[2].Get<float>();
+ y = fields[3].Get<float>();
+ z = fields[4].Get<float>();
+ o = fields[5].Get<float>();
+ uint32 delay = fields[6].Get<uint32>();
if (last_entry != entry)
{
@@ -148,14 +148,14 @@ void SmartAIMgr::LoadSmartAIFromDB()
SmartScriptHolder temp;
- temp.entryOrGuid = fields[0].GetInt32();
+ temp.entryOrGuid = fields[0].Get<int32>();
if (!temp.entryOrGuid)
{
LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: invalid entryorguid (0), skipped loading.");
continue;
}
- SmartScriptType source_type = (SmartScriptType)fields[1].GetUInt8();
+ SmartScriptType source_type = (SmartScriptType)fields[1].Get<uint8>();
if (source_type >= SMART_SCRIPT_TYPE_MAX)
{
LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: invalid source_type ({}), skipped loading.", uint32(source_type));
@@ -209,36 +209,36 @@ void SmartAIMgr::LoadSmartAIFromDB()
}
temp.source_type = source_type;
- temp.event_id = fields[2].GetUInt16();
- temp.link = fields[3].GetUInt16();
- temp.event.type = (SMART_EVENT)fields[4].GetUInt8();
- temp.event.event_phase_mask = fields[5].GetUInt16();
- temp.event.event_chance = fields[6].GetUInt8();
- temp.event.event_flags = fields[7].GetUInt16();
-
- temp.event.raw.param1 = fields[8].GetUInt32();
- temp.event.raw.param2 = fields[9].GetUInt32();
- temp.event.raw.param3 = fields[10].GetUInt32();
- temp.event.raw.param4 = fields[11].GetUInt32();
- temp.event.raw.param5 = fields[12].GetUInt32();
-
- temp.action.type = (SMART_ACTION)fields[13].GetUInt8();
- temp.action.raw.param1 = fields[14].GetUInt32();
- temp.action.raw.param2 = fields[15].GetUInt32();
- temp.action.raw.param3 = fields[16].GetUInt32();
- temp.action.raw.param4 = fields[17].GetUInt32();
- temp.action.raw.param5 = fields[18].GetUInt32();
- temp.action.raw.param6 = fields[19].GetUInt32();
-
- temp.target.type = (SMARTAI_TARGETS)fields[20].GetUInt8();
- temp.target.raw.param1 = fields[21].GetUInt32();
- temp.target.raw.param2 = fields[22].GetUInt32();
- temp.target.raw.param3 = fields[23].GetUInt32();
- temp.target.raw.param4 = fields[24].GetUInt32();
- temp.target.x = fields[25].GetFloat();
- temp.target.y = fields[26].GetFloat();
- temp.target.z = fields[27].GetFloat();
- temp.target.o = fields[28].GetFloat();
+ temp.event_id = fields[2].Get<uint16>();
+ temp.link = fields[3].Get<uint16>();
+ temp.event.type = (SMART_EVENT)fields[4].Get<uint8>();
+ temp.event.event_phase_mask = fields[5].Get<uint16>();
+ temp.event.event_chance = fields[6].Get<uint8>();
+ temp.event.event_flags = fields[7].Get<uint16>();
+
+ temp.event.raw.param1 = fields[8].Get<uint32>();
+ temp.event.raw.param2 = fields[9].Get<uint32>();
+ temp.event.raw.param3 = fields[10].Get<uint32>();
+ temp.event.raw.param4 = fields[11].Get<uint32>();
+ temp.event.raw.param5 = fields[12].Get<uint32>();
+
+ temp.action.type = (SMART_ACTION)fields[13].Get<uint8>();
+ temp.action.raw.param1 = fields[14].Get<uint32>();
+ temp.action.raw.param2 = fields[15].Get<uint32>();
+ temp.action.raw.param3 = fields[16].Get<uint32>();
+ temp.action.raw.param4 = fields[17].Get<uint32>();
+ temp.action.raw.param5 = fields[18].Get<uint32>();
+ temp.action.raw.param6 = fields[19].Get<uint32>();
+
+ temp.target.type = (SMARTAI_TARGETS)fields[20].Get<uint8>();
+ temp.target.raw.param1 = fields[21].Get<uint32>();
+ temp.target.raw.param2 = fields[22].Get<uint32>();
+ temp.target.raw.param3 = fields[23].Get<uint32>();
+ temp.target.raw.param4 = fields[24].Get<uint32>();
+ temp.target.x = fields[25].Get<float>();
+ temp.target.y = fields[26].Get<float>();
+ temp.target.z = fields[27].Get<float>();
+ temp.target.o = fields[28].Get<float>();
//check target
if (!IsTargetValid(temp))
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp
index 62c75712e7..39847b6aeb 100644
--- a/src/server/game/Accounts/AccountMgr.cpp
+++ b/src/server/game/Accounts/AccountMgr.cpp
@@ -43,11 +43,11 @@ namespace AccountMgr
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT);
- stmt->setString(0, username);
+ stmt->SetData(0, username);
auto [salt, verifier] = Acore::Crypto::SRP6::MakeRegistrationData(username, password);
- stmt->setBinary(1, salt);
- stmt->setBinary(2, verifier);
- stmt->setInt8(3, uint8(sWorld->getIntConfig(CONFIG_EXPANSION)));
+ stmt->SetData(1, salt);
+ stmt->SetData(2, verifier);
+ stmt->SetData(3, uint8(sWorld->getIntConfig(CONFIG_EXPANSION)));
LoginDatabase.Execute(stmt);
@@ -62,7 +62,7 @@ namespace AccountMgr
{
// Check if accounts exists
LoginDatabasePreparedStatement* loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BY_ID);
- loginStmt->setUInt32(0, accountId);
+ loginStmt->SetData(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(loginStmt);
if (!result)
@@ -70,7 +70,7 @@ namespace AccountMgr
// Obtain accounts characters
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARS_BY_ACCOUNT_ID);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
result = CharacterDatabase.Query(stmt);
@@ -78,7 +78,7 @@ namespace AccountMgr
{
do
{
- ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>((*result)[0].GetUInt32());
+ ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>((*result)[0].Get<uint32>());
// Kick if player is online
if (Player* p = ObjectAccessor::FindPlayer(guid))
@@ -94,37 +94,37 @@ namespace AccountMgr
// table realm specific but common for all characters of account for realm
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_TUTORIALS);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ACCOUNT_DATA);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHARACTER_BAN);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
CharacterDatabase.Execute(stmt);
LoginDatabaseTransaction trans = LoginDatabase.BeginTransaction();
loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_ACCOUNT);
- loginStmt->setUInt32(0, accountId);
+ loginStmt->SetData(0, accountId);
trans->Append(loginStmt);
loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_ACCOUNT_ACCESS);
- loginStmt->setUInt32(0, accountId);
+ loginStmt->SetData(0, accountId);
trans->Append(loginStmt);
loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_REALM_CHARACTERS);
- loginStmt->setUInt32(0, accountId);
+ loginStmt->SetData(0, accountId);
trans->Append(loginStmt);
loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_ACCOUNT_BANNED);
- loginStmt->setUInt32(0, accountId);
+ loginStmt->SetData(0, accountId);
trans->Append(loginStmt);
loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_ACCOUNT_MUTED);
- loginStmt->setUInt32(0, accountId);
+ loginStmt->SetData(0, accountId);
trans->Append(loginStmt);
LoginDatabase.CommitTransaction(trans);
@@ -136,7 +136,7 @@ namespace AccountMgr
{
// Check if accounts exists
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BY_ID);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (!result)
@@ -152,15 +152,15 @@ namespace AccountMgr
Utf8ToUpperOnlyLatin(newPassword);
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_USERNAME);
- stmt->setString(0, newUsername);
- stmt->setUInt32(1, accountId);
+ stmt->SetData(0, newUsername);
+ stmt->SetData(1, accountId);
LoginDatabase.Execute(stmt);
auto [salt, verifier] = Acore::Crypto::SRP6::MakeRegistrationData(newUsername, newPassword);
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LOGON);
- stmt->setBinary(0, salt);
- stmt->setBinary(1, verifier);
- stmt->setUInt32(2, accountId);
+ stmt->SetData(0, salt);
+ stmt->SetData(1, verifier);
+ stmt->SetData(2, accountId);
LoginDatabase.Execute(stmt);
return AOR_OK;
@@ -188,9 +188,9 @@ namespace AccountMgr
auto [salt, verifier] = Acore::Crypto::SRP6::MakeRegistrationData(username, newPassword);
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LOGON);
- stmt->setBinary(0, salt);
- stmt->setBinary(1, verifier);
- stmt->setUInt32(2, accountId);
+ stmt->SetData(0, salt);
+ stmt->SetData(1, verifier);
+ stmt->SetData(2, accountId);
LoginDatabase.Execute(stmt);
sScriptMgr->OnPasswordChange(accountId);
@@ -200,40 +200,40 @@ namespace AccountMgr
uint32 GetId(std::string const& username)
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_ACCOUNT_ID_BY_USERNAME);
- stmt->setString(0, username);
+ stmt->SetData(0, username);
PreparedQueryResult result = LoginDatabase.Query(stmt);
- return (result) ? (*result)[0].GetUInt32() : 0;
+ return (result) ? (*result)[0].Get<uint32>() : 0;
}
uint32 GetSecurity(uint32 accountId)
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_ACCOUNT_ACCESS_GMLEVEL);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
- return (result) ? (*result)[0].GetUInt8() : uint32(SEC_PLAYER);
+ return (result) ? (*result)[0].Get<uint8>() : uint32(SEC_PLAYER);
}
uint32 GetSecurity(uint32 accountId, int32 realmId)
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_GMLEVEL_BY_REALMID);
- stmt->setUInt32(0, accountId);
- stmt->setInt32(1, realmId);
+ stmt->SetData(0, accountId);
+ stmt->SetData(1, realmId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
- return (result) ? (*result)[0].GetUInt8() : uint32(SEC_PLAYER);
+ return (result) ? (*result)[0].Get<uint8>() : uint32(SEC_PLAYER);
}
bool GetName(uint32 accountId, std::string& name)
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_USERNAME_BY_ID);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (result)
{
- name = (*result)[0].GetString();
+ name = (*result)[0].Get<std::string>();
return true;
}
@@ -251,11 +251,11 @@ namespace AccountMgr
Utf8ToUpperOnlyLatin(password);
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_CHECK_PASSWORD);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
if (PreparedQueryResult result = LoginDatabase.Query(stmt))
{
- Acore::Crypto::SRP6::Salt salt = (*result)[0].GetBinary<Acore::Crypto::SRP6::SALT_LENGTH>();
- Acore::Crypto::SRP6::Verifier verifier = (*result)[1].GetBinary<Acore::Crypto::SRP6::VERIFIER_LENGTH>();
+ Acore::Crypto::SRP6::Salt salt = (*result)[0].Get<Binary, Acore::Crypto::SRP6::SALT_LENGTH>();
+ Acore::Crypto::SRP6::Verifier verifier = (*result)[1].Get<Binary, Acore::Crypto::SRP6::VERIFIER_LENGTH>();
if (Acore::Crypto::SRP6::CheckLogin(username, password, salt, verifier))
return true;
}
@@ -267,10 +267,10 @@ namespace AccountMgr
{
// check character count
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_SUM_CHARS);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
- return (result) ? (*result)[0].GetUInt64() : 0;
+ return (result) ? (*result)[0].Get<uint64>() : 0;
}
bool IsPlayerAccount(uint32 gmlevel)
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 0e09b5e567..c3ecb80ac3 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -532,11 +532,11 @@ void AchievementMgr::DeleteFromDB(ObjectGuid::LowType lowguid)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT);
- stmt->setUInt32(0, lowguid);
+ stmt->SetData(0, lowguid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS);
- stmt->setUInt32(0, lowguid);
+ stmt->SetData(0, lowguid);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -552,14 +552,14 @@ void AchievementMgr::SaveToDB(CharacterDatabaseTransaction trans)
continue;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_BY_ACHIEVEMENT);
- stmt->setUInt16(0, iter->first);
- stmt->setUInt32(1, GetPlayer()->GetGUID().GetCounter());
+ stmt->SetData(0, iter->first);
+ stmt->SetData(1, GetPlayer()->GetGUID().GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_ACHIEVEMENT);
- stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
- stmt->setUInt16(1, iter->first);
- stmt->setUInt32(2, uint32(iter->second.date));
+ stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
+ stmt->SetData(1, iter->first);
+ stmt->SetData(2, uint32(iter->second.date));
trans->Append(stmt);
iter->second.changed = false;
@@ -576,18 +576,18 @@ void AchievementMgr::SaveToDB(CharacterDatabaseTransaction trans)
continue;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS_BY_CRITERIA);
- stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
- stmt->setUInt16(1, iter->first);
+ stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
+ stmt->SetData(1, iter->first);
trans->Append(stmt);
// pussywizard: insert only for (counter != 0) is very important! this is how criteria of completed achievements gets deleted from db (by setting counter to 0); if conflicted during merge - contact me
if (iter->second.counter)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_ACHIEVEMENT_PROGRESS);
- stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
- stmt->setUInt16(1, iter->first);
- stmt->setUInt32(2, iter->second.counter);
- stmt->setUInt32(3, uint32(iter->second.date));
+ stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
+ stmt->SetData(1, iter->first);
+ stmt->SetData(2, iter->second.counter);
+ stmt->SetData(3, uint32(iter->second.date));
trans->Append(stmt);
}
@@ -605,7 +605,7 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
do
{
Field* fields = achievementResult->Fetch();
- uint32 achievementid = fields[0].GetUInt16();
+ uint32 achievementid = fields[0].Get<uint16>();
// must not happen: cleanup at server startup in sAchievementMgr->LoadCompletedAchievements()
AchievementEntry const* achievement = sAchievementStore.LookupEntry(achievementid);
@@ -613,7 +613,7 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
continue;
CompletedAchievementData& ca = m_completedAchievements[achievementid];
- ca.date = time_t(fields[1].GetUInt32());
+ ca.date = time_t(fields[1].Get<uint32>());
ca.changed = false;
// title achievement rewards are retroactive
@@ -630,9 +630,9 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
do
{
Field* fields = criteriaResult->Fetch();
- uint32 id = fields[0].GetUInt16();
- uint32 counter = fields[1].GetUInt32();
- time_t date = time_t(fields[2].GetUInt32());
+ uint32 id = fields[0].Get<uint16>();
+ uint32 counter = fields[1].Get<uint32>();
+ time_t date = time_t(fields[2].Get<uint32>());
AchievementCriteriaEntry const* criteria = sAchievementCriteriaStore.LookupEntry(id);
if (!criteria)
@@ -642,7 +642,7 @@ void AchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, PreparedQ
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_ACHIEV_PROGRESS_CRITERIA);
- stmt->setUInt16(0, uint16(id));
+ stmt->SetData(0, uint16(id));
CharacterDatabase.Execute(stmt);
@@ -2645,7 +2645,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
do
{
Field* fields = result->Fetch();
- uint32 criteria_id = fields[0].GetUInt32();
+ uint32 criteria_id = fields[0].Get<uint32>();
AchievementCriteriaEntry const* criteria = sAchievementCriteriaStore.LookupEntry(criteria_id);
@@ -2655,8 +2655,8 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
continue;
}
- uint32 dataType = fields[1].GetUInt8();
- std::string scriptName = fields[4].GetString();
+ uint32 dataType = fields[1].Get<uint8>();
+ std::string scriptName = fields[4].Get<std::string>();
uint32 scriptId = 0;
if (scriptName.length()) // not empty
{
@@ -2666,7 +2666,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
scriptId = sObjectMgr->GetScriptId(scriptName.c_str());
}
- AchievementCriteriaData data(dataType, fields[2].GetUInt32(), fields[3].GetUInt32(), scriptId);
+ AchievementCriteriaData data(dataType, fields[2].Get<uint32>(), fields[3].Get<uint32>(), scriptId);
if (!data.IsValid(criteria))
continue;
@@ -2785,7 +2785,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
{
Field* fields = result->Fetch();
- uint16 achievementId = fields[0].GetUInt16();
+ uint16 achievementId = fields[0].Get<uint16>();
const AchievementEntry* achievement = sAchievementStore.LookupEntry(achievementId);
if (!achievement)
{
@@ -2794,7 +2794,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_ACHIEVMENT);
- stmt->setUInt16(0, uint16(achievementId));
+ stmt->SetData(0, uint16(achievementId));
CharacterDatabase.Execute(stmt);
continue;
@@ -2828,7 +2828,7 @@ void AchievementGlobalMgr::LoadRewards()
do
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
AchievementEntry const* achievement = sAchievementStore.LookupEntry(entry);
if (!achievement)
{
@@ -2837,13 +2837,13 @@ void AchievementGlobalMgr::LoadRewards()
}
AchievementReward reward;
- reward.titleId[0] = fields[1].GetUInt32(); // Alliance title
- reward.titleId[1] = fields[2].GetUInt32(); // Horde title
- reward.itemId = fields[3].GetUInt32();
- reward.sender = fields[4].GetUInt32(); // The sender of the mail (a creature from creature_template)
- reward.subject = fields[5].GetString();
- reward.text = fields[6].GetString(); // Body in DB
- reward.mailTemplate = fields[7].GetUInt32();
+ reward.titleId[0] = fields[1].Get<uint32>(); // Alliance title
+ reward.titleId[1] = fields[2].Get<uint32>(); // Horde title
+ reward.itemId = fields[3].Get<uint32>();
+ reward.sender = fields[4].Get<uint32>(); // The sender of the mail (a creature from creature_template)
+ reward.subject = fields[5].Get<std::string>();
+ reward.text = fields[6].Get<std::string>(); // Body in DB
+ reward.mailTemplate = fields[7].Get<uint32>();
// Must reward a title or send a mail else, skip it.
if (!reward.titleId[0] && !reward.titleId[1] && !reward.sender)
@@ -2948,20 +2948,20 @@ void AchievementGlobalMgr::LoadRewardLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
if (m_achievementRewards.find(ID) == m_achievementRewards.end())
{
LOG_ERROR("sql.sql", "Table `achievement_reward_locale` (Entry: {}) has locale strings for non-existing achievement reward.", ID);
continue;
}
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
AchievementRewardLocale& data = m_achievementRewardLocales[ID];
- ObjectMgr::AddLocaleString(fields[2].GetString(), locale, data.Subject);
- ObjectMgr::AddLocaleString(fields[3].GetString(), locale, data.Text);
+ ObjectMgr::AddLocaleString(fields[2].Get<std::string>(), locale, data.Subject);
+ ObjectMgr::AddLocaleString(fields[3].Get<std::string>(), locale, data.Text);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Achievement Reward Locale strings in {} ms", (unsigned long)m_achievementRewardLocales.size(), GetMSTimeDiffToNow(oldMSTime));
diff --git a/src/server/game/Addons/AddonMgr.cpp b/src/server/game/Addons/AddonMgr.cpp
index 02ed1d9ad8..8a9c587722 100644
--- a/src/server/game/Addons/AddonMgr.cpp
+++ b/src/server/game/Addons/AddonMgr.cpp
@@ -53,8 +53,8 @@ namespace AddonMgr
{
Field* fields = result->Fetch();
- std::string name = fields[0].GetString();
- uint32 crc = fields[1].GetUInt32();
+ std::string name = fields[0].Get<std::string>();
+ uint32 crc = fields[1].Get<uint32>();
m_knownAddons.push_back(SavedAddon(name, crc));
@@ -76,11 +76,11 @@ namespace AddonMgr
Field* fields = result->Fetch();
BannedAddon addon{};
- addon.Id = fields[0].GetUInt32() + offset;
- addon.Timestamp = uint32(fields[3].GetUInt64());
+ addon.Id = fields[0].Get<uint32>() + offset;
+ addon.Timestamp = uint32(fields[3].Get<uint64>());
- std::string name = fields[1].GetString();
- std::string version = fields[2].GetString();
+ std::string name = fields[1].Get<std::string>();
+ std::string version = fields[2].Get<std::string>();
MD5(reinterpret_cast<uint8 const*>(name.c_str()), name.length(), addon.NameMD5);
MD5(reinterpret_cast<uint8 const*>(version.c_str()), version.length(), addon.VersionMD5);
@@ -101,8 +101,8 @@ namespace AddonMgr
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ADDON);
- stmt->setString(0, name);
- stmt->setUInt32(1, addon.CRC);
+ stmt->SetData(0, name);
+ stmt->SetData(1, addon.CRC);
CharacterDatabase.Execute(stmt);
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index dc2c81a59f..afed580aba 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -312,8 +312,8 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, CharacterDatabas
// set owner to bidder (to prevent delete item with sender char deleting)
// owner in `data` will set at mail receive and item extracting
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ITEM_OWNER);
- stmt->setUInt32(0, auction->bidder.GetCounter());
- stmt->setUInt32(1, pItem->GetGUID().GetCounter());
+ stmt->SetData(0, auction->bidder.GetCounter());
+ stmt->SetData(1, pItem->GetGUID().GetCounter());
trans->Append(stmt);
if (bidder)
@@ -394,8 +394,8 @@ void AuctionHouseMgr::SendAuctionSuccessfulMail(AuctionEntry* auction, Character
owner_name = gpd_owner->Name;
owner_level = gpd_owner->Level;
}
- CharacterDatabase.PExecute("INSERT INTO log_money VALUES(%u, %u, \"%s\", \"%s\", %u, \"%s\", %u, \"profit: %ug, bidder: %s %u lvl (guid: %u), seller: %s %u lvl (guid: %u), item %u (%u)\", NOW(), %u)",
- gpd->AccountId, auction->bidder.GetCounter(), gpd->Name.c_str(), bidder ? bidder->GetSession()->GetRemoteAddress().c_str() : "", owner_accId, owner_name.c_str(), auction->bid, (profit / GOLD), gpd->Name.c_str(), gpd->Level, auction->bidder.GetCounter(), owner_name.c_str(), owner_level, auction->owner.GetCounter(), auction->item_template, auction->itemCount, 2);
+ CharacterDatabase.Execute("INSERT INTO log_money VALUES({}, {}, \"{}\", \"{}\", {}, \"{}\", {}, \"profit: {}g, bidder: {} {} lvl (guid: {}), seller: {} {} lvl (guid: {}), item {} ({})\", NOW(), {})",
+ gpd->AccountId, auction->bidder.GetCounter(), gpd->Name, bidder ? bidder->GetSession()->GetRemoteAddress() : "", owner_accId, owner_name, auction->bid, (profit / GOLD), gpd->Name, gpd->Level, auction->bidder.GetCounter(), owner_name, owner_level, auction->owner.GetCounter(), auction->item_template, auction->itemCount, 2);
}
}
}
@@ -504,8 +504,8 @@ void AuctionHouseMgr::LoadAuctionItems()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType item_guid = fields[11].GetUInt32();
- uint32 item_template = fields[12].GetUInt32();
+ ObjectGuid::LowType item_guid = fields[11].Get<uint32>();
+ uint32 item_template = fields[12].Get<uint32>();
ItemTemplate const* proto = sObjectMgr->GetItemTemplate(item_template);
if (!proto)
@@ -971,40 +971,40 @@ uint32 AuctionEntry::GetAuctionOutBid() const
void AuctionEntry::DeleteFromDB(CharacterDatabaseTransaction trans) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_AUCTION);
- stmt->setUInt32(0, Id);
+ stmt->SetData(0, Id);
trans->Append(stmt);
}
void AuctionEntry::SaveToDB(CharacterDatabaseTransaction trans) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_AUCTION);
- stmt->setUInt32(0, Id);
- stmt->setUInt8(1, houseId);
- stmt->setUInt32(2, item_guid.GetCounter());
- stmt->setUInt32(3, owner.GetCounter());
- stmt->setUInt32 (4, buyout);
- stmt->setUInt32(5, uint32(expire_time));
- stmt->setUInt32(6, bidder.GetCounter());
- stmt->setUInt32 (7, bid);
- stmt->setUInt32 (8, startbid);
- stmt->setUInt32 (9, deposit);
+ stmt->SetData(0, Id);
+ stmt->SetData(1, houseId);
+ stmt->SetData(2, item_guid.GetCounter());
+ stmt->SetData(3, owner.GetCounter());
+ stmt->SetData (4, buyout);
+ stmt->SetData(5, uint32(expire_time));
+ stmt->SetData(6, bidder.GetCounter());
+ stmt->SetData (7, bid);
+ stmt->SetData (8, startbid);
+ stmt->SetData (9, deposit);
trans->Append(stmt);
}
bool AuctionEntry::LoadFromDB(Field* fields)
{
- Id = fields[0].GetUInt32();
- houseId = fields[1].GetUInt8();
- item_guid = ObjectGuid::Create<HighGuid::Item>(fields[2].GetUInt32());
- item_template = fields[3].GetUInt32();
- itemCount = fields[4].GetUInt32();
- owner = ObjectGuid::Create<HighGuid::Player>(fields[5].GetUInt32());
- buyout = fields[6].GetUInt32();
- expire_time = fields[7].GetUInt32();
- bidder = ObjectGuid::Create<HighGuid::Player>(fields[8].GetUInt32());
- bid = fields[9].GetUInt32();
- startbid = fields[10].GetUInt32();
- deposit = fields[11].GetUInt32();
+ Id = fields[0].Get<uint32>();
+ houseId = fields[1].Get<uint8>();
+ item_guid = ObjectGuid::Create<HighGuid::Item>(fields[2].Get<uint32>());
+ item_template = fields[3].Get<uint32>();
+ itemCount = fields[4].Get<uint32>();
+ owner = ObjectGuid::Create<HighGuid::Player>(fields[5].Get<uint32>());
+ buyout = fields[6].Get<uint32>();
+ expire_time = fields[7].Get<uint32>();
+ bidder = ObjectGuid::Create<HighGuid::Player>(fields[8].Get<uint32>());
+ bid = fields[9].Get<uint32>();
+ startbid = fields[10].Get<uint32>();
+ deposit = fields[11].Get<uint32>();
auctionHouseEntry = AuctionHouseMgr::GetAuctionHouseEntryFromHouse(houseId);
if (!auctionHouseEntry)
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp
index 9c6f24b951..58b6580d76 100644
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -69,16 +69,16 @@ bool ArenaTeam::Create(ObjectGuid captainGuid, uint8 type, std::string const& te
// Save arena team to db
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_TEAM);
- stmt->setUInt32(0, TeamId);
- stmt->setString(1, TeamName);
- stmt->setUInt32(2, captainGuid.GetCounter());
- stmt->setUInt8(3, Type);
- stmt->setUInt16(4, Stats.Rating);
- stmt->setUInt32(5, BackgroundColor);
- stmt->setUInt8(6, EmblemStyle);
- stmt->setUInt32(7, EmblemColor);
- stmt->setUInt8(8, BorderStyle);
- stmt->setUInt32(9, BorderColor);
+ stmt->SetData(0, TeamId);
+ stmt->SetData(1, TeamName);
+ stmt->SetData(2, captainGuid.GetCounter());
+ stmt->SetData(3, Type);
+ stmt->SetData(4, Stats.Rating);
+ stmt->SetData(5, BackgroundColor);
+ stmt->SetData(6, EmblemStyle);
+ stmt->SetData(7, EmblemColor);
+ stmt->SetData(8, BorderStyle);
+ stmt->SetData(9, BorderColor);
CharacterDatabase.Execute(stmt);
// Add captain as member
@@ -135,16 +135,16 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid)
// xinef: sync query
// Try to get player's match maker rating from db and fall back to config setting if not found
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MATCH_MAKER_RATING);
- stmt->setUInt32(0, playerGuid.GetCounter());
- stmt->setUInt8(1, GetSlot());
+ stmt->SetData(0, playerGuid.GetCounter());
+ stmt->SetData(1, GetSlot());
PreparedQueryResult result = CharacterDatabase.Query(stmt);
uint16 matchMakerRating;
uint16 maxMMR;
if (result)
{
- matchMakerRating = (*result)[0].GetUInt16();
- uint16 Max = (*result)[1].GetUInt16();
+ matchMakerRating = (*result)[0].Get<uint16>();
+ uint16 Max = (*result)[1].Get<uint16>();
maxMMR = std::max(Max, matchMakerRating);
}
else
@@ -175,8 +175,8 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid)
// Save player's arena team membership to db
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_TEAM_MEMBER);
- stmt->setUInt32(0, TeamId);
- stmt->setUInt32(1, playerGuid.GetCounter());
+ stmt->SetData(0, TeamId);
+ stmt->SetData(1, playerGuid.GetCounter());
CharacterDatabase.Execute(stmt);
// Inform player if online
@@ -200,21 +200,21 @@ bool ArenaTeam::LoadArenaTeamFromDB(QueryResult result)
Field* fields = result->Fetch();
- TeamId = fields[0].GetUInt32();
- TeamName = fields[1].GetString();
- CaptainGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt32());
- Type = fields[3].GetUInt8();
- BackgroundColor = fields[4].GetUInt32();
- EmblemStyle = fields[5].GetUInt8();
- EmblemColor = fields[6].GetUInt32();
- BorderStyle = fields[7].GetUInt8();
- BorderColor = fields[8].GetUInt32();
- Stats.Rating = fields[9].GetUInt16();
- Stats.WeekGames = fields[10].GetUInt16();
- Stats.WeekWins = fields[11].GetUInt16();
- Stats.SeasonGames = fields[12].GetUInt16();
- Stats.SeasonWins = fields[13].GetUInt16();
- Stats.Rank = fields[14].GetUInt32();
+ TeamId = fields[0].Get<uint32>();
+ TeamName = fields[1].Get<std::string>();
+ CaptainGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].Get<uint32>());
+ Type = fields[3].Get<uint8>();
+ BackgroundColor = fields[4].Get<uint32>();
+ EmblemStyle = fields[5].Get<uint8>();
+ EmblemColor = fields[6].Get<uint32>();
+ BorderStyle = fields[7].Get<uint8>();
+ BorderColor = fields[8].Get<uint32>();
+ Stats.Rating = fields[9].Get<uint16>();
+ Stats.WeekGames = fields[10].Get<uint16>();
+ Stats.WeekWins = fields[11].Get<uint16>();
+ Stats.SeasonGames = fields[12].Get<uint16>();
+ Stats.SeasonWins = fields[13].Get<uint16>();
+ Stats.Rank = fields[14].Get<uint32>();
return true;
}
@@ -234,26 +234,26 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult result)
if (!fields)
break;
- uint32 arenaTeamId = fields[0].GetUInt32();
+ uint32 arenaTeamId = fields[0].Get<uint32>();
// We loaded all members for this arena_team already, break cycle
if (arenaTeamId > TeamId)
break;
ArenaTeamMember newMember;
- newMember.Guid = ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt32());
- newMember.WeekGames = fields[2].GetUInt16();
- newMember.WeekWins = fields[3].GetUInt16();
- newMember.SeasonGames = fields[4].GetUInt16();
- newMember.SeasonWins = fields[5].GetUInt16();
- //newMember.Name = fields[6].GetString();
- newMember.Class = fields[7].GetUInt8();
- newMember.PersonalRating = fields[8].GetUInt16();
- newMember.MatchMakerRating = fields[9].GetUInt16() > 0 ? fields[9].GetUInt16() : sWorld->getIntConfig(CONFIG_ARENA_START_MATCHMAKER_RATING);
- newMember.MaxMMR = std::max(fields[10].GetUInt16(), newMember.MatchMakerRating);
+ newMember.Guid = ObjectGuid::Create<HighGuid::Player>(fields[1].Get<uint32>());
+ newMember.WeekGames = fields[2].Get<uint16>();
+ newMember.WeekWins = fields[3].Get<uint16>();
+ newMember.SeasonGames = fields[4].Get<uint16>();
+ newMember.SeasonWins = fields[5].Get<uint16>();
+ //newMember.Name = fields[6].Get<std::string>();
+ newMember.Class = fields[7].Get<uint8>();
+ newMember.PersonalRating = fields[8].Get<uint16>();
+ newMember.MatchMakerRating = fields[9].Get<uint16>() > 0 ? fields[9].Get<uint16>() : sWorld->getIntConfig(CONFIG_ARENA_START_MATCHMAKER_RATING);
+ newMember.MaxMMR = std::max(fields[10].Get<uint16>(), newMember.MatchMakerRating);
// Delete member if character information is missing
- if (fields[6].GetString().empty())
+ if (fields[6].Get<std::string>().empty())
{
LOG_ERROR("sql.sql", "ArenaTeam {} has member with empty name - probably player {} doesn't exist, deleting him from memberlist!", arenaTeamId, newMember.Guid.ToString());
this->DelMember(newMember.Guid, true);
@@ -286,8 +286,8 @@ bool ArenaTeam::SetName(std::string const& name)
TeamName = name;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_NAME);
- stmt->setString(0, TeamName);
- stmt->setUInt32(1, GetId());
+ stmt->SetData(0, TeamName);
+ stmt->SetData(1, GetId());
CharacterDatabase.Execute(stmt);
return true;
}
@@ -304,8 +304,8 @@ void ArenaTeam::SetCaptain(ObjectGuid guid)
// Update database
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_CAPTAIN);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt32(1, GetId());
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, GetId());
CharacterDatabase.Execute(stmt);
// Enable remove/promote buttons
@@ -374,8 +374,8 @@ void ArenaTeam::DelMember(ObjectGuid guid, bool cleanDb)
if (cleanDb)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM_MEMBER);
- stmt->setUInt32(0, GetId());
- stmt->setUInt32(1, guid.GetCounter());
+ stmt->SetData(0, GetId());
+ stmt->SetData(1, guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
}
@@ -396,11 +396,11 @@ void ArenaTeam::Disband(WorldSession* session)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM);
- stmt->setUInt32(0, TeamId);
+ stmt->SetData(0, TeamId);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM_MEMBERS);
- stmt->setUInt32(0, TeamId);
+ stmt->SetData(0, TeamId);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -419,11 +419,11 @@ void ArenaTeam::Disband()
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM);
- stmt->setUInt32(0, TeamId);
+ stmt->SetData(0, TeamId);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ARENA_TEAM_MEMBERS);
- stmt->setUInt32(0, TeamId);
+ stmt->SetData(0, TeamId);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -938,32 +938,32 @@ void ArenaTeam::SaveToDB()
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_STATS);
- stmt->setUInt16(0, Stats.Rating);
- stmt->setUInt16(1, Stats.WeekGames);
- stmt->setUInt16(2, Stats.WeekWins);
- stmt->setUInt16(3, Stats.SeasonGames);
- stmt->setUInt16(4, Stats.SeasonWins);
- stmt->setUInt32(5, Stats.Rank);
- stmt->setUInt32(6, GetId());
+ stmt->SetData(0, Stats.Rating);
+ stmt->SetData(1, Stats.WeekGames);
+ stmt->SetData(2, Stats.WeekWins);
+ stmt->SetData(3, Stats.SeasonGames);
+ stmt->SetData(4, Stats.SeasonWins);
+ stmt->SetData(5, Stats.Rank);
+ stmt->SetData(6, GetId());
trans->Append(stmt);
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_MEMBER);
- stmt->setUInt16(0, itr->PersonalRating);
- stmt->setUInt16(1, itr->WeekGames);
- stmt->setUInt16(2, itr->WeekWins);
- stmt->setUInt16(3, itr->SeasonGames);
- stmt->setUInt16(4, itr->SeasonWins);
- stmt->setUInt32(5, GetId());
- stmt->setUInt32(6, itr->Guid.GetCounter());
+ stmt->SetData(0, itr->PersonalRating);
+ stmt->SetData(1, itr->WeekGames);
+ stmt->SetData(2, itr->WeekWins);
+ stmt->SetData(3, itr->SeasonGames);
+ stmt->SetData(4, itr->SeasonWins);
+ stmt->SetData(5, GetId());
+ stmt->SetData(6, itr->Guid.GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHARACTER_ARENA_STATS);
- stmt->setUInt32(0, itr->Guid.GetCounter());
- stmt->setUInt8(1, GetSlot());
- stmt->setUInt16(2, itr->MatchMakerRating);
- stmt->setUInt16(3, itr->MaxMMR);
+ stmt->SetData(0, itr->Guid.GetCounter());
+ stmt->SetData(1, GetSlot());
+ stmt->SetData(2, itr->MatchMakerRating);
+ stmt->SetData(3, itr->MaxMMR);
trans->Append(stmt);
}
diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
index bbea79b4ed..acce71e3e7 100644
--- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
@@ -222,8 +222,8 @@ void ArenaTeamMgr::DistributeArenaPoints()
else // Update database
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_ARENA_POINTS);
- stmt->setUInt32(0, playerItr->second);
- stmt->setUInt32(1, playerItr->first.GetCounter());
+ stmt->SetData(0, playerItr->second);
+ stmt->SetData(1, playerItr->first.GetCounter());
trans->Append(stmt);
}
}
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index c6bdc5d4c1..b6387eebc8 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -777,14 +777,14 @@ void Battleground::EndBattleground(TeamId winnerTeamId)
if (result)
{
Field* fields = result->Fetch();
- battlegroundId = fields[0].GetUInt64() + 1;
+ battlegroundId = fields[0].Get<uint64>() + 1;
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PVPSTATS_BATTLEGROUND);
- stmt->setUInt64(0, battlegroundId);
- stmt->setUInt8(1, GetWinner());
- stmt->setUInt8(2, GetUniqueBracketId());
- stmt->setUInt8(3, GetBgTypeID(true));
+ stmt->SetData(0, battlegroundId);
+ stmt->SetData(1, GetWinner());
+ stmt->SetData(2, GetUniqueBracketId());
+ stmt->SetData(3, GetBgTypeID(true));
CharacterDatabase.Execute(stmt);
}
@@ -820,34 +820,34 @@ void Battleground::EndBattleground(TeamId winnerTeamId)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_LOG_FIGHT);
- stmt2->setUInt32(0, fightId);
- stmt2->setUInt8(1, m_ArenaType);
- stmt2->setUInt32(2, ((GetStartTime() <= startDelay ? 0 : GetStartTime() - startDelay) / 1000));
- stmt2->setUInt32(3, winnerArenaTeam->GetId());
- stmt2->setUInt32(4, loserArenaTeam->GetId());
- stmt2->setUInt16(5, (uint16)winnerTeamRating);
- stmt2->setUInt16(6, (uint16)winnerMatchmakerRating);
- stmt2->setInt16(7, (int16)winnerChange);
- stmt2->setUInt16(8, (uint16)loserTeamRating);
- stmt2->setUInt16(9, (uint16)loserMatchmakerRating);
- stmt2->setInt16(10, (int16)loserChange);
- stmt2->setUInt32(11, currOnline);
+ stmt2->SetData(0, fightId);
+ stmt2->SetData(1, m_ArenaType);
+ stmt2->SetData(2, ((GetStartTime() <= startDelay ? 0 : GetStartTime() - startDelay) / 1000));
+ stmt2->SetData(3, winnerArenaTeam->GetId());
+ stmt2->SetData(4, loserArenaTeam->GetId());
+ stmt2->SetData(5, (uint16)winnerTeamRating);
+ stmt2->SetData(6, (uint16)winnerMatchmakerRating);
+ stmt2->SetData(7, (int16)winnerChange);
+ stmt2->SetData(8, (uint16)loserTeamRating);
+ stmt2->SetData(9, (uint16)loserMatchmakerRating);
+ stmt2->SetData(10, (int16)loserChange);
+ stmt2->SetData(11, currOnline);
trans->Append(stmt2);
uint8 memberId = 0;
for (Battleground::ArenaLogEntryDataMap::const_iterator itr = ArenaLogEntries.begin(); itr != ArenaLogEntries.end(); ++itr)
{
stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_LOG_MEMBERSTATS);
- stmt2->setUInt32(0, fightId);
- stmt2->setUInt8(1, ++memberId);
- stmt2->setString(2, itr->second.Name);
- stmt2->setUInt32(3, itr->second.Guid);
- stmt2->setUInt32(4, itr->second.ArenaTeamId);
- stmt2->setUInt32(5, itr->second.Acc);
- stmt2->setString(6, itr->second.IP);
- stmt2->setUInt32(7, itr->second.DamageDone);
- stmt2->setUInt32(8, itr->second.HealingDone);
- stmt2->setUInt32(9, itr->second.KillingBlows);
+ stmt2->SetData(0, fightId);
+ stmt2->SetData(1, ++memberId);
+ stmt2->SetData(2, itr->second.Name);
+ stmt2->SetData(3, itr->second.Guid);
+ stmt2->SetData(4, itr->second.ArenaTeamId);
+ stmt2->SetData(5, itr->second.Acc);
+ stmt2->SetData(6, itr->second.IP);
+ stmt2->SetData(7, itr->second.DamageDone);
+ stmt2->SetData(8, itr->second.HealingDone);
+ stmt2->SetData(9, itr->second.KillingBlows);
trans->Append(stmt2);
}
@@ -879,34 +879,34 @@ void Battleground::EndBattleground(TeamId winnerTeamId)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt3 = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_LOG_FIGHT);
- stmt3->setUInt32(0, fightId);
- stmt3->setUInt8(1, m_ArenaType);
- stmt3->setUInt32(2, ((GetStartTime() <= startDelay ? 0 : GetStartTime() - startDelay) / 1000));
- stmt3->setUInt32(3, winnerArenaTeam->GetId());
- stmt3->setUInt32(4, loserArenaTeam->GetId());
- stmt3->setUInt16(5, (uint16)winnerTeamRating);
- stmt3->setUInt16(6, (uint16)winnerMatchmakerRating);
- stmt3->setInt16(7, (int16)winnerChange);
- stmt3->setUInt16(8, (uint16)loserTeamRating);
- stmt3->setUInt16(9, (uint16)loserMatchmakerRating);
- stmt3->setInt16(10, (int16)loserChange);
- stmt3->setUInt32(11, currOnline);
+ stmt3->SetData(0, fightId);
+ stmt3->SetData(1, m_ArenaType);
+ stmt3->SetData(2, ((GetStartTime() <= startDelay ? 0 : GetStartTime() - startDelay) / 1000));
+ stmt3->SetData(3, winnerArenaTeam->GetId());
+ stmt3->SetData(4, loserArenaTeam->GetId());
+ stmt3->SetData(5, (uint16)winnerTeamRating);
+ stmt3->SetData(6, (uint16)winnerMatchmakerRating);
+ stmt3->SetData(7, (int16)winnerChange);
+ stmt3->SetData(8, (uint16)loserTeamRating);
+ stmt3->SetData(9, (uint16)loserMatchmakerRating);
+ stmt3->SetData(10, (int16)loserChange);
+ stmt3->SetData(11, currOnline);
trans->Append(stmt3);
uint8 memberId = 0;
for (Battleground::ArenaLogEntryDataMap::const_iterator itr = ArenaLogEntries.begin(); itr != ArenaLogEntries.end(); ++itr)
{
stmt3 = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_LOG_MEMBERSTATS);
- stmt3->setUInt32(0, fightId);
- stmt3->setUInt8(1, ++memberId);
- stmt3->setString(2, itr->second.Name);
- stmt3->setUInt32(3, itr->second.Guid);
- stmt3->setUInt32(4, itr->second.ArenaTeamId);
- stmt3->setUInt32(5, itr->second.Acc);
- stmt3->setString(6, itr->second.IP);
- stmt3->setUInt32(7, itr->second.DamageDone);
- stmt3->setUInt32(8, itr->second.HealingDone);
- stmt3->setUInt32(9, itr->second.KillingBlows);
+ stmt3->SetData(0, fightId);
+ stmt3->SetData(1, ++memberId);
+ stmt3->SetData(2, itr->second.Name);
+ stmt3->SetData(3, itr->second.Guid);
+ stmt3->SetData(4, itr->second.ArenaTeamId);
+ stmt3->SetData(5, itr->second.Acc);
+ stmt3->SetData(6, itr->second.IP);
+ stmt3->SetData(7, itr->second.DamageDone);
+ stmt3->SetData(8, itr->second.HealingDone);
+ stmt3->SetData(9, itr->second.KillingBlows);
trans->Append(stmt3);
}
@@ -1015,20 +1015,20 @@ void Battleground::EndBattleground(TeamId winnerTeamId)
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PVPSTATS_PLAYER);
BattlegroundScoreMap::const_iterator score = PlayerScores.find(player->GetGUID());
- stmt->setUInt32(0, battlegroundId);
- stmt->setUInt32(1, player->GetGUID().GetCounter());
- stmt->setBool(2, bgTeamId == winnerTeamId);
- stmt->setUInt32(3, score->second->GetKillingBlows());
- stmt->setUInt32(4, score->second->GetDeaths());
- stmt->setUInt32(5, score->second->GetHonorableKills());
- stmt->setUInt32(6, score->second->GetBonusHonor());
- stmt->setUInt32(7, score->second->GetDamageDone());
- stmt->setUInt32(8, score->second->GetHealingDone());
- stmt->setUInt32(9, score->second->GetAttr1());
- stmt->setUInt32(10, score->second->GetAttr2());
- stmt->setUInt32(11, score->second->GetAttr3());
- stmt->setUInt32(12, score->second->GetAttr4());
- stmt->setUInt32(13, score->second->GetAttr5());
+ stmt->SetData(0, battlegroundId);
+ stmt->SetData(1, player->GetGUID().GetCounter());
+ stmt->SetData(2, bgTeamId == winnerTeamId);
+ stmt->SetData(3, score->second->GetKillingBlows());
+ stmt->SetData(4, score->second->GetDeaths());
+ stmt->SetData(5, score->second->GetHonorableKills());
+ stmt->SetData(6, score->second->GetBonusHonor());
+ stmt->SetData(7, score->second->GetDamageDone());
+ stmt->SetData(8, score->second->GetHealingDone());
+ stmt->SetData(9, score->second->GetAttr1());
+ stmt->SetData(10, score->second->GetAttr2());
+ stmt->SetData(11, score->second->GetAttr3());
+ stmt->SetData(12, score->second->GetAttr4());
+ stmt->SetData(13, score->second->GetAttr5());
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index 2d2bbae6b7..44ff0a5e60 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -528,7 +528,7 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
{
Field* fields = result->Fetch();
- uint32 bgTypeId = fields[0].GetUInt32();
+ uint32 bgTypeId = fields[0].Get<uint32>();
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgTypeId, nullptr))
continue;
@@ -544,15 +544,15 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
CreateBattlegroundData data;
data.bgTypeId = BattlegroundTypeId(bgTypeId);
data.IsArena = (bl->type == TYPE_ARENA);
- data.MinPlayersPerTeam = fields[1].GetUInt16();
- data.MaxPlayersPerTeam = fields[2].GetUInt16();
- data.LevelMin = fields[3].GetUInt8();
- data.LevelMax = fields[4].GetUInt8();
- float dist = fields[9].GetFloat();
+ data.MinPlayersPerTeam = fields[1].Get<uint16>();
+ data.MaxPlayersPerTeam = fields[2].Get<uint16>();
+ data.LevelMin = fields[3].Get<uint8>();
+ data.LevelMax = fields[4].Get<uint8>();
+ float dist = fields[9].Get<float>();
data.StartMaxDist = dist * dist;
- data.Weight = fields[10].GetUInt8();
+ data.Weight = fields[10].Get<uint8>();
- data.scriptId = sObjectMgr->GetScriptId(fields[11].GetCString());
+ data.scriptId = sObjectMgr->GetScriptId(fields[11].Get<std::string>());
data.BattlegroundName = bl->name[sWorld->GetDefaultDbcLocale()];
data.MapID = bl->mapid[0];
@@ -575,21 +575,21 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
data.Team1StartLocX = 0;
data.Team1StartLocY = 0;
data.Team1StartLocZ = 0;
- data.Team1StartLocO = fields[6].GetFloat();
+ data.Team1StartLocO = fields[6].Get<float>();
data.Team2StartLocX = 0;
data.Team2StartLocY = 0;
data.Team2StartLocZ = 0;
- data.Team2StartLocO = fields[8].GetFloat();
+ data.Team2StartLocO = fields[8].Get<float>();
}
else
{
- uint32 startId = fields[5].GetUInt32();
+ uint32 startId = fields[5].Get<uint32>();
if (GraveyardStruct const* start = sGraveyard->GetGraveyard(startId))
{
data.Team1StartLocX = start->x;
data.Team1StartLocY = start->y;
data.Team1StartLocZ = start->z;
- data.Team1StartLocO = fields[6].GetFloat();
+ data.Team1StartLocO = fields[6].Get<float>();
}
else
{
@@ -597,13 +597,13 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
continue;
}
- startId = fields[7].GetUInt32();
+ startId = fields[7].Get<uint32>();
if (GraveyardStruct const* start = sGraveyard->GetGraveyard(startId))
{
data.Team2StartLocX = start->x;
data.Team2StartLocY = start->y;
data.Team2StartLocZ = start->z;
- data.Team2StartLocO = fields[8].GetFloat();
+ data.Team2StartLocO = fields[8].Get<float>();
}
else
{
@@ -865,7 +865,7 @@ void BattlegroundMgr::LoadBattleMastersEntry()
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
if (CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(entry))
{
if ((cInfo->npcflag & UNIT_NPC_FLAG_BATTLEMASTER) == 0)
@@ -877,7 +877,7 @@ void BattlegroundMgr::LoadBattleMastersEntry()
continue;
}
- uint32 bgTypeId = fields[1].GetUInt32();
+ uint32 bgTypeId = fields[1].Get<uint32>();
if (!sBattlemasterListStore.LookupEntry(bgTypeId))
{
LOG_ERROR("sql.sql", "Table `battlemaster_entry` contain entry {} for not existed battleground type {}, ignored.", entry, bgTypeId);
diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp
index 873035a3b8..7449f06587 100644
--- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp
@@ -1243,8 +1243,8 @@ bool BGQueueRemoveEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_TRACK_DESERTERS))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_DESERTER_TRACK);
- stmt->setUInt32(0, player->GetGUID().GetCounter());
- stmt->setUInt8(1, BG_DESERTION_TYPE_NO_ENTER_BUTTON);
+ stmt->SetData(0, player->GetGUID().GetCounter());
+ stmt->SetData(1, BG_DESERTION_TYPE_NO_ENTER_BUTTON);
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Cache/CharacterCache.cpp b/src/server/game/Cache/CharacterCache.cpp
index a3b5a85243..83977275f0 100644
--- a/src/server/game/Cache/CharacterCache.cpp
+++ b/src/server/game/Cache/CharacterCache.cpp
@@ -72,8 +72,8 @@ void CharacterCache::LoadCharacterCacheStorage()
do
{
Field* fields = result->Fetch();
- AddCharacterCacheEntry(ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32()) /*guid*/, fields[2].GetUInt32() /*account*/, fields[1].GetString() /*name*/,
- fields[4].GetUInt8() /*gender*/, fields[3].GetUInt8() /*race*/, fields[5].GetUInt8() /*class*/, fields[6].GetUInt8() /*level*/);
+ AddCharacterCacheEntry(ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>()) /*guid*/, fields[2].Get<uint32>() /*account*/, fields[1].Get<std::string>() /*name*/,
+ fields[4].Get<uint8>() /*gender*/, fields[3].Get<uint8>() /*race*/, fields[5].Get<uint8>() /*class*/, fields[6].Get<uint8>() /*level*/);
} while (result->NextRow());
QueryResult mailCountResult = CharacterDatabase.Query("SELECT receiver, COUNT(receiver) FROM mail GROUP BY receiver");
@@ -82,7 +82,7 @@ void CharacterCache::LoadCharacterCacheStorage()
do
{
Field* fields = mailCountResult->Fetch();
- UpdateCharacterMailCount(ObjectGuid(HighGuid::Player, fields[0].GetUInt32()), static_cast<int8>(fields[1].GetUInt64()), true);
+ UpdateCharacterMailCount(ObjectGuid(HighGuid::Player, fields[0].Get<uint32>()), static_cast<int8>(fields[1].Get<uint64>()), true);
} while (mailCountResult->NextRow());
}
@@ -92,7 +92,7 @@ void CharacterCache::LoadCharacterCacheStorage()
void CharacterCache::RefreshCacheEntry(uint32 lowGuid)
{
- QueryResult result = CharacterDatabase.PQuery("SELECT guid, name, account, race, gender, class, level FROM characters WHERE guid = %u", lowGuid);
+ QueryResult result = CharacterDatabase.Query("SELECT guid, name, account, race, gender, class, level FROM characters WHERE guid = {}", lowGuid);
if (!result)
{
return;
@@ -101,17 +101,17 @@ void CharacterCache::RefreshCacheEntry(uint32 lowGuid)
do
{
Field* fields = result->Fetch();
- DeleteCharacterCacheEntry(ObjectGuid::Create<HighGuid::Player>(lowGuid), fields[1].GetString());
- AddCharacterCacheEntry(ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32()) /*guid*/, fields[2].GetUInt32() /*account*/, fields[1].GetString() /*name*/, fields[4].GetUInt8() /*gender*/, fields[3].GetUInt8() /*race*/, fields[5].GetUInt8() /*class*/, fields[6].GetUInt8() /*level*/);
+ DeleteCharacterCacheEntry(ObjectGuid::Create<HighGuid::Player>(lowGuid), fields[1].Get<std::string>());
+ AddCharacterCacheEntry(ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>()) /*guid*/, fields[2].Get<uint32>() /*account*/, fields[1].Get<std::string>() /*name*/, fields[4].Get<uint8>() /*gender*/, fields[3].Get<uint8>() /*race*/, fields[5].Get<uint8>() /*class*/, fields[6].Get<uint8>() /*level*/);
} while (result->NextRow());
- QueryResult mailCountResult = CharacterDatabase.PQuery("SELECT receiver, COUNT(receiver) FROM mail WHERE receiver = %u GROUP BY receiver", lowGuid);
+ QueryResult mailCountResult = CharacterDatabase.Query("SELECT receiver, COUNT(receiver) FROM mail WHERE receiver = {} GROUP BY receiver", lowGuid);
if (mailCountResult)
{
do
{
Field* fields = mailCountResult->Fetch();
- UpdateCharacterMailCount(ObjectGuid(HighGuid::Player, fields[0].GetUInt32()), static_cast<int8>(fields[1].GetUInt64()), true);
+ UpdateCharacterMailCount(ObjectGuid(HighGuid::Player, fields[0].Get<uint32>()), static_cast<int8>(fields[1].Get<uint64>()), true);
} while (mailCountResult->NextRow());
}
}
diff --git a/src/server/game/Calendar/CalendarMgr.cpp b/src/server/game/Calendar/CalendarMgr.cpp
index 5208298c3a..7c16194692 100644
--- a/src/server/game/Calendar/CalendarMgr.cpp
+++ b/src/server/game/Calendar/CalendarMgr.cpp
@@ -70,15 +70,15 @@ void CalendarMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint64 eventId = fields[0].GetUInt64();
- ObjectGuid creatorGUID = ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt32());
- std::string title = fields[2].GetString();
- std::string description = fields[3].GetString();
- CalendarEventType type = CalendarEventType(fields[4].GetUInt8());
- int32 dungeonId = fields[5].GetInt32();
- uint32 eventTime = fields[6].GetUInt32();
- uint32 flags = fields[7].GetUInt32();
- uint32 timezoneTime = fields[8].GetUInt32();
+ uint64 eventId = fields[0].Get<uint64>();
+ ObjectGuid creatorGUID = ObjectGuid::Create<HighGuid::Player>(fields[1].Get<uint32>());
+ std::string title = fields[2].Get<std::string>();
+ std::string description = fields[3].Get<std::string>();
+ CalendarEventType type = CalendarEventType(fields[4].Get<uint8>());
+ int32 dungeonId = fields[5].Get<int32>();
+ uint32 eventTime = fields[6].Get<uint32>();
+ uint32 flags = fields[7].Get<uint32>();
+ uint32 timezoneTime = fields[8].Get<uint32>();
uint32 guildId = 0;
if (flags & CALENDAR_FLAG_GUILD_EVENT || flags & CALENDAR_FLAG_WITHOUT_INVITES)
@@ -103,14 +103,14 @@ void CalendarMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint64 inviteId = fields[0].GetUInt64();
- uint64 eventId = fields[1].GetUInt64();
- ObjectGuid invitee = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt32());
- ObjectGuid senderGUID = ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt32());
- CalendarInviteStatus status = CalendarInviteStatus(fields[4].GetUInt8());
- uint32 statusTime = fields[5].GetUInt32();
- CalendarModerationRank rank = CalendarModerationRank(fields[6].GetUInt8());
- std::string text = fields[7].GetString();
+ uint64 inviteId = fields[0].Get<uint64>();
+ uint64 eventId = fields[1].Get<uint64>();
+ ObjectGuid invitee = ObjectGuid::Create<HighGuid::Player>(fields[2].Get<uint32>());
+ ObjectGuid senderGUID = ObjectGuid::Create<HighGuid::Player>(fields[3].Get<uint32>());
+ CalendarInviteStatus status = CalendarInviteStatus(fields[4].Get<uint8>());
+ uint32 statusTime = fields[5].Get<uint32>();
+ CalendarModerationRank rank = CalendarModerationRank(fields[6].Get<uint8>());
+ std::string text = fields[7].Get<std::string>();
CalendarInvite* invite = new CalendarInvite(inviteId, eventId, invitee, senderGUID, time_t(statusTime), status, rank, text);
_invites[eventId].push_back(invite);
@@ -186,7 +186,7 @@ void CalendarMgr::RemoveEvent(CalendarEvent* calendarEvent, ObjectGuid remover)
{
CalendarInvite* invite = eventInvites[i];
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CALENDAR_INVITE);
- stmt->setUInt64(0, invite->GetInviteId());
+ stmt->SetData(0, invite->GetInviteId());
trans->Append(stmt);
// guild events only? check invite status here?
@@ -200,7 +200,7 @@ void CalendarMgr::RemoveEvent(CalendarEvent* calendarEvent, ObjectGuid remover)
_invites.erase(calendarEvent->GetEventId());
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CALENDAR_EVENT);
- stmt->setUInt64(0, calendarEvent->GetEventId());
+ stmt->SetData(0, calendarEvent->GetEventId());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -226,7 +226,7 @@ void CalendarMgr::RemoveInvite(uint64 inviteId, uint64 eventId, ObjectGuid /*rem
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CALENDAR_INVITE);
- stmt->setUInt64(0, (*itr)->GetInviteId());
+ stmt->SetData(0, (*itr)->GetInviteId());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -247,29 +247,29 @@ void CalendarMgr::RemoveInvite(uint64 inviteId, uint64 eventId, ObjectGuid /*rem
void CalendarMgr::UpdateEvent(CalendarEvent* calendarEvent)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CALENDAR_EVENT);
- stmt->setUInt64(0, calendarEvent->GetEventId());
- stmt->setUInt32(1, calendarEvent->GetCreatorGUID().GetCounter());
- stmt->setString(2, calendarEvent->GetTitle());
- stmt->setString(3, calendarEvent->GetDescription());
- stmt->setUInt8(4, calendarEvent->GetType());
- stmt->setInt32(5, calendarEvent->GetDungeonId());
- stmt->setUInt32(6, uint32(calendarEvent->GetEventTime()));
- stmt->setUInt32(7, calendarEvent->GetFlags());
- stmt->setUInt32(8, calendarEvent->GetTimeZoneTime()); // correct?
+ stmt->SetData(0, calendarEvent->GetEventId());
+ stmt->SetData(1, calendarEvent->GetCreatorGUID().GetCounter());
+ stmt->SetData(2, calendarEvent->GetTitle());
+ stmt->SetData(3, calendarEvent->GetDescription());
+ stmt->SetData(4, calendarEvent->GetType());
+ stmt->SetData(5, calendarEvent->GetDungeonId());
+ stmt->SetData(6, uint32(calendarEvent->GetEventTime()));
+ stmt->SetData(7, calendarEvent->GetFlags());
+ stmt->SetData(8, calendarEvent->GetTimeZoneTime()); // correct?
CharacterDatabase.Execute(stmt);
}
void CalendarMgr::UpdateInvite(CalendarInvite* invite, CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CALENDAR_INVITE);
- stmt->setUInt64(0, invite->GetInviteId());
- stmt->setUInt64(1, invite->GetEventId());
- stmt->setUInt32(2, invite->GetInviteeGUID().GetCounter());
- stmt->setUInt32(3, invite->GetSenderGUID().GetCounter());
- stmt->setUInt8(4, invite->GetStatus());
- stmt->setUInt32(5, uint32(invite->GetStatusTime()));
- stmt->setUInt8(6, invite->GetRank());
- stmt->setString(7, invite->GetText());
+ stmt->SetData(0, invite->GetInviteId());
+ stmt->SetData(1, invite->GetEventId());
+ stmt->SetData(2, invite->GetInviteeGUID().GetCounter());
+ stmt->SetData(3, invite->GetSenderGUID().GetCounter());
+ stmt->SetData(4, invite->GetStatus());
+ stmt->SetData(5, uint32(invite->GetStatusTime()));
+ stmt->SetData(6, invite->GetRank());
+ stmt->SetData(7, invite->GetText());
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 8d5c454fb8..67ea787ae3 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -84,10 +84,10 @@ Channel::Channel(std::string const& name, uint32 channelId, uint32 channelDBId,
_channelDBId = ++ChannelMgr::_channelIdMax;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHANNEL);
- stmt->setUInt32(0, _channelDBId);
- stmt->setString(1, name);
- stmt->setUInt32(2, _teamId);
- stmt->setUInt8(3, _announce);
+ stmt->SetData(0, _channelDBId);
+ stmt->SetData(1, name);
+ stmt->SetData(2, _teamId);
+ stmt->SetData(3, _announce);
CharacterDatabase.Execute(stmt);
}
}
@@ -104,9 +104,9 @@ void Channel::UpdateChannelInDB() const
if (_IsSaved)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHANNEL);
- stmt->setBool(0, _announce);
- stmt->setString(1, _password);
- stmt->setUInt32(2, _channelDBId);
+ stmt->SetData(0, _announce);
+ stmt->SetData(1, _password);
+ stmt->SetData(2, _channelDBId);
CharacterDatabase.Execute(stmt);
LOG_DEBUG("chat.system", "Channel({}) updated in database", _name);
@@ -116,24 +116,24 @@ void Channel::UpdateChannelInDB() const
void Channel::UpdateChannelUseageInDB() const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHANNEL_USAGE);
- stmt->setUInt32(0, _channelDBId);
+ stmt->SetData(0, _channelDBId);
CharacterDatabase.Execute(stmt);
}
void Channel::AddChannelBanToDB(ObjectGuid guid, uint32 time) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHANNEL_BAN);
- stmt->setUInt32(0, _channelDBId);
- stmt->setUInt32(1, guid.GetCounter());
- stmt->setUInt32(2, time);
+ stmt->SetData(0, _channelDBId);
+ stmt->SetData(1, guid.GetCounter());
+ stmt->SetData(2, time);
CharacterDatabase.Execute(stmt);
}
void Channel::RemoveChannelBanFromDB(ObjectGuid guid) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHANNEL_BAN);
- stmt->setUInt32(0, _channelDBId);
- stmt->setUInt32(1, guid.GetCounter());
+ stmt->SetData(0, _channelDBId);
+ stmt->SetData(1, guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -144,7 +144,7 @@ void Channel::CleanOldChannelsInDB()
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_OLD_CHANNELS);
- stmt->setUInt32(0, sWorld->getIntConfig(CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION) * DAY);
+ stmt->SetData(0, sWorld->getIntConfig(CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION) * DAY);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_OLD_CHANNELS_BANS);
diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp
index 5160d2c020..3eb76c783d 100644
--- a/src/server/game/Chat/Channels/ChannelMgr.cpp
+++ b/src/server/game/Chat/Channels/ChannelMgr.cpp
@@ -53,7 +53,7 @@ void ChannelMgr::LoadChannels()
uint32 count = 0;
// 0 1 2 3 4 5
- QueryResult result = CharacterDatabase.PQuery("SELECT channelId, name, team, announce, ownership, password FROM channels ORDER BY channelId ASC");
+ QueryResult result = CharacterDatabase.Query("SELECT channelId, name, team, announce, ownership, password FROM channels ORDER BY channelId ASC");
if (!result)
{
LOG_INFO("server.loading", ">> Loaded 0 channels. DB table `channels` is empty.");
@@ -65,10 +65,10 @@ void ChannelMgr::LoadChannels()
{
Field* fields = result->Fetch();
- uint32 channelDBId = fields[0].GetUInt32();
- std::string channelName = fields[1].GetString();
- TeamId team = TeamId(fields[2].GetUInt32());
- std::string password = fields[5].GetString();
+ uint32 channelDBId = fields[0].Get<uint32>();
+ std::string channelName = fields[1].Get<std::string>();
+ TeamId team = TeamId(fields[2].Get<uint32>());
+ std::string password = fields[5].Get<std::string>();
std::wstring channelWName;
if (!Utf8toWStr(channelName, channelWName))
@@ -86,18 +86,18 @@ void ChannelMgr::LoadChannels()
continue;
}
- Channel* newChannel = new Channel(channelName, 0, channelDBId, team, fields[3].GetUInt8(), fields[4].GetUInt8());
+ Channel* newChannel = new Channel(channelName, 0, channelDBId, team, fields[3].Get<uint8>(), fields[4].Get<uint8>());
newChannel->SetPassword(password);
mgr->channels[channelWName] = newChannel;
- if (QueryResult banResult = CharacterDatabase.PQuery("SELECT playerGUID, banTime FROM channels_bans WHERE channelId = %u", channelDBId))
+ if (QueryResult banResult = CharacterDatabase.Query("SELECT playerGUID, banTime FROM channels_bans WHERE channelId = {}", channelDBId))
{
do
{
Field* banFields = banResult->Fetch();
if (!banFields)
break;
- newChannel->AddBan(ObjectGuid::Create<HighGuid::Player>(banFields[0].GetUInt32()), banFields[1].GetUInt32());
+ newChannel->AddBan(ObjectGuid::Create<HighGuid::Player>(banFields[0].Get<uint32>()), banFields[1].Get<uint32>());
} while (banResult->NextRow());
}
@@ -109,8 +109,8 @@ void ChannelMgr::LoadChannels()
for (auto pair : toDelete)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHANNEL);
- stmt->setString(0, pair.first);
- stmt->setUInt32(1, pair.second);
+ stmt->SetData(0, pair.first);
+ stmt->SetData(1, pair.second);
CharacterDatabase.Execute(stmt);
}
@@ -181,7 +181,7 @@ void ChannelMgr::LoadChannelRights()
{
Field* fields = result->Fetch();
std::set<uint32> moderators;
- auto moderatorList = fields[5].GetStringView();
+ auto moderatorList = fields[5].Get<std::string_view>();
if (!moderatorList.empty())
{
@@ -196,7 +196,7 @@ void ChannelMgr::LoadChannelRights()
}
}
- SetChannelRightsFor(fields[0].GetString(), fields[1].GetUInt32(), fields[2].GetUInt32(), fields[3].GetString(), fields[4].GetString(), moderators);
+ SetChannelRightsFor(fields[0].Get<std::string>(), fields[1].Get<uint32>(), fields[2].Get<uint32>(), fields[3].Get<std::string>(), fields[4].Get<std::string>(), moderators);
++count;
} while (result->NextRow());
diff --git a/src/server/game/Chat/ChatCommands/ChatCommand.cpp b/src/server/game/Chat/ChatCommands/ChatCommand.cpp
index c0b23dbf3a..1bcbde69d1 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommand.cpp
+++ b/src/server/game/Chat/ChatCommands/ChatCommand.cpp
@@ -88,9 +88,9 @@ static ChatSubCommandMap COMMAND_MAP;
do
{
Field* fields = result->Fetch();
- std::string_view const name = fields[0].GetStringView();
- std::string_view const help = fields[2].GetStringView();
- uint32 const secLevel = fields[1].GetUInt8();
+ std::string_view const name = fields[0].Get<std::string_view>();
+ std::string_view const help = fields[2].Get<std::string_view>();
+ uint32 const secLevel = fields[1].Get<uint8>();
ChatCommandNode* cmd = nullptr;
ChatSubCommandMap* map = &COMMAND_MAP;
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 6537e8b07e..e1cf1008d6 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -939,20 +939,20 @@ void ConditionMgr::LoadConditions(bool isReload)
Field* fields = result->Fetch();
Condition* cond = new Condition();
- int32 iSourceTypeOrReferenceId = fields[0].GetInt32();
- cond->SourceGroup = fields[1].GetUInt32();
- cond->SourceEntry = fields[2].GetInt32();
- cond->SourceId = fields[3].GetInt32();
- cond->ElseGroup = fields[4].GetUInt32();
- int32 iConditionTypeOrReference = fields[5].GetInt32();
- cond->ConditionTarget = fields[6].GetUInt8();
- cond->ConditionValue1 = fields[7].GetUInt32();
- cond->ConditionValue2 = fields[8].GetUInt32();
- cond->ConditionValue3 = fields[9].GetUInt32();
- cond->NegativeCondition = fields[10].GetUInt8();
- cond->ErrorType = fields[11].GetUInt32();
- cond->ErrorTextId = fields[12].GetUInt32();
- cond->ScriptId = sObjectMgr->GetScriptId(fields[13].GetCString());
+ int32 iSourceTypeOrReferenceId = fields[0].Get<int32>();
+ cond->SourceGroup = fields[1].Get<uint32>();
+ cond->SourceEntry = fields[2].Get<int32>();
+ cond->SourceId = fields[3].Get<int32>();
+ cond->ElseGroup = fields[4].Get<uint32>();
+ int32 iConditionTypeOrReference = fields[5].Get<int32>();
+ cond->ConditionTarget = fields[6].Get<uint8>();
+ cond->ConditionValue1 = fields[7].Get<uint32>();
+ cond->ConditionValue2 = fields[8].Get<uint32>();
+ cond->ConditionValue3 = fields[9].Get<uint32>();
+ cond->NegativeCondition = fields[10].Get<uint8>();
+ cond->ErrorType = fields[11].Get<uint32>();
+ cond->ErrorTextId = fields[12].Get<uint32>();
+ cond->ScriptId = sObjectMgr->GetScriptId(fields[13].Get<std::string>());
if (iConditionTypeOrReference >= 0)
cond->ConditionType = ConditionTypes(iConditionTypeOrReference);
@@ -2291,7 +2291,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
case CONDITION_PET_TYPE:
if (cond->ConditionValue1 >= (1 << MAX_PET_TYPE))
{
- LOG_ERROR("sql.sql", "CONDITION_PET_TYPE has non-existing pet type %u, skipped.", cond->ConditionValue1);
+ LOG_ERROR("sql.sql", "CONDITION_PET_TYPE has non-existing pet type {}, skipped.", cond->ConditionValue1);
return false;
}
break;
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index dfac79a4be..d31413cc67 100644
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -72,17 +72,17 @@ namespace DisableMgr
do
{
fields = result->Fetch();
- DisableType type = DisableType(fields[0].GetUInt32());
+ DisableType type = DisableType(fields[0].Get<uint32>());
if (type >= MAX_DISABLE_TYPES)
{
LOG_ERROR("sql.sql", "Invalid type {} specified in `disables` table, skipped.", type);
continue;
}
- uint32 entry = fields[1].GetUInt32();
- uint8 flags = fields[2].GetUInt8();
- std::string params_0 = fields[3].GetString();
- std::string params_1 = fields[4].GetString();
+ uint32 entry = fields[1].Get<uint32>();
+ uint8 flags = fields[2].Get<uint8>();
+ std::string params_0 = fields[3].Get<std::string>();
+ std::string params_1 = fields[4].Get<std::string>();
DisableData data;
data.flags = flags;
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index af9f2bbf69..ba551a8ae4 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -72,10 +72,10 @@ namespace lfg
if (!guid.IsGroup())
return;
- SetLeader(guid, ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32()));
+ SetLeader(guid, ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>()));
- uint32 dungeon = fields[17].GetUInt32();
- uint8 state = fields[18].GetUInt8();
+ uint32 dungeon = fields[17].Get<uint32>();
+ uint8 state = fields[18].Get<uint8>();
if (!dungeon || !state)
return;
@@ -99,9 +99,9 @@ namespace lfg
return;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_LFG_DATA);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt32(1, GetDungeon(guid));
- stmt->setUInt32(2, GetState(guid));
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, GetDungeon(guid));
+ stmt->SetData(2, GetState(guid));
CharacterDatabase.Execute(stmt);
}
@@ -129,10 +129,10 @@ namespace lfg
do
{
fields = result->Fetch();
- uint32 dungeonId = fields[0].GetUInt32();
- uint32 maxLevel = fields[1].GetUInt8();
- uint32 firstQuestId = fields[2].GetUInt32();
- uint32 otherQuestId = fields[3].GetUInt32();
+ uint32 dungeonId = fields[0].Get<uint32>();
+ uint32 maxLevel = fields[1].Get<uint8>();
+ uint32 firstQuestId = fields[2].Get<uint32>();
+ uint32 otherQuestId = fields[3].Get<uint32>();
if (!GetLFGDungeonEntry(dungeonId))
{
@@ -215,7 +215,7 @@ namespace lfg
do
{
Field* fields = result->Fetch();
- uint32 dungeonId = fields[0].GetUInt32();
+ uint32 dungeonId = fields[0].Get<uint32>();
LFGDungeonContainer::iterator dungeonItr = LfgDungeonStore.find(dungeonId);
if (dungeonItr == LfgDungeonStore.end())
{
@@ -224,10 +224,10 @@ namespace lfg
}
LFGDungeonData& data = dungeonItr->second;
- data.x = fields[1].GetFloat();
- data.y = fields[2].GetFloat();
- data.z = fields[3].GetFloat();
- data.o = fields[4].GetFloat();
+ data.x = fields[1].Get<float>();
+ data.y = fields[2].Get<float>();
+ data.z = fields[3].Get<float>();
+ data.o = fields[4].Get<float>();
++count;
} while (result->NextRow());
diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp
index 8f3af7dec8..1b320b9f78 100644
--- a/src/server/game/Entities/Corpse/Corpse.cpp
+++ b/src/server/game/Entities/Corpse/Corpse.cpp
@@ -95,23 +95,23 @@ void Corpse::SaveToDB()
DeleteFromDB(trans);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CORPSE);
- stmt->setUInt32(0, GetOwnerGUID().GetCounter()); // guid
- stmt->setFloat (1, GetPositionX()); // posX
- stmt->setFloat (2, GetPositionY()); // posY
- stmt->setFloat (3, GetPositionZ()); // posZ
- stmt->setFloat (4, GetOrientation()); // orientation
- stmt->setUInt16(5, GetMapId()); // mapId
- stmt->setUInt32(6, GetUInt32Value(CORPSE_FIELD_DISPLAY_ID)); // displayId
- stmt->setString(7, _ConcatFields(CORPSE_FIELD_ITEM, EQUIPMENT_SLOT_END)); // itemCache
- stmt->setUInt32(8, GetUInt32Value(CORPSE_FIELD_BYTES_1)); // bytes1
- stmt->setUInt32(9, GetUInt32Value(CORPSE_FIELD_BYTES_2)); // bytes2
- stmt->setUInt32(10, GetUInt32Value(CORPSE_FIELD_GUILD)); // guildId
- stmt->setUInt8 (11, GetUInt32Value(CORPSE_FIELD_FLAGS)); // flags
- stmt->setUInt8 (12, GetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS)); // dynFlags
- stmt->setUInt32(13, uint32(m_time)); // time
- stmt->setUInt8 (14, GetType()); // corpseType
- stmt->setUInt32(15, GetInstanceId()); // instanceId
- stmt->setUInt32(16, GetPhaseMask()); // phaseMask
+ stmt->SetData(0, GetOwnerGUID().GetCounter()); // guid
+ stmt->SetData (1, GetPositionX()); // posX
+ stmt->SetData (2, GetPositionY()); // posY
+ stmt->SetData (3, GetPositionZ()); // posZ
+ stmt->SetData (4, GetOrientation()); // orientation
+ stmt->SetData(5, GetMapId()); // mapId
+ stmt->SetData(6, GetUInt32Value(CORPSE_FIELD_DISPLAY_ID)); // displayId
+ stmt->SetData(7, _ConcatFields(CORPSE_FIELD_ITEM, EQUIPMENT_SLOT_END)); // itemCache
+ stmt->SetData(8, GetUInt32Value(CORPSE_FIELD_BYTES_1)); // bytes1
+ stmt->SetData(9, GetUInt32Value(CORPSE_FIELD_BYTES_2)); // bytes2
+ stmt->SetData(10, GetUInt32Value(CORPSE_FIELD_GUILD)); // guildId
+ stmt->SetData (11, GetUInt32Value(CORPSE_FIELD_FLAGS)); // flags
+ stmt->SetData (12, GetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS)); // dynFlags
+ stmt->SetData(13, uint32(m_time)); // time
+ stmt->SetData (14, GetType()); // corpseType
+ stmt->SetData(15, GetInstanceId()); // instanceId
+ stmt->SetData(16, GetPhaseMask()); // phaseMask
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -125,44 +125,44 @@ void Corpse::DeleteFromDB(CharacterDatabaseTransaction trans)
void Corpse::DeleteFromDB(ObjectGuid const ownerGuid, CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CORPSE);
- stmt->setUInt32(0, ownerGuid.GetCounter());
+ stmt->SetData(0, ownerGuid.GetCounter());
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
bool Corpse::LoadCorpseFromDB(ObjectGuid::LowType guid, Field* fields)
{
- ObjectGuid::LowType ownerGuid = fields[16].GetUInt32();
+ ObjectGuid::LowType ownerGuid = fields[16].Get<uint32>();
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// SELECT posX, posY, posZ, orientation, mapId, displayId, itemCache, bytes1, bytes2, guildId, flags, dynFlags, time, corpseType, instanceId, phaseMask, guid FROM corpse WHERE mapId = ? AND instanceId = ?
- float posX = fields[0].GetFloat();
- float posY = fields[1].GetFloat();
- float posZ = fields[2].GetFloat();
- float o = fields[3].GetFloat();
- uint32 mapId = fields[4].GetUInt16();
+ float posX = fields[0].Get<float>();
+ float posY = fields[1].Get<float>();
+ float posZ = fields[2].Get<float>();
+ float o = fields[3].Get<float>();
+ uint32 mapId = fields[4].Get<uint16>();
Object::_Create(guid, 0, HighGuid::Corpse);
SetObjectScale(1.0f);
- SetUInt32Value(CORPSE_FIELD_DISPLAY_ID, fields[5].GetUInt32());
+ SetUInt32Value(CORPSE_FIELD_DISPLAY_ID, fields[5].Get<uint32>());
- if (!_LoadIntoDataField(fields[6].GetString(), CORPSE_FIELD_ITEM, EQUIPMENT_SLOT_END))
+ if (!_LoadIntoDataField(fields[6].Get<std::string>(), CORPSE_FIELD_ITEM, EQUIPMENT_SLOT_END))
{
LOG_ERROR("entities.player", "Corpse ({}, owner: {}) is not created, given equipment info is not valid ('{}')",
- GetGUID().ToString(), GetOwnerGUID().ToString(), fields[6].GetString());
+ GetGUID().ToString(), GetOwnerGUID().ToString(), fields[6].Get<std::string>());
}
- SetUInt32Value(CORPSE_FIELD_BYTES_1, fields[7].GetUInt32());
- SetUInt32Value(CORPSE_FIELD_BYTES_2, fields[8].GetUInt32());
- SetUInt32Value(CORPSE_FIELD_GUILD, fields[9].GetUInt32());
- SetUInt32Value(CORPSE_FIELD_FLAGS, fields[10].GetUInt8());
- SetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS, fields[11].GetUInt8());
+ SetUInt32Value(CORPSE_FIELD_BYTES_1, fields[7].Get<uint32>());
+ SetUInt32Value(CORPSE_FIELD_BYTES_2, fields[8].Get<uint32>());
+ SetUInt32Value(CORPSE_FIELD_GUILD, fields[9].Get<uint32>());
+ SetUInt32Value(CORPSE_FIELD_FLAGS, fields[10].Get<uint8>());
+ SetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS, fields[11].Get<uint8>());
SetGuidValue(CORPSE_FIELD_OWNER, ObjectGuid::Create<HighGuid::Player>(ownerGuid));
- m_time = time_t(fields[12].GetUInt32());
+ m_time = time_t(fields[12].Get<uint32>());
- uint32 instanceId = fields[14].GetUInt32();
- uint32 phaseMask = fields[15].GetUInt32();
+ uint32 instanceId = fields[14].Get<uint32>();
+ uint32 phaseMask = fields[15].Get<uint32>();
// place
SetLocationInstanceId(instanceId);
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index e1c3de3d8a..301ce4b46b 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -1352,33 +1352,33 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
WorldDatabaseTransaction trans = WorldDatabase.BeginTransaction();
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
trans->Append(stmt);
uint8 index = 0;
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_CREATURE);
- stmt->setUInt32(index++, m_spawnId);
- stmt->setUInt32(index++, GetEntry());
- stmt->setUInt32(index++, 0);
- stmt->setUInt32(index++, 0);
- stmt->setUInt16(index++, uint16(mapid));
- stmt->setUInt8(index++, spawnMask);
- stmt->setUInt32(index++, GetPhaseMask());
- stmt->setInt32(index++, int32(GetCurrentEquipmentId()));
- stmt->setFloat(index++, GetPositionX());
- stmt->setFloat(index++, GetPositionY());
- stmt->setFloat(index++, GetPositionZ());
- stmt->setFloat(index++, GetOrientation());
- stmt->setUInt32(index++, m_respawnDelay);
- stmt->setFloat(index++, m_wanderDistance);
- stmt->setUInt32(index++, 0);
- stmt->setUInt32(index++, GetHealth());
- stmt->setUInt32(index++, GetPower(POWER_MANA));
- stmt->setUInt8(index++, uint8(GetDefaultMovementType()));
- stmt->setUInt32(index++, npcflag);
- stmt->setUInt32(index++, unit_flags);
- stmt->setUInt32(index++, dynamicflags);
+ stmt->SetData(index++, m_spawnId);
+ stmt->SetData(index++, GetEntry());
+ stmt->SetData(index++, 0);
+ stmt->SetData(index++, 0);
+ stmt->SetData(index++, uint16(mapid));
+ stmt->SetData(index++, spawnMask);
+ stmt->SetData(index++, GetPhaseMask());
+ stmt->SetData(index++, int32(GetCurrentEquipmentId()));
+ stmt->SetData(index++, GetPositionX());
+ stmt->SetData(index++, GetPositionY());
+ stmt->SetData(index++, GetPositionZ());
+ stmt->SetData(index++, GetOrientation());
+ stmt->SetData(index++, m_respawnDelay);
+ stmt->SetData(index++, m_wanderDistance);
+ stmt->SetData(index++, 0);
+ stmt->SetData(index++, GetHealth());
+ stmt->SetData(index++, GetPower(POWER_MANA));
+ stmt->SetData(index++, uint8(GetDefaultMovementType()));
+ stmt->SetData(index++, npcflag);
+ stmt->SetData(index++, unit_flags);
+ stmt->SetData(index++, dynamicflags);
trans->Append(stmt);
WorldDatabase.CommitTransaction(trans);
@@ -1737,19 +1737,19 @@ void Creature::DeleteFromDB()
WorldDatabaseTransaction trans = WorldDatabase.BeginTransaction();
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
trans->Append(stmt);
stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE_ADDON);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
trans->Append(stmt);
stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GAME_EVENT_CREATURE);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
trans->Append(stmt);
stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GAME_EVENT_MODEL_EQUIP);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
trans->Append(stmt);
WorldDatabase.CommitTransaction(trans);
diff --git a/src/server/game/Entities/Creature/CreatureGroups.cpp b/src/server/game/Entities/Creature/CreatureGroups.cpp
index eba807db26..84c73a8921 100644
--- a/src/server/game/Entities/Creature/CreatureGroups.cpp
+++ b/src/server/game/Entities/Creature/CreatureGroups.cpp
@@ -98,13 +98,13 @@ void FormationMgr::LoadCreatureFormations()
//Load group member data
FormationInfo group_member;
- group_member.leaderGUID = fields[0].GetUInt32();
- ObjectGuid::LowType const memberGUID = fields[1].GetUInt32();
- float const follow_dist = fields[2].GetFloat();
- float const follow_angle = fields[3].GetFloat() * (static_cast<float>(M_PI) / 180);
- group_member.groupAI = fields[4].GetUInt16();
- group_member.point_1 = fields[5].GetUInt16();
- group_member.point_2 = fields[6].GetUInt16();
+ group_member.leaderGUID = fields[0].Get<uint32>();
+ ObjectGuid::LowType const memberGUID = fields[1].Get<uint32>();
+ float const follow_dist = fields[2].Get<float>();
+ float const follow_angle = fields[3].Get<float>() * (static_cast<float>(M_PI) / 180);
+ group_member.groupAI = fields[4].Get<uint16>();
+ group_member.point_1 = fields[5].Get<uint16>();
+ group_member.point_2 = fields[6].Get<uint16>();
//If creature is group leader we may skip loading of dist/angle
if (group_member.leaderGUID != memberGUID)
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 19c091f67e..8cae8e38ef 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1017,33 +1017,33 @@ void GameObject::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask, bool
uint8 index = 0;
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GAMEOBJECT);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
trans->Append(stmt);
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_GAMEOBJECT);
- stmt->setUInt32(index++, m_spawnId);
- stmt->setUInt32(index++, GetEntry());
- stmt->setUInt16(index++, uint16(mapid));
- stmt->setUInt8(index++, spawnMask);
- stmt->setUInt32(index++, GetPhaseMask());
- stmt->setFloat(index++, GetPositionX());
- stmt->setFloat(index++, GetPositionY());
- stmt->setFloat(index++, GetPositionZ());
- stmt->setFloat(index++, GetOrientation());
- stmt->setFloat(index++, m_localRotation.x);
- stmt->setFloat(index++, m_localRotation.y);
- stmt->setFloat(index++, m_localRotation.z);
- stmt->setFloat(index++, m_localRotation.w);
- stmt->setInt32(index++, int32(m_respawnDelayTime));
- stmt->setUInt8(index++, GetGoAnimProgress());
- stmt->setUInt8(index++, uint8(GetGoState()));
+ stmt->SetData(index++, m_spawnId);
+ stmt->SetData(index++, GetEntry());
+ stmt->SetData(index++, uint16(mapid));
+ stmt->SetData(index++, spawnMask);
+ stmt->SetData(index++, GetPhaseMask());
+ stmt->SetData(index++, GetPositionX());
+ stmt->SetData(index++, GetPositionY());
+ stmt->SetData(index++, GetPositionZ());
+ stmt->SetData(index++, GetOrientation());
+ stmt->SetData(index++, m_localRotation.x);
+ stmt->SetData(index++, m_localRotation.y);
+ stmt->SetData(index++, m_localRotation.z);
+ stmt->SetData(index++, m_localRotation.w);
+ stmt->SetData(index++, int32(m_respawnDelayTime));
+ stmt->SetData(index++, GetGoAnimProgress());
+ stmt->SetData(index++, uint8(GetGoState()));
trans->Append(stmt);
if (saveAddon && !sObjectMgr->GetGameObjectAddon(m_spawnId))
{
index = 0;
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_GAMEOBJECT_ADDON);
- stmt->setUInt32(index++, m_spawnId);
+ stmt->SetData(index++, m_spawnId);
trans->Append(stmt);
}
@@ -1121,11 +1121,11 @@ void GameObject::DeleteFromDB()
sObjectMgr->DeleteGOData(m_spawnId);
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GAMEOBJECT);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
WorldDatabase.Execute(stmt);
stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_EVENT_GAMEOBJECT);
- stmt->setUInt32(0, m_spawnId);
+ stmt->SetData(0, m_spawnId);
WorldDatabase.Execute(stmt);
}
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 0b9d1c7819..b69a29c646 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -329,19 +329,19 @@ void Item::SaveToDB(CharacterDatabaseTransaction trans)
{
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(uState == ITEM_NEW ? CHAR_REP_ITEM_INSTANCE : CHAR_UPD_ITEM_INSTANCE);
- stmt->setUInt32( index, GetEntry());
- stmt->setUInt32(++index, GetOwnerGUID().GetCounter());
- stmt->setUInt32(++index, GetGuidValue(ITEM_FIELD_CREATOR).GetCounter());
- stmt->setUInt32(++index, GetGuidValue(ITEM_FIELD_GIFTCREATOR).GetCounter());
- stmt->setUInt32(++index, GetCount());
- stmt->setUInt32(++index, GetUInt32Value(ITEM_FIELD_DURATION));
+ stmt->SetData( index, GetEntry());
+ stmt->SetData(++index, GetOwnerGUID().GetCounter());
+ stmt->SetData(++index, GetGuidValue(ITEM_FIELD_CREATOR).GetCounter());
+ stmt->SetData(++index, GetGuidValue(ITEM_FIELD_GIFTCREATOR).GetCounter());
+ stmt->SetData(++index, GetCount());
+ stmt->SetData(++index, GetUInt32Value(ITEM_FIELD_DURATION));
std::ostringstream ssSpells;
for (uint8 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i)
ssSpells << GetSpellCharges(i) << ' ';
- stmt->setString(++index, ssSpells.str());
+ stmt->SetData(++index, ssSpells.str());
- stmt->setUInt32(++index, GetUInt32Value(ITEM_FIELD_FLAGS));
+ stmt->SetData(++index, GetUInt32Value(ITEM_FIELD_FLAGS));
std::ostringstream ssEnchants;
for (uint8 i = 0; i < MAX_ENCHANTMENT_SLOT; ++i)
@@ -350,21 +350,21 @@ void Item::SaveToDB(CharacterDatabaseTransaction trans)
ssEnchants << GetEnchantmentDuration(EnchantmentSlot(i)) << ' ';
ssEnchants << GetEnchantmentCharges(EnchantmentSlot(i)) << ' ';
}
- stmt->setString(++index, ssEnchants.str());
+ stmt->SetData(++index, ssEnchants.str());
- stmt->setInt16 (++index, GetItemRandomPropertyId());
- stmt->setUInt16(++index, GetUInt32Value(ITEM_FIELD_DURABILITY));
- stmt->setUInt32(++index, GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME));
- stmt->setString(++index, m_text);
- stmt->setUInt32(++index, guid);
+ stmt->SetData (++index, GetItemRandomPropertyId());
+ stmt->SetData(++index, GetUInt32Value(ITEM_FIELD_DURABILITY));
+ stmt->SetData(++index, GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME));
+ stmt->SetData(++index, m_text);
+ stmt->SetData(++index, guid);
trans->Append(stmt);
if ((uState == ITEM_CHANGED) && HasFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_WRAPPED))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GIFT_OWNER);
- stmt->setUInt32(0, GetOwnerGUID().GetCounter());
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, GetOwnerGUID().GetCounter());
+ stmt->SetData(1, guid);
trans->Append(stmt);
}
break;
@@ -372,13 +372,13 @@ void Item::SaveToDB(CharacterDatabaseTransaction trans)
case ITEM_REMOVED:
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, guid);
+ stmt->SetData(0, guid);
trans->Append(stmt);
if (HasFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_WRAPPED))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GIFT);
- stmt->setUInt32(0, guid);
+ stmt->SetData(0, guid);
trans->Append(stmt);
}
@@ -401,7 +401,7 @@ void Item::SaveToDB(CharacterDatabaseTransaction trans)
bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fields, uint32 entry)
{
// 0 1 2 3 4 5 6 7 8 9 10
- //result = CharacterDatabase.PQuery("SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text FROM item_instance WHERE guid = '%u'", guid);
+ //result = CharacterDatabase.Query("SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text FROM item_instance WHERE guid = '{}'", guid);
// create item before any checks for store correct guid
// and allow use "FSetState(ITEM_REMOVED); SaveToDB();" for deleting item from DB
@@ -423,11 +423,11 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi
SetOwnerGUID(owner_guid);
bool need_save = false; // need explicit save data at load fixes
- SetGuidValue(ITEM_FIELD_CREATOR, ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32()));
- SetGuidValue(ITEM_FIELD_GIFTCREATOR, ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt32()));
- SetCount(fields[2].GetUInt32());
+ SetGuidValue(ITEM_FIELD_CREATOR, ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>()));
+ SetGuidValue(ITEM_FIELD_GIFTCREATOR, ObjectGuid::Create<HighGuid::Player>(fields[1].Get<uint32>()));
+ SetCount(fields[2].Get<uint32>());
- uint32 duration = fields[3].GetUInt32();
+ uint32 duration = fields[3].Get<uint32>();
SetUInt32Value(ITEM_FIELD_DURATION, duration);
// update duration if need, and remove if not need
if ((proto->Duration == 0) != (duration == 0))
@@ -436,7 +436,7 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi
need_save = true;
}
- std::vector<std::string_view> tokens = Acore::Tokenize(fields[4].GetStringView(), ' ', false);
+ std::vector<std::string_view> tokens = Acore::Tokenize(fields[4].Get<std::string_view>(), ' ', false);
if (tokens.size() == MAX_ITEM_PROTO_SPELLS)
{
for (uint8 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i)
@@ -448,7 +448,7 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi
}
}
- SetUInt32Value(ITEM_FIELD_FLAGS, fields[5].GetUInt32());
+ SetUInt32Value(ITEM_FIELD_FLAGS, fields[5].Get<uint32>());
// Remove bind flag for items vs NO_BIND set
if (IsSoulBound() && proto->Bonding == NO_BIND && sScriptMgr->CanApplySoulboundFlag(this, proto))
{
@@ -456,19 +456,19 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi
need_save = true;
}
- std::string enchants = fields[6].GetString();
+ std::string enchants = fields[6].Get<std::string>();
- if (!_LoadIntoDataField(fields[6].GetString(), ITEM_FIELD_ENCHANTMENT_1_1, MAX_ENCHANTMENT_SLOT * MAX_ENCHANTMENT_OFFSET))
+ if (!_LoadIntoDataField(fields[6].Get<std::string>(), ITEM_FIELD_ENCHANTMENT_1_1, MAX_ENCHANTMENT_SLOT * MAX_ENCHANTMENT_OFFSET))
{
- LOG_WARN("entities.item", "Invalid enchantment data '{}' for item {}. Forcing partial load.", fields[6].GetString(), GetGUID().ToString());
+ LOG_WARN("entities.item", "Invalid enchantment data '{}' for item {}. Forcing partial load.", fields[6].Get<std::string>(), GetGUID().ToString());
}
- SetInt32Value(ITEM_FIELD_RANDOM_PROPERTIES_ID, fields[7].GetInt16());
+ SetInt32Value(ITEM_FIELD_RANDOM_PROPERTIES_ID, fields[7].Get<int16>());
// recalculate suffix factor
if (GetItemRandomPropertyId() < 0)
UpdateItemSuffixFactor();
- uint32 durability = fields[8].GetUInt16();
+ uint32 durability = fields[8].Get<uint16>();
SetUInt32Value(ITEM_FIELD_DURABILITY, durability);
// update max durability (and durability) if need
@@ -480,16 +480,16 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi
need_save = true;
}
- SetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME, fields[9].GetUInt32());
- SetText(fields[10].GetString());
+ SetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME, fields[9].Get<uint32>());
+ SetText(fields[10].Get<std::string>());
if (need_save) // normal item changed state set not work at loading
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ITEM_INSTANCE_ON_LOAD);
- stmt->setUInt32(0, GetUInt32Value(ITEM_FIELD_DURATION));
- stmt->setUInt32(1, GetUInt32Value(ITEM_FIELD_FLAGS));
- stmt->setUInt32(2, GetUInt32Value(ITEM_FIELD_DURABILITY));
- stmt->setUInt32(3, guid);
+ stmt->SetData(0, GetUInt32Value(ITEM_FIELD_DURATION));
+ stmt->SetData(1, GetUInt32Value(ITEM_FIELD_FLAGS));
+ stmt->SetData(2, GetUInt32Value(ITEM_FIELD_DURABILITY));
+ stmt->SetData(3, guid);
CharacterDatabase.Execute(stmt);
}
@@ -501,7 +501,7 @@ void Item::DeleteFromDB(CharacterDatabaseTransaction trans, ObjectGuid::LowType
{
sScriptMgr->OnGlobalItemDelFromDB(trans, itemGuid);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, itemGuid);
+ stmt->SetData(0, itemGuid);
trans->Append(stmt);
}
@@ -514,7 +514,7 @@ void Item::DeleteFromDB(CharacterDatabaseTransaction trans)
void Item::DeleteFromInventoryDB(CharacterDatabaseTransaction trans, ObjectGuid::LowType itemGuid)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
- stmt->setUInt32(0, itemGuid);
+ stmt->SetData(0, itemGuid);
trans->Append(stmt);
}
@@ -1156,14 +1156,14 @@ void Item::SaveRefundDataToDB()
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_REFUND_INSTANCE);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEM_REFUND_INSTANCE);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, GetRefundRecipient());
- stmt->setUInt32(2, GetPaidMoney());
- stmt->setUInt16(3, uint16(GetPaidExtendedCost()));
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, GetRefundRecipient());
+ stmt->SetData(2, GetPaidMoney());
+ stmt->SetData(3, uint16(GetPaidExtendedCost()));
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -1174,7 +1174,7 @@ void Item::DeleteRefundDataFromDB(CharacterDatabaseTransaction* trans)
if (trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_REFUND_INSTANCE);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
(*trans)->Append(stmt);
}
}
@@ -1252,7 +1252,7 @@ void Item::ClearSoulboundTradeable(Player* currentOwner)
allowedGUIDs.clear();
SetState(ITEM_CHANGED, currentOwner);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_BOP_TRADE);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
index c623acadff..78754bb46e 100644
--- a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
+++ b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
@@ -58,9 +58,9 @@ void LoadRandomEnchantmentsTable()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 ench = fields[1].GetUInt32();
- float chance = fields[2].GetFloat();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 ench = fields[1].Get<uint32>();
+ float chance = fields[2].Get<float>();
if (chance > 0.000001f && chance <= 100.0f)
RandomItemEnch[entry].push_back(EnchStoreItem(ench, chance));
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index e22adde2f6..a3c8ce4983 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -140,20 +140,20 @@ public:
CharacterDatabasePreparedStatement* stmt = nullptr;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_DECLINED_NAME);
- stmt->setUInt32(0, ownerGuid);
- stmt->setUInt32(1, petNumber);
+ stmt->SetData(0, ownerGuid);
+ stmt->SetData(1, petNumber);
SetPreparedQuery(DECLINED_NAMES, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_AURA);
- stmt->setUInt32(0, petNumber);
+ stmt->SetData(0, petNumber);
SetPreparedQuery(AURAS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_SPELL);
- stmt->setUInt32(0, petNumber);
+ stmt->SetData(0, petNumber);
SetPreparedQuery(SPELLS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PET_SPELL_COOLDOWN);
- stmt->setUInt32(0, petNumber);
+ stmt->SetData(0, petNumber);
SetPreparedQuery(COOLDOWNS, stmt);
}
};
@@ -455,7 +455,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
m_declinedname = std::make_unique<DeclinedName>();
Field* fields = result->Fetch();
for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
- m_declinedname->name[i] = fields[i].GetString();
+ m_declinedname->name[i] = fields[i].Get<std::string>();
}
}
@@ -536,16 +536,16 @@ void Pet::SavePetToDB(PetSaveMode mode)
// remove current data
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_ID);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
trans->Append(stmt);
// prevent existence another hunter pet in PET_SAVE_AS_CURRENT and PET_SAVE_NOT_IN_SLOT
if (getPetType() == HUNTER_PET && (mode == PET_SAVE_AS_CURRENT || mode > PET_SAVE_LAST_STABLE_SLOT))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_SLOT);
- stmt->setUInt32(0, ownerLowGUID);
- stmt->setUInt8(1, uint8(PET_SAVE_AS_CURRENT));
- stmt->setUInt8(2, uint8(PET_SAVE_LAST_STABLE_SLOT));
+ stmt->SetData(0, ownerLowGUID);
+ stmt->SetData(1, uint8(PET_SAVE_AS_CURRENT));
+ stmt->SetData(2, uint8(PET_SAVE_LAST_STABLE_SLOT));
trans->Append(stmt);
}
@@ -556,23 +556,23 @@ void Pet::SavePetToDB(PetSaveMode mode)
FillPetInfo(&owner->GetPetStable()->CurrentPet.value());
stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHAR_PET);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
- stmt->setUInt32(1, GetEntry());
- stmt->setUInt32(2, ownerLowGUID);
- stmt->setUInt32(3, GetNativeDisplayId());
- stmt->setUInt32(4, GetUInt32Value(UNIT_CREATED_BY_SPELL));
- stmt->setUInt8(5, uint8(getPetType()));
- stmt->setUInt8(6, getLevel());
- stmt->setUInt32(7, GetUInt32Value(UNIT_FIELD_PETEXPERIENCE));
- stmt->setUInt8(8, uint8(GetReactState()));
- stmt->setString(9, GetName());
- stmt->setUInt8(10, uint8(HasByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED) ? 0 : 1));
- stmt->setUInt8(11, uint8(mode));
- stmt->setUInt32(12, curhealth);
- stmt->setUInt32(13, curmana);
- stmt->setUInt32(14, GetPower(POWER_HAPPINESS));
- stmt->setUInt32(15, GameTime::GetGameTime().count());
- stmt->setString(16, actionBar);
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(1, GetEntry());
+ stmt->SetData(2, ownerLowGUID);
+ stmt->SetData(3, GetNativeDisplayId());
+ stmt->SetData(4, GetUInt32Value(UNIT_CREATED_BY_SPELL));
+ stmt->SetData(5, uint8(getPetType()));
+ stmt->SetData(6, getLevel());
+ stmt->SetData(7, GetUInt32Value(UNIT_FIELD_PETEXPERIENCE));
+ stmt->SetData(8, uint8(GetReactState()));
+ stmt->SetData(9, GetName());
+ stmt->SetData(10, uint8(HasByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED) ? 0 : 1));
+ stmt->SetData(11, uint8(mode));
+ stmt->SetData(12, curhealth);
+ stmt->SetData(13, curmana);
+ stmt->SetData(14, GetPower(POWER_HAPPINESS));
+ stmt->SetData(15, GameTime::GetGameTime().count());
+ stmt->SetData(16, actionBar);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -590,23 +590,23 @@ void Pet::DeleteFromDB(ObjectGuid::LowType guidlow)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_ID);
- stmt->setUInt32(0, guidlow);
+ stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_DECLINEDNAME);
- stmt->setUInt32(0, guidlow);
+ stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_AURAS);
- stmt->setUInt32(0, guidlow);
+ stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELLS);
- stmt->setUInt32(0, guidlow);
+ stmt->SetData(0, guidlow);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_COOLDOWNS);
- stmt->setUInt32(0, guidlow);
+ stmt->SetData(0, guidlow);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -1431,9 +1431,9 @@ void Pet::_LoadSpellCooldowns(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- uint32 spell_id = fields[0].GetUInt32();
- uint16 category = fields[1].GetUInt16();
- time_t db_time = time_t(fields[2].GetUInt32());
+ uint32 spell_id = fields[0].Get<uint32>();
+ uint16 category = fields[1].Get<uint16>();
+ time_t db_time = time_t(fields[2].Get<uint32>());
if (!sSpellMgr->GetSpellInfo(spell_id))
{
@@ -1463,7 +1463,7 @@ void Pet::_LoadSpellCooldowns(PreparedQueryResult result)
void Pet::_SaveSpellCooldowns(CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_COOLDOWNS);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
trans->Append(stmt);
time_t curTime = GameTime::GetGameTime().count();
@@ -1485,10 +1485,10 @@ void Pet::_SaveSpellCooldowns(CharacterDatabaseTransaction trans)
{
uint32 cooldown = ((itr2->second.end - curMSTime) / IN_MILLISECONDS) + curTime;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL_COOLDOWN);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
- stmt->setUInt32(1, itr2->first);
- stmt->setUInt16(2, itr2->second.category);
- stmt->setUInt32(3, cooldown);
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(1, itr2->first);
+ stmt->SetData(2, itr2->second.category);
+ stmt->SetData(3, cooldown);
trans->Append(stmt);
}
}
@@ -1502,7 +1502,7 @@ void Pet::_LoadSpells(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- addSpell(fields[0].GetUInt32(), ActiveStates(fields[1].GetUInt8()), PETSPELL_UNCHANGED);
+ addSpell(fields[0].Get<uint32>(), ActiveStates(fields[1].Get<uint8>()), PETSPELL_UNCHANGED);
} while (result->NextRow());
}
}
@@ -1523,30 +1523,30 @@ void Pet::_SaveSpells(CharacterDatabaseTransaction trans)
{
case PETSPELL_REMOVED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
- stmt->setUInt32(1, itr->first);
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(1, itr->first);
trans->Append(stmt);
m_spells.erase(itr);
continue;
case PETSPELL_CHANGED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
- stmt->setUInt32(1, itr->first);
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(1, itr->first);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
- stmt->setUInt32(1, itr->first);
- stmt->setUInt8(2, itr->second.active);
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(1, itr->first);
+ stmt->SetData(2, itr->second.active);
trans->Append(stmt);
break;
case PETSPELL_NEW:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
- stmt->setUInt32(1, itr->first);
- stmt->setUInt8(2, itr->second.active);
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(1, itr->first);
+ stmt->SetData(2, itr->second.active);
trans->Append(stmt);
break;
case PETSPELL_UNCHANGED:
@@ -1567,23 +1567,23 @@ void Pet::_LoadAuras(PreparedQueryResult result, uint32 timediff)
int32 damage[3];
int32 baseDamage[3];
Field* fields = result->Fetch();
- ObjectGuid caster_guid = ObjectGuid(fields[0].GetUInt64());
+ ObjectGuid caster_guid = ObjectGuid(fields[0].Get<uint64>());
// nullptr guid stored - pet is the caster of the spell - see Pet::_SaveAuras
if (!caster_guid)
caster_guid = GetGUID();
- uint32 spellid = fields[1].GetUInt32();
- uint8 effmask = fields[2].GetUInt8();
- uint8 recalculatemask = fields[3].GetUInt8();
- uint8 stackcount = fields[4].GetUInt8();
- damage[0] = fields[5].GetInt32();
- damage[1] = fields[6].GetInt32();
- damage[2] = fields[7].GetInt32();
- baseDamage[0] = fields[8].GetInt32();
- baseDamage[1] = fields[9].GetInt32();
- baseDamage[2] = fields[10].GetInt32();
- int32 maxduration = fields[11].GetInt32();
- int32 remaintime = fields[12].GetInt32();
- uint8 remaincharges = fields[13].GetUInt8();
+ uint32 spellid = fields[1].Get<uint32>();
+ uint8 effmask = fields[2].Get<uint8>();
+ uint8 recalculatemask = fields[3].Get<uint8>();
+ uint8 stackcount = fields[4].Get<uint8>();
+ damage[0] = fields[5].Get<int32>();
+ damage[1] = fields[6].Get<int32>();
+ damage[2] = fields[7].Get<int32>();
+ baseDamage[0] = fields[8].Get<int32>();
+ baseDamage[1] = fields[9].Get<int32>();
+ baseDamage[2] = fields[10].Get<int32>();
+ int32 maxduration = fields[11].Get<int32>();
+ int32 remaintime = fields[12].Get<int32>();
+ uint8 remaincharges = fields[13].Get<uint8>();
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellid);
if (!spellInfo)
@@ -1639,7 +1639,7 @@ void Pet::_LoadAuras(PreparedQueryResult result, uint32 timediff)
void Pet::_SaveAuras(CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_AURAS);
- stmt->setUInt32(0, m_charmInfo->GetPetNumber());
+ stmt->SetData(0, m_charmInfo->GetPetNumber());
trans->Append(stmt);
for (AuraMap::const_iterator itr = m_ownedAuras.begin(); itr != m_ownedAuras.end(); ++itr)
@@ -1699,21 +1699,21 @@ void Pet::_SaveAuras(CharacterDatabaseTransaction trans)
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_AURA);
- stmt2->setUInt32(index++, m_charmInfo->GetPetNumber());
- stmt2->setUInt64(index++, casterGUID.GetRawValue());
- stmt2->setUInt32(index++, itr->second->GetId());
- stmt2->setUInt8(index++, effMask);
- stmt2->setUInt8(index++, recalculateMask);
- stmt2->setUInt8(index++, itr->second->GetStackAmount());
- stmt2->setInt32(index++, damage[0]);
- stmt2->setInt32(index++, damage[1]);
- stmt2->setInt32(index++, damage[2]);
- stmt2->setInt32(index++, baseDamage[0]);
- stmt2->setInt32(index++, baseDamage[1]);
- stmt2->setInt32(index++, baseDamage[2]);
- stmt2->setInt32(index++, itr->second->GetMaxDuration());
- stmt2->setInt32(index++, itr->second->GetDuration());
- stmt2->setUInt8(index++, itr->second->GetCharges());
+ stmt2->SetData(index++, m_charmInfo->GetPetNumber());
+ stmt2->SetData(index++, casterGUID.GetRawValue());
+ stmt2->SetData(index++, itr->second->GetId());
+ stmt2->SetData(index++, effMask);
+ stmt2->SetData(index++, recalculateMask);
+ stmt2->SetData(index++, itr->second->GetStackAmount());
+ stmt2->SetData(index++, damage[0]);
+ stmt2->SetData(index++, damage[1]);
+ stmt2->SetData(index++, damage[2]);
+ stmt2->SetData(index++, baseDamage[0]);
+ stmt2->SetData(index++, baseDamage[1]);
+ stmt2->SetData(index++, baseDamage[2]);
+ stmt2->SetData(index++, itr->second->GetMaxDuration());
+ stmt2->SetData(index++, itr->second->GetDuration());
+ stmt2->SetData(index++, itr->second->GetCharges());
trans->Append(stmt2);
}
}
@@ -1729,7 +1729,7 @@ bool Pet::addSpell(uint32 spellId, ActiveStates active /*= ACT_DECIDE*/, PetSpel
LOG_ERROR("entities.pet", "Pet::addSpell: Non-existed in SpellStore spell #{} request, deleting for all pets in `pet_spell`.", spellId);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_PET_SPELL);
- stmt->setUInt32(0, spellId);
+ stmt->SetData(0, spellId);
CharacterDatabase.Execute(stmt);
}
else
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 0b59a1718f..f3ecccb445 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -1099,10 +1099,10 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
Field* fields = result->Fetch();
- ObjectGuid::LowType guidLow = fields[0].GetUInt32();
- uint8 plrRace = fields[2].GetUInt8();
- uint8 plrClass = fields[3].GetUInt8();
- uint8 gender = fields[4].GetUInt8();
+ ObjectGuid::LowType guidLow = fields[0].Get<uint32>();
+ uint8 plrRace = fields[2].Get<uint8>();
+ uint8 plrClass = fields[3].Get<uint8>();
+ uint8 gender = fields[4].Get<uint8>();
ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>(guidLow);
@@ -1119,21 +1119,21 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
}
*data << guid;
- *data << fields[1].GetString(); // name
+ *data << fields[1].Get<std::string>(); // name
*data << uint8(plrRace); // race
*data << uint8(plrClass); // class
*data << uint8(gender); // gender
- uint8 skin = fields[5].GetUInt8();
- uint8 face = fields[6].GetUInt8();
- uint8 hairStyle = fields[7].GetUInt8();
- uint8 hairColor = fields[8].GetUInt8();
- uint8 facialStyle = fields[9].GetUInt8();
+ uint8 skin = fields[5].Get<uint8>();
+ uint8 face = fields[6].Get<uint8>();
+ uint8 hairStyle = fields[7].Get<uint8>();
+ uint8 hairColor = fields[8].Get<uint8>();
+ uint8 facialStyle = fields[9].Get<uint8>();
uint32 charFlags = 0;
- uint32 playerFlags = fields[17].GetUInt32();
- uint16 atLoginFlags = fields[18].GetUInt16();
- uint32 zone = (atLoginFlags & AT_LOGIN_FIRST) != 0 ? 0 : fields[11].GetUInt16(); // if first login do not show the zone
+ uint32 playerFlags = fields[17].Get<uint32>();
+ uint16 atLoginFlags = fields[18].Get<uint16>();
+ uint32 zone = (atLoginFlags & AT_LOGIN_FIRST) != 0 ? 0 : fields[11].Get<uint16>(); // if first login do not show the zone
*data << uint8(skin);
*data << uint8(face);
@@ -1141,15 +1141,15 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
*data << uint8(hairColor);
*data << uint8(facialStyle);
- *data << uint8(fields[10].GetUInt8()); // level
+ *data << uint8(fields[10].Get<uint8>()); // level
*data << uint32(zone); // zone
- *data << uint32(fields[12].GetUInt16()); // map
+ *data << uint32(fields[12].Get<uint16>()); // map
- *data << fields[13].GetFloat(); // x
- *data << fields[14].GetFloat(); // y
- *data << fields[15].GetFloat(); // z
+ *data << fields[13].Get<float>(); // x
+ *data << fields[14].Get<float>(); // y
+ *data << fields[15].Get<float>(); // z
- *data << uint32(fields[16].GetUInt32()); // guild id
+ *data << uint32(fields[16].Get<uint32>()); // guild id
if (atLoginFlags & AT_LOGIN_RESURRECT)
playerFlags &= ~PLAYER_FLAGS_GHOST;
@@ -1161,11 +1161,11 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
charFlags |= CHARACTER_FLAG_GHOST;
if (atLoginFlags & AT_LOGIN_RENAME)
charFlags |= CHARACTER_FLAG_RENAME;
- if (fields[23].GetUInt32())
+ if (fields[23].Get<uint32>())
charFlags |= CHARACTER_FLAG_LOCKED_BY_BILLING;
if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED))
{
- if (!fields[25].GetString().empty())
+ if (!fields[25].Get<std::string>().empty())
charFlags |= CHARACTER_FLAG_DECLINED;
}
else
@@ -1192,14 +1192,14 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
uint32 petFamily = 0;
// show pet at selection character in character list only for non-ghost character
- if (result && !(playerFlags & PLAYER_FLAGS_GHOST) && (plrClass == CLASS_WARLOCK || plrClass == CLASS_HUNTER || (plrClass == CLASS_DEATH_KNIGHT && (fields[21].GetUInt32()&PLAYER_EXTRA_SHOW_DK_PET))))
+ if (result && !(playerFlags & PLAYER_FLAGS_GHOST) && (plrClass == CLASS_WARLOCK || plrClass == CLASS_HUNTER || (plrClass == CLASS_DEATH_KNIGHT && (fields[21].Get<uint32>()&PLAYER_EXTRA_SHOW_DK_PET))))
{
- uint32 entry = fields[19].GetUInt32();
+ uint32 entry = fields[19].Get<uint32>();
CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(entry);
if (creatureInfo)
{
- petDisplayId = fields[20].GetUInt32();
- petLevel = fields[21].GetUInt16();
+ petDisplayId = fields[20].Get<uint32>();
+ petLevel = fields[21].Get<uint16>();
petFamily = creatureInfo->family;
}
}
@@ -1208,7 +1208,7 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
*data << uint32(petLevel);
*data << uint32(petFamily);
- std::vector<std::string_view> equipment = Acore::Tokenize(fields[22].GetStringView(), ' ', false);
+ std::vector<std::string_view> equipment = Acore::Tokenize(fields[22].Get<std::string_view>(), ' ', false);
for (uint8 slot = 0; slot < INVENTORY_SLOT_BAG_END; ++slot)
{
uint32 const visualBase = slot * 2;
@@ -3509,7 +3509,7 @@ void Player::_LoadSpellCooldowns(PreparedQueryResult result)
{
// some cooldowns can be already set at aura loading...
- //QueryResult* result = CharacterDatabase.PQuery("SELECT spell, category, item, time FROM character_spell_cooldown WHERE guid = '%u'", GetGUID().GetCounter()());
+ //QueryResult* result = CharacterDatabase.Query("SELECT spell, category, item, time FROM character_spell_cooldown WHERE guid = '{}'", GetGUID().GetCounter()());
if (result)
{
@@ -3518,11 +3518,11 @@ void Player::_LoadSpellCooldowns(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- uint32 spell_id = fields[0].GetUInt32();
- uint16 category = fields[1].GetUInt16();
- uint32 item_id = fields[2].GetUInt32();
- uint32 db_time = fields[3].GetUInt32();
- bool needSend = fields[4].GetBool();
+ uint32 spell_id = fields[0].Get<uint32>();
+ uint16 category = fields[1].Get<uint16>();
+ uint32 item_id = fields[2].Get<uint32>();
+ uint32 db_time = fields[3].Get<uint32>();
+ bool needSend = fields[4].Get<bool>();
if (!sSpellMgr->GetSpellInfo(spell_id))
{
@@ -3544,7 +3544,7 @@ void Player::_LoadSpellCooldowns(PreparedQueryResult result)
void Player::_SaveSpellCooldowns(CharacterDatabaseTransaction trans, bool logout)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SPELL_COOLDOWN);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
time_t curTime = GameTime::GetGameTime().count();
@@ -3939,7 +3939,7 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_COD_ITEM_MAIL);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
PreparedQueryResult resultMail = CharacterDatabase.Query(stmt);
if (resultMail)
@@ -3947,7 +3947,7 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
std::unordered_map<uint32, std::vector<Item*>> itemsByMail;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAILITEMS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
PreparedQueryResult resultItems = CharacterDatabase.Query(stmt);
if (resultItems)
@@ -3955,7 +3955,7 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
do
{
Field* fields = resultItems->Fetch();
- uint32 mailId = fields[14].GetUInt32();
+ uint32 mailId = fields[14].Get<uint32>();
if (Item* mailItem = _LoadMailedItem(playerGuid, nullptr, mailId, nullptr, fields))
{
itemsByMail[mailId].push_back(mailItem);
@@ -3967,19 +3967,19 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
{
Field* mailFields = resultMail->Fetch();
- uint32 mail_id = mailFields[0].GetUInt32();
- uint8 mailType = mailFields[1].GetUInt8();
- uint16 mailTemplateId = mailFields[2].GetUInt16();
- uint32 sender = mailFields[3].GetUInt32();
- std::string subject = mailFields[4].GetString();
- std::string body = mailFields[5].GetString();
- uint32 money = mailFields[6].GetUInt32();
- bool has_items = mailFields[7].GetBool();
+ uint32 mail_id = mailFields[0].Get<uint32>();
+ uint8 mailType = mailFields[1].Get<uint8>();
+ uint16 mailTemplateId = mailFields[2].Get<uint16>();
+ uint32 sender = mailFields[3].Get<uint32>();
+ std::string subject = mailFields[4].Get<std::string>();
+ std::string body = mailFields[5].Get<std::string>();
+ uint32 money = mailFields[6].Get<uint32>();
+ bool has_items = mailFields[7].Get<bool>();
// We can return mail now
// So firstly delete the old one
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, mail_id);
+ stmt->SetData(0, mail_id);
trans->Append(stmt);
// Mail is not from player
@@ -3988,7 +3988,7 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
if (has_items)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, mail_id);
+ stmt->SetData(0, mail_id);
trans->Append(stmt);
}
continue;
@@ -4011,7 +4011,7 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, mail_id);
+ stmt->SetData(0, mail_id);
trans->Append(stmt);
uint32 pl_account = sCharacterCache->GetCharacterAccountIdByGuid(ObjectGuid(HighGuid::Player, lowGuid));
@@ -4023,28 +4023,28 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
// Unsummon and delete for pets in world is not required: player deleted from CLI or character list with not loaded pet.
// NOW we can finally clear other DB data related to character
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_PET_IDS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
PreparedQueryResult resultPets = CharacterDatabase.Query(stmt);
if (resultPets)
{
do
{
- ObjectGuid::LowType petguidlow = (*resultPets)[0].GetUInt32();
+ ObjectGuid::LowType petguidlow = (*resultPets)[0].Get<uint32>();
Pet::DeleteFromDB(petguidlow);
} while (resultPets->NextRow());
}
// Delete char from social list of online chars
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_SOCIAL);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
PreparedQueryResult resultFriends = CharacterDatabase.Query(stmt);
if (resultFriends)
{
do
{
- if (Player* pFriend = ObjectAccessor::FindPlayerByLowGUID((*resultFriends)[0].GetUInt32()))
+ if (Player* pFriend = ObjectAccessor::FindPlayerByLowGUID((*resultFriends)[0].Get<uint32>()))
{
pFriend->GetSocial()->RemoveFromSocialList(playerGuid, SOCIAL_FLAG_ALL);
sSocialMgr->SendFriendStatus(pFriend, FRIEND_REMOVED, playerGuid, false);
@@ -4053,157 +4053,157 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHARACTER);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_ACCOUNT_DATA);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_DECLINED_NAME);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACTION);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_AURA);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_GIFT);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_HOMEBIND);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INSTANCE);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS_REWARDED);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_REPUTATION);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SPELL);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SPELL_COOLDOWN);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
if (sWorld->getBoolConfig(CONFIG_DELETE_CHARACTER_TICKET_TRACE))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_PLAYER_GM_TICKETS_ON_CHAR_DELETION);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
}
else
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_GM_TICKETS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE_BY_OWNER);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SOCIAL_BY_FRIEND);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SOCIAL_BY_GUID);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEMS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_BY_OWNER);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_DECLINEDNAME_BY_OWNER);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENTS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_EQUIPMENTSETS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_EVENTLOG_BY_PLAYER);
- stmt->setUInt32(0, lowGuid);
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, lowGuid);
+ stmt->SetData(1, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_EVENTLOG_BY_PLAYER);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_ENTRY_POINT);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_GLYPHS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_DAILY_CHAR);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_WEEKLY_CHAR);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_MONTHLY_CHAR);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_SEASONAL_CHAR);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_TALENT);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SKILLS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SETTINGS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
Corpse::DeleteFromDB(playerGuid, trans);
@@ -4218,7 +4218,7 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_DELETE_INFO);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
CharacterDatabase.Execute(stmt);
break;
@@ -4253,7 +4253,7 @@ void Player::DeleteOldCharacters(uint32 keepDays)
LOG_INFO("server.loading", " ");
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_OLD_CHARS);
- stmt->setUInt32(0, uint32(GameTime::GetGameTime().count() - time_t(keepDays * DAY)));
+ stmt->SetData(0, uint32(GameTime::GetGameTime().count() - time_t(keepDays * DAY)));
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result)
@@ -4262,7 +4262,7 @@ void Player::DeleteOldCharacters(uint32 keepDays)
do
{
Field* fields = result->Fetch();
- Player::DeleteFromDB(fields[0].GetUInt32(), fields[1].GetUInt32(), true, true);
+ Player::DeleteFromDB(fields[0].Get<uint32>(), fields[1].Get<uint32>(), true, true);
} while (result->NextRow());
}
}
@@ -4458,8 +4458,8 @@ void Player::OfflineResurrect(ObjectGuid const guid, CharacterDatabaseTransactio
{
Corpse::DeleteFromDB(guid, trans);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(AT_LOGIN_RESURRECT));
- stmt->setUInt64(1, guid.GetCounter());
+ stmt->SetData(0, uint16(AT_LOGIN_RESURRECT));
+ stmt->SetData(1, guid.GetCounter());
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
@@ -4569,7 +4569,7 @@ void Player::SpawnCorpseBones(bool triggerSave /*= true*/)
// pussywizard: update only ghost flag instead of whole character table entry! data integrity is crucial
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_REMOVE_GHOST);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
_SaveAuras(trans, false);
@@ -6130,8 +6130,8 @@ void Player::ModifyHonorPoints(int32 value, CharacterDatabaseTransaction trans)
if (trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_HONOR_POINTS);
- stmt->setUInt32(0, newValue);
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, newValue);
+ stmt->SetData(1, GetGUID().GetCounter());
trans->Append(stmt);
}
}
@@ -6146,8 +6146,8 @@ void Player::ModifyArenaPoints(int32 value, CharacterDatabaseTransaction trans)
if (trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_ARENA_POINTS);
- stmt->setUInt32(0, newValue);
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, newValue);
+ stmt->SetData(1, GetGUID().GetCounter());
trans->Append(stmt);
}
}
@@ -6155,14 +6155,14 @@ void Player::ModifyArenaPoints(int32 value, CharacterDatabaseTransaction trans)
uint32 Player::GetArenaTeamIdFromDB(ObjectGuid guid, uint8 type)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ARENA_TEAM_ID_BY_PLAYER_GUID);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt8(1, type);
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, type);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
return 0;
- uint32 id = (*result)[0].GetUInt32();
+ uint32 id = (*result)[0].Get<uint32>();
return id;
}
@@ -6171,20 +6171,20 @@ uint32 Player::GetZoneIdFromDB(ObjectGuid guid)
ObjectGuid::LowType guidLow = guid.GetCounter();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_ZONE);
- stmt->setUInt32(0, guidLow);
+ stmt->SetData(0, guidLow);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
return 0;
Field* fields = result->Fetch();
- uint32 zone = fields[0].GetUInt16();
+ uint32 zone = fields[0].Get<uint16>();
if (!zone)
{
// stored zone is zero, use generic and slow zone detection
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_POSITION_XYZ);
- stmt->setUInt32(0, guidLow);
+ stmt->SetData(0, guidLow);
PreparedQueryResult posResult = CharacterDatabase.Query(stmt);
if (!posResult)
@@ -6193,10 +6193,10 @@ uint32 Player::GetZoneIdFromDB(ObjectGuid guid)
}
fields = posResult->Fetch();
- uint32 map = fields[0].GetUInt16();
- float posx = fields[1].GetFloat();
- float posy = fields[2].GetFloat();
- float posz = fields[3].GetFloat();
+ uint32 map = fields[0].Get<uint16>();
+ float posx = fields[1].Get<float>();
+ float posy = fields[2].Get<float>();
+ float posz = fields[3].Get<float>();
if (!sMapStore.LookupEntry(map))
return 0;
@@ -6207,8 +6207,8 @@ uint32 Player::GetZoneIdFromDB(ObjectGuid guid)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ZONE);
- stmt->setUInt16(0, uint16(zone));
- stmt->setUInt32(1, guidLow);
+ stmt->SetData(0, uint16(zone));
+ stmt->SetData(1, guidLow);
CharacterDatabase.Execute(stmt);
}
@@ -8917,9 +8917,9 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
{
// Handle removing pet while it is in "temporarily unsummoned" state, for example on mount
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PET_SAVE_NOT_IN_SLOT);
- stmt->setUInt32(1, GetGUID().GetCounter());
- stmt->setUInt32(2, m_petStable->CurrentPet->PetNumber);
+ stmt->SetData(0, PET_SAVE_NOT_IN_SLOT);
+ stmt->SetData(1, GetGUID().GetCounter());
+ stmt->SetData(2, m_petStable->CurrentPet->PetNumber);
CharacterDatabase.Execute(stmt);
m_petStable->UnslottedPets.push_back(std::move(*m_petStable->CurrentPet));
@@ -9802,14 +9802,14 @@ void Player::RemovePetitionsAndSigns(ObjectGuid guid, uint32 type)
if (type == 10)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ALL_PETITION_SIGNATURES);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
else
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt8(1, uint8(type));
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, uint8(type));
CharacterDatabase.Execute(stmt);
}
@@ -9817,11 +9817,11 @@ void Player::RemovePetitionsAndSigns(ObjectGuid guid, uint32 type)
if (type == 10)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_BY_OWNER);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
trans->Append(stmt);
// xinef: clear petition store
@@ -9830,13 +9830,13 @@ void Player::RemovePetitionsAndSigns(ObjectGuid guid, uint32 type)
else
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_BY_OWNER_AND_TYPE);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt8(1, uint8(type));
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, uint8(type));
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER_AND_TYPE);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt8(1, uint8(type));
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, uint8(type));
trans->Append(stmt);
// xinef: clear petition store
@@ -9849,7 +9849,7 @@ void Player::LeaveAllArenaTeams(ObjectGuid guid)
{
// xinef: sync query
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PLAYER_ARENA_TEAMS);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
@@ -9858,7 +9858,7 @@ void Player::LeaveAllArenaTeams(ObjectGuid guid)
do
{
Field* fields = result->Fetch();
- uint32 arenaTeamId = fields[0].GetUInt32();
+ uint32 arenaTeamId = fields[0].Get<uint32>();
if (arenaTeamId != 0)
{
ArenaTeam* arenaTeam = sArenaTeamMgr->GetArenaTeamById(arenaTeamId);
@@ -10990,8 +10990,8 @@ void Player::LeaveBattleground(Battleground* bg)
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_TRACK_DESERTERS))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_DESERTER_TRACK);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt8(1, BG_DESERTION_TYPE_LEAVE_BG);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, BG_DESERTION_TYPE_LEAVE_BG);
CharacterDatabase.Execute(stmt);
}
sScriptMgr->OnBattlegroundDesertion(this, BG_DESERTION_TYPE_LEAVE_BG);
@@ -13170,7 +13170,7 @@ void Player::learnSpellHighRank(uint32 spellid)
void Player::_LoadSkills(PreparedQueryResult result)
{
// 0 1 2
- // SetPQuery(PLAYER_LOGIN_QUERY_LOADSKILLS, "SELECT skill, value, max FROM character_skills WHERE guid = '%u'", m_guid.GetCounter());
+ // SetQuery(PLAYER_LOGIN_QUERY_LOADSKILLS, "SELECT skill, value, max FROM character_skills WHERE guid = '{}'", m_guid.GetCounter());
uint32 count = 0;
std::unordered_map<uint32, uint32> loadedSkillValues;
@@ -13179,9 +13179,9 @@ void Player::_LoadSkills(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- uint16 skill = fields[0].GetUInt16();
- uint16 value = fields[1].GetUInt16();
- uint16 max = fields[2].GetUInt16();
+ uint16 skill = fields[0].Get<uint16>();
+ uint16 value = fields[1].Get<uint16>();
+ uint16 max = fields[2].Get<uint16>();
SkillRaceClassInfoEntry const* rcEntry = GetSkillRaceClassInfo(skill, getRace(), getClass());
if (!rcEntry)
@@ -13211,8 +13211,8 @@ void Player::_LoadSkills(PreparedQueryResult result)
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHARACTER_SKILL);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt16(1, skill);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, skill);
CharacterDatabase.Execute(stmt);
@@ -14018,35 +14018,35 @@ void Player::_SaveEquipmentSets(CharacterDatabaseTransaction trans)
break; // nothing do
case EQUIPMENT_SET_CHANGED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_EQUIP_SET);
- stmt->setString(j++, eqset.Name.c_str());
- stmt->setString(j++, eqset.IconName.c_str());
- stmt->setUInt32(j++, eqset.IgnoreMask);
+ stmt->SetData(j++, eqset.Name.c_str());
+ stmt->SetData(j++, eqset.IconName.c_str());
+ stmt->SetData(j++, eqset.IgnoreMask);
for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i)
- stmt->setUInt32(j++, eqset.Items[i].GetCounter());
- stmt->setUInt32(j++, GetGUID().GetCounter());
- stmt->setUInt64(j++, eqset.Guid);
- stmt->setUInt32(j, index);
+ stmt->SetData(j++, eqset.Items[i].GetCounter());
+ stmt->SetData(j++, GetGUID().GetCounter());
+ stmt->SetData(j++, eqset.Guid);
+ stmt->SetData(j, index);
trans->Append(stmt);
eqset.state = EQUIPMENT_SET_UNCHANGED;
++itr;
break;
case EQUIPMENT_SET_NEW:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_EQUIP_SET);
- stmt->setUInt32(j++, GetGUID().GetCounter());
- stmt->setUInt64(j++, eqset.Guid);
- stmt->setUInt32(j++, index);
- stmt->setString(j++, eqset.Name.c_str());
- stmt->setString(j++, eqset.IconName.c_str());
- stmt->setUInt32(j++, eqset.IgnoreMask);
+ stmt->SetData(j++, GetGUID().GetCounter());
+ stmt->SetData(j++, eqset.Guid);
+ stmt->SetData(j++, index);
+ stmt->SetData(j++, eqset.Name.c_str());
+ stmt->SetData(j++, eqset.IconName.c_str());
+ stmt->SetData(j++, eqset.IgnoreMask);
for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i)
- stmt->setUInt32(j++, eqset.Items[i].GetCounter());
+ stmt->SetData(j++, eqset.Items[i].GetCounter());
trans->Append(stmt);
eqset.state = EQUIPMENT_SET_UNCHANGED;
++itr;
break;
case EQUIPMENT_SET_DELETED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_EQUIP_SET);
- stmt->setUInt64(0, eqset.Guid);
+ stmt->SetData(0, eqset.Guid);
trans->Append(stmt);
m_EquipmentSets.erase(itr++);
break;
@@ -14062,16 +14062,16 @@ void Player::_SaveEntryPoint(CharacterDatabaseTransaction trans)
return;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_ENTRY_POINT);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PLAYER_ENTRY_POINT);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setFloat (1, m_entryPointData.joinPos.GetPositionX());
- stmt->setFloat (2, m_entryPointData.joinPos.GetPositionY());
- stmt->setFloat (3, m_entryPointData.joinPos.GetPositionZ());
- stmt->setFloat (4, m_entryPointData.joinPos.GetOrientation());
- stmt->setUInt32(5, m_entryPointData.joinPos.GetMapId());
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData (1, m_entryPointData.joinPos.GetPositionX());
+ stmt->SetData (2, m_entryPointData.joinPos.GetPositionY());
+ stmt->SetData (3, m_entryPointData.joinPos.GetPositionZ());
+ stmt->SetData (4, m_entryPointData.joinPos.GetOrientation());
+ stmt->SetData(5, m_entryPointData.joinPos.GetMapId());
std::ostringstream ss("");
if (m_entryPointData.HasTaxiPath())
@@ -14080,8 +14080,8 @@ void Player::_SaveEntryPoint(CharacterDatabaseTransaction trans)
ss << m_entryPointData.taxiPath[i] << ' '; // xinef: segment is stored as last point
}
- stmt->setString(6, ss.str());
- stmt->setUInt32(7, m_entryPointData.mountSpell);
+ stmt->SetData(6, ss.str());
+ stmt->SetData(7, m_entryPointData.mountSpell);
trans->Append(stmt);
}
@@ -14108,8 +14108,8 @@ void Player::RemoveAtLoginFlag(AtLoginFlags flags, bool persist /*= false*/)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_REM_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(flags));
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, uint16(flags));
+ stmt->SetData(1, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -14156,34 +14156,34 @@ void Player::_SaveCharacter(bool create, CharacterDatabaseTransaction trans)
//! Insert query
//! TO DO: Filter out more redundant fields that can take their default value at player create
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER);
- stmt->setUInt32(index++, GetGUID().GetCounter());
- stmt->setUInt32(index++, GetSession()->GetAccountId());
- stmt->setString(index++, GetName());
- stmt->setUInt8(index++, getRace(true));
- stmt->setUInt8(index++, getClass());
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_3, 0)); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
- stmt->setUInt8(index++, getLevel());
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_XP));
- stmt->setUInt32(index++, GetMoney());
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 0));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 1));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 2));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 3));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_2, 0));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_2, 2));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_2, 3));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FLAGS));
- stmt->setUInt16(index++, (uint16)GetMapId());
- stmt->setUInt32(index++, (uint32)GetInstanceId());
- stmt->setUInt8(index++, (uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4));
- stmt->setFloat(index++, finiteAlways(GetPositionX()));
- stmt->setFloat(index++, finiteAlways(GetPositionY()));
- stmt->setFloat(index++, finiteAlways(GetPositionZ()));
- stmt->setFloat(index++, finiteAlways(GetOrientation()));
- stmt->setFloat(index++, finiteAlways(GetTransOffsetX()));
- stmt->setFloat(index++, finiteAlways(GetTransOffsetY()));
- stmt->setFloat(index++, finiteAlways(GetTransOffsetZ()));
- stmt->setFloat(index++, finiteAlways(GetTransOffsetO()));
+ stmt->SetData(index++, GetGUID().GetCounter());
+ stmt->SetData(index++, GetSession()->GetAccountId());
+ stmt->SetData(index++, GetName());
+ stmt->SetData(index++, getRace(true));
+ stmt->SetData(index++, getClass());
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_3, 0)); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
+ stmt->SetData(index++, getLevel());
+ stmt->SetData(index++, GetUInt32Value(PLAYER_XP));
+ stmt->SetData(index++, GetMoney());
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 0));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 1));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 2));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 3));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_2, 0));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_2, 2));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_2, 3));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FLAGS));
+ stmt->SetData(index++, (uint16)GetMapId());
+ stmt->SetData(index++, (uint32)GetInstanceId());
+ stmt->SetData(index++, (uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4));
+ stmt->SetData(index++, finiteAlways(GetPositionX()));
+ stmt->SetData(index++, finiteAlways(GetPositionY()));
+ stmt->SetData(index++, finiteAlways(GetPositionZ()));
+ stmt->SetData(index++, finiteAlways(GetOrientation()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetX()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetY()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetZ()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetO()));
int32 lowGuidOrSpawnId = 0;
if (Transport* transport = GetTransport())
@@ -14193,56 +14193,56 @@ void Player::_SaveCharacter(bool create, CharacterDatabaseTransaction trans)
else if (transport->IsStaticTransport())
lowGuidOrSpawnId = -static_cast<int32>(transport->GetSpawnId());
}
- stmt->setInt32(index++, lowGuidOrSpawnId);
+ stmt->SetData(index++, lowGuidOrSpawnId);
std::ostringstream ss;
ss << m_taxi;
- stmt->setString(index++, ss.str());
- stmt->setUInt8(index++, m_cinematic);
- stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_TOTAL]);
- stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_LEVEL]);
- stmt->setFloat(index++, finiteAlways(_restBonus));
- stmt->setUInt32(index++, uint32(GameTime::GetGameTime().count()));
- stmt->setUInt8(index++, (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0));
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, m_cinematic);
+ stmt->SetData(index++, m_Played_time[PLAYED_TIME_TOTAL]);
+ stmt->SetData(index++, m_Played_time[PLAYED_TIME_LEVEL]);
+ stmt->SetData(index++, finiteAlways(_restBonus));
+ stmt->SetData(index++, uint32(GameTime::GetGameTime().count()));
+ stmt->SetData(index++, (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0));
//save, far from tavern/city
//save, but in tavern/city
- stmt->setUInt32(index++, m_resetTalentsCost);
- stmt->setUInt32(index++, uint32(m_resetTalentsTime));
- stmt->setUInt16(index++, (uint16)m_ExtraFlags);
- stmt->setUInt8(index++, m_petStable ? m_petStable->MaxStabledPets : 0);
- stmt->setUInt16(index++, (uint16)m_atLoginFlags);
- stmt->setUInt16(index++, GetZoneId());
- stmt->setUInt32(index++, uint32(m_deathExpireTime));
+ stmt->SetData(index++, m_resetTalentsCost);
+ stmt->SetData(index++, uint32(m_resetTalentsTime));
+ stmt->SetData(index++, (uint16)m_ExtraFlags);
+ stmt->SetData(index++, m_petStable ? m_petStable->MaxStabledPets : 0);
+ stmt->SetData(index++, (uint16)m_atLoginFlags);
+ stmt->SetData(index++, GetZoneId());
+ stmt->SetData(index++, uint32(m_deathExpireTime));
ss.str("");
ss << m_taxi.SaveTaxiDestinationsToString();
- stmt->setString(index++, ss.str());
- stmt->setUInt32(index++, GetArenaPoints());
- stmt->setUInt32(index++, GetHonorPoints());
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS));
- stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0));
- stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE));
- stmt->setUInt64(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX));
- stmt->setUInt8(index++, GetDrunkValue());
- stmt->setUInt32(index++, GetHealth());
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, GetArenaPoints());
+ stmt->SetData(index++, GetHonorPoints());
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS));
+ stmt->SetData(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0));
+ stmt->SetData(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE));
+ stmt->SetData(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX));
+ stmt->SetData(index++, GetDrunkValue());
+ stmt->SetData(index++, GetHealth());
for (uint32 i = 0; i < MAX_POWERS; ++i)
- stmt->setUInt32(index++, GetPower(Powers(i)));
+ stmt->SetData(index++, GetPower(Powers(i)));
- stmt->setUInt32(index++, GetSession()->GetLatency());
+ stmt->SetData(index++, GetSession()->GetLatency());
- stmt->setUInt8(index++, m_specsCount);
- stmt->setUInt8(index++, m_activeSpec);
+ stmt->SetData(index++, m_specsCount);
+ stmt->SetData(index++, m_activeSpec);
ss.str("");
for (uint32 i = 0; i < PLAYER_EXPLORED_ZONES_SIZE; ++i)
ss << GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + i) << ' ';
- stmt->setString(index++, ss.str());
+ stmt->SetData(index++, ss.str());
ss.str("");
// cache equipment...
@@ -14259,37 +14259,37 @@ void Player::_SaveCharacter(bool create, CharacterDatabaseTransaction trans)
ss << " 0 ";
}
- stmt->setString(index++, ss.str());
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_AMMO_ID));
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, GetUInt32Value(PLAYER_AMMO_ID));
ss.str("");
for (uint32 i = 0; i < KNOWN_TITLES_SIZE * 2; ++i)
ss << GetUInt32Value(PLAYER__FIELD_KNOWN_TITLES + i) << ' ';
- stmt->setString(index++, ss.str());
- stmt->setUInt8(index++, GetByteValue(PLAYER_FIELD_BYTES, 2));
- stmt->setUInt32(index++, m_grantableLevels);
- stmt->setUInt32(index++, _innTriggerId);
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, GetByteValue(PLAYER_FIELD_BYTES, 2));
+ stmt->SetData(index++, m_grantableLevels);
+ stmt->SetData(index++, _innTriggerId);
}
else
{
// Update query
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER);
- stmt->setString(index++, GetName());
- stmt->setUInt8(index++, getRace(true));
- stmt->setUInt8(index++, getClass());
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_3, 0)); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
- stmt->setUInt8(index++, getLevel());
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_XP));
- stmt->setUInt32(index++, GetMoney());
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 0));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 1));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 2));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES, 3));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_2, 0));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_2, 2));
- stmt->setUInt8(index++, GetByteValue(PLAYER_BYTES_2, 3));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FLAGS));
+ stmt->SetData(index++, GetName());
+ stmt->SetData(index++, getRace(true));
+ stmt->SetData(index++, getClass());
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_3, 0)); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
+ stmt->SetData(index++, getLevel());
+ stmt->SetData(index++, GetUInt32Value(PLAYER_XP));
+ stmt->SetData(index++, GetMoney());
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 0));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 1));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 2));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES, 3));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_2, 0));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_2, 2));
+ stmt->SetData(index++, GetByteValue(PLAYER_BYTES_2, 3));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FLAGS));
if (!IsBeingTeleported())
{
@@ -14300,29 +14300,29 @@ void Player::_SaveCharacter(bool create, CharacterDatabaseTransaction trans)
if (m->IsNonRaidDungeon()) dd = m->GetDifficulty();
else rd = m->GetDifficulty();
}
- stmt->setUInt16(index++, (uint16)GetMapId());
- stmt->setUInt32(index++, (uint32)GetInstanceId());
- stmt->setUInt8(index++, (uint8(dd) | uint8(rd) << 4));
- stmt->setFloat(index++, finiteAlways(GetPositionX()));
- stmt->setFloat(index++, finiteAlways(GetPositionY()));
- stmt->setFloat(index++, finiteAlways(GetPositionZ()));
- stmt->setFloat(index++, finiteAlways(GetOrientation()));
+ stmt->SetData(index++, (uint16)GetMapId());
+ stmt->SetData(index++, (uint32)GetInstanceId());
+ stmt->SetData(index++, (uint8(dd) | uint8(rd) << 4));
+ stmt->SetData(index++, finiteAlways(GetPositionX()));
+ stmt->SetData(index++, finiteAlways(GetPositionY()));
+ stmt->SetData(index++, finiteAlways(GetPositionZ()));
+ stmt->SetData(index++, finiteAlways(GetOrientation()));
}
else
{
- stmt->setUInt16(index++, (uint16)GetTeleportDest().GetMapId());
- stmt->setUInt32(index++, (uint32)0);
- stmt->setUInt8(index++, (uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4));
- stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetPositionX()));
- stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetPositionY()));
- stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetPositionZ()));
- stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetOrientation()));
+ stmt->SetData(index++, (uint16)GetTeleportDest().GetMapId());
+ stmt->SetData(index++, (uint32)0);
+ stmt->SetData(index++, (uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4));
+ stmt->SetData(index++, finiteAlways(GetTeleportDest().GetPositionX()));
+ stmt->SetData(index++, finiteAlways(GetTeleportDest().GetPositionY()));
+ stmt->SetData(index++, finiteAlways(GetTeleportDest().GetPositionZ()));
+ stmt->SetData(index++, finiteAlways(GetTeleportDest().GetOrientation()));
}
- stmt->setFloat(index++, finiteAlways(GetTransOffsetX()));
- stmt->setFloat(index++, finiteAlways(GetTransOffsetY()));
- stmt->setFloat(index++, finiteAlways(GetTransOffsetZ()));
- stmt->setFloat(index++, finiteAlways(GetTransOffsetO()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetX()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetY()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetZ()));
+ stmt->SetData(index++, finiteAlways(GetTransOffsetO()));
int32 lowGuidOrSpawnId = 0;
if (Transport* transport = GetTransport())
@@ -14332,56 +14332,56 @@ void Player::_SaveCharacter(bool create, CharacterDatabaseTransaction trans)
else if (transport->IsStaticTransport())
lowGuidOrSpawnId = -static_cast<int32>(transport->GetSpawnId());
}
- stmt->setInt32(index++, lowGuidOrSpawnId);
+ stmt->SetData(index++, lowGuidOrSpawnId);
std::ostringstream ss;
ss << m_taxi;
- stmt->setString(index++, ss.str());
- stmt->setUInt8(index++, m_cinematic);
- stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_TOTAL]);
- stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_LEVEL]);
- stmt->setFloat(index++, finiteAlways(_restBonus));
- stmt->setUInt32(index++, uint32(GameTime::GetGameTime().count()));
- stmt->setUInt8(index++, (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0));
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, m_cinematic);
+ stmt->SetData(index++, m_Played_time[PLAYED_TIME_TOTAL]);
+ stmt->SetData(index++, m_Played_time[PLAYED_TIME_LEVEL]);
+ stmt->SetData(index++, finiteAlways(_restBonus));
+ stmt->SetData(index++, uint32(GameTime::GetGameTime().count()));
+ stmt->SetData(index++, (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0));
//save, far from tavern/city
//save, but in tavern/city
- stmt->setUInt32(index++, m_resetTalentsCost);
- stmt->setUInt32(index++, uint32(m_resetTalentsTime));
- stmt->setUInt16(index++, (uint16)m_ExtraFlags);
- stmt->setUInt8(index++, m_petStable ? m_petStable->MaxStabledPets : 0);
- stmt->setUInt16(index++, (uint16)m_atLoginFlags);
- stmt->setUInt16(index++, GetZoneId());
- stmt->setUInt32(index++, uint32(m_deathExpireTime));
+ stmt->SetData(index++, m_resetTalentsCost);
+ stmt->SetData(index++, uint32(m_resetTalentsTime));
+ stmt->SetData(index++, (uint16)m_ExtraFlags);
+ stmt->SetData(index++, m_petStable ? m_petStable->MaxStabledPets : 0);
+ stmt->SetData(index++, (uint16)m_atLoginFlags);
+ stmt->SetData(index++, GetZoneId());
+ stmt->SetData(index++, uint32(m_deathExpireTime));
ss.str("");
ss << m_taxi.SaveTaxiDestinationsToString();
- stmt->setString(index++, ss.str());
- stmt->setUInt32(index++, GetArenaPoints());
- stmt->setUInt32(index++, GetHonorPoints());
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS));
- stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0));
- stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE));
- stmt->setUInt64(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES));
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX));
- stmt->setUInt8(index++, GetDrunkValue());
- stmt->setUInt32(index++, GetHealth());
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, GetArenaPoints());
+ stmt->SetData(index++, GetHonorPoints());
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS));
+ stmt->SetData(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0));
+ stmt->SetData(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE));
+ stmt->SetData(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES));
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX));
+ stmt->SetData(index++, GetDrunkValue());
+ stmt->SetData(index++, GetHealth());
for (uint32 i = 0; i < MAX_POWERS; ++i)
- stmt->setUInt32(index++, GetPower(Powers(i)));
+ stmt->SetData(index++, GetPower(Powers(i)));
- stmt->setUInt32(index++, GetSession()->GetLatency());
+ stmt->SetData(index++, GetSession()->GetLatency());
- stmt->setUInt8(index++, m_specsCount);
- stmt->setUInt8(index++, m_activeSpec);
+ stmt->SetData(index++, m_specsCount);
+ stmt->SetData(index++, m_activeSpec);
ss.str("");
for (uint32 i = 0; i < PLAYER_EXPLORED_ZONES_SIZE; ++i)
ss << GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + i) << ' ';
- stmt->setString(index++, ss.str());
+ stmt->SetData(index++, ss.str());
ss.str("");
// cache equipment...
@@ -14398,21 +14398,21 @@ void Player::_SaveCharacter(bool create, CharacterDatabaseTransaction trans)
ss << " 0 ";
}
- stmt->setString(index++, ss.str());
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_AMMO_ID));
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, GetUInt32Value(PLAYER_AMMO_ID));
ss.str("");
for (uint32 i = 0; i < KNOWN_TITLES_SIZE * 2; ++i)
ss << GetUInt32Value(PLAYER__FIELD_KNOWN_TITLES + i) << ' ';
- stmt->setString(index++, ss.str());
- stmt->setUInt8(index++, GetByteValue(PLAYER_FIELD_BYTES, 2));
- stmt->setUInt32(index++, m_grantableLevels);
- stmt->setUInt32(index++, _innTriggerId);
+ stmt->SetData(index++, ss.str());
+ stmt->SetData(index++, GetByteValue(PLAYER_FIELD_BYTES, 2));
+ stmt->SetData(index++, m_grantableLevels);
+ stmt->SetData(index++, _innTriggerId);
- stmt->setUInt8(index++, IsInWorld() && !GetSession()->PlayerLogout() ? 1 : 0);
+ stmt->SetData(index++, IsInWorld() && !GetSession()->PlayerLogout() ? 1 : 0);
// Index
- stmt->setUInt32(index++, GetGUID().GetCounter());
+ stmt->SetData(index++, GetGUID().GetCounter());
}
trans->Append(stmt);
@@ -14428,16 +14428,16 @@ void Player::_LoadGlyphs(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- uint8 spec = fields[0].GetUInt8();
+ uint8 spec = fields[0].Get<uint8>();
if (spec >= m_specsCount)
continue;
- m_Glyphs[spec][0] = fields[1].GetUInt16();
- m_Glyphs[spec][1] = fields[2].GetUInt16();
- m_Glyphs[spec][2] = fields[3].GetUInt16();
- m_Glyphs[spec][3] = fields[4].GetUInt16();
- m_Glyphs[spec][4] = fields[5].GetUInt16();
- m_Glyphs[spec][5] = fields[6].GetUInt16();
+ m_Glyphs[spec][0] = fields[1].Get<uint16>();
+ m_Glyphs[spec][1] = fields[2].Get<uint16>();
+ m_Glyphs[spec][2] = fields[3].Get<uint16>();
+ m_Glyphs[spec][3] = fields[4].Get<uint16>();
+ m_Glyphs[spec][4] = fields[5].Get<uint16>();
+ m_Glyphs[spec][5] = fields[6].Get<uint16>();
} while (result->NextRow());
}
@@ -14447,7 +14447,7 @@ void Player::_SaveGlyphs(CharacterDatabaseTransaction trans)
return;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_GLYPHS);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
for (uint8 spec = 0; spec < m_specsCount; ++spec)
@@ -14455,11 +14455,11 @@ void Player::_SaveGlyphs(CharacterDatabaseTransaction trans)
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_GLYPHS);
- stmt->setUInt32(index++, GetGUID().GetCounter());
- stmt->setUInt8(index++, spec);
+ stmt->SetData(index++, GetGUID().GetCounter());
+ stmt->SetData(index++, spec);
for (uint8 i = 0; i < MAX_GLYPH_SLOT_INDEX; ++i)
- stmt->setUInt16(index++, uint16(m_Glyphs[spec][i]));
+ stmt->SetData(index++, uint16(m_Glyphs[spec][i]));
trans->Append(stmt);
}
@@ -14469,14 +14469,14 @@ void Player::_SaveGlyphs(CharacterDatabaseTransaction trans)
void Player::_LoadTalents(PreparedQueryResult result)
{
- // SetPQuery(PLAYER_LOGIN_QUERY_LOADTALENTS, "SELECT spell, specMask FROM character_talent WHERE guid = '%u'", m_guid.GetCounter());
+ // SetQuery(PLAYER_LOGIN_QUERY_LOADTALENTS, "SELECT spell, specMask FROM character_talent WHERE guid = '{}'", m_guid.GetCounter());
if (result)
{
do
{
// xinef: checked
- uint32 spellId = (*result)[0].GetUInt32();
- uint8 specMask = (*result)[1].GetUInt8();
+ uint32 spellId = (*result)[0].Get<uint32>();
+ uint8 specMask = (*result)[1].Get<uint8>();
addTalent(spellId, specMask, 0);
TalentSpellPos const* talentPos = GetTalentSpellPos(spellId);
ASSERT(talentPos);
@@ -14505,8 +14505,8 @@ void Player::_SaveTalents(CharacterDatabaseTransaction trans)
if (itr->second->State == PLAYERSPELL_REMOVED || itr->second->State == PLAYERSPELL_CHANGED)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_TALENT_BY_SPELL);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, itr->first);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, itr->first);
trans->Append(stmt);
}
@@ -14514,9 +14514,9 @@ void Player::_SaveTalents(CharacterDatabaseTransaction trans)
if (itr->second->State == PLAYERSPELL_NEW || itr->second->State == PLAYERSPELL_CHANGED)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_TALENT);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, itr->first);
- stmt->setUInt8(2, itr->second->specMask);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, itr->first);
+ stmt->SetData(2, itr->second->specMask);
trans->Append(stmt);
}
@@ -14687,8 +14687,8 @@ void Player::ActivateSpec(uint8 spec)
// load them asynchronously
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_ACTIONS_SPEC);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt8(1, m_activeSpec);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, m_activeSpec);
WorldSession* mySess = GetSession();
mySess->GetQueryProcessor().AddCallback(CharacterDatabase.AsyncQuery(stmt)
@@ -15162,7 +15162,7 @@ void Player::SetRandomWinner(bool isWinner)
if (m_IsBGRandomWinner)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_BATTLEGROUND_RANDOM);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
}
@@ -15228,7 +15228,7 @@ void Player::_LoadInstanceTimeRestrictions(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- _instanceResetTimes.insert(InstanceTimeMap::value_type(fields[0].GetUInt32(), fields[1].GetUInt64()));
+ _instanceResetTimes.insert(InstanceTimeMap::value_type(fields[0].Get<uint32>(), fields[1].Get<uint64>()));
} while (result->NextRow());
}
@@ -15238,7 +15238,7 @@ void Player::_LoadBrewOfTheMonth(PreparedQueryResult result)
if (result)
{
Field* fields = result->Fetch();
- lastEventId = fields[0].GetUInt32();
+ lastEventId = fields[0].Get<uint32>();
}
uint16 month = static_cast<uint16>(Acore::Time::GetMonth());
@@ -15261,8 +15261,8 @@ void Player::_LoadBrewOfTheMonth(PreparedQueryResult result)
// Update Event Id
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_BREW_OF_THE_MONTH);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, uint32(eventId));
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, uint32(eventId));
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -15293,22 +15293,22 @@ void Player::_LoadPetStable(uint8 petStableSlots, PreparedQueryResult result)
{
Field* fields = result->Fetch();
PetStable::PetInfo petInfo;
- petInfo.PetNumber = fields[0].GetUInt32();
- petInfo.CreatureId = fields[1].GetUInt32();
- petInfo.DisplayId = fields[2].GetUInt32();
- petInfo.Level = fields[3].GetUInt16();
- petInfo.Experience = fields[4].GetUInt32();
- petInfo.ReactState = ReactStates(fields[5].GetUInt8());
- PetSaveMode slot = PetSaveMode(fields[6].GetUInt8());
- petInfo.Name = fields[7].GetString();
- petInfo.WasRenamed = fields[8].GetBool();
- petInfo.Health = fields[9].GetUInt32();
- petInfo.Mana = fields[10].GetUInt32();
- petInfo.Happiness = fields[11].GetUInt32();
- petInfo.ActionBar = fields[12].GetString();
- petInfo.LastSaveTime = fields[13].GetUInt32();
- petInfo.CreatedBySpellId = fields[14].GetUInt32();
- petInfo.Type = PetType(fields[15].GetUInt8());
+ petInfo.PetNumber = fields[0].Get<uint32>();
+ petInfo.CreatureId = fields[1].Get<uint32>();
+ petInfo.DisplayId = fields[2].Get<uint32>();
+ petInfo.Level = fields[3].Get<uint16>();
+ petInfo.Experience = fields[4].Get<uint32>();
+ petInfo.ReactState = ReactStates(fields[5].Get<uint8>());
+ PetSaveMode slot = PetSaveMode(fields[6].Get<uint8>());
+ petInfo.Name = fields[7].Get<std::string>();
+ petInfo.WasRenamed = fields[8].Get<bool>();
+ petInfo.Health = fields[9].Get<uint32>();
+ petInfo.Mana = fields[10].Get<uint32>();
+ petInfo.Happiness = fields[11].Get<uint32>();
+ petInfo.ActionBar = fields[12].Get<std::string>();
+ petInfo.LastSaveTime = fields[13].Get<uint32>();
+ petInfo.CreatedBySpellId = fields[14].Get<uint32>();
+ petInfo.Type = PetType(fields[15].Get<uint8>());
if (slot == PET_SAVE_AS_CURRENT)
m_petStable->CurrentPet = std::move(petInfo);
@@ -15327,15 +15327,15 @@ void Player::_SaveInstanceTimeRestrictions(CharacterDatabaseTransaction trans)
return;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ACCOUNT_INSTANCE_LOCK_TIMES);
- stmt->setUInt32(0, GetSession()->GetAccountId());
+ stmt->SetData(0, GetSession()->GetAccountId());
trans->Append(stmt);
for (InstanceTimeMap::const_iterator itr = _instanceResetTimes.begin(); itr != _instanceResetTimes.end(); ++itr)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ACCOUNT_INSTANCE_LOCK_TIMES);
- stmt->setUInt32(0, GetSession()->GetAccountId());
- stmt->setUInt32(1, itr->first);
- stmt->setUInt64(2, itr->second);
+ stmt->SetData(0, GetSession()->GetAccountId());
+ stmt->SetData(1, itr->first);
+ stmt->SetData(2, itr->second);
trans->Append(stmt);
}
}
diff --git a/src/server/game/Entities/Player/PlayerMisc.cpp b/src/server/game/Entities/Player/PlayerMisc.cpp
index 0f5f08303a..e642ea61c2 100644
--- a/src/server/game/Entities/Player/PlayerMisc.cpp
+++ b/src/server/game/Entities/Player/PlayerMisc.cpp
@@ -75,13 +75,13 @@ void Player::SavePositionInDB(uint32 mapid, float x, float y, float z, float o,
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_POSITION);
- stmt->setFloat(0, x);
- stmt->setFloat(1, y);
- stmt->setFloat(2, z);
- stmt->setFloat(3, o);
- stmt->setUInt16(4, uint16(mapid));
- stmt->setUInt16(5, uint16(zone));
- stmt->setUInt32(6, guid.GetCounter());
+ stmt->SetData(0, x);
+ stmt->SetData(1, y);
+ stmt->SetData(2, z);
+ stmt->SetData(3, o);
+ stmt->SetData(4, uint16(mapid));
+ stmt->SetData(5, uint16(zone));
+ stmt->SetData(6, guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -90,13 +90,13 @@ void Player::SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGui
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_POSITION);
- stmt->setFloat(0, loc.GetPositionX());
- stmt->setFloat(1, loc.GetPositionY());
- stmt->setFloat(2, loc.GetPositionZ());
- stmt->setFloat(3, loc.GetOrientation());
- stmt->setUInt16(4, uint16(loc.GetMapId()));
- stmt->setUInt16(5, zoneId);
- stmt->setUInt32(6, guid.GetCounter());
+ stmt->SetData(0, loc.GetPositionX());
+ stmt->SetData(1, loc.GetPositionY());
+ stmt->SetData(2, loc.GetPositionZ());
+ stmt->SetData(3, loc.GetOrientation());
+ stmt->SetData(4, uint16(loc.GetMapId()));
+ stmt->SetData(5, zoneId);
+ stmt->SetData(6, guid.GetCounter());
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
@@ -104,13 +104,13 @@ void Player::SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGui
void Player::Customize(CharacterCustomizeInfo const* customizeInfo, CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GENDER_AND_APPEARANCE);
- stmt->setUInt8(0, customizeInfo->Gender);
- stmt->setUInt8(1, customizeInfo->Skin);
- stmt->setUInt8(2, customizeInfo->Face);
- stmt->setUInt8(3, customizeInfo->HairStyle);
- stmt->setUInt8(4, customizeInfo->HairColor);
- stmt->setUInt8(5, customizeInfo->FacialHair);
- stmt->setUInt32(6, customizeInfo->Guid.GetCounter());
+ stmt->SetData(0, customizeInfo->Gender);
+ stmt->SetData(1, customizeInfo->Skin);
+ stmt->SetData(2, customizeInfo->Face);
+ stmt->SetData(3, customizeInfo->HairStyle);
+ stmt->SetData(4, customizeInfo->HairColor);
+ stmt->SetData(5, customizeInfo->FacialHair);
+ stmt->SetData(6, customizeInfo->Guid.GetCounter());
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
diff --git a/src/server/game/Entities/Player/PlayerQuest.cpp b/src/server/game/Entities/Player/PlayerQuest.cpp
index c33c509a16..83380d507e 100644
--- a/src/server/game/Entities/Player/PlayerQuest.cpp
+++ b/src/server/game/Entities/Player/PlayerQuest.cpp
@@ -578,10 +578,10 @@ void Player::AddQuest(Quest const* quest, Object* questGiver)
{
// prepare Quest Tracker datas
auto stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_QUEST_TRACK);
- stmt->setUInt32(0, quest_id);
- stmt->setUInt32(1, GetGUID().GetCounter());
- stmt->setString(2, GitRevision::GetHash());
- stmt->setString(3, GitRevision::GetDate());
+ stmt->SetData(0, quest_id);
+ stmt->SetData(1, GetGUID().GetCounter());
+ stmt->SetData(2, GitRevision::GetHash());
+ stmt->SetData(3, GitRevision::GetDate());
// add to Quest Tracker
CharacterDatabase.Execute(stmt);
@@ -623,8 +623,8 @@ void Player::CompleteQuest(uint32 quest_id)
{
// prepare Quest Tracker datas
auto stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_QUEST_TRACK_COMPLETE_TIME);
- stmt->setUInt32(0, quest_id);
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, quest_id);
+ stmt->SetData(1, GetGUID().GetCounter());
// add to Quest Tracker
CharacterDatabase.Execute(stmt);
diff --git a/src/server/game/Entities/Player/PlayerSettings.cpp b/src/server/game/Entities/Player/PlayerSettings.cpp
index acd82dcd79..46130b1157 100644
--- a/src/server/game/Entities/Player/PlayerSettings.cpp
+++ b/src/server/game/Entities/Player/PlayerSettings.cpp
@@ -38,8 +38,8 @@ void Player::_LoadCharacterSettings(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- std::string source = fields[0].GetString();;
- std::string data = fields[1].GetString();
+ std::string source = fields[0].Get<std::string>();;
+ std::string data = fields[1].Get<std::string>();
std::vector<std::string_view> tokens = Acore::Tokenize(data, ' ', false);
@@ -98,9 +98,9 @@ void Player::_SavePlayerSettings(CharacterDatabaseTransaction trans)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHAR_SETTINGS);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setString(1, itr.first);
- stmt->setString(2, data.str());
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, itr.first);
+ stmt->SetData(2, data.str());
trans->Append(stmt);
}
}
diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp
index ff71718a9b..81f44f50d4 100644
--- a/src/server/game/Entities/Player/PlayerStorage.cpp
+++ b/src/server/game/Entities/Player/PlayerStorage.cpp
@@ -2589,8 +2589,8 @@ Item* Player::StoreNewItem(ItemPosCountVec const& dest, uint32 item, bool update
ss << ' ' << (*itr).GetCounter();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEM_BOP_TRADE);
- stmt->setUInt32(0, pItem->GetGUID().GetCounter());
- stmt->setString(1, ss.str());
+ stmt->SetData(0, pItem->GetGUID().GetCounter());
+ stmt->SetData(1, ss.str());
CharacterDatabase.Execute(stmt);
}
}
@@ -3061,7 +3061,7 @@ void Player::DestroyItem(uint8 bag, uint8 slot, bool update)
if (pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_WRAPPED))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GIFT);
- stmt->setUInt32(0, pItem->GetGUID().GetCounter());
+ stmt->SetData(0, pItem->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -4809,7 +4809,7 @@ void Player::_LoadDeclinedNames(PreparedQueryResult result)
delete m_declinedname;
m_declinedname = new DeclinedName;
for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
- m_declinedname->name[i] = (*result)[i].GetString();
+ m_declinedname->name[i] = (*result)[i].Get<std::string>();
}
void Player::_LoadArenaTeamInfo()
@@ -4845,7 +4845,7 @@ void Player::_LoadArenaTeamInfo()
void Player::_LoadEquipmentSets(PreparedQueryResult result)
{
- // SetPQuery(PLAYER_LOGIN_QUERY_LOADEQUIPMENTSETS, "SELECT setguid, setindex, name, iconname, item0, item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12, item13, item14, item15, item16, item17, item18 FROM character_equipmentsets WHERE guid = '%u' ORDER BY setindex", m_guid.GetCounter());
+ // SetQuery(PLAYER_LOGIN_QUERY_LOADEQUIPMENTSETS, "SELECT setguid, setindex, name, iconname, item0, item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12, item13, item14, item15, item16, item17, item18 FROM character_equipmentsets WHERE guid = '{}' ORDER BY setindex", m_guid.GetCounter());
if (!result)
return;
@@ -4855,15 +4855,15 @@ void Player::_LoadEquipmentSets(PreparedQueryResult result)
Field* fields = result->Fetch();
EquipmentSet eqSet;
- eqSet.Guid = fields[0].GetUInt64();
- uint8 index = fields[1].GetUInt8();
- eqSet.Name = fields[2].GetString();
- eqSet.IconName = fields[3].GetString();
- eqSet.IgnoreMask = fields[4].GetUInt32();
+ eqSet.Guid = fields[0].Get<uint64>();
+ uint8 index = fields[1].Get<uint8>();
+ eqSet.Name = fields[2].Get<std::string>();
+ eqSet.IconName = fields[3].Get<std::string>();
+ eqSet.IgnoreMask = fields[4].Get<uint32>();
eqSet.state = EQUIPMENT_SET_UNCHANGED;
for (uint32 i = 0; i < EQUIPMENT_SLOT_END; ++i)
- eqSet.Items[i] = ObjectGuid::Create<HighGuid::Item>(fields[5 + i].GetUInt32());
+ eqSet.Items[i] = ObjectGuid::Create<HighGuid::Item>(fields[5 + i].Get<uint32>());
m_EquipmentSets[index] = eqSet;
@@ -4880,13 +4880,13 @@ void Player::_LoadEntryPointData(PreparedQueryResult result)
return;
Field* fields = result->Fetch();
- m_entryPointData.joinPos = WorldLocation(fields[4].GetUInt32(), // Map
- fields[0].GetFloat(), // X
- fields[1].GetFloat(), // Y
- fields[2].GetFloat(), // Z
- fields[3].GetFloat()); // Orientation
+ m_entryPointData.joinPos = WorldLocation(fields[4].Get<uint32>(), // Map
+ fields[0].Get<float>(), // X
+ fields[1].Get<float>(), // Y
+ fields[2].Get<float>(), // Z
+ fields[3].Get<float>()); // Orientation
- std::string_view taxi = fields[5].GetStringView();
+ std::string_view taxi = fields[5].Get<std::string_view>();
if (!taxi.empty())
{
for (auto const& itr : Acore::Tokenize(taxi, ' ', false))
@@ -4900,13 +4900,13 @@ void Player::_LoadEntryPointData(PreparedQueryResult result)
m_entryPointData.ClearTaxiPath();
}
- m_entryPointData.mountSpell = fields[6].GetUInt32();
+ m_entryPointData.mountSpell = fields[6].Get<uint32>();
}
bool Player::LoadPositionFromDB(uint32& mapid, float& x, float& y, float& z, float& o, bool& in_flight, ObjectGuid::LowType guid)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_POSITION);
- stmt->setUInt32(0, guid);
+ stmt->SetData(0, guid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
@@ -4914,12 +4914,12 @@ bool Player::LoadPositionFromDB(uint32& mapid, float& x, float& y, float& z, flo
Field* fields = result->Fetch();
- x = fields[0].GetFloat();
- y = fields[1].GetFloat();
- z = fields[2].GetFloat();
- o = fields[3].GetFloat();
- mapid = fields[4].GetUInt16();
- in_flight = !fields[5].GetString().empty();
+ x = fields[0].Get<float>();
+ y = fields[1].Get<float>();
+ z = fields[2].Get<float>();
+ o = fields[3].Get<float>();
+ mapid = fields[4].Get<uint16>();
+ in_flight = !fields[5].Get<std::string>().empty();
return true;
}
@@ -4932,12 +4932,12 @@ void Player::SetHomebind(WorldLocation const& loc, uint32 areaId)
// update sql homebind
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_PLAYER_HOMEBIND);
- stmt->setUInt16(0, m_homebindMapId);
- stmt->setUInt16(1, m_homebindAreaId);
- stmt->setFloat (2, m_homebindX);
- stmt->setFloat (3, m_homebindY);
- stmt->setFloat (4, m_homebindZ);
- stmt->setUInt32(5, GetGUID().GetCounter());
+ stmt->SetData(0, m_homebindMapId);
+ stmt->SetData(1, m_homebindAreaId);
+ stmt->SetData (2, m_homebindX);
+ stmt->SetData (3, m_homebindY);
+ stmt->SetData (4, m_homebindZ);
+ stmt->SetData(5, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -4949,7 +4949,7 @@ bool Player::isBeingLoaded() const
bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder const& holder)
{
//// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- //QueryResult* result = CharacterDatabase.PQuery("SELECT guid, account, name, race, class, gender, level, xp, money, skin, face, hairStyle, hairColor, facialStyle, bankSlots, restState, playerFlags, "
+ //QueryResult* result = CharacterDatabase.Query("SELECT guid, account, name, race, class, gender, level, xp, money, skin, face, hairStyle, hairColor, facialStyle, bankSlots, restState, playerFlags, "
// 17 18 19 20 21 22 23 24 25 26 27 28 29
//"position_x, position_y, position_z, map, orientation, taximask, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, "
// 30 31 32 33 34 35 36 37 38 39 40 41 42 43
@@ -4959,7 +4959,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
// 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
//"health, power1, power2, power3, power4, power5, power6, power7, instance_id, talentGroupsCount, activeTalentGroup, exploredZones, equipmentCache, ammoId, knownTitles,
// 70 71 72
- //"actionBars, grantableLevels, innTriggerId FROM characters WHERE guid = '%u'", guid);
+ //"actionBars, grantableLevels, innTriggerId FROM characters WHERE guid = '{}'", guid);
PreparedQueryResult result = holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_FROM);
if (!result)
@@ -4970,7 +4970,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
Field* fields = result->Fetch();
- uint32 dbAccountId = fields[1].GetUInt32();
+ uint32 dbAccountId = fields[1].Get<uint32>();
// check if the character's account in the db and the logged in account match.
// player should be able to load/delete character only with correct account!
@@ -4990,20 +4990,20 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
Object::_Create(guid, 0, HighGuid::Player);
- m_name = fields[2].GetString();
+ m_name = fields[2].Get<std::string>();
// check name limitations
if (ObjectMgr::CheckPlayerName(m_name) != CHAR_NAME_SUCCESS ||
(AccountMgr::IsPlayerAccount(GetSession()->GetSecurity()) && sObjectMgr->IsReservedName(m_name)))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(AT_LOGIN_RENAME));
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, uint16(AT_LOGIN_RENAME));
+ stmt->SetData(1, guid);
CharacterDatabase.Execute(stmt);
return false;
}
- uint8 Gender = fields[5].GetUInt8();
+ uint8 Gender = fields[5].Get<uint8>();
if (!IsValidGender(Gender))
{
LOG_ERROR("entities.player", "Player (GUID: {}) has wrong gender ({}), can't be loaded.", guid, Gender);
@@ -5012,25 +5012,25 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
// overwrite some data fields
uint32 bytes0 = 0;
- bytes0 |= fields[3].GetUInt8(); // race
- bytes0 |= fields[4].GetUInt8() << 8; // class
+ bytes0 |= fields[3].Get<uint8>(); // race
+ bytes0 |= fields[4].Get<uint8>() << 8; // class
bytes0 |= Gender << 16; // gender
SetUInt32Value(UNIT_FIELD_BYTES_0, bytes0);
- m_realRace = fields[3].GetUInt8(); // set real race
- m_race = fields[3].GetUInt8(); // set real race
+ m_realRace = fields[3].Get<uint8>(); // set real race
+ m_race = fields[3].Get<uint8>(); // set real race
- SetUInt32Value(UNIT_FIELD_LEVEL, fields[6].GetUInt8());
- SetUInt32Value(PLAYER_XP, fields[7].GetUInt32());
+ SetUInt32Value(UNIT_FIELD_LEVEL, fields[6].Get<uint8>());
+ SetUInt32Value(PLAYER_XP, fields[7].Get<uint32>());
- if (!_LoadIntoDataField(fields[66].GetString(), PLAYER_EXPLORED_ZONES_1, PLAYER_EXPLORED_ZONES_SIZE))
+ if (!_LoadIntoDataField(fields[66].Get<std::string>(), PLAYER_EXPLORED_ZONES_1, PLAYER_EXPLORED_ZONES_SIZE))
{
- LOG_WARN("entities.player.loading", "Player::LoadFromDB: Player ({}) has invalid exploredzones data ({}). Forcing partial load.", guid, fields[66].GetStringView());
+ LOG_WARN("entities.player.loading", "Player::LoadFromDB: Player ({}) has invalid exploredzones data ({}). Forcing partial load.", guid, fields[66].Get<std::string_view>());
}
- if (!_LoadIntoDataField(fields[69].GetString(), PLAYER__FIELD_KNOWN_TITLES, KNOWN_TITLES_SIZE * 2))
+ if (!_LoadIntoDataField(fields[69].Get<std::string>(), PLAYER__FIELD_KNOWN_TITLES, KNOWN_TITLES_SIZE * 2))
{
- LOG_WARN("entities.player.loading", "Player::LoadFromDB: Player ({}) has invalid knowntitles mask ({}). Forcing partial load.", guid, fields[69].GetStringView());
+ LOG_WARN("entities.player.loading", "Player::LoadFromDB: Player ({}) has invalid knowntitles mask ({}). Forcing partial load.", guid, fields[69].Get<std::string_view>());
}
SetObjectScale(1.0f);
@@ -5039,29 +5039,29 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
// load achievements before anything else to prevent multiple gains for the same achievement/criteria on every loading (as loading does call UpdateAchievementCriteria)
m_achievementMgr->LoadFromDB(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS), holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS));
- uint32 money = fields[8].GetUInt32();
+ uint32 money = fields[8].Get<uint32>();
if (money > MAX_MONEY_AMOUNT)
money = MAX_MONEY_AMOUNT;
SetMoney(money);
- SetByteValue(PLAYER_BYTES, 0, fields[9].GetUInt8());
- SetByteValue(PLAYER_BYTES, 1, fields[10].GetUInt8());
- SetByteValue(PLAYER_BYTES, 2, fields[11].GetUInt8());
- SetByteValue(PLAYER_BYTES, 3, fields[12].GetUInt8());
- SetByteValue(PLAYER_BYTES_2, 0, fields[13].GetUInt8());
- SetByteValue(PLAYER_BYTES_2, 2, fields[14].GetUInt8());
- SetByteValue(PLAYER_BYTES_2, 3, fields[15].GetUInt8());
- SetByteValue(PLAYER_BYTES_3, 0, fields[5].GetUInt8());
- SetByteValue(PLAYER_BYTES_3, 1, fields[54].GetUInt8());
- SetUInt32Value(PLAYER_FLAGS, fields[16].GetUInt32());
- SetInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fields[53].GetUInt32());
+ SetByteValue(PLAYER_BYTES, 0, fields[9].Get<uint8>());
+ SetByteValue(PLAYER_BYTES, 1, fields[10].Get<uint8>());
+ SetByteValue(PLAYER_BYTES, 2, fields[11].Get<uint8>());
+ SetByteValue(PLAYER_BYTES, 3, fields[12].Get<uint8>());
+ SetByteValue(PLAYER_BYTES_2, 0, fields[13].Get<uint8>());
+ SetByteValue(PLAYER_BYTES_2, 2, fields[14].Get<uint8>());
+ SetByteValue(PLAYER_BYTES_2, 3, fields[15].Get<uint8>());
+ SetByteValue(PLAYER_BYTES_3, 0, fields[5].Get<uint8>());
+ SetByteValue(PLAYER_BYTES_3, 1, fields[54].Get<uint8>());
+ SetUInt32Value(PLAYER_FLAGS, fields[16].Get<uint32>());
+ SetInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fields[53].Get<uint32>());
- SetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES, fields[52].GetUInt64());
+ SetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES, fields[52].Get<uint64>());
- SetUInt32Value(PLAYER_AMMO_ID, fields[68].GetUInt32());
+ SetUInt32Value(PLAYER_AMMO_ID, fields[68].Get<uint32>());
// set which actionbars the client has active - DO NOT REMOVE EVER AGAIN (can be changed though, if it does change fieldwise)
- SetByteValue(PLAYER_FIELD_BYTES, 2, fields[70].GetUInt8());
+ SetByteValue(PLAYER_FIELD_BYTES, 2, fields[70].Get<uint8>());
InitDisplayIds();
@@ -5092,21 +5092,21 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
InitPrimaryProfessions(); // to max set before any spell loaded
// init saved position, and fix it later if problematic
- int32 transLowGUID = fields[35].GetInt32();
- Relocate(fields[17].GetFloat(), fields[18].GetFloat(), fields[19].GetFloat(), fields[21].GetFloat());
- uint32 mapId = fields[20].GetUInt16();
- uint32 instanceId = fields[63].GetUInt32();
+ int32 transLowGUID = fields[35].Get<int32>();
+ Relocate(fields[17].Get<float>(), fields[18].Get<float>(), fields[19].Get<float>(), fields[21].Get<float>());
+ uint32 mapId = fields[20].Get<uint16>();
+ uint32 instanceId = fields[63].Get<uint32>();
- uint32 dungeonDiff = fields[43].GetUInt8() & 0x0F;
+ uint32 dungeonDiff = fields[43].Get<uint8>() & 0x0F;
if (dungeonDiff >= MAX_DUNGEON_DIFFICULTY)
dungeonDiff = DUNGEON_DIFFICULTY_NORMAL;
- uint32 raidDiff = (fields[43].GetUInt8() >> 4) & 0x0F;
+ uint32 raidDiff = (fields[43].Get<uint8>() >> 4) & 0x0F;
if (raidDiff >= MAX_RAID_DIFFICULTY)
raidDiff = RAID_DIFFICULTY_10MAN_NORMAL;
SetDungeonDifficulty(Difficulty(dungeonDiff)); // may be changed in _LoadGroup
SetRaidDifficulty(Difficulty(raidDiff)); // may be changed in _LoadGroup
- std::string taxi_nodes = fields[42].GetString();
+ std::string taxi_nodes = fields[42].Get<std::string>();
auto RelocateToHomebind = [this, &mapId, &instanceId]() { mapId = m_homebindMapId; instanceId = 0; Relocate(m_homebindX, m_homebindY, m_homebindZ); };
@@ -5114,14 +5114,14 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
_LoadArenaTeamInfo();
- SetArenaPoints(fields[44].GetUInt32());
+ SetArenaPoints(fields[44].Get<uint32>());
- SetHonorPoints(fields[45].GetUInt32());
- SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, fields[46].GetUInt32());
- SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, fields[47].GetUInt32());
- SetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, fields[48].GetUInt32());
- SetUInt16Value(PLAYER_FIELD_KILLS, 0, fields[49].GetUInt16());
- SetUInt16Value(PLAYER_FIELD_KILLS, 1, fields[50].GetUInt16());
+ SetHonorPoints(fields[45].Get<uint32>());
+ SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, fields[46].Get<uint32>());
+ SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, fields[47].Get<uint32>());
+ SetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, fields[48].Get<uint32>());
+ SetUInt16Value(PLAYER_FIELD_KILLS, 0, fields[49].Get<uint16>());
+ SetUInt16Value(PLAYER_FIELD_KILLS, 1, fields[50].Get<uint16>());
_LoadInstanceTimeRestrictions(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_INSTANCE_LOCK_TIMES));
_LoadEntryPointData(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_ENTRY_POINT));
@@ -5218,7 +5218,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
if (m_transport)
{
- float x = fields[31].GetFloat(), y = fields[32].GetFloat(), z = fields[33].GetFloat(), o = fields[34].GetFloat();
+ float x = fields[31].Get<float>(), y = fields[32].Get<float>(), z = fields[33].Get<float>(), o = fields[34].Get<float>();
m_movementInfo.transport.guid = m_transport->GetGUID();
m_movementInfo.transport.pos.Relocate(x, y, z, o);
m_transport->CalculatePassengerPosition(x, y, z, &o);
@@ -5338,7 +5338,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
SaveRecallPosition();
time_t now = GameTime::GetGameTime().count();
- time_t logoutTime = time_t(fields[27].GetUInt32());
+ time_t logoutTime = time_t(fields[27].Get<uint32>());
// since last logout (in seconds)
uint32 time_diff = uint32(now - logoutTime); //uint64 is excessive for a time_diff in seconds.. uint32 allows for 136~ year difference.
@@ -5355,20 +5355,20 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
SetDrunkValue(newDrunkValue);
- m_cinematic = fields[23].GetUInt8();
- m_Played_time[PLAYED_TIME_TOTAL] = fields[24].GetUInt32();
- m_Played_time[PLAYED_TIME_LEVEL] = fields[25].GetUInt32();
+ m_cinematic = fields[23].Get<uint8>();
+ m_Played_time[PLAYED_TIME_TOTAL] = fields[24].Get<uint32>();
+ m_Played_time[PLAYED_TIME_LEVEL] = fields[25].Get<uint32>();
- m_resetTalentsCost = fields[29].GetUInt32();
- m_resetTalentsTime = time_t(fields[30].GetUInt32());
+ m_resetTalentsCost = fields[29].Get<uint32>();
+ m_resetTalentsTime = time_t(fields[30].Get<uint32>());
- m_taxi.LoadTaxiMask(fields[22].GetCString()); // must be before InitTaxiNodesForLevel
+ m_taxi.LoadTaxiMask(fields[22].Get<std::string_view>()); // must be before InitTaxiNodesForLevel
- uint32 extraflags = fields[36].GetUInt16();
+ uint32 extraflags = fields[36].Get<uint16>();
- _LoadPetStable(fields[37].GetUInt8(), holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS));
+ _LoadPetStable(fields[37].Get<uint8>(), holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS));
- m_atLoginFlags = fields[38].GetUInt16();
+ m_atLoginFlags = fields[38].Get<uint16>();
if (HasAtLoginFlag(AT_LOGIN_RENAME))
{
@@ -5381,7 +5381,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
m_lastHonorUpdateTime = logoutTime;
UpdateHonorFields();
- m_deathExpireTime = time_t(fields[41].GetUInt32());
+ m_deathExpireTime = time_t(fields[41].Get<uint32>());
if (m_deathExpireTime > now + MAX_DEATH_COUNT * DEATH_EXPIRE_STEP)
m_deathExpireTime = now + MAX_DEATH_COUNT * DEATH_EXPIRE_STEP - 1;
@@ -5420,7 +5420,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
ClearInCombat();
// rest bonus can only be calculated after InitStatsForLevel()
- _restBonus = fields[26].GetFloat();
+ _restBonus = fields[26].Get<float>();
if (time_diff > 0)
{
@@ -5428,14 +5428,14 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
float bubble0 = 0.031f;
//speed collect rest bonus in offline, in logout, in tavern, city (section/in hour)
float bubble1 = 0.125f;
- float bubble = fields[28].GetUInt8() > 0
+ float bubble = fields[28].Get<uint8>() > 0
? bubble1 * sWorld->getRate(RATE_REST_OFFLINE_IN_TAVERN_OR_CITY)
: bubble0 * sWorld->getRate(RATE_REST_OFFLINE_IN_WILDERNESS);
SetRestBonus(GetRestBonus() + time_diff * ((float)GetUInt32Value(PLAYER_NEXT_LEVEL_XP) / 72000)*bubble);
}
- uint32 innTriggerId = fields[72].GetUInt32();
+ uint32 innTriggerId = fields[72].Get<uint32>();
if (innTriggerId)
{
SetRestFlag(REST_FLAG_IN_TAVERN, innTriggerId);
@@ -5447,8 +5447,8 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
// apply original stats mods before spell loading or item equipment that call before equip _RemoveStatsMods()
- m_specsCount = fields[64].GetUInt8();
- m_activeSpec = fields[65].GetUInt8();
+ m_specsCount = fields[64].Get<uint8>();
+ m_activeSpec = fields[65].Get<uint8>();
LearnDefaultSkills();
LearnCustomSpells();
@@ -5498,7 +5498,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
// check PLAYER_CHOSEN_TITLE compatibility with PLAYER__FIELD_KNOWN_TITLES
// note: PLAYER__FIELD_KNOWN_TITLES updated at quest status loaded
- uint32 curTitle = fields[51].GetUInt32();
+ uint32 curTitle = fields[51].Get<uint32>();
if (curTitle && !HasTitle(curTitle))
curTitle = 0;
@@ -5521,11 +5521,11 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
UpdateAllStats();
// restore remembered power/health values (but not more max values)
- uint32 savedHealth = fields[55].GetUInt32();
+ uint32 savedHealth = fields[55].Get<uint32>();
SetHealth(savedHealth > GetMaxHealth() ? GetMaxHealth() : savedHealth);
for (uint8 i = 0; i < MAX_POWERS; ++i)
{
- uint32 savedPower = fields[56 + i].GetUInt32();
+ uint32 savedPower = fields[56 + i].Get<uint32>();
SetPower(Powers(i), savedPower > GetMaxPower(Powers(i)) ? GetMaxPower(Powers(i)) : savedPower);
}
@@ -5593,7 +5593,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
}
// RaF stuff.
- m_grantableLevels = fields[71].GetUInt8();
+ m_grantableLevels = fields[71].Get<uint8>();
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND);
@@ -5706,9 +5706,9 @@ void Player::_LoadActions(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- uint8 button = fields[0].GetUInt8();
- uint32 action = fields[1].GetUInt32();
- uint8 type = fields[2].GetUInt8();
+ uint8 button = fields[0].Get<uint8>();
+ uint32 action = fields[1].Get<uint32>();
+ uint8 type = fields[2].Get<uint8>();
if (ActionButton* ab = addActionButton(button, action, type))
ab->uState = ACTIONBUTTON_UNCHANGED;
@@ -5728,9 +5728,9 @@ void Player::_LoadAuras(PreparedQueryResult result, uint32 timediff)
LOG_DEBUG("entities.player.loading", "Loading auras for player {}", GetGUID().ToString());
/* 0 1 2 3 4 5 6 7 8 9 10 11
- QueryResult* result = CharacterDatabase.PQuery("SELECT casterGuid, itemGuid, spell, effectMask, recalculateMask, stackCount, amount0, amount1, amount2, base_amount0, base_amount1, base_amount2,
+ QueryResult* result = CharacterDatabase.Query("SELECT casterGuid, itemGuid, spell, effectMask, recalculateMask, stackCount, amount0, amount1, amount2, base_amount0, base_amount1, base_amount2,
12 13 14
- maxDuration, remainTime, remainCharges FROM character_aura WHERE guid = '%u'", GetGUID().GetCounter());
+ maxDuration, remainTime, remainCharges FROM character_aura WHERE guid = '{}'", GetGUID().GetCounter());
*/
if (result)
@@ -5740,21 +5740,21 @@ void Player::_LoadAuras(PreparedQueryResult result, uint32 timediff)
Field* fields = result->Fetch();
int32 damage[3];
int32 baseDamage[3];
- ObjectGuid caster_guid = ObjectGuid(fields[0].GetUInt64());
- ObjectGuid itemGuid = ObjectGuid(fields[1].GetUInt64());
- uint32 spellid = fields[2].GetUInt32();
- uint8 effmask = fields[3].GetUInt8();
- uint8 recalculatemask = fields[4].GetUInt8();
- uint8 stackcount = fields[5].GetUInt8();
- damage[0] = fields[6].GetInt32();
- damage[1] = fields[7].GetInt32();
- damage[2] = fields[8].GetInt32();
- baseDamage[0] = fields[9].GetInt32();
- baseDamage[1] = fields[10].GetInt32();
- baseDamage[2] = fields[11].GetInt32();
- int32 maxduration = fields[12].GetInt32();
- int32 remaintime = fields[13].GetInt32();
- uint8 remaincharges = fields[14].GetUInt8();
+ ObjectGuid caster_guid = ObjectGuid(fields[0].Get<uint64>());
+ ObjectGuid itemGuid = ObjectGuid(fields[1].Get<uint64>());
+ uint32 spellid = fields[2].Get<uint32>();
+ uint8 effmask = fields[3].Get<uint8>();
+ uint8 recalculatemask = fields[4].Get<uint8>();
+ uint8 stackcount = fields[5].Get<uint8>();
+ damage[0] = fields[6].Get<int32>();
+ damage[1] = fields[7].Get<int32>();
+ damage[2] = fields[8].Get<int32>();
+ baseDamage[0] = fields[9].Get<int32>();
+ baseDamage[1] = fields[10].Get<int32>();
+ baseDamage[2] = fields[11].Get<int32>();
+ int32 maxduration = fields[12].Get<int32>();
+ int32 remaintime = fields[13].Get<int32>();
+ uint8 remaincharges = fields[14].Get<uint8>();
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellid);
if (!spellInfo)
@@ -5848,7 +5848,7 @@ void Player::LoadCorpse(PreparedQueryResult result)
if (result && !HasAtLoginFlag(AT_LOGIN_RESURRECT))
{
Field* fields = result->Fetch();
- _corpseLocation.WorldRelocate(fields[0].GetUInt16(), fields[1].GetFloat(), fields[2].GetFloat(), fields[3].GetFloat(), fields[4].GetFloat());
+ _corpseLocation.WorldRelocate(fields[0].Get<uint16>(), fields[1].Get<float>(), fields[2].Get<float>(), fields[3].Get<float>(), fields[4].Get<float>());
ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(_corpseLocation.GetMapId())->Instanceable());
}
else
@@ -5860,7 +5860,7 @@ void Player::LoadCorpse(PreparedQueryResult result)
void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
{
- //QueryResult* result = CharacterDatabase.PQuery("SELECT data, text, bag, slot, item, item_template FROM character_inventory JOIN item_instance ON character_inventory.item = item_instance.guid WHERE character_inventory.guid = '%u' ORDER BY bag, slot", GetGUID().GetCounter());
+ //QueryResult* result = CharacterDatabase.Query("SELECT data, text, bag, slot, item, item_template FROM character_inventory JOIN item_instance ON character_inventory.item = item_instance.guid WHERE character_inventory.guid = '{}' ORDER BY bag, slot", GetGUID().GetCounter());
//NOTE: the "order by `bag`" is important because it makes sure
//the bagMap is filled before items in the bags are loaded
//NOTE2: the "order by `slot`" is needed because mainhand weapons are (wrongly?)
@@ -5882,8 +5882,8 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
Field* fields = result->Fetch();
if (Item* item = _LoadItem(trans, zoneId, timeDiff, fields))
{
- ObjectGuid::LowType bagGuid = fields[11].GetUInt32();
- uint8 slot = fields[12].GetUInt8();
+ ObjectGuid::LowType bagGuid = fields[11].Get<uint32>();
+ uint8 slot = fields[12].Get<uint8>();
uint8 err = EQUIP_ERR_OK;
// Item is not in bag
@@ -5993,8 +5993,8 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
Item* Player::_LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint32 timeDiff, Field* fields)
{
Item* item = nullptr;
- ObjectGuid::LowType itemGuid = fields[13].GetUInt32();
- uint32 itemEntry = fields[14].GetUInt32();
+ ObjectGuid::LowType itemGuid = fields[13].Get<uint32>();
+ uint32 itemEntry = fields[14].Get<uint32>();
if (ItemTemplate const* proto = sObjectMgr->GetItemTemplate(itemEntry))
{
bool remove = false;
@@ -6024,7 +6024,7 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint3
LOG_DEBUG("entities.player.loading", "Player::_LoadInventory: player ({}, name: '{}') has item ({}, entry: {}) with expired refund time ({}). Deleting refund data and removing refundable flag.",
GetGUID().ToString(), GetName(), item->GetGUID().ToString(), item->GetEntry(), item->GetPlayedTime());
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_REFUND_INSTANCE);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
trans->Append(stmt);
item->RemoveFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_REFUNDABLE);
@@ -6033,13 +6033,13 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint3
{
// xinef: sync query
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ITEM_REFUNDS);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
+ stmt->SetData(1, GetGUID().GetCounter());
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
- item->SetRefundRecipient((*result)[0].GetUInt32());
- item->SetPaidMoney((*result)[1].GetUInt32());
- item->SetPaidExtendedCost((*result)[2].GetUInt16());
+ item->SetRefundRecipient((*result)[0].Get<uint32>());
+ item->SetPaidMoney((*result)[1].Get<uint32>());
+ item->SetPaidExtendedCost((*result)[2].Get<uint16>());
AddRefundReference(item->GetGUID());
}
else
@@ -6053,12 +6053,12 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint3
else if (item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_BOP_TRADEABLE))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ITEM_BOP_TRADE);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
AllowedLooterSet looters;
- for (std::string_view guidStr : Acore::Tokenize((*result)[0].GetStringView(), ' ', false))
+ for (std::string_view guidStr : Acore::Tokenize((*result)[0].Get<std::string_view>(), ' ', false))
{
if (Optional<ObjectGuid::LowType> guid = Acore::StringTo<ObjectGuid::LowType>(guidStr))
{
@@ -6128,8 +6128,8 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint3
// load mailed item which should receive current player
Item* Player::_LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint32 mailId, Mail* mail, Field* fields)
{
- ObjectGuid::LowType itemGuid = fields[11].GetUInt32();
- uint32 itemEntry = fields[12].GetUInt32();
+ ObjectGuid::LowType itemGuid = fields[11].Get<uint32>();
+ uint32 itemEntry = fields[12].Get<uint32>();
ItemTemplate const* proto = sObjectMgr->GetItemTemplate(itemEntry);
if (!proto)
@@ -6140,7 +6140,7 @@ Item* Player::_LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_MAIL_ITEM);
- stmt->setUInt32(0, itemGuid);
+ stmt->SetData(0, itemGuid);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -6149,13 +6149,13 @@ Item* Player::_LoadMailedItem(ObjectGuid const& playerGuid, Player* player, uint
Item* item = NewItemOrBag(proto);
- ObjectGuid ownerGuid = fields[13].GetUInt32() ? ObjectGuid::Create<HighGuid::Player>(fields[13].GetUInt32()) : ObjectGuid::Empty;
+ ObjectGuid ownerGuid = fields[13].Get<uint32>() ? ObjectGuid::Create<HighGuid::Player>(fields[13].Get<uint32>()) : ObjectGuid::Empty;
if (!item->LoadFromDB(itemGuid, ownerGuid, fields, itemEntry))
{
LOG_ERROR("entities.player", "Player::_LoadMailedItems: Item (GUID: {}) in mail ({}) doesn't exist, deleted from mail.", itemGuid, mailId);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM);
- stmt->setUInt32(0, itemGuid);
+ stmt->SetData(0, itemGuid);
CharacterDatabase.Execute(stmt);
item->FSetState(ITEM_REMOVED);
@@ -6195,20 +6195,20 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
Field* fields = mailsResult->Fetch();
Mail* m = new Mail;
- m->messageID = fields[0].GetUInt32();
- m->messageType = fields[1].GetUInt8();
- m->sender = fields[2].GetUInt32();
- m->receiver = fields[3].GetUInt32();
- m->subject = fields[4].GetString();
- m->body = fields[5].GetString();
- m->expire_time = time_t(fields[6].GetUInt32());
- m->deliver_time = time_t(fields[7].GetUInt32());
- m->money = fields[8].GetUInt32();
- m->COD = fields[9].GetUInt32();
- m->checked = fields[10].GetUInt8();
- m->stationery = fields[11].GetUInt8();
- m->mailTemplateId = fields[12].GetInt16();
- m->auctionId = fields[13].GetInt32();
+ m->messageID = fields[0].Get<uint32>();
+ m->messageType = fields[1].Get<uint8>();
+ m->sender = fields[2].Get<uint32>();
+ m->receiver = fields[3].Get<uint32>();
+ m->subject = fields[4].Get<std::string>();
+ m->body = fields[5].Get<std::string>();
+ m->expire_time = time_t(fields[6].Get<uint32>());
+ m->deliver_time = time_t(fields[7].Get<uint32>());
+ m->money = fields[8].Get<uint32>();
+ m->COD = fields[9].Get<uint32>();
+ m->checked = fields[10].Get<uint8>();
+ m->stationery = fields[11].Get<uint8>();
+ m->mailTemplateId = fields[12].Get<int16>();
+ m->auctionId = fields[13].Get<int32>();
if (m->mailTemplateId && !sMailTemplateStore.LookupEntry(m->mailTemplateId))
{
@@ -6225,7 +6225,7 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
if (pendingAuctions.count(auctionId))
{
CharacterDatabasePreparedStatement* stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt2->setUInt32(0, m->messageID);
+ stmt2->SetData(0, m->messageID);
pendingAuctionsTrans->Append(stmt2);
if (unReadMails > 0 && (m->checked & MAIL_CHECK_MASK_READ) == 0)
@@ -6250,7 +6250,7 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
Mail* mail = itr.second;
CharacterDatabasePreparedStatement* stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt2->setUInt32(0, mail->messageID);
+ stmt2->SetData(0, mail->messageID);
pendingAuctionsTrans->Append(stmt2);
if (unReadMails > 0 && (mail->checked & MAIL_CHECK_MASK_READ) == 0)
@@ -6274,7 +6274,7 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
do
{
Field* fields = mailItemsResult->Fetch();
- uint32 mailId = fields[14].GetUInt32();
+ uint32 mailId = fields[14].Get<uint32>();
_LoadMailedItem(GetGUID(), this, mailId, mailById[mailId], fields);
} while (mailItemsResult->NextRow());
}
@@ -6300,9 +6300,9 @@ void Player::_LoadQuestStatus(PreparedQueryResult result)
uint16 slot = 0;
//// 0 1 2 3 4 5 6 7 8 9 10
- //QueryResult* result = CharacterDatabase.PQuery("SELECT quest, status, explored, timer, mobcount1, mobcount2, mobcount3, mobcount4, itemcount1, itemcount2, itemcount3,
+ //QueryResult* result = CharacterDatabase.Query("SELECT quest, status, explored, timer, mobcount1, mobcount2, mobcount3, mobcount4, itemcount1, itemcount2, itemcount3,
// 11 12 13 14
- // itemcount4, itemcount5, itemcount6, playercount FROM character_queststatus WHERE guid = '%u'", GetGUID().GetCounter());
+ // itemcount4, itemcount5, itemcount6, playercount FROM character_queststatus WHERE guid = '{}'", GetGUID().GetCounter());
if (result)
{
@@ -6310,7 +6310,7 @@ void Player::_LoadQuestStatus(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- uint32 quest_id = fields[0].GetUInt32();
+ uint32 quest_id = fields[0].Get<uint32>();
// used to be new, no delete?
Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id);
if (quest)
@@ -6318,7 +6318,7 @@ void Player::_LoadQuestStatus(PreparedQueryResult result)
// find or create
QuestStatusData& questStatusData = m_QuestStatus[quest_id];
- uint8 qstatus = fields[1].GetUInt8();
+ uint8 qstatus = fields[1].Get<uint8>();
if (qstatus < MAX_QUEST_STATUS)
questStatusData.Status = QuestStatus(qstatus);
else
@@ -6328,9 +6328,9 @@ void Player::_LoadQuestStatus(PreparedQueryResult result)
GetName(), GetGUID().ToString(), quest_id, qstatus);
}
- questStatusData.Explored = (fields[2].GetUInt8() > 0);
+ questStatusData.Explored = (fields[2].Get<uint8>() > 0);
- time_t quest_time = time_t(fields[3].GetUInt32());
+ time_t quest_time = time_t(fields[3].Get<uint32>());
if (quest->HasSpecialFlag(QUEST_SPECIAL_FLAGS_TIMED) && !GetQuestRewardStatus(quest_id))
{
@@ -6345,12 +6345,12 @@ void Player::_LoadQuestStatus(PreparedQueryResult result)
quest_time = 0;
for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
- questStatusData.CreatureOrGOCount[i] = fields[4 + i].GetUInt16();
+ questStatusData.CreatureOrGOCount[i] = fields[4 + i].Get<uint16>();
for (uint32 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
- questStatusData.ItemCount[i] = fields[8 + i].GetUInt16();
+ questStatusData.ItemCount[i] = fields[8 + i].Get<uint16>();
- questStatusData.PlayerCount = fields[14].GetUInt16();
+ questStatusData.PlayerCount = fields[14].Get<uint16>();
// add to quest log
if (slot < MAX_QUEST_LOG_SIZE && questStatusData.Status != QUEST_STATUS_NONE)
@@ -6393,7 +6393,7 @@ void Player::_LoadQuestStatusRewarded(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- uint32 quest_id = fields[0].GetUInt32();
+ uint32 quest_id = fields[0].Get<uint32>();
// used to be new, no delete?
Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id);
if (quest)
@@ -6424,7 +6424,7 @@ void Player::_LoadDailyQuestStatus(PreparedQueryResult result)
m_DFQuests.clear();
- //QueryResult* result = CharacterDatabase.PQuery("SELECT quest, time FROM character_queststatus_daily WHERE guid = '%u'", GetGUID().GetCounter());
+ //QueryResult* result = CharacterDatabase.Query("SELECT quest, time FROM character_queststatus_daily WHERE guid = '{}'", GetGUID().GetCounter());
if (result)
{
@@ -6433,12 +6433,12 @@ void Player::_LoadDailyQuestStatus(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- if (Quest const* qQuest = sObjectMgr->GetQuestTemplate(fields[0].GetUInt32()))
+ if (Quest const* qQuest = sObjectMgr->GetQuestTemplate(fields[0].Get<uint32>()))
{
if (qQuest->IsDFQuest())
{
m_DFQuests.insert(qQuest->GetQuestId());
- m_lastDailyQuestTime = time_t(fields[1].GetUInt32());
+ m_lastDailyQuestTime = time_t(fields[1].Get<uint32>());
continue;
}
}
@@ -6449,10 +6449,10 @@ void Player::_LoadDailyQuestStatus(PreparedQueryResult result)
break;
}
- uint32 quest_id = fields[0].GetUInt32();
+ uint32 quest_id = fields[0].Get<uint32>();
// save _any_ from daily quest times (it must be after last reset anyway)
- m_lastDailyQuestTime = time_t(fields[1].GetUInt32());
+ m_lastDailyQuestTime = time_t(fields[1].Get<uint32>());
Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id);
if (!quest)
@@ -6477,7 +6477,7 @@ void Player::_LoadWeeklyQuestStatus(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- uint32 quest_id = fields[0].GetUInt32();
+ uint32 quest_id = fields[0].Get<uint32>();
Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id);
if (!quest)
continue;
@@ -6499,8 +6499,8 @@ void Player::_LoadSeasonalQuestStatus(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- uint32 quest_id = fields[0].GetUInt32();
- uint32 event_id = fields[1].GetUInt32();
+ uint32 quest_id = fields[0].Get<uint32>();
+ uint32 event_id = fields[1].Get<uint32>();
Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id);
if (!quest)
continue;
@@ -6522,7 +6522,7 @@ void Player::_LoadMonthlyQuestStatus(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- uint32 quest_id = fields[0].GetUInt32();
+ uint32 quest_id = fields[0].Get<uint32>();
Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id);
if (!quest)
continue;
@@ -6537,13 +6537,13 @@ void Player::_LoadMonthlyQuestStatus(PreparedQueryResult result)
void Player::_LoadSpells(PreparedQueryResult result)
{
- //QueryResult* result = CharacterDatabase.PQuery("SELECT spell, specMask FROM character_spell WHERE guid = '%u'", GetGUID().GetCounter());
+ //QueryResult* result = CharacterDatabase.Query("SELECT spell, specMask FROM character_spell WHERE guid = '{}'", GetGUID().GetCounter());
if (result)
{
do
// xinef: checked
- addSpell((*result)[0].GetUInt32(), (*result)[1].GetUInt8(), true);
+ addSpell((*result)[0].Get<uint32>(), (*result)[1].Get<uint8>(), true);
while (result->NextRow());
}
}
@@ -7059,11 +7059,11 @@ bool Player::_LoadHomeBind(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- m_homebindMapId = fields[0].GetUInt16();
- m_homebindAreaId = fields[1].GetUInt16();
- m_homebindX = fields[2].GetFloat();
- m_homebindY = fields[3].GetFloat();
- m_homebindZ = fields[4].GetFloat();
+ m_homebindMapId = fields[0].Get<uint16>();
+ m_homebindAreaId = fields[1].Get<uint16>();
+ m_homebindX = fields[2].Get<float>();
+ m_homebindY = fields[3].Get<float>();
+ m_homebindZ = fields[4].Get<float>();
MapEntry const* bindMapEntry = sMapStore.LookupEntry(m_homebindMapId);
@@ -7074,7 +7074,7 @@ bool Player::_LoadHomeBind(PreparedQueryResult result)
else
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_HOMEBIND);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
}
@@ -7088,12 +7088,12 @@ bool Player::_LoadHomeBind(PreparedQueryResult result)
m_homebindZ = info->positionZ;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PLAYER_HOMEBIND);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt16(1, m_homebindMapId);
- stmt->setUInt16(2, m_homebindAreaId);
- stmt->setFloat (3, m_homebindX);
- stmt->setFloat (4, m_homebindY);
- stmt->setFloat (5, m_homebindZ);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, m_homebindMapId);
+ stmt->SetData(2, m_homebindAreaId);
+ stmt->SetData (3, m_homebindX);
+ stmt->SetData (4, m_homebindY);
+ stmt->SetData (5, m_homebindZ);
CharacterDatabase.Execute(stmt);
}
@@ -7186,8 +7186,8 @@ void Player::SaveInventoryAndGoldToDB(CharacterDatabaseTransaction trans)
void Player::SaveGoldToDB(CharacterDatabaseTransaction trans)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_MONEY);
- stmt->setUInt32(0, GetMoney());
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, GetMoney());
+ stmt->SetData(1, GetGUID().GetCounter());
trans->Append(stmt);
}
@@ -7201,11 +7201,11 @@ void Player::_SaveActions(CharacterDatabaseTransaction trans)
{
case ACTIONBUTTON_NEW:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_ACTION);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt8(1, m_activeSpec);
- stmt->setUInt8(2, itr->first);
- stmt->setUInt32(3, itr->second.GetAction());
- stmt->setUInt8(4, uint8(itr->second.GetType()));
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, m_activeSpec);
+ stmt->SetData(2, itr->first);
+ stmt->SetData(3, itr->second.GetAction());
+ stmt->SetData(4, uint8(itr->second.GetType()));
trans->Append(stmt);
itr->second.uState = ACTIONBUTTON_UNCHANGED;
@@ -7213,11 +7213,11 @@ void Player::_SaveActions(CharacterDatabaseTransaction trans)
break;
case ACTIONBUTTON_CHANGED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_ACTION);
- stmt->setUInt32(0, itr->second.GetAction());
- stmt->setUInt8(1, uint8(itr->second.GetType()));
- stmt->setUInt32(2, GetGUID().GetCounter());
- stmt->setUInt8(3, itr->first);
- stmt->setUInt8(4, m_activeSpec);
+ stmt->SetData(0, itr->second.GetAction());
+ stmt->SetData(1, uint8(itr->second.GetType()));
+ stmt->SetData(2, GetGUID().GetCounter());
+ stmt->SetData(3, itr->first);
+ stmt->SetData(4, m_activeSpec);
trans->Append(stmt);
itr->second.uState = ACTIONBUTTON_UNCHANGED;
@@ -7225,9 +7225,9 @@ void Player::_SaveActions(CharacterDatabaseTransaction trans)
break;
case ACTIONBUTTON_DELETED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACTION_BY_BUTTON_SPEC);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt8(1, itr->first);
- stmt->setUInt8(2, m_activeSpec);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, itr->first);
+ stmt->SetData(2, m_activeSpec);
trans->Append(stmt);
m_actionButtons.erase(itr++);
@@ -7242,7 +7242,7 @@ void Player::_SaveActions(CharacterDatabaseTransaction trans)
void Player::_SaveAuras(CharacterDatabaseTransaction trans, bool logout)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_AURA);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
for (AuraMap::const_iterator itr = m_ownedAuras.begin(); itr != m_ownedAuras.end(); ++itr)
@@ -7277,22 +7277,22 @@ void Player::_SaveAuras(CharacterDatabaseTransaction trans, bool logout)
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_AURA);
- stmt->setUInt32(index++, GetGUID().GetCounter());
- stmt->setUInt64(index++, itr->second->GetCasterGUID().GetRawValue());
- stmt->setUInt64(index++, itr->second->GetCastItemGUID().GetRawValue());
- stmt->setUInt32(index++, itr->second->GetId());
- stmt->setUInt8(index++, effMask);
- stmt->setUInt8(index++, recalculateMask);
- stmt->setUInt8(index++, itr->second->GetStackAmount());
- stmt->setInt32(index++, damage[0]);
- stmt->setInt32(index++, damage[1]);
- stmt->setInt32(index++, damage[2]);
- stmt->setInt32(index++, baseDamage[0]);
- stmt->setInt32(index++, baseDamage[1]);
- stmt->setInt32(index++, baseDamage[2]);
- stmt->setInt32(index++, itr->second->GetMaxDuration());
- stmt->setInt32(index++, itr->second->GetDuration());
- stmt->setUInt8(index, itr->second->GetCharges());
+ stmt->SetData(index++, GetGUID().GetCounter());
+ stmt->SetData(index++, itr->second->GetCasterGUID().GetRawValue());
+ stmt->SetData(index++, itr->second->GetCastItemGUID().GetRawValue());
+ stmt->SetData(index++, itr->second->GetId());
+ stmt->SetData(index++, effMask);
+ stmt->SetData(index++, recalculateMask);
+ stmt->SetData(index++, itr->second->GetStackAmount());
+ stmt->SetData(index++, damage[0]);
+ stmt->SetData(index++, damage[1]);
+ stmt->SetData(index++, damage[2]);
+ stmt->SetData(index++, baseDamage[0]);
+ stmt->SetData(index++, baseDamage[1]);
+ stmt->SetData(index++, baseDamage[2]);
+ stmt->SetData(index++, itr->second->GetMaxDuration());
+ stmt->SetData(index++, itr->second->GetDuration());
+ stmt->SetData(index, itr->second->GetCharges());
trans->Append(stmt);
}
}
@@ -7317,11 +7317,11 @@ void Player::_SaveInventory(CharacterDatabaseTransaction trans)
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
trans->Append(stmt);
m_items[i]->FSetState(ITEM_NEW);
@@ -7384,9 +7384,9 @@ void Player::_SaveInventory(CharacterDatabaseTransaction trans)
lowGuid, GetName(), item->GetBagSlot(), item->GetSlot(), item->GetGUID().ToString(), (int32)item->GetState());
// according to the test that was just performed nothing should be in this slot, delete
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_BAG_SLOT);
- stmt->setUInt32(0, bagTestGUID);
- stmt->setUInt8(1, item->GetSlot());
- stmt->setUInt32(2, lowGuid);
+ stmt->SetData(0, bagTestGUID);
+ stmt->SetData(1, item->GetSlot());
+ stmt->SetData(2, lowGuid);
trans->Append(stmt);
RemoveTradeableItem(item); // pussywizard
@@ -7416,15 +7416,15 @@ void Player::_SaveInventory(CharacterDatabaseTransaction trans)
case ITEM_NEW:
case ITEM_CHANGED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_INVENTORY_ITEM);
- stmt->setUInt32(0, lowGuid);
- stmt->setUInt32(1, bag_guid);
- stmt->setUInt8 (2, item->GetSlot());
- stmt->setUInt32(3, item->GetGUID().GetCounter());
+ stmt->SetData(0, lowGuid);
+ stmt->SetData(1, bag_guid);
+ stmt->SetData (2, item->GetSlot());
+ stmt->SetData(3, item->GetGUID().GetCounter());
trans->Append(stmt);
break;
case ITEM_REMOVED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
trans->Append(stmt);
case ITEM_UNCHANGED:
break;
@@ -7450,13 +7450,13 @@ void Player::_SaveMail(CharacterDatabaseTransaction trans)
if (m->state == MAIL_STATE_CHANGED)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_MAIL);
- stmt->setUInt8(0, uint8(m->HasItems() ? 1 : 0));
- stmt->setUInt32(1, uint32(m->expire_time));
- stmt->setUInt32(2, uint32(m->deliver_time));
- stmt->setUInt32(3, m->money);
- stmt->setUInt32(4, m->COD);
- stmt->setUInt8(5, uint8(m->checked));
- stmt->setUInt32(6, m->messageID);
+ stmt->SetData(0, uint8(m->HasItems() ? 1 : 0));
+ stmt->SetData(1, uint32(m->expire_time));
+ stmt->SetData(2, uint32(m->deliver_time));
+ stmt->SetData(3, m->money);
+ stmt->SetData(4, m->COD);
+ stmt->SetData(5, uint8(m->checked));
+ stmt->SetData(6, m->messageID);
trans->Append(stmt);
@@ -7465,7 +7465,7 @@ void Player::_SaveMail(CharacterDatabaseTransaction trans)
for (std::vector<uint32>::iterator itr2 = m->removedItems.begin(); itr2 != m->removedItems.end(); ++itr2)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM);
- stmt->setUInt32(0, *itr2);
+ stmt->SetData(0, *itr2);
trans->Append(stmt);
}
m->removedItems.clear();
@@ -7479,16 +7479,16 @@ void Player::_SaveMail(CharacterDatabaseTransaction trans)
for (MailItemInfoVec::iterator itr2 = m->items.begin(); itr2 != m->items.end(); ++itr2)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, itr2->item_guid);
+ stmt->SetData(0, itr2->item_guid);
trans->Append(stmt);
}
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->SetData(0, m->messageID);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->SetData(0, m->messageID);
trans->Append(stmt);
}
}
@@ -7532,27 +7532,27 @@ void Player::_SaveQuestStatus(CharacterDatabaseTransaction trans)
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHAR_QUESTSTATUS);
- stmt->setUInt32(index++, GetGUID().GetCounter());
- stmt->setUInt32(index++, statusItr->first);
- stmt->setUInt8(index++, uint8(statusItr->second.Status));
- stmt->setBool(index++, statusItr->second.Explored);
- stmt->setUInt32(index++, uint32(statusItr->second.Timer / IN_MILLISECONDS + GameTime::GetGameTime().count()));
+ stmt->SetData(index++, GetGUID().GetCounter());
+ stmt->SetData(index++, statusItr->first);
+ stmt->SetData(index++, uint8(statusItr->second.Status));
+ stmt->SetData(index++, statusItr->second.Explored);
+ stmt->SetData(index++, uint32(statusItr->second.Timer / IN_MILLISECONDS + GameTime::GetGameTime().count()));
for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; i++)
- stmt->setUInt16(index++, statusItr->second.CreatureOrGOCount[i]);
+ stmt->SetData(index++, statusItr->second.CreatureOrGOCount[i]);
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; i++)
- stmt->setUInt16(index++, statusItr->second.ItemCount[i]);
+ stmt->SetData(index++, statusItr->second.ItemCount[i]);
- stmt->setUInt16(index, statusItr->second.PlayerCount);
+ stmt->SetData(index, statusItr->second.PlayerCount);
trans->Append(stmt);
}
}
else
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS_BY_QUEST);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, saveItr->first);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, saveItr->first);
trans->Append(stmt);
}
}
@@ -7566,8 +7566,8 @@ void Player::_SaveQuestStatus(CharacterDatabaseTransaction trans)
else // xinef: what the is this? quest can be removed by spelleffect if (!keepAbandoned)
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS_REWARDED_BY_QUEST);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, saveItr->first);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, saveItr->first);
trans->Append(stmt);
}
@@ -7588,16 +7588,16 @@ void Player::_SaveDailyQuestStatus(CharacterDatabaseTransaction trans)
// we don't need transactions here.
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_DAILY_CHAR);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
for (uint32 quest_daily_idx = 0; quest_daily_idx < PLAYER_MAX_DAILY_QUESTS; ++quest_daily_idx)
{
if (GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1 + quest_daily_idx))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_DAILYQUESTSTATUS);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1 + quest_daily_idx));
- stmt->setUInt64(2, uint64(m_lastDailyQuestTime));
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1 + quest_daily_idx));
+ stmt->SetData(2, uint64(m_lastDailyQuestTime));
trans->Append(stmt);
}
}
@@ -7607,9 +7607,9 @@ void Player::_SaveDailyQuestStatus(CharacterDatabaseTransaction trans)
for (DFQuestsDoneList::iterator itr = m_DFQuests.begin(); itr != m_DFQuests.end(); ++itr)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_DAILYQUESTSTATUS);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, (*itr));
- stmt->setUInt64(2, uint64(m_lastDailyQuestTime));
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, (*itr));
+ stmt->SetData(2, uint64(m_lastDailyQuestTime));
trans->Append(stmt);
}
}
@@ -7622,7 +7622,7 @@ void Player::_SaveWeeklyQuestStatus(CharacterDatabaseTransaction trans)
// we don't need transactions here.
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_WEEKLY_CHAR);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
for (QuestSet::const_iterator iter = m_weeklyquests.begin(); iter != m_weeklyquests.end(); ++iter)
@@ -7630,8 +7630,8 @@ void Player::_SaveWeeklyQuestStatus(CharacterDatabaseTransaction trans)
uint32 quest_id = *iter;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_WEEKLYQUESTSTATUS);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, quest_id);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, quest_id);
trans->Append(stmt);
}
@@ -7647,7 +7647,7 @@ void Player::_SaveSeasonalQuestStatus(CharacterDatabaseTransaction trans)
// we don't need transactions here.
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_SEASONAL_CHAR);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
m_SeasonalQuestChanged = false;
@@ -7666,9 +7666,7 @@ void Player::_SaveSeasonalQuestStatus(CharacterDatabaseTransaction trans)
uint32 questId = *itr;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_SEASONALQUESTSTATUS);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, questId);
- stmt->setUInt32(2, eventId);
+ stmt->SetArguments(GetGUID().GetCounter(), questId, eventId);
trans->Append(stmt);
}
}
@@ -7681,15 +7679,15 @@ void Player::_SaveMonthlyQuestStatus(CharacterDatabaseTransaction trans)
// we don't need transactions here.
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_MONTHLY_CHAR);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
for (QuestSet::const_iterator iter = m_monthlyquests.begin(); iter != m_monthlyquests.end(); ++iter)
{
uint32 quest_id = *iter;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_MONTHLYQUESTSTATUS);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, quest_id);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, quest_id);
trans->Append(stmt);
}
@@ -7711,8 +7709,8 @@ void Player::_SaveSkills(CharacterDatabaseTransaction trans)
if (itr->second.uState == SKILL_DELETED)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SKILL_BY_SKILL);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, itr->first);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, itr->first);
trans->Append(stmt);
mSkillStatus.erase(itr++);
@@ -7727,19 +7725,19 @@ void Player::_SaveSkills(CharacterDatabaseTransaction trans)
{
case SKILL_NEW:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILLS);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt16(1, uint16(itr->first));
- stmt->setUInt16(2, value);
- stmt->setUInt16(3, max);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, uint16(itr->first));
+ stmt->SetData(2, value);
+ stmt->SetData(3, max);
trans->Append(stmt);
break;
case SKILL_CHANGED:
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_SKILLS);
- stmt->setUInt16(0, value);
- stmt->setUInt16(1, max);
- stmt->setUInt32(2, GetGUID().GetCounter());
- stmt->setUInt16(3, uint16(itr->first));
+ stmt->SetData(0, value);
+ stmt->SetData(1, max);
+ stmt->SetData(2, GetGUID().GetCounter());
+ stmt->SetData(3, uint16(itr->first));
trans->Append(stmt);
break;
@@ -7769,8 +7767,8 @@ void Player::_SaveSpells(CharacterDatabaseTransaction trans)
if (itr->second->State == PLAYERSPELL_REMOVED || itr->second->State == PLAYERSPELL_CHANGED)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SPELL_BY_SPELL);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, itr->first);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, itr->first);
trans->Append(stmt);
}
@@ -7778,9 +7776,9 @@ void Player::_SaveSpells(CharacterDatabaseTransaction trans)
if (itr->second->State == PLAYERSPELL_NEW || itr->second->State == PLAYERSPELL_CHANGED)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SPELL);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, itr->first);
- stmt->setUInt8(2, itr->second->specMask);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, itr->first);
+ stmt->SetData(2, itr->second->specMask);
trans->Append(stmt);
}
@@ -7808,34 +7806,34 @@ void Player::_SaveStats(CharacterDatabaseTransaction trans)
CharacterDatabasePreparedStatement* stmt = nullptr;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_STATS);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_STATS);
- stmt->setUInt32(index++, GetGUID().GetCounter());
- stmt->setUInt32(index++, GetMaxHealth());
+ stmt->SetData(index++, GetGUID().GetCounter());
+ stmt->SetData(index++, GetMaxHealth());
for (uint8 i = 0; i < MAX_POWERS; ++i)
- stmt->setUInt32(index++, GetMaxPower(Powers(i)));
+ stmt->SetData(index++, GetMaxPower(Powers(i)));
for (uint8 i = 0; i < MAX_STATS; ++i)
- stmt->setUInt32(index++, GetStat(Stats(i)));
+ stmt->SetData(index++, GetStat(Stats(i)));
for (int i = 0; i < MAX_SPELL_SCHOOL; ++i)
- stmt->setUInt32(index++, GetResistance(SpellSchools(i)));
-
- stmt->setFloat(index++, GetFloatValue(PLAYER_BLOCK_PERCENTAGE));
- stmt->setFloat(index++, GetFloatValue(PLAYER_DODGE_PERCENTAGE));
- stmt->setFloat(index++, GetFloatValue(PLAYER_PARRY_PERCENTAGE));
- stmt->setFloat(index++, GetFloatValue(PLAYER_CRIT_PERCENTAGE));
- stmt->setFloat(index++, GetFloatValue(PLAYER_RANGED_CRIT_PERCENTAGE));
- stmt->setFloat(index++, GetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1));
- stmt->setUInt32(index++, GetUInt32Value(UNIT_FIELD_ATTACK_POWER));
- stmt->setUInt32(index++, GetUInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER));
- stmt->setUInt32(index++, GetBaseSpellPowerBonus());
- stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_COMBAT_RATING_1 + static_cast<uint16>(CR_CRIT_TAKEN_SPELL)));
+ stmt->SetData(index++, GetResistance(SpellSchools(i)));
+
+ stmt->SetData(index++, GetFloatValue(PLAYER_BLOCK_PERCENTAGE));
+ stmt->SetData(index++, GetFloatValue(PLAYER_DODGE_PERCENTAGE));
+ stmt->SetData(index++, GetFloatValue(PLAYER_PARRY_PERCENTAGE));
+ stmt->SetData(index++, GetFloatValue(PLAYER_CRIT_PERCENTAGE));
+ stmt->SetData(index++, GetFloatValue(PLAYER_RANGED_CRIT_PERCENTAGE));
+ stmt->SetData(index++, GetFloatValue(PLAYER_SPELL_CRIT_PERCENTAGE1));
+ stmt->SetData(index++, GetUInt32Value(UNIT_FIELD_ATTACK_POWER));
+ stmt->SetData(index++, GetUInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER));
+ stmt->SetData(index++, GetBaseSpellPowerBonus());
+ stmt->SetData(index++, GetUInt32Value(PLAYER_FIELD_COMBAT_RATING_1 + static_cast<uint16>(CR_CRIT_TAKEN_SPELL)));
trans->Append(stmt);
}
diff --git a/src/server/game/Entities/Player/PlayerUpdates.cpp b/src/server/game/Entities/Player/PlayerUpdates.cpp
index 583d8e95b5..d147a03c35 100644
--- a/src/server/game/Entities/Player/PlayerUpdates.cpp
+++ b/src/server/game/Entities/Player/PlayerUpdates.cpp
@@ -133,10 +133,10 @@ void Player::Update(uint32 p_time)
GetSession()->m_muteTime = 0;
LoginDatabasePreparedStatement* stmt =
LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);
- stmt->setInt64(0, 0); // Set the mute time to 0
- stmt->setString(1, "");
- stmt->setString(2, "");
- stmt->setUInt32(3, GetSession()->GetAccountId());
+ stmt->SetData(0, 0); // Set the mute time to 0
+ stmt->SetData(1, "");
+ stmt->SetData(2, "");
+ stmt->SetData(3, GetSession()->GetAccountId());
LoginDatabase.Execute(stmt);
}
@@ -439,28 +439,28 @@ void Player::UpdateNextMailTimeAndUnreads()
// Get the next delivery time
CharacterDatabasePreparedStatement* stmtNextDeliveryTime =
CharacterDatabase.GetPreparedStatement(CHAR_SEL_NEXT_MAIL_DELIVERYTIME);
- stmtNextDeliveryTime->setUInt32(0, GetGUID().GetCounter());
- stmtNextDeliveryTime->setUInt32(1, uint32(cTime));
+ stmtNextDeliveryTime->SetData(0, GetGUID().GetCounter());
+ stmtNextDeliveryTime->SetData(1, uint32(cTime));
PreparedQueryResult resultNextDeliveryTime =
CharacterDatabase.Query(stmtNextDeliveryTime);
if (resultNextDeliveryTime)
{
Field* fields = resultNextDeliveryTime->Fetch();
- m_nextMailDelivereTime = time_t(fields[0].GetUInt32());
+ m_nextMailDelivereTime = time_t(fields[0].Get<uint32>());
}
// Get unread mails count
CharacterDatabasePreparedStatement* stmtUnreadAmount =
CharacterDatabase.GetPreparedStatement(
CHAR_SEL_CHARACTER_MAILCOUNT_UNREAD_SYNCH);
- stmtUnreadAmount->setUInt32(0, GetGUID().GetCounter());
- stmtUnreadAmount->setUInt32(1, uint32(cTime));
+ stmtUnreadAmount->SetData(0, GetGUID().GetCounter());
+ stmtUnreadAmount->SetData(1, uint32(cTime));
PreparedQueryResult resultUnreadAmount =
CharacterDatabase.Query(stmtUnreadAmount);
if (resultUnreadAmount)
{
Field* fields = resultUnreadAmount->Fetch();
- unReadMails = uint8(fields[0].GetUInt64());
+ unReadMails = uint8(fields[0].Get<uint64>());
}
}
@@ -2235,11 +2235,11 @@ void Player::UpdateSpecCount(uint8 count)
itr != m_actionButtons.end(); ++itr)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_ACTION);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt8(1, 1);
- stmt->setUInt8(2, itr->first);
- stmt->setUInt32(3, itr->second.GetAction());
- stmt->setUInt8(4, uint8(itr->second.GetType()));
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, 1);
+ stmt->SetData(2, itr->first);
+ stmt->SetData(3, itr->second.GetAction());
+ stmt->SetData(4, uint8(itr->second.GetType()));
trans->Append(stmt);
}
}
@@ -2250,8 +2250,8 @@ void Player::UpdateSpecCount(uint8 count)
stmt = CharacterDatabase.GetPreparedStatement(
CHAR_DEL_CHAR_ACTION_EXCEPT_SPEC);
- stmt->setUInt8(0, m_activeSpec);
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, m_activeSpec);
+ stmt->SetData(1, GetGUID().GetCounter());
trans->Append(stmt);
m_activeSpec = 0;
diff --git a/src/server/game/Entities/Player/SocialMgr.cpp b/src/server/game/Entities/Player/SocialMgr.cpp
index 5c09c7fa77..24426730f5 100644
--- a/src/server/game/Entities/Player/SocialMgr.cpp
+++ b/src/server/game/Entities/Player/SocialMgr.cpp
@@ -50,9 +50,9 @@ bool PlayerSocial::AddToSocialList(ObjectGuid friendGuid, SocialFlag flag)
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_CHARACTER_SOCIAL_FLAGS);
- stmt->setUInt8(0, itr->second.Flags);
- stmt->setUInt32(1, GetPlayerGUID().GetCounter());
- stmt->setUInt32(2, friendGuid.GetCounter());
+ stmt->SetData(0, itr->second.Flags);
+ stmt->SetData(1, GetPlayerGUID().GetCounter());
+ stmt->SetData(2, friendGuid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -62,9 +62,9 @@ bool PlayerSocial::AddToSocialList(ObjectGuid friendGuid, SocialFlag flag)
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_SOCIAL);
- stmt->setUInt32(0, GetPlayerGUID().GetCounter());
- stmt->setUInt32(1, friendGuid.GetCounter());
- stmt->setUInt8(2, flag);
+ stmt->SetData(0, GetPlayerGUID().GetCounter());
+ stmt->SetData(1, friendGuid.GetCounter());
+ stmt->SetData(2, flag);
CharacterDatabase.Execute(stmt);
}
@@ -83,8 +83,8 @@ void PlayerSocial::RemoveFromSocialList(ObjectGuid friendGuid, SocialFlag flag)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHARACTER_SOCIAL);
- stmt->setUInt32(0, GetPlayerGUID().GetCounter());
- stmt->setUInt32(1, friendGuid.GetCounter());
+ stmt->SetData(0, GetPlayerGUID().GetCounter());
+ stmt->SetData(1, friendGuid.GetCounter());
CharacterDatabase.Execute(stmt);
@@ -94,9 +94,9 @@ void PlayerSocial::RemoveFromSocialList(ObjectGuid friendGuid, SocialFlag flag)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_REM_CHARACTER_SOCIAL_FLAGS);
- stmt->setUInt8(0, flag);
- stmt->setUInt32(1, GetPlayerGUID().GetCounter());
- stmt->setUInt32(2, friendGuid.GetCounter());
+ stmt->SetData(0, flag);
+ stmt->SetData(1, GetPlayerGUID().GetCounter());
+ stmt->SetData(2, friendGuid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -112,9 +112,9 @@ void PlayerSocial::SetFriendNote(ObjectGuid friendGuid, std::string note)
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_SOCIAL_NOTE);
- stmt->setString(0, note);
- stmt->setUInt32(1, GetPlayerGUID().GetCounter());
- stmt->setUInt32(2, friendGuid.GetCounter());
+ stmt->SetData(0, note);
+ stmt->SetData(1, GetPlayerGUID().GetCounter());
+ stmt->SetData(2, friendGuid.GetCounter());
CharacterDatabase.Execute(stmt);
@@ -328,9 +328,9 @@ PlayerSocial* SocialMgr::LoadFromDB(PreparedQueryResult result, ObjectGuid guid)
{
Field* fields = result->Fetch();
- auto friendGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32());
- auto flags = fields[1].GetUInt8();
- auto note = fields[2].GetString();
+ auto friendGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>());
+ auto flags = fields[1].Get<uint8>();
+ auto note = fields[2].Get<std::string>();
social->m_playerSocialMap[friendGuid] = FriendInfo(flags, note);
} while (result->NextRow());
diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp
index a555161002..b2d552ba2b 100644
--- a/src/server/game/Events/GameEventMgr.cpp
+++ b/src/server/game/Events/GameEventMgr.cpp
@@ -222,11 +222,11 @@ void GameEventMgr::StopEvent(uint16 event_id, bool overwrite)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ALL_GAME_EVENT_CONDITION_SAVE);
- stmt->setUInt8(0, uint8(event_id));
+ stmt->SetData(0, uint8(event_id));
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GAME_EVENT_SAVE);
- stmt->setUInt8(0, uint8(event_id));
+ stmt->SetData(0, uint8(event_id));
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -256,7 +256,7 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint8 event_id = fields[0].GetUInt8();
+ uint8 event_id = fields[0].Get<uint8>();
if (event_id == 0)
{
LOG_ERROR("sql.sql", "`game_event` game event entry 0 is reserved and can't be used.");
@@ -264,21 +264,21 @@ void GameEventMgr::LoadFromDB()
}
GameEventData& pGameEvent = mGameEvent[event_id];
- pGameEvent.eventId = fields[0].GetUInt32();
- uint64 starttime = fields[1].GetUInt64();
+ pGameEvent.eventId = fields[0].Get<uint32>();
+ uint64 starttime = fields[1].Get<uint64>();
pGameEvent.start = time_t(starttime);
- uint64 endtime = fields[2].GetUInt64();
+ uint64 endtime = fields[2].Get<uint64>();
if (fields[2].IsNull())
endtime = GameTime::GetGameTime().count() + 63072000; // add 2 years to current date
pGameEvent.end = time_t(endtime);
- pGameEvent.occurence = fields[3].GetUInt64();
- pGameEvent.length = fields[4].GetUInt64();
- pGameEvent.holiday_id = HolidayIds(fields[5].GetUInt32());
-
- pGameEvent.holidayStage = fields[6].GetUInt8();
- pGameEvent.description = fields[7].GetString();
- pGameEvent.state = (GameEventState)(fields[8].GetUInt8());
- pGameEvent.announce = fields[9].GetUInt8();
+ pGameEvent.occurence = fields[3].Get<uint64>();
+ pGameEvent.length = fields[4].Get<uint64>();
+ pGameEvent.holiday_id = HolidayIds(fields[5].Get<uint32>());
+
+ pGameEvent.holidayStage = fields[6].Get<uint8>();
+ pGameEvent.description = fields[7].Get<std::string>();
+ pGameEvent.state = (GameEventState)(fields[8].Get<uint8>());
+ pGameEvent.announce = fields[9].Get<uint8>();
pGameEvent.nextstart = 0;
++count;
@@ -324,7 +324,7 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint8 event_id = fields[0].GetUInt8();
+ uint8 event_id = fields[0].Get<uint8>();
if (event_id >= mGameEvent.size())
{
@@ -334,8 +334,8 @@ void GameEventMgr::LoadFromDB()
if (mGameEvent[event_id].state != GAMEEVENT_NORMAL && mGameEvent[event_id].state != GAMEEVENT_INTERNAL)
{
- mGameEvent[event_id].state = (GameEventState)(fields[1].GetUInt8());
- mGameEvent[event_id].nextstart = time_t(fields[2].GetUInt32());
+ mGameEvent[event_id].state = (GameEventState)(fields[1].Get<uint8>());
+ mGameEvent[event_id].nextstart = time_t(fields[2].Get<uint32>());
}
else
{
@@ -369,7 +369,7 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint16 event_id = fields[0].GetUInt8();
+ uint16 event_id = fields[0].Get<uint8>();
if (event_id >= mGameEvent.size())
{
@@ -379,7 +379,7 @@ void GameEventMgr::LoadFromDB()
if (mGameEvent[event_id].state != GAMEEVENT_NORMAL && mGameEvent[event_id].state != GAMEEVENT_INTERNAL)
{
- uint16 prerequisite_event = fields[1].GetUInt32();
+ uint16 prerequisite_event = fields[1].Get<uint32>();
if (prerequisite_event >= mGameEvent.size())
{
LOG_ERROR("sql.sql", "`game_event_prerequisite` game event prerequisite id ({}) is out of range compared to max event id in `game_event`", prerequisite_event);
@@ -420,8 +420,8 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- int16 event_id = fields[1].GetInt8();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ int16 event_id = fields[1].Get<int8>();
CreatureData const* data = sObjectMgr->GetCreatureData(guid);
if (!data)
@@ -468,8 +468,8 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- int16 event_id = fields[1].GetInt8();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ int16 event_id = fields[1].Get<int8>();
int32 internal_event_id = mGameEvent.size() + event_id - 1;
@@ -517,11 +517,11 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint32 entry = fields[1].GetUInt32();
- uint32 entry2 = fields[2].GetUInt32();
- uint32 entry3 = fields[3].GetUInt32();
- uint16 event_id = fields[4].GetUInt8();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint32 entry = fields[1].Get<uint32>();
+ uint32 entry2 = fields[2].Get<uint32>();
+ uint32 entry3 = fields[3].Get<uint32>();
+ uint16 event_id = fields[4].Get<uint8>();
if (event_id >= mGameEventModelEquip.size())
{
@@ -531,8 +531,8 @@ void GameEventMgr::LoadFromDB()
ModelEquipList& equiplist = mGameEventModelEquip[event_id];
ModelEquip newModelEquipSet;
- newModelEquipSet.modelid = fields[5].GetUInt32();
- newModelEquipSet.equipment_id = fields[6].GetUInt8();
+ newModelEquipSet.modelid = fields[5].Get<uint32>();
+ newModelEquipSet.equipment_id = fields[6].Get<uint8>();
newModelEquipSet.equipement_id_prev = 0;
newModelEquipSet.modelid_prev = 0;
@@ -576,9 +576,9 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
- uint32 quest = fields[1].GetUInt32();
- uint16 event_id = fields[2].GetUInt8();
+ uint32 id = fields[0].Get<uint32>();
+ uint32 quest = fields[1].Get<uint32>();
+ uint16 event_id = fields[2].Get<uint8>();
if (event_id >= mGameEventCreatureQuests.size())
{
@@ -616,9 +616,9 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
- uint32 quest = fields[1].GetUInt32();
- uint16 event_id = fields[2].GetUInt8();
+ uint32 id = fields[0].Get<uint32>();
+ uint32 quest = fields[1].Get<uint32>();
+ uint16 event_id = fields[2].Get<uint8>();
if (event_id >= mGameEventGameObjectQuests.size())
{
@@ -656,10 +656,10 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 quest = fields[0].GetUInt32();
- uint16 event_id = fields[1].GetUInt8();
- uint32 condition = fields[2].GetUInt32();
- float num = fields[3].GetFloat();
+ uint32 quest = fields[0].Get<uint32>();
+ uint16 event_id = fields[1].Get<uint8>();
+ uint32 condition = fields[2].Get<uint32>();
+ float num = fields[3].Get<float>();
if (event_id >= mGameEvent.size())
{
@@ -698,8 +698,8 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint16 event_id = fields[0].GetUInt8();
- uint32 condition = fields[1].GetUInt32();
+ uint16 event_id = fields[0].Get<uint8>();
+ uint32 condition = fields[1].Get<uint32>();
if (event_id >= mGameEvent.size())
{
@@ -707,10 +707,10 @@ void GameEventMgr::LoadFromDB()
continue;
}
- mGameEvent[event_id].conditions[condition].reqNum = fields[2].GetFloat();
+ mGameEvent[event_id].conditions[condition].reqNum = fields[2].Get<float>();
mGameEvent[event_id].conditions[condition].done = 0;
- mGameEvent[event_id].conditions[condition].max_world_state = fields[3].GetUInt16();
- mGameEvent[event_id].conditions[condition].done_world_state = fields[4].GetUInt16();
+ mGameEvent[event_id].conditions[condition].max_world_state = fields[3].Get<uint16>();
+ mGameEvent[event_id].conditions[condition].done_world_state = fields[4].Get<uint16>();
++count;
} while (result->NextRow());
@@ -739,8 +739,8 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint16 event_id = fields[0].GetUInt8();
- uint32 condition = fields[1].GetUInt32();
+ uint16 event_id = fields[0].Get<uint8>();
+ uint32 condition = fields[1].Get<uint32>();
if (event_id >= mGameEvent.size())
{
@@ -751,7 +751,7 @@ void GameEventMgr::LoadFromDB()
GameEventConditionMap::iterator itr = mGameEvent[event_id].conditions.find(condition);
if (itr != mGameEvent[event_id].conditions.end())
{
- itr->second.done = fields[2].GetFloat();
+ itr->second.done = fields[2].Get<float>();
}
else
{
@@ -786,9 +786,9 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint16 event_id = fields[1].GetUInt8();
- uint32 npcflag = fields[2].GetUInt32();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint16 event_id = fields[1].Get<uint8>();
+ uint32 npcflag = fields[2].Get<uint32>();
if (event_id >= mGameEvent.size())
{
@@ -825,8 +825,8 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 questId = fields[0].GetUInt32();
- uint32 eventEntry = fields[1].GetUInt32(); // TODO: Change to uint8
+ uint32 questId = fields[0].Get<uint32>();
+ uint32 eventEntry = fields[1].Get<uint32>(); // TODO: Change to uint8
Quest* questTemplate = const_cast<Quest*>(sObjectMgr->GetQuestTemplate(questId));
@@ -871,7 +871,7 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint8 event_id = fields[0].GetUInt8();
+ uint8 event_id = fields[0].Get<uint8>();
if (event_id >= mGameEventVendors.size())
{
@@ -881,11 +881,11 @@ void GameEventMgr::LoadFromDB()
NPCVendorList& vendors = mGameEventVendors[event_id];
NPCVendorEntry newEntry;
- ObjectGuid::LowType guid = fields[1].GetUInt32();
- newEntry.item = fields[2].GetUInt32();
- newEntry.maxcount = fields[3].GetUInt32();
- newEntry.incrtime = fields[4].GetUInt32();
- newEntry.ExtendedCost = fields[5].GetUInt32();
+ ObjectGuid::LowType guid = fields[1].Get<uint32>();
+ newEntry.item = fields[2].Get<uint32>();
+ newEntry.maxcount = fields[3].Get<uint32>();
+ newEntry.incrtime = fields[4].Get<uint32>();
+ newEntry.ExtendedCost = fields[5].Get<uint32>();
// get the event npc flag for checking if the npc will be vendor during the event or not
uint32 event_npc_flag = 0;
NPCFlagList& flist = mGameEventNPCFlags[event_id];
@@ -936,7 +936,7 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint16 event_id = fields[0].GetUInt8();
+ uint16 event_id = fields[0].Get<uint8>();
if (event_id >= mGameEvent.size())
{
@@ -944,7 +944,7 @@ void GameEventMgr::LoadFromDB()
continue;
}
- mGameEventBattlegroundHolidays[event_id] = fields[1].GetUInt32();
+ mGameEventBattlegroundHolidays[event_id] = fields[1].Get<uint32>();
++count;
} while (result->NextRow());
@@ -974,8 +974,8 @@ void GameEventMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- int16 event_id = fields[1].GetInt8();
+ uint32 entry = fields[0].Get<uint32>();
+ int16 event_id = fields[1].Get<int8>();
int32 internal_event_id = mGameEvent.size() + event_id - 1;
@@ -1021,7 +1021,7 @@ void GameEventMgr::LoadHolidayDates()
{
Field* fields = result->Fetch();
- uint32 holidayId = fields[0].GetUInt32();
+ uint32 holidayId = fields[0].Get<uint32>();
HolidaysEntry* entry = const_cast<HolidaysEntry*>(sHolidaysStore.LookupEntry(holidayId));
if (!entry)
{
@@ -1029,15 +1029,15 @@ void GameEventMgr::LoadHolidayDates()
continue;
}
- uint8 dateId = fields[1].GetUInt8();
+ uint8 dateId = fields[1].Get<uint8>();
if (dateId >= MAX_HOLIDAY_DATES)
{
LOG_ERROR("sql.sql", "holiday_dates entry has out of range date_id {}.", dateId);
continue;
}
- entry->Date[dateId] = fields[2].GetUInt32();
+ entry->Date[dateId] = fields[2].Get<uint32>();
- if (uint32 duration = fields[3].GetUInt32())
+ if (uint32 duration = fields[3].Get<uint32>())
entry->Duration[0] = duration;
auto itr = std::lower_bound(modifiedHolidays.begin(), modifiedHolidays.end(), entry->Id);
@@ -1074,7 +1074,7 @@ void GameEventMgr::Initialize()
{
Field* fields = result->Fetch();
- uint32 maxEventId = fields[0].GetUInt8();
+ uint32 maxEventId = fields[0].Get<uint8>();
// Id starts with 1 and vector with 0, thus increment
maxEventId++;
@@ -1103,7 +1103,7 @@ uint32 GameEventMgr::StartSystem() // return the next
void GameEventMgr::StartArenaSeason()
{
uint8 season = sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID);
- QueryResult result = WorldDatabase.PQuery("SELECT eventEntry FROM game_event_arena_seasons WHERE season = '%i'", season);
+ QueryResult result = WorldDatabase.Query("SELECT eventEntry FROM game_event_arena_seasons WHERE season = '{}'", season);
if (!result)
{
@@ -1112,7 +1112,7 @@ void GameEventMgr::StartArenaSeason()
}
Field* fields = result->Fetch();
- uint16 eventId = fields[0].GetUInt8();
+ uint16 eventId = fields[0].Get<uint8>();
if (eventId >= mGameEvent.size())
{
@@ -1687,14 +1687,14 @@ void GameEventMgr::HandleQuestComplete(uint32 quest_id)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GAME_EVENT_CONDITION_SAVE);
- stmt->setUInt8(0, uint8(event_id));
- stmt->setUInt32(1, condition);
+ stmt->SetData(0, uint8(event_id));
+ stmt->SetData(1, condition);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GAME_EVENT_CONDITION_SAVE);
- stmt->setUInt8(0, uint8(event_id));
- stmt->setUInt32(1, condition);
- stmt->setFloat(2, citr->second.done);
+ stmt->SetData(0, uint8(event_id));
+ stmt->SetData(1, condition);
+ stmt->SetData(2, citr->second.done);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
// check if all conditions are met, if so, update the event state
@@ -1732,13 +1732,13 @@ void GameEventMgr::SaveWorldEventStateToDB(uint16 event_id)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GAME_EVENT_SAVE);
- stmt->setUInt8(0, uint8(event_id));
+ stmt->SetData(0, uint8(event_id));
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GAME_EVENT_SAVE);
- stmt->setUInt8(0, uint8(event_id));
- stmt->setUInt8(1, mGameEvent[event_id].state);
- stmt->setUInt32(2, mGameEvent[event_id].nextstart ? uint32(mGameEvent[event_id].nextstart) : 0);
+ stmt->SetData(0, uint8(event_id));
+ stmt->SetData(1, mGameEvent[event_id].state);
+ stmt->SetData(2, mGameEvent[event_id].nextstart ? uint32(mGameEvent[event_id].nextstart) : 0);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 88c5406bc4..8786336b45 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -400,15 +400,15 @@ void ObjectMgr::LoadCreatureLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
CreatureLocale& data = _creatureLocaleStore[ID];
- AddLocaleString(fields[2].GetString(), locale, data.Name);
- AddLocaleString(fields[3].GetString(), locale, data.Title);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.Name);
+ AddLocaleString(fields[3].Get<std::string>(), locale, data.Title);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Creature Locale strings in {} ms", (unsigned long)_creatureLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -430,16 +430,16 @@ void ObjectMgr::LoadGossipMenuItemsLocales()
{
Field* fields = result->Fetch();
- uint16 MenuID = fields[0].GetUInt16();
- uint16 OptionID = fields[1].GetUInt16();
+ uint16 MenuID = fields[0].Get<uint16>();
+ uint16 OptionID = fields[1].Get<uint16>();
- LocaleConstant locale = GetLocaleByName(fields[2].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[2].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
GossipMenuItemsLocale& data = _gossipMenuItemsLocaleStore[MAKE_PAIR32(MenuID, OptionID)];
- AddLocaleString(fields[3].GetString(), locale, data.OptionText);
- AddLocaleString(fields[4].GetString(), locale, data.BoxText);
+ AddLocaleString(fields[3].Get<std::string>(), locale, data.OptionText);
+ AddLocaleString(fields[4].Get<std::string>(), locale, data.BoxText);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Gossip Menu Option Locale strings in {} ms", (uint32)_gossipMenuItemsLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -461,14 +461,14 @@ void ObjectMgr::LoadPointOfInterestLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
PointOfInterestLocale& data = _pointOfInterestLocaleStore[ID];
- AddLocaleString(fields[2].GetString(), locale, data.Name);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.Name);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Points Of Interest Locale strings in {} ms", (uint32)_pointOfInterestLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -541,7 +541,7 @@ void ObjectMgr::LoadCreatureTemplates()
void ObjectMgr::LoadCreatureTemplate(Field* fields)
{
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
CreatureTemplate& creatureTemplate = _creatureTemplateStore[entry];
@@ -549,54 +549,54 @@ void ObjectMgr::LoadCreatureTemplate(Field* fields)
for (uint8 i = 0; i < MAX_DIFFICULTY - 1; ++i)
{
- creatureTemplate.DifficultyEntry[i] = fields[1 + i].GetUInt32();
+ creatureTemplate.DifficultyEntry[i] = fields[1 + i].Get<uint32>();
}
for (uint8 i = 0; i < MAX_KILL_CREDIT; ++i)
{
- creatureTemplate.KillCredit[i] = fields[4 + i].GetUInt32();
- }
-
- creatureTemplate.Modelid1 = fields[6].GetUInt32();
- creatureTemplate.Modelid2 = fields[7].GetUInt32();
- creatureTemplate.Modelid3 = fields[8].GetUInt32();
- creatureTemplate.Modelid4 = fields[9].GetUInt32();
- creatureTemplate.Name = fields[10].GetString();
- creatureTemplate.SubName = fields[11].GetString();
- creatureTemplate.IconName = fields[12].GetString();
- creatureTemplate.GossipMenuId = fields[13].GetUInt32();
- creatureTemplate.minlevel = fields[14].GetUInt8();
- creatureTemplate.maxlevel = fields[15].GetUInt8();
- creatureTemplate.expansion = uint32(fields[16].GetInt16());
- creatureTemplate.faction = uint32(fields[17].GetUInt16());
- creatureTemplate.npcflag = fields[18].GetUInt32();
- creatureTemplate.speed_walk = fields[19].GetFloat();
- creatureTemplate.speed_run = fields[20].GetFloat();
- creatureTemplate.speed_swim = fields[21].GetFloat();
- creatureTemplate.speed_flight = fields[22].GetFloat();
- creatureTemplate.detection_range = fields[23].GetFloat();
- creatureTemplate.scale = fields[24].GetFloat();
- creatureTemplate.rank = uint32(fields[25].GetUInt8());
- creatureTemplate.dmgschool = uint32(fields[26].GetInt8());
- creatureTemplate.DamageModifier = fields[27].GetFloat();
- creatureTemplate.BaseAttackTime = fields[28].GetUInt32();
- creatureTemplate.RangeAttackTime = fields[29].GetUInt32();
- creatureTemplate.BaseVariance = fields[30].GetFloat();
- creatureTemplate.RangeVariance = fields[31].GetFloat();
- creatureTemplate.unit_class = uint32(fields[32].GetUInt8());
- creatureTemplate.unit_flags = fields[33].GetUInt32();
- creatureTemplate.unit_flags2 = fields[34].GetUInt32();
- creatureTemplate.dynamicflags = fields[35].GetUInt32();
- creatureTemplate.family = uint32(fields[36].GetUInt8());
- creatureTemplate.trainer_type = uint32(fields[37].GetUInt8());
- creatureTemplate.trainer_spell = fields[38].GetUInt32();
- creatureTemplate.trainer_class = uint32(fields[39].GetUInt8());
- creatureTemplate.trainer_race = uint32(fields[40].GetUInt8());
- creatureTemplate.type = uint32(fields[41].GetUInt8());
- creatureTemplate.type_flags = fields[42].GetUInt32();
- creatureTemplate.lootid = fields[43].GetUInt32();
- creatureTemplate.pickpocketLootId = fields[44].GetUInt32();
- creatureTemplate.SkinLootId = fields[45].GetUInt32();
+ creatureTemplate.KillCredit[i] = fields[4 + i].Get<uint32>();
+ }
+
+ creatureTemplate.Modelid1 = fields[6].Get<uint32>();
+ creatureTemplate.Modelid2 = fields[7].Get<uint32>();
+ creatureTemplate.Modelid3 = fields[8].Get<uint32>();
+ creatureTemplate.Modelid4 = fields[9].Get<uint32>();
+ creatureTemplate.Name = fields[10].Get<std::string>();
+ creatureTemplate.SubName = fields[11].Get<std::string>();
+ creatureTemplate.IconName = fields[12].Get<std::string>();
+ creatureTemplate.GossipMenuId = fields[13].Get<uint32>();
+ creatureTemplate.minlevel = fields[14].Get<uint8>();
+ creatureTemplate.maxlevel = fields[15].Get<uint8>();
+ creatureTemplate.expansion = uint32(fields[16].Get<int16>());
+ creatureTemplate.faction = uint32(fields[17].Get<uint16>());
+ creatureTemplate.npcflag = fields[18].Get<uint32>();
+ creatureTemplate.speed_walk = fields[19].Get<float>();
+ creatureTemplate.speed_run = fields[20].Get<float>();
+ creatureTemplate.speed_swim = fields[21].Get<float>();
+ creatureTemplate.speed_flight = fields[22].Get<float>();
+ creatureTemplate.detection_range = fields[23].Get<float>();
+ creatureTemplate.scale = fields[24].Get<float>();
+ creatureTemplate.rank = uint32(fields[25].Get<uint8>());
+ creatureTemplate.dmgschool = uint32(fields[26].Get<int8>());
+ creatureTemplate.DamageModifier = fields[27].Get<float>();
+ creatureTemplate.BaseAttackTime = fields[28].Get<uint32>();
+ creatureTemplate.RangeAttackTime = fields[29].Get<uint32>();
+ creatureTemplate.BaseVariance = fields[30].Get<float>();
+ creatureTemplate.RangeVariance = fields[31].Get<float>();
+ creatureTemplate.unit_class = uint32(fields[32].Get<uint8>());
+ creatureTemplate.unit_flags = fields[33].Get<uint32>();
+ creatureTemplate.unit_flags2 = fields[34].Get<uint32>();
+ creatureTemplate.dynamicflags = fields[35].Get<uint32>();
+ creatureTemplate.family = uint32(fields[36].Get<uint8>());
+ creatureTemplate.trainer_type = uint32(fields[37].Get<uint8>());
+ creatureTemplate.trainer_spell = fields[38].Get<uint32>();
+ creatureTemplate.trainer_class = uint32(fields[39].Get<uint8>());
+ creatureTemplate.trainer_race = uint32(fields[40].Get<uint8>());
+ creatureTemplate.type = uint32(fields[41].Get<uint8>());
+ creatureTemplate.type_flags = fields[42].Get<uint32>();
+ creatureTemplate.lootid = fields[43].Get<uint32>();
+ creatureTemplate.pickpocketLootId = fields[44].Get<uint32>();
+ creatureTemplate.SkinLootId = fields[45].Get<uint32>();
for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i)
{
@@ -608,49 +608,49 @@ void ObjectMgr::LoadCreatureTemplate(Field* fields)
creatureTemplate.spells[i] = 0;
}
- creatureTemplate.PetSpellDataId = fields[46].GetUInt32();
- creatureTemplate.VehicleId = fields[47].GetUInt32();
- creatureTemplate.mingold = fields[48].GetUInt32();
- creatureTemplate.maxgold = fields[49].GetUInt32();
- creatureTemplate.AIName = fields[50].GetString();
- creatureTemplate.MovementType = uint32(fields[51].GetUInt8());
+ creatureTemplate.PetSpellDataId = fields[46].Get<uint32>();
+ creatureTemplate.VehicleId = fields[47].Get<uint32>();
+ creatureTemplate.mingold = fields[48].Get<uint32>();
+ creatureTemplate.maxgold = fields[49].Get<uint32>();
+ creatureTemplate.AIName = fields[50].Get<std::string>();
+ creatureTemplate.MovementType = uint32(fields[51].Get<uint8>());
if (!fields[52].IsNull())
{
- creatureTemplate.Movement.Ground = static_cast<CreatureGroundMovementType>(fields[52].GetUInt8());
+ creatureTemplate.Movement.Ground = static_cast<CreatureGroundMovementType>(fields[52].Get<uint8>());
}
- creatureTemplate.Movement.Swim = fields[53].GetBool();
+ creatureTemplate.Movement.Swim = fields[53].Get<bool>();
if (!fields[54].IsNull())
{
- creatureTemplate.Movement.Flight = static_cast<CreatureFlightMovementType>(fields[54].GetUInt8());
+ creatureTemplate.Movement.Flight = static_cast<CreatureFlightMovementType>(fields[54].Get<uint8>());
}
- creatureTemplate.Movement.Rooted = fields[55].GetBool();
+ creatureTemplate.Movement.Rooted = fields[55].Get<bool>();
if (!fields[56].IsNull())
{
- creatureTemplate.Movement.Chase = static_cast<CreatureChaseMovementType>(fields[56].GetUInt8());
+ creatureTemplate.Movement.Chase = static_cast<CreatureChaseMovementType>(fields[56].Get<uint8>());
}
if (!fields[57].IsNull())
{
- creatureTemplate.Movement.Random = static_cast<CreatureRandomMovementType>(fields[57].GetUInt8());
+ creatureTemplate.Movement.Random = static_cast<CreatureRandomMovementType>(fields[57].Get<uint8>());
}
if (!fields[58].IsNull())
{
- creatureTemplate.Movement.InteractionPauseTimer = fields[58].GetUInt32();
+ creatureTemplate.Movement.InteractionPauseTimer = fields[58].Get<uint32>();
}
- creatureTemplate.HoverHeight = fields[59].GetFloat();
- creatureTemplate.ModHealth = fields[60].GetFloat();
- creatureTemplate.ModMana = fields[61].GetFloat();
- creatureTemplate.ModArmor = fields[62].GetFloat();
- creatureTemplate.ModExperience = fields[63].GetFloat();
- creatureTemplate.RacialLeader = fields[64].GetBool();
- creatureTemplate.movementId = fields[65].GetUInt32();
- creatureTemplate.RegenHealth = fields[66].GetBool();
- creatureTemplate.MechanicImmuneMask = fields[67].GetUInt32();
- creatureTemplate.SpellSchoolImmuneMask = fields[68].GetUInt8();
- creatureTemplate.flags_extra = fields[69].GetUInt32();
- creatureTemplate.ScriptID = GetScriptId(fields[70].GetCString());
+ creatureTemplate.HoverHeight = fields[59].Get<float>();
+ creatureTemplate.ModHealth = fields[60].Get<float>();
+ creatureTemplate.ModMana = fields[61].Get<float>();
+ creatureTemplate.ModArmor = fields[62].Get<float>();
+ creatureTemplate.ModExperience = fields[63].Get<float>();
+ creatureTemplate.RacialLeader = fields[64].Get<bool>();
+ creatureTemplate.movementId = fields[65].Get<uint32>();
+ creatureTemplate.RegenHealth = fields[66].Get<bool>();
+ creatureTemplate.MechanicImmuneMask = fields[67].Get<uint32>();
+ creatureTemplate.SpellSchoolImmuneMask = fields[68].Get<uint8>();
+ creatureTemplate.flags_extra = fields[69].Get<uint32>();
+ creatureTemplate.ScriptID = GetScriptId(fields[70].Get<std::string>());
}
void ObjectMgr::LoadCreatureTemplateResistances()
@@ -673,8 +673,8 @@ void ObjectMgr::LoadCreatureTemplateResistances()
{
Field* fields = result->Fetch();
- uint32 creatureID = fields[0].GetUInt32();
- uint8 school = fields[1].GetUInt8();
+ uint32 creatureID = fields[0].Get<uint32>();
+ uint8 school = fields[1].Get<uint8>();
if (school == SPELL_SCHOOL_NORMAL || school >= MAX_SPELL_SCHOOL)
{
@@ -690,7 +690,7 @@ void ObjectMgr::LoadCreatureTemplateResistances()
}
CreatureTemplate& creatureTemplate = itr->second;
- creatureTemplate.resistance[school] = fields[2].GetInt16();
+ creatureTemplate.resistance[school] = fields[2].Get<int16>();
++count;
} while (result->NextRow());
@@ -719,8 +719,8 @@ void ObjectMgr::LoadCreatureTemplateSpells()
{
Field* fields = result->Fetch();
- uint32 creatureID = fields[0].GetUInt32();
- uint8 index = fields[1].GetUInt8();
+ uint32 creatureID = fields[0].Get<uint32>();
+ uint8 index = fields[1].Get<uint8>();
if (index >= MAX_CREATURE_SPELLS)
{
@@ -736,7 +736,7 @@ void ObjectMgr::LoadCreatureTemplateSpells()
}
CreatureTemplate& creatureTemplate = itr->second;
- creatureTemplate.spells[index] = fields[2].GetUInt32();
+ creatureTemplate.spells[index] = fields[2].Get<uint32>();
++count;
} while (result->NextRow());
@@ -764,7 +764,7 @@ void ObjectMgr::LoadCreatureTemplateAddons()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
if (!sObjectMgr->GetCreatureTemplate(entry))
{
@@ -774,14 +774,14 @@ void ObjectMgr::LoadCreatureTemplateAddons()
CreatureAddon& creatureAddon = _creatureTemplateAddonStore[entry];
- creatureAddon.path_id = fields[1].GetUInt32();
- creatureAddon.mount = fields[2].GetUInt32();
- creatureAddon.bytes1 = fields[3].GetUInt32();
- creatureAddon.bytes2 = fields[4].GetUInt32();
- creatureAddon.emote = fields[5].GetUInt32();
- creatureAddon.visibilityDistanceType = VisibilityDistanceType(fields[6].GetUInt8());
+ creatureAddon.path_id = fields[1].Get<uint32>();
+ creatureAddon.mount = fields[2].Get<uint32>();
+ creatureAddon.bytes1 = fields[3].Get<uint32>();
+ creatureAddon.bytes2 = fields[4].Get<uint32>();
+ creatureAddon.emote = fields[5].Get<uint32>();
+ creatureAddon.visibilityDistanceType = VisibilityDistanceType(fields[6].Get<uint8>());
- for (std::string_view aura : Acore::Tokenize(fields[7].GetStringView(), ' ', false))
+ for (std::string_view aura : Acore::Tokenize(fields[7].Get<std::string_view>(), ' ', false))
{
SpellInfo const* spellInfo = nullptr;
@@ -1244,7 +1244,7 @@ void ObjectMgr::LoadCreatureAddons()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
CreatureData const* creData = GetCreatureData(guid);
if (!creData)
@@ -1255,20 +1255,20 @@ void ObjectMgr::LoadCreatureAddons()
CreatureAddon& creatureAddon = _creatureAddonStore[guid];
- creatureAddon.path_id = fields[1].GetUInt32();
+ creatureAddon.path_id = fields[1].Get<uint32>();
if (creData->movementType == WAYPOINT_MOTION_TYPE && !creatureAddon.path_id)
{
const_cast<CreatureData*>(creData)->movementType = IDLE_MOTION_TYPE;
LOG_ERROR("sql.sql", "Creature (GUID {}) has movement type set to WAYPOINT_MOTION_TYPE but no path assigned", guid);
}
- creatureAddon.mount = fields[2].GetUInt32();
- creatureAddon.bytes1 = fields[3].GetUInt32();
- creatureAddon.bytes2 = fields[4].GetUInt32();
- creatureAddon.emote = fields[5].GetUInt32();
- creatureAddon.visibilityDistanceType = VisibilityDistanceType(fields[6].GetUInt8());
+ creatureAddon.mount = fields[2].Get<uint32>();
+ creatureAddon.bytes1 = fields[3].Get<uint32>();
+ creatureAddon.bytes2 = fields[4].Get<uint32>();
+ creatureAddon.emote = fields[5].Get<uint32>();
+ creatureAddon.visibilityDistanceType = VisibilityDistanceType(fields[6].Get<uint8>());
- for (std::string_view aura : Acore::Tokenize(fields[7].GetStringView(), ' ', false))
+ for (std::string_view aura : Acore::Tokenize(fields[7].Get<std::string_view>(), ' ', false))
{
SpellInfo const* spellInfo = nullptr;
@@ -1345,7 +1345,7 @@ void ObjectMgr::LoadGameObjectAddons()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
const GameObjectData* goData = GetGOData(guid);
if (!goData)
@@ -1355,8 +1355,8 @@ void ObjectMgr::LoadGameObjectAddons()
}
GameObjectAddon& gameObjectAddon = _gameObjectAddonStore[guid];
- gameObjectAddon.invisibilityType = InvisibilityType(fields[1].GetUInt8());
- gameObjectAddon.InvisibilityValue = fields[2].GetUInt32();
+ gameObjectAddon.invisibilityType = InvisibilityType(fields[1].Get<uint8>());
+ gameObjectAddon.InvisibilityValue = fields[2].Get<uint32>();
if (gameObjectAddon.invisibilityType >= TOTAL_INVISIBILITY_TYPES)
{
@@ -1455,7 +1455,7 @@ void ObjectMgr::LoadEquipmentTemplates()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
if (!sObjectMgr->GetCreatureTemplate(entry))
{
@@ -1463,7 +1463,7 @@ void ObjectMgr::LoadEquipmentTemplates()
continue;
}
- uint8 id = fields[1].GetUInt8();
+ uint8 id = fields[1].Get<uint8>();
if (!id)
{
LOG_ERROR("sql.sql", "Creature equipment template with id 0 found for creature {}, skipped.", entry);
@@ -1472,9 +1472,9 @@ void ObjectMgr::LoadEquipmentTemplates()
EquipmentInfo& equipmentInfo = _equipmentInfoStore[entry][id];
- equipmentInfo.ItemEntry[0] = fields[2].GetUInt32();
- equipmentInfo.ItemEntry[1] = fields[3].GetUInt32();
- equipmentInfo.ItemEntry[2] = fields[4].GetUInt32();
+ equipmentInfo.ItemEntry[0] = fields[2].Get<uint32>();
+ equipmentInfo.ItemEntry[1] = fields[3].Get<uint32>();
+ equipmentInfo.ItemEntry[2] = fields[4].Get<uint32>();
for (uint8 i = 0; i < MAX_EQUIPMENT_ITEMS; ++i)
{
@@ -1541,7 +1541,7 @@ void ObjectMgr::LoadCreatureMovementOverrides()
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType spawnId = fields[0].GetUInt32();
+ ObjectGuid::LowType spawnId = fields[0].Get<uint32>();
if (!GetCreatureData(spawnId))
{
LOG_ERROR("sql.sql", "Creature (GUID: {}) does not exist but has a record in `creature_movement_override`", spawnId);
@@ -1551,37 +1551,37 @@ void ObjectMgr::LoadCreatureMovementOverrides()
CreatureMovementData& movement = _creatureMovementOverrides[spawnId];
if (!fields[1].IsNull())
{
- movement.Ground = static_cast<CreatureGroundMovementType>(fields[1].GetUInt8());
+ movement.Ground = static_cast<CreatureGroundMovementType>(fields[1].Get<uint8>());
}
if (!fields[2].IsNull())
{
- movement.Swim = fields[2].GetBool();
+ movement.Swim = fields[2].Get<bool>();
}
if (!fields[3].IsNull())
{
- movement.Flight = static_cast<CreatureFlightMovementType>(fields[3].GetUInt8());
+ movement.Flight = static_cast<CreatureFlightMovementType>(fields[3].Get<uint8>());
}
if (!fields[4].IsNull())
{
- movement.Rooted = fields[4].GetBool();
+ movement.Rooted = fields[4].Get<bool>();
}
if (!fields[5].IsNull())
{
- movement.Chase = static_cast<CreatureChaseMovementType>(fields[5].GetUInt8());
+ movement.Chase = static_cast<CreatureChaseMovementType>(fields[5].Get<uint8>());
}
if (!fields[6].IsNull())
{
- movement.Random = static_cast<CreatureRandomMovementType>(fields[6].GetUInt8());
+ movement.Random = static_cast<CreatureRandomMovementType>(fields[6].Get<uint8>());
}
if (!fields[7].IsNull())
{
- movement.InteractionPauseTimer = fields[7].GetUInt32();
+ movement.InteractionPauseTimer = fields[7].Get<uint32>();
}
CheckCreatureMovement("creature_movement_override", spawnId, movement);
@@ -1671,14 +1671,14 @@ void ObjectMgr::LoadCreatureModelInfo()
{
Field* fields = result->Fetch();
- uint32 modelId = fields[0].GetUInt32();
+ uint32 modelId = fields[0].Get<uint32>();
CreatureModelInfo& modelInfo = _creatureModelStore[modelId];
- modelInfo.bounding_radius = fields[1].GetFloat();
- modelInfo.combat_reach = fields[2].GetFloat();
- modelInfo.gender = fields[3].GetUInt8();
- modelInfo.modelid_other_gender = fields[4].GetUInt32();
+ modelInfo.bounding_radius = fields[1].Get<float>();
+ modelInfo.combat_reach = fields[2].Get<float>();
+ modelInfo.gender = fields[3].Get<uint8>();
+ modelInfo.modelid_other_gender = fields[4].Get<uint32>();
// Checks
@@ -1726,9 +1726,9 @@ void ObjectMgr::LoadLinkedRespawn()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guidLow = fields[0].GetUInt32();
- ObjectGuid::LowType linkedGuidLow = fields[1].GetUInt32();
- uint8 linkType = fields[2].GetUInt8();
+ ObjectGuid::LowType guidLow = fields[0].Get<uint32>();
+ ObjectGuid::LowType linkedGuidLow = fields[1].Get<uint32>();
+ uint8 linkType = fields[2].Get<uint8>();
ObjectGuid guid, linkedGuid;
bool error = false;
@@ -1904,7 +1904,7 @@ bool ObjectMgr::SetCreatureLinkedRespawn(ObjectGuid::LowType guidLow, ObjectGuid
{
_linkedRespawnStore.erase(guid);
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CRELINKED_RESPAWN);
- stmt->setUInt32(0, guidLow);
+ stmt->SetData(0, guidLow);
WorldDatabase.Execute(stmt);
return true;
}
@@ -1933,8 +1933,8 @@ bool ObjectMgr::SetCreatureLinkedRespawn(ObjectGuid::LowType guidLow, ObjectGuid
_linkedRespawnStore[guid] = linkedGuid;
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_REP_CREATURE_LINKED_RESPAWN);
- stmt->setUInt32(0, guidLow);
- stmt->setUInt32(1, linkedGuidLow);
+ stmt->SetData(0, guidLow);
+ stmt->SetData(1, linkedGuidLow);
WorldDatabase.Execute(stmt);
return true;
}
@@ -1957,9 +1957,9 @@ void ObjectMgr::LoadTempSummons()
{
Field* fields = result->Fetch();
- uint32 summonerId = fields[0].GetUInt32();
- SummonerType summonerType = SummonerType(fields[1].GetUInt8());
- uint8 group = fields[2].GetUInt8();
+ uint32 summonerId = fields[0].Get<uint32>();
+ SummonerType summonerType = SummonerType(fields[1].Get<uint8>());
+ uint8 group = fields[2].Get<uint8>();
switch (summonerType)
{
@@ -1990,7 +1990,7 @@ void ObjectMgr::LoadTempSummons()
}
TempSummonData data;
- data.entry = fields[3].GetUInt32();
+ data.entry = fields[3].Get<uint32>();
if (!GetCreatureTemplate(data.entry))
{
@@ -1998,14 +1998,14 @@ void ObjectMgr::LoadTempSummons()
continue;
}
- float posX = fields[4].GetFloat();
- float posY = fields[5].GetFloat();
- float posZ = fields[6].GetFloat();
- float orientation = fields[7].GetFloat();
+ float posX = fields[4].Get<float>();
+ float posY = fields[5].Get<float>();
+ float posZ = fields[6].Get<float>();
+ float orientation = fields[7].Get<float>();
data.pos.Relocate(posX, posY, posZ, orientation);
- data.type = TempSummonType(fields[8].GetUInt8());
+ data.type = TempSummonType(fields[8].Get<uint8>());
if (data.type > TEMPSUMMON_MANUAL_DESPAWN)
{
@@ -2013,7 +2013,7 @@ void ObjectMgr::LoadTempSummons()
continue;
}
- data.time = fields[9].GetUInt32();
+ data.time = fields[9].Get<uint32>();
TempSummonGroupKey key(summonerId, summonerType, group);
_tempSummonDataStore[key].push_back(data);
@@ -2060,10 +2060,10 @@ void ObjectMgr::LoadCreatures()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType spawnId = fields[0].GetUInt32();
- uint32 id1 = fields[1].GetUInt32();
- uint32 id2 = fields[2].GetUInt32();
- uint32 id3 = fields[3].GetUInt32();
+ ObjectGuid::LowType spawnId = fields[0].Get<uint32>();
+ uint32 id1 = fields[1].Get<uint32>();
+ uint32 id2 = fields[2].Get<uint32>();
+ uint32 id3 = fields[3].Get<uint32>();
CreatureTemplate const* cInfo = GetCreatureTemplate(id1);
if (!cInfo)
@@ -2092,26 +2092,26 @@ void ObjectMgr::LoadCreatures()
data.id1 = id1;
data.id2 = id2;
data.id3 = id3;
- data.mapid = fields[4].GetUInt16();
- data.equipmentId = fields[5].GetInt8();
- data.posX = fields[6].GetFloat();
- data.posY = fields[7].GetFloat();
- data.posZ = fields[8].GetFloat();
- data.orientation = fields[9].GetFloat();
- data.spawntimesecs = fields[10].GetUInt32();
- data.wander_distance = fields[11].GetFloat();
- data.currentwaypoint = fields[12].GetUInt32();
- data.curhealth = fields[13].GetUInt32();
- data.curmana = fields[14].GetUInt32();
- data.movementType = fields[15].GetUInt8();
- data.spawnMask = fields[16].GetUInt8();
- data.phaseMask = fields[17].GetUInt32();
- int16 gameEvent = fields[18].GetInt8();
- uint32 PoolId = fields[19].GetUInt32();
- data.npcflag = fields[20].GetUInt32();
- data.unit_flags = fields[21].GetUInt32();
- data.dynamicflags = fields[22].GetUInt32();
- data.ScriptId = GetScriptId(fields[23].GetString());
+ data.mapid = fields[4].Get<uint16>();
+ data.equipmentId = fields[5].Get<int8>();
+ data.posX = fields[6].Get<float>();
+ data.posY = fields[7].Get<float>();
+ data.posZ = fields[8].Get<float>();
+ data.orientation = fields[9].Get<float>();
+ data.spawntimesecs = fields[10].Get<uint32>();
+ data.wander_distance = fields[11].Get<float>();
+ data.currentwaypoint = fields[12].Get<uint32>();
+ data.curhealth = fields[13].Get<uint32>();
+ data.curmana = fields[14].Get<uint32>();
+ data.movementType = fields[15].Get<uint8>();
+ data.spawnMask = fields[16].Get<uint8>();
+ data.phaseMask = fields[17].Get<uint32>();
+ int16 gameEvent = fields[18].Get<int8>();
+ uint32 PoolId = fields[19].Get<uint32>();
+ data.npcflag = fields[20].Get<uint32>();
+ data.unit_flags = fields[21].Get<uint32>();
+ data.dynamicflags = fields[22].Get<uint32>();
+ data.ScriptId = GetScriptId(fields[23].Get<std::string>());
if (!data.ScriptId)
data.ScriptId = cInfo->ScriptID;
@@ -2197,9 +2197,9 @@ void ObjectMgr::LoadCreatures()
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_ZONE_AREA_DATA);
- stmt->setUInt32(0, zoneId);
- stmt->setUInt32(1, areaId);
- stmt->setUInt32(2, spawnId);
+ stmt->SetData(0, zoneId);
+ stmt->SetData(1, areaId);
+ stmt->SetData(2, spawnId);
WorldDatabase.Execute(stmt);
}
@@ -2384,8 +2384,8 @@ void ObjectMgr::LoadGameobjects()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint32 entry = fields[1].GetUInt32();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint32 entry = fields[1].Get<uint32>();
GameObjectTemplate const* gInfo = GetGameObjectTemplate(entry);
if (!gInfo)
@@ -2416,17 +2416,17 @@ void ObjectMgr::LoadGameobjects()
GameObjectData& data = _gameObjectDataStore[guid];
data.id = entry;
- data.mapid = fields[2].GetUInt16();
- data.posX = fields[3].GetFloat();
- data.posY = fields[4].GetFloat();
- data.posZ = fields[5].GetFloat();
- data.orientation = fields[6].GetFloat();
- data.rotation.x = fields[7].GetFloat();
- data.rotation.y = fields[8].GetFloat();
- data.rotation.z = fields[9].GetFloat();
- data.rotation.w = fields[10].GetFloat();
- data.spawntimesecs = fields[11].GetInt32();
- data.ScriptId = GetScriptId(fields[18].GetString());
+ data.mapid = fields[2].Get<uint16>();
+ data.posX = fields[3].Get<float>();
+ data.posY = fields[4].Get<float>();
+ data.posZ = fields[5].Get<float>();
+ data.orientation = fields[6].Get<float>();
+ data.rotation.x = fields[7].Get<float>();
+ data.rotation.y = fields[8].Get<float>();
+ data.rotation.z = fields[9].Get<float>();
+ data.rotation.w = fields[10].Get<float>();
+ data.spawntimesecs = fields[11].Get<int32>();
+ data.ScriptId = GetScriptId(fields[18].Get<std::string>());
if (!data.ScriptId)
data.ScriptId = gInfo->ScriptId;
@@ -2442,10 +2442,10 @@ void ObjectMgr::LoadGameobjects()
LOG_ERROR("sql.sql", "Table `gameobject` has gameobject (GUID: {} Entry: {}) with `spawntimesecs` (0) value, but the gameobejct is marked as despawnable at action.", guid, data.id);
}
- data.animprogress = fields[12].GetUInt8();
+ data.animprogress = fields[12].Get<uint8>();
data.artKit = 0;
- uint32 go_state = fields[13].GetUInt8();
+ uint32 go_state = fields[13].Get<uint8>();
if (go_state >= MAX_GO_STATE)
{
LOG_ERROR("sql.sql", "Table `gameobject` has gameobject (GUID: {} Entry: {}) with invalid `state` ({}) value, skip", guid, data.id, go_state);
@@ -2453,14 +2453,14 @@ void ObjectMgr::LoadGameobjects()
}
data.go_state = GOState(go_state);
- data.spawnMask = fields[14].GetUInt8();
+ data.spawnMask = fields[14].Get<uint8>();
if (!_transportMaps.count(data.mapid) && data.spawnMask & ~spawnMasks[data.mapid])
LOG_ERROR("sql.sql", "Table `gameobject` has gameobject (GUID: {} Entry: {}) that has wrong spawn mask {} including not supported difficulty modes for map (Id: {}), skip", guid, data.id, data.spawnMask, data.mapid);
- data.phaseMask = fields[15].GetUInt32();
- int16 gameEvent = fields[16].GetInt8();
- uint32 PoolId = fields[17].GetUInt32();
+ data.phaseMask = fields[15].Get<uint32>();
+ int16 gameEvent = fields[16].Get<int8>();
+ uint32 PoolId = fields[17].Get<uint32>();
if (data.rotation.x < -1.0f || data.rotation.x > 1.0f)
{
@@ -2505,9 +2505,9 @@ void ObjectMgr::LoadGameobjects()
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_GAMEOBJECT_ZONE_AREA_DATA);
- stmt->setUInt32(0, zoneId);
- stmt->setUInt32(1, areaId);
- stmt->setUInt32(2, guid);
+ stmt->SetData(0, zoneId);
+ stmt->SetData(1, areaId);
+ stmt->SetData(2, guid);
WorldDatabase.Execute(stmt);
}
@@ -2563,15 +2563,15 @@ void ObjectMgr::LoadItemLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
ItemLocale& data = _itemLocaleStore[ID];
- AddLocaleString(fields[2].GetString(), locale, data.Name);
- AddLocaleString(fields[3].GetString(), locale, data.Description);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.Name);
+ AddLocaleString(fields[3].Get<std::string>(), locale, data.Description);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Item Locale strings in {} ms", (uint32)_itemLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -2628,115 +2628,115 @@ void ObjectMgr::LoadItemTemplates()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
ItemTemplate& itemTemplate = _itemTemplateStore[entry];
itemTemplate.ItemId = entry;
- itemTemplate.Class = uint32(fields[1].GetUInt8());
- itemTemplate.SubClass = uint32(fields[2].GetUInt8());
- itemTemplate.SoundOverrideSubclass = int32(fields[3].GetInt8());
- itemTemplate.Name1 = fields[4].GetString();
- itemTemplate.DisplayInfoID = fields[5].GetUInt32();
- itemTemplate.Quality = uint32(fields[6].GetUInt8());
- itemTemplate.Flags = fields[7].GetUInt32();
- itemTemplate.Flags2 = fields[8].GetUInt32();
- itemTemplate.BuyCount = uint32(fields[9].GetUInt8());
- itemTemplate.BuyPrice = int32(fields[10].GetInt64() * sWorld->getRate((Rates)(RATE_BUYVALUE_ITEM_POOR + itemTemplate.Quality)));
- itemTemplate.SellPrice = uint32(fields[11].GetUInt32() * sWorld->getRate((Rates)(RATE_SELLVALUE_ITEM_POOR + itemTemplate.Quality)));
- itemTemplate.InventoryType = uint32(fields[12].GetUInt8());
- itemTemplate.AllowableClass = fields[13].GetInt32();
- itemTemplate.AllowableRace = fields[14].GetInt32();
- itemTemplate.ItemLevel = uint32(fields[15].GetUInt16());
- itemTemplate.RequiredLevel = uint32(fields[16].GetUInt8());
- itemTemplate.RequiredSkill = uint32(fields[17].GetUInt16());
- itemTemplate.RequiredSkillRank = uint32(fields[18].GetUInt16());
- itemTemplate.RequiredSpell = fields[19].GetUInt32();
- itemTemplate.RequiredHonorRank = fields[20].GetUInt32();
- itemTemplate.RequiredCityRank = fields[21].GetUInt32();
- itemTemplate.RequiredReputationFaction = uint32(fields[22].GetUInt16());
- itemTemplate.RequiredReputationRank = uint32(fields[23].GetUInt16());
- itemTemplate.MaxCount = fields[24].GetInt32();
- itemTemplate.Stackable = fields[25].GetInt32();
- itemTemplate.ContainerSlots = uint32(fields[26].GetUInt8());
- itemTemplate.StatsCount = uint32(fields[27].GetUInt8());
+ itemTemplate.Class = uint32(fields[1].Get<uint8>());
+ itemTemplate.SubClass = uint32(fields[2].Get<uint8>());
+ itemTemplate.SoundOverrideSubclass = int32(fields[3].Get<int8>());
+ itemTemplate.Name1 = fields[4].Get<std::string>();
+ itemTemplate.DisplayInfoID = fields[5].Get<uint32>();
+ itemTemplate.Quality = uint32(fields[6].Get<uint8>());
+ itemTemplate.Flags = fields[7].Get<uint32>();
+ itemTemplate.Flags2 = fields[8].Get<uint32>();
+ itemTemplate.BuyCount = uint32(fields[9].Get<uint8>());
+ itemTemplate.BuyPrice = int32(fields[10].Get<int64>() * sWorld->getRate((Rates)(RATE_BUYVALUE_ITEM_POOR + itemTemplate.Quality)));
+ itemTemplate.SellPrice = uint32(fields[11].Get<uint32>() * sWorld->getRate((Rates)(RATE_SELLVALUE_ITEM_POOR + itemTemplate.Quality)));
+ itemTemplate.InventoryType = uint32(fields[12].Get<uint8>());
+ itemTemplate.AllowableClass = fields[13].Get<int32>();
+ itemTemplate.AllowableRace = fields[14].Get<int32>();
+ itemTemplate.ItemLevel = uint32(fields[15].Get<uint16>());
+ itemTemplate.RequiredLevel = uint32(fields[16].Get<uint8>());
+ itemTemplate.RequiredSkill = uint32(fields[17].Get<uint16>());
+ itemTemplate.RequiredSkillRank = uint32(fields[18].Get<uint16>());
+ itemTemplate.RequiredSpell = fields[19].Get<uint32>();
+ itemTemplate.RequiredHonorRank = fields[20].Get<uint32>();
+ itemTemplate.RequiredCityRank = fields[21].Get<uint32>();
+ itemTemplate.RequiredReputationFaction = uint32(fields[22].Get<uint16>());
+ itemTemplate.RequiredReputationRank = uint32(fields[23].Get<uint16>());
+ itemTemplate.MaxCount = fields[24].Get<int32>();
+ itemTemplate.Stackable = fields[25].Get<int32>();
+ itemTemplate.ContainerSlots = uint32(fields[26].Get<uint8>());
+ itemTemplate.StatsCount = uint32(fields[27].Get<uint8>());
for (uint8 i = 0; i < itemTemplate.StatsCount; ++i)
{
- itemTemplate.ItemStat[i].ItemStatType = uint32(fields[28 + i * 2].GetUInt8());
- itemTemplate.ItemStat[i].ItemStatValue = int32(fields[29 + i * 2].GetInt16());
+ itemTemplate.ItemStat[i].ItemStatType = uint32(fields[28 + i * 2].Get<uint8>());
+ itemTemplate.ItemStat[i].ItemStatValue = int32(fields[29 + i * 2].Get<int16>());
}
- itemTemplate.ScalingStatDistribution = uint32(fields[48].GetUInt16());
- itemTemplate.ScalingStatValue = fields[49].GetInt32();
+ itemTemplate.ScalingStatDistribution = uint32(fields[48].Get<uint16>());
+ itemTemplate.ScalingStatValue = fields[49].Get<int32>();
for (uint8 i = 0; i < MAX_ITEM_PROTO_DAMAGES; ++i)
{
- itemTemplate.Damage[i].DamageMin = fields[50 + i * 3].GetFloat();
- itemTemplate.Damage[i].DamageMax = fields[51 + i * 3].GetFloat();
- itemTemplate.Damage[i].DamageType = uint32(fields[52 + i * 3].GetUInt8());
+ itemTemplate.Damage[i].DamageMin = fields[50 + i * 3].Get<float>();
+ itemTemplate.Damage[i].DamageMax = fields[51 + i * 3].Get<float>();
+ itemTemplate.Damage[i].DamageType = uint32(fields[52 + i * 3].Get<uint8>());
}
- itemTemplate.Armor = uint32(fields[56].GetUInt16());
- itemTemplate.HolyRes = uint32(fields[57].GetUInt8());
- itemTemplate.FireRes = uint32(fields[58].GetUInt8());
- itemTemplate.NatureRes = uint32(fields[59].GetUInt8());
- itemTemplate.FrostRes = uint32(fields[60].GetUInt8());
- itemTemplate.ShadowRes = uint32(fields[61].GetUInt8());
- itemTemplate.ArcaneRes = uint32(fields[62].GetUInt8());
- itemTemplate.Delay = uint32(fields[63].GetUInt16());
- itemTemplate.AmmoType = uint32(fields[64].GetUInt8());
- itemTemplate.RangedModRange = fields[65].GetFloat();
+ itemTemplate.Armor = uint32(fields[56].Get<uint16>());
+ itemTemplate.HolyRes = uint32(fields[57].Get<uint8>());
+ itemTemplate.FireRes = uint32(fields[58].Get<uint8>());
+ itemTemplate.NatureRes = uint32(fields[59].Get<uint8>());
+ itemTemplate.FrostRes = uint32(fields[60].Get<uint8>());
+ itemTemplate.ShadowRes = uint32(fields[61].Get<uint8>());
+ itemTemplate.ArcaneRes = uint32(fields[62].Get<uint8>());
+ itemTemplate.Delay = uint32(fields[63].Get<uint16>());
+ itemTemplate.AmmoType = uint32(fields[64].Get<uint8>());
+ itemTemplate.RangedModRange = fields[65].Get<float>();
for (uint8 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i)
{
- itemTemplate.Spells[i].SpellId = fields[66 + i * 7 ].GetInt32();
- itemTemplate.Spells[i].SpellTrigger = uint32(fields[67 + i * 7].GetUInt8());
- itemTemplate.Spells[i].SpellCharges = int32(fields[68 + i * 7].GetInt16());
- itemTemplate.Spells[i].SpellPPMRate = fields[69 + i * 7].GetFloat();
- itemTemplate.Spells[i].SpellCooldown = fields[70 + i * 7].GetInt32();
- itemTemplate.Spells[i].SpellCategory = uint32(fields[71 + i * 7].GetUInt16());
- itemTemplate.Spells[i].SpellCategoryCooldown = fields[72 + i * 7].GetInt32();
- }
-
- itemTemplate.Bonding = uint32(fields[101].GetUInt8());
- itemTemplate.Description = fields[102].GetString();
- itemTemplate.PageText = fields[103].GetUInt32();
- itemTemplate.LanguageID = uint32(fields[104].GetUInt8());
- itemTemplate.PageMaterial = uint32(fields[105].GetUInt8());
- itemTemplate.StartQuest = fields[106].GetUInt32();
- itemTemplate.LockID = fields[107].GetUInt32();
- itemTemplate.Material = int32(fields[108].GetInt8());
- itemTemplate.Sheath = uint32(fields[109].GetUInt8());
- itemTemplate.RandomProperty = fields[110].GetUInt32();
- itemTemplate.RandomSuffix = fields[111].GetInt32();
- itemTemplate.Block = fields[112].GetUInt32();
- itemTemplate.ItemSet = fields[113].GetUInt32();
- itemTemplate.MaxDurability = uint32(fields[114].GetUInt16());
- itemTemplate.Area = fields[115].GetUInt32();
- itemTemplate.Map = uint32(fields[116].GetUInt16());
- itemTemplate.BagFamily = fields[117].GetUInt32();
- itemTemplate.TotemCategory = fields[118].GetUInt32();
+ itemTemplate.Spells[i].SpellId = fields[66 + i * 7 ].Get<int32>();
+ itemTemplate.Spells[i].SpellTrigger = uint32(fields[67 + i * 7].Get<uint8>());
+ itemTemplate.Spells[i].SpellCharges = int32(fields[68 + i * 7].Get<int16>());
+ itemTemplate.Spells[i].SpellPPMRate = fields[69 + i * 7].Get<float>();
+ itemTemplate.Spells[i].SpellCooldown = fields[70 + i * 7].Get<int32>();
+ itemTemplate.Spells[i].SpellCategory = uint32(fields[71 + i * 7].Get<uint16>());
+ itemTemplate.Spells[i].SpellCategoryCooldown = fields[72 + i * 7].Get<int32>();
+ }
+
+ itemTemplate.Bonding = uint32(fields[101].Get<uint8>());
+ itemTemplate.Description = fields[102].Get<std::string>();
+ itemTemplate.PageText = fields[103].Get<uint32>();
+ itemTemplate.LanguageID = uint32(fields[104].Get<uint8>());
+ itemTemplate.PageMaterial = uint32(fields[105].Get<uint8>());
+ itemTemplate.StartQuest = fields[106].Get<uint32>();
+ itemTemplate.LockID = fields[107].Get<uint32>();
+ itemTemplate.Material = int32(fields[108].Get<int8>());
+ itemTemplate.Sheath = uint32(fields[109].Get<uint8>());
+ itemTemplate.RandomProperty = fields[110].Get<int32>();
+ itemTemplate.RandomSuffix = fields[111].Get<int32>();
+ itemTemplate.Block = fields[112].Get<uint32>();
+ itemTemplate.ItemSet = fields[113].Get<uint32>();
+ itemTemplate.MaxDurability = uint32(fields[114].Get<uint16>());
+ itemTemplate.Area = fields[115].Get<uint32>();
+ itemTemplate.Map = uint32(fields[116].Get<uint16>());
+ itemTemplate.BagFamily = fields[117].Get<uint32>();
+ itemTemplate.TotemCategory = fields[118].Get<uint32>();
for (uint8 i = 0; i < MAX_ITEM_PROTO_SOCKETS; ++i)
{
- itemTemplate.Socket[i].Color = uint32(fields[119 + i * 2].GetUInt8());
- itemTemplate.Socket[i].Content = fields[120 + i * 2].GetUInt32();
+ itemTemplate.Socket[i].Color = uint32(fields[119 + i * 2].Get<uint8>());
+ itemTemplate.Socket[i].Content = fields[120 + i * 2].Get<uint32>();
}
- itemTemplate.socketBonus = fields[125].GetUInt32();
- itemTemplate.GemProperties = fields[126].GetUInt32();
- itemTemplate.RequiredDisenchantSkill = uint32(fields[127].GetInt16());
- itemTemplate.ArmorDamageModifier = fields[128].GetFloat();
- itemTemplate.Duration = fields[129].GetUInt32();
- itemTemplate.ItemLimitCategory = uint32(fields[130].GetInt16());
- itemTemplate.HolidayId = fields[131].GetUInt32();
- itemTemplate.ScriptId = sObjectMgr->GetScriptId(fields[132].GetCString());
- itemTemplate.DisenchantID = fields[133].GetUInt32();
- itemTemplate.FoodType = uint32(fields[134].GetUInt8());
- itemTemplate.MinMoneyLoot = fields[135].GetUInt32();
- itemTemplate.MaxMoneyLoot = fields[136].GetUInt32();
- itemTemplate.FlagsCu = fields[137].GetUInt32();
+ itemTemplate.socketBonus = fields[125].Get<uint32>();
+ itemTemplate.GemProperties = fields[126].Get<uint32>();
+ itemTemplate.RequiredDisenchantSkill = uint32(fields[127].Get<int16>());
+ itemTemplate.ArmorDamageModifier = fields[128].Get<float>();
+ itemTemplate.Duration = fields[129].Get<uint32>();
+ itemTemplate.ItemLimitCategory = uint32(fields[130].Get<int16>());
+ itemTemplate.HolidayId = fields[131].Get<uint32>();
+ itemTemplate.ScriptId = sObjectMgr->GetScriptId(fields[132].Get<std::string>());
+ itemTemplate.DisenchantID = fields[133].Get<uint32>();
+ itemTemplate.FoodType = uint32(fields[134].Get<uint8>());
+ itemTemplate.MinMoneyLoot = fields[135].Get<uint32>();
+ itemTemplate.MaxMoneyLoot = fields[136].Get<uint32>();
+ itemTemplate.FlagsCu = fields[137].Get<uint32>();
// Checks
if (itemTemplate.Class >= MAX_ITEM_CLASS)
@@ -3184,14 +3184,14 @@ void ObjectMgr::LoadItemSetNameLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
ItemSetNameLocale& data = _itemSetNameLocaleStore[ID];
- AddLocaleString(fields[2].GetString(), locale, data.Name);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.Name);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Item Set Name Locale strings in {} ms", uint32(_itemSetNameLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -3234,7 +3234,7 @@ void ObjectMgr::LoadItemSetNames()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
if (itemSetItems.find(entry) == itemSetItems.end())
{
LOG_ERROR("sql.sql", "Item set name (Entry: {}) not found in ItemSet.dbc, data useless.", entry);
@@ -3242,9 +3242,9 @@ void ObjectMgr::LoadItemSetNames()
}
ItemSetNameEntry& data = _itemSetNameStore[entry];
- data.name = fields[1].GetString();
+ data.name = fields[1].Get<std::string>();
- uint32 invType = fields[2].GetUInt8();
+ uint32 invType = fields[2].Get<uint8>();
if (invType >= MAX_INVTYPE)
{
LOG_ERROR("sql.sql", "Item set name (Entry: {}) has wrong InventoryType value ({})", entry, invType);
@@ -3303,12 +3303,12 @@ void ObjectMgr::LoadVehicleTemplateAccessories()
{
Field* fields = result->Fetch();
- uint32 uiEntry = fields[0].GetUInt32();
- uint32 uiAccessory = fields[1].GetUInt32();
- int8 uiSeat = int8(fields[2].GetInt8());
- bool bMinion = fields[3].GetBool();
- uint8 uiSummonType = fields[4].GetUInt8();
- uint32 uiSummonTimer = fields[5].GetUInt32();
+ uint32 uiEntry = fields[0].Get<uint32>();
+ uint32 uiAccessory = fields[1].Get<uint32>();
+ int8 uiSeat = int8(fields[2].Get<int8>());
+ bool bMinion = fields[3].Get<bool>();
+ uint8 uiSummonType = fields[4].Get<uint8>();
+ uint32 uiSummonTimer = fields[5].Get<uint32>();
if (!sObjectMgr->GetCreatureTemplate(uiEntry))
{
@@ -3359,12 +3359,12 @@ void ObjectMgr::LoadVehicleAccessories()
{
Field* fields = result->Fetch();
- uint32 uiGUID = fields[0].GetUInt32();
- uint32 uiAccessory = fields[1].GetUInt32();
- int8 uiSeat = int8(fields[2].GetInt16());
- bool bMinion = fields[3].GetBool();
- uint8 uiSummonType = fields[4].GetUInt8();
- uint32 uiSummonTimer = fields[5].GetUInt32();
+ uint32 uiGUID = fields[0].Get<uint32>();
+ uint32 uiAccessory = fields[1].Get<uint32>();
+ int8 uiSeat = int8(fields[2].Get<int16>());
+ bool bMinion = fields[3].Get<bool>();
+ uint8 uiSummonType = fields[4].Get<uint8>();
+ uint32 uiSummonTimer = fields[5].Get<uint32>();
if (!sObjectMgr->GetCreatureTemplate(uiAccessory))
{
@@ -3401,14 +3401,14 @@ void ObjectMgr::LoadPetLevelInfo()
{
Field* fields = result->Fetch();
- uint32 creature_id = fields[0].GetUInt32();
+ uint32 creature_id = fields[0].Get<uint32>();
if (!sObjectMgr->GetCreatureTemplate(creature_id))
{
LOG_ERROR("sql.sql", "Wrong creature id {} in `pet_levelstats` table, ignoring.", creature_id);
continue;
}
- uint32 current_level = fields[1].GetUInt8();
+ uint32 current_level = fields[1].Get<uint8>();
if (current_level > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
if (current_level > STRONG_MAX_LEVEL) // hardcoded level maximum
@@ -3434,14 +3434,14 @@ void ObjectMgr::LoadPetLevelInfo()
// data for level 1 stored in [0] array element, ...
PetLevelInfo* pLevelInfo = &pInfoMapEntry[current_level - 1];
- pLevelInfo->health = fields[2].GetUInt16();
- pLevelInfo->mana = fields[3].GetUInt16();
- pLevelInfo->armor = fields[9].GetUInt32();
- pLevelInfo->min_dmg = fields[10].GetUInt16();
- pLevelInfo->max_dmg = fields[11].GetUInt16();
+ pLevelInfo->health = fields[2].Get<uint16>();
+ pLevelInfo->mana = fields[3].Get<uint16>();
+ pLevelInfo->armor = fields[9].Get<uint32>();
+ pLevelInfo->min_dmg = fields[10].Get<uint16>();
+ pLevelInfo->max_dmg = fields[11].Get<uint16>();
for (int i = 0; i < MAX_STATS; i++)
{
- pLevelInfo->stats[i] = fields[i + 4].GetUInt16();
+ pLevelInfo->stats[i] = fields[i + 4].Get<uint16>();
}
++count;
@@ -3542,14 +3542,14 @@ void ObjectMgr::LoadPlayerInfo()
{
Field* fields = result->Fetch();
- uint32 current_race = fields[0].GetUInt8();
- uint32 current_class = fields[1].GetUInt8();
- uint32 mapId = fields[2].GetUInt16();
- uint32 areaId = fields[3].GetUInt32(); // zone
- float positionX = fields[4].GetFloat();
- float positionY = fields[5].GetFloat();
- float positionZ = fields[6].GetFloat();
- float orientation = fields[7].GetFloat();
+ uint32 current_race = fields[0].Get<uint8>();
+ uint32 current_class = fields[1].Get<uint8>();
+ uint32 mapId = fields[2].Get<uint16>();
+ uint32 areaId = fields[3].Get<uint32>(); // zone
+ float positionX = fields[4].Get<float>();
+ float positionY = fields[5].Get<float>();
+ float positionZ = fields[6].Get<float>();
+ float orientation = fields[7].Get<float>();
if (current_race >= MAX_RACES)
{
@@ -3628,21 +3628,21 @@ void ObjectMgr::LoadPlayerInfo()
{
Field* fields = result->Fetch();
- uint32 current_race = fields[0].GetUInt8();
+ uint32 current_race = fields[0].Get<uint8>();
if (current_race >= MAX_RACES)
{
LOG_ERROR("sql.sql", "Wrong race {} in `playercreateinfo_item` table, ignoring.", current_race);
continue;
}
- uint32 current_class = fields[1].GetUInt8();
+ uint32 current_class = fields[1].Get<uint8>();
if (current_class >= MAX_CLASSES)
{
LOG_ERROR("sql.sql", "Wrong class {} in `playercreateinfo_item` table, ignoring.", current_class);
continue;
}
- uint32 item_id = fields[2].GetUInt32();
+ uint32 item_id = fields[2].Get<uint32>();
if (!GetItemTemplate(item_id))
{
@@ -3650,7 +3650,7 @@ void ObjectMgr::LoadPlayerInfo()
continue;
}
- int32 amount = fields[3].GetInt32();
+ int32 amount = fields[3].Get<int32>();
if (!amount)
{
@@ -3684,7 +3684,7 @@ void ObjectMgr::LoadPlayerInfo()
{
uint32 oldMSTime = getMSTime();
- QueryResult result = WorldDatabase.PQuery("SELECT raceMask, classMask, skill, `rank` FROM playercreateinfo_skills");
+ QueryResult result = WorldDatabase.Query("SELECT raceMask, classMask, skill, `rank` FROM playercreateinfo_skills");
if (!result)
{
@@ -3697,11 +3697,11 @@ void ObjectMgr::LoadPlayerInfo()
do
{
Field* fields = result->Fetch();
- uint32 raceMask = fields[0].GetUInt32();
- uint32 classMask = fields[1].GetUInt32();
+ uint32 raceMask = fields[0].Get<uint32>();
+ uint32 classMask = fields[1].Get<uint32>();
PlayerCreateInfoSkill skill;
- skill.SkillId = fields[2].GetUInt16();
- skill.Rank = fields[3].GetUInt16();
+ skill.SkillId = fields[2].Get<uint16>();
+ skill.Rank = fields[3].Get<uint16>();
if (skill.Rank >= MAX_SKILL_STEP)
{
@@ -3758,7 +3758,7 @@ void ObjectMgr::LoadPlayerInfo()
{
uint32 oldMSTime = getMSTime();
- QueryResult result = WorldDatabase.PQuery("SELECT racemask, classmask, Spell FROM playercreateinfo_spell_custom");
+ QueryResult result = WorldDatabase.Query("SELECT racemask, classmask, Spell FROM playercreateinfo_spell_custom");
if (!result)
{
@@ -3771,9 +3771,9 @@ void ObjectMgr::LoadPlayerInfo()
do
{
Field* fields = result->Fetch();
- uint32 raceMask = fields[0].GetUInt32();
- uint32 classMask = fields[1].GetUInt32();
- uint32 spellId = fields[2].GetUInt32();
+ uint32 raceMask = fields[0].Get<uint32>();
+ uint32 classMask = fields[1].Get<uint32>();
+ uint32 spellId = fields[2].Get<uint32>();
if (raceMask != 0 && !(raceMask & RACEMASK_ALL_PLAYABLE))
{
@@ -3816,7 +3816,7 @@ void ObjectMgr::LoadPlayerInfo()
{
uint32 oldMSTime = getMSTime();
- QueryResult result = WorldDatabase.PQuery("SELECT raceMask, classMask, spell FROM playercreateinfo_cast_spell");
+ QueryResult result = WorldDatabase.Query("SELECT raceMask, classMask, spell FROM playercreateinfo_cast_spell");
if (!result)
{
@@ -3829,9 +3829,9 @@ void ObjectMgr::LoadPlayerInfo()
do
{
Field* fields = result->Fetch();
- uint32 raceMask = fields[0].GetUInt32();
- uint32 classMask = fields[1].GetUInt32();
- uint32 spellId = fields[2].GetUInt32();
+ uint32 raceMask = fields[0].Get<uint32>();
+ uint32 classMask = fields[1].Get<uint32>();
+ uint32 spellId = fields[2].Get<uint32>();
if (raceMask != 0 && !(raceMask & RACEMASK_ALL_PLAYABLE))
{
@@ -3889,14 +3889,14 @@ void ObjectMgr::LoadPlayerInfo()
{
Field* fields = result->Fetch();
- uint32 current_race = fields[0].GetUInt8();
+ uint32 current_race = fields[0].Get<uint8>();
if (current_race >= MAX_RACES)
{
LOG_ERROR("sql.sql", "Wrong race {} in `playercreateinfo_action` table, ignoring.", current_race);
continue;
}
- uint32 current_class = fields[1].GetUInt8();
+ uint32 current_class = fields[1].Get<uint8>();
if (current_class >= MAX_CLASSES)
{
LOG_ERROR("sql.sql", "Wrong class {} in `playercreateinfo_action` table, ignoring.", current_class);
@@ -3904,7 +3904,7 @@ void ObjectMgr::LoadPlayerInfo()
}
if (PlayerInfo* info = _playerInfo[current_race][current_class])
- info->action.push_back(PlayerCreateInfoAction(fields[2].GetUInt16(), fields[3].GetUInt32(), fields[4].GetUInt16()));
+ info->action.push_back(PlayerCreateInfoAction(fields[2].Get<uint16>(), fields[3].Get<uint32>(), fields[4].Get<uint16>()));
++count;
} while (result->NextRow());
@@ -3934,14 +3934,14 @@ void ObjectMgr::LoadPlayerInfo()
{
Field* fields = result->Fetch();
- uint32 current_class = fields[0].GetUInt8();
+ uint32 current_class = fields[0].Get<uint8>();
if (current_class >= MAX_CLASSES)
{
LOG_ERROR("sql.sql", "Wrong class {} in `player_classlevelstats` table, ignoring.", current_class);
continue;
}
- uint8 current_level = fields[1].GetUInt8(); // Can't be > than STRONG_MAX_LEVEL (hardcoded level maximum) due to var type
+ uint8 current_level = fields[1].Get<uint8>(); // Can't be > than STRONG_MAX_LEVEL (hardcoded level maximum) due to var type
if (current_level > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
LOG_INFO("sql.sql", "Unused (> MaxPlayerLevel in worldserver.conf) level {} in `player_classlevelstats` table, ignoring.", current_level);
@@ -3959,8 +3959,8 @@ void ObjectMgr::LoadPlayerInfo()
PlayerClassLevelInfo& levelInfo = info->levelInfo[current_level - 1];
- levelInfo.basehealth = fields[2].GetUInt16();
- levelInfo.basemana = fields[3].GetUInt16();
+ levelInfo.basehealth = fields[2].Get<uint16>();
+ levelInfo.basemana = fields[3].Get<uint16>();
++count;
} while (result->NextRow());
@@ -4017,21 +4017,21 @@ void ObjectMgr::LoadPlayerInfo()
{
Field* fields = result->Fetch();
- uint32 current_race = fields[0].GetUInt8();
+ uint32 current_race = fields[0].Get<uint8>();
if (current_race >= MAX_RACES)
{
LOG_ERROR("sql.sql", "Wrong race {} in `player_levelstats` table, ignoring.", current_race);
continue;
}
- uint32 current_class = fields[1].GetUInt8();
+ uint32 current_class = fields[1].Get<uint8>();
if (current_class >= MAX_CLASSES)
{
LOG_ERROR("sql.sql", "Wrong class {} in `player_levelstats` table, ignoring.", current_class);
continue;
}
- uint32 current_level = fields[2].GetUInt8();
+ uint32 current_level = fields[2].Get<uint8>();
if (current_level > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
if (current_level > STRONG_MAX_LEVEL) // hardcoded level maximum
@@ -4051,7 +4051,7 @@ void ObjectMgr::LoadPlayerInfo()
PlayerLevelInfo& levelInfo = info->levelInfo[current_level - 1];
for (int i = 0; i < MAX_STATS; i++)
- levelInfo.stats[i] = fields[i + 3].GetUInt8();
+ levelInfo.stats[i] = fields[i + 3].Get<uint8>();
}
++count;
@@ -4130,8 +4130,8 @@ void ObjectMgr::LoadPlayerInfo()
{
Field* fields = result->Fetch();
- uint32 current_level = fields[0].GetUInt8();
- uint32 current_xp = fields[1].GetUInt32();
+ uint32 current_level = fields[0].Get<uint8>();
+ uint32 current_xp = fields[1].Get<uint32>();
if (current_level >= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
@@ -4358,7 +4358,7 @@ void ObjectMgr::LoadQuests()
do
{
Field* fields = result->Fetch();
- uint32 questId = fields[0].GetUInt32();
+ uint32 questId = fields[0].Get<uint32>();
auto itr = _questTemplates.find(questId);
if (itr != _questTemplates.end())
@@ -4381,7 +4381,7 @@ void ObjectMgr::LoadQuests()
do
{
Field* fields = result->Fetch();
- uint32 questId = fields[0].GetUInt32();
+ uint32 questId = fields[0].Get<uint32>();
auto itr = _questTemplates.find(questId);
if (itr != _questTemplates.end())
@@ -4404,7 +4404,7 @@ void ObjectMgr::LoadQuests()
do
{
Field* fields = result->Fetch();
- uint32 questId = fields[0].GetUInt32();
+ uint32 questId = fields[0].Get<uint32>();
auto itr = _questTemplates.find(questId);
if (itr != _questTemplates.end())
@@ -4429,7 +4429,7 @@ void ObjectMgr::LoadQuests()
do
{
Field* fields = result->Fetch();
- uint32 questId = fields[0].GetUInt32();
+ uint32 questId = fields[0].Get<uint32>();
auto itr = _questTemplates.find(questId);
if (itr != _questTemplates.end())
@@ -5033,21 +5033,21 @@ void ObjectMgr::LoadQuestLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
QuestLocale& data = _questLocaleStore[ID];
- AddLocaleString(fields[2].GetString(), locale, data.Title);
- AddLocaleString(fields[3].GetString(), locale, data.Details);
- AddLocaleString(fields[4].GetString(), locale, data.Objectives);
- AddLocaleString(fields[5].GetString(), locale, data.AreaDescription);
- AddLocaleString(fields[6].GetString(), locale, data.CompletedText);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.Title);
+ AddLocaleString(fields[3].Get<std::string>(), locale, data.Details);
+ AddLocaleString(fields[4].Get<std::string>(), locale, data.Objectives);
+ AddLocaleString(fields[5].Get<std::string>(), locale, data.AreaDescription);
+ AddLocaleString(fields[6].Get<std::string>(), locale, data.CompletedText);
for (uint8 i = 0; i < 4; ++i)
- AddLocaleString(fields[i + 7].GetString(), locale, data.ObjectiveText[i]);
+ AddLocaleString(fields[i + 7].Get<std::string>(), locale, data.ObjectiveText[i]);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Quest Locale strings in {} ms", (uint32)_questLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -5074,7 +5074,7 @@ void ObjectMgr::LoadScripts(ScriptsType type)
bool isSpellScriptTable = (type == SCRIPTS_SPELL);
// 0 1 2 3 4 5 6 7 8 9
- QueryResult result = WorldDatabase.PQuery("SELECT id, delay, command, datalong, datalong2, dataint, x, y, z, o%s FROM %s", isSpellScriptTable ? ", effIndex" : "", tableName.c_str());
+ QueryResult result = WorldDatabase.Query("SELECT id, delay, command, datalong, datalong2, dataint, x, y, z, o{} FROM {}", isSpellScriptTable ? ", effIndex" : "", tableName);
if (!result)
{
@@ -5090,18 +5090,18 @@ void ObjectMgr::LoadScripts(ScriptsType type)
Field* fields = result->Fetch();
ScriptInfo tmp;
tmp.type = type;
- tmp.id = fields[0].GetUInt32();
+ tmp.id = fields[0].Get<uint32>();
if (isSpellScriptTable)
- tmp.id |= fields[10].GetUInt8() << 24;
- tmp.delay = fields[1].GetUInt32();
- tmp.command = ScriptCommands(fields[2].GetUInt32());
- tmp.Raw.nData[0] = fields[3].GetUInt32();
- tmp.Raw.nData[1] = fields[4].GetUInt32();
- tmp.Raw.nData[2] = fields[5].GetInt32();
- tmp.Raw.fData[0] = fields[6].GetFloat();
- tmp.Raw.fData[1] = fields[7].GetFloat();
- tmp.Raw.fData[2] = fields[8].GetFloat();
- tmp.Raw.fData[3] = fields[9].GetFloat();
+ tmp.id |= fields[10].Get<uint8>() << 24;
+ tmp.delay = fields[1].Get<uint32>();
+ tmp.command = ScriptCommands(fields[2].Get<uint32>());
+ tmp.Raw.nData[0] = fields[3].Get<uint32>();
+ tmp.Raw.nData[1] = fields[4].Get<uint32>();
+ tmp.Raw.nData[2] = fields[5].Get<int32>();
+ tmp.Raw.fData[0] = fields[6].Get<float>();
+ tmp.Raw.fData[1] = fields[7].Get<float>();
+ tmp.Raw.fData[2] = fields[8].Get<float>();
+ tmp.Raw.fData[3] = fields[9].Get<float>();
// generic command args check
switch (tmp.command)
@@ -5456,7 +5456,7 @@ void ObjectMgr::LoadWaypointScripts()
do
{
Field* fields = result->Fetch();
- uint32 action = fields[0].GetUInt32();
+ uint32 action = fields[0].Get<uint32>();
actionSet.erase(action);
} while (result->NextRow());
@@ -5487,8 +5487,8 @@ void ObjectMgr::LoadSpellScriptNames()
{
Field* fields = result->Fetch();
- int32 spellId = fields[0].GetInt32();
- const char* scriptName = fields[1].GetCString();
+ int32 spellId = fields[0].Get<int32>();
+ std::string scriptName = fields[1].Get<std::string>();
bool allRanks = false;
if (spellId <= 0)
@@ -5500,7 +5500,7 @@ void ObjectMgr::LoadSpellScriptNames()
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
if (!spellInfo)
{
- LOG_ERROR("sql.sql", "Scriptname:`{}` spell (spell_id:{}) does not exist in `Spell.dbc`.", scriptName, fields[0].GetInt32());
+ LOG_ERROR("sql.sql", "Scriptname: `{}` spell (spell_id:{}) does not exist in `Spell.dbc`.", scriptName, fields[0].Get<int32>());
continue;
}
@@ -5508,7 +5508,7 @@ void ObjectMgr::LoadSpellScriptNames()
{
if (sSpellMgr->GetFirstSpellInChain(spellId) != uint32(spellId))
{
- LOG_ERROR("sql.sql", "Scriptname:`{}` spell (spell_id:{}) is not first rank of spell.", scriptName, fields[0].GetInt32());
+ LOG_ERROR("sql.sql", "Scriptname: `{}` spell (spell_id:{}) is not first rank of spell.", scriptName, fields[0].Get<int32>());
continue;
}
while (spellInfo)
@@ -5615,10 +5615,10 @@ void ObjectMgr::LoadPageTexts()
{
Field* fields = result->Fetch();
- PageText& pageText = _pageTextStore[fields[0].GetUInt32()];
+ PageText& pageText = _pageTextStore[fields[0].Get<uint32>()];
- pageText.Text = fields[1].GetString();
- pageText.NextPage = fields[2].GetUInt32();
+ pageText.Text = fields[1].Get<std::string>();
+ pageText.NextPage = fields[2].Get<uint32>();
++count;
} while (result->NextRow());
@@ -5662,14 +5662,14 @@ void ObjectMgr::LoadPageTextLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
PageTextLocale& data = _pageTextLocaleStore[ID];
- AddLocaleString(fields[2].GetString(), locale, data.Text);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.Text);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Page Text Locale strings in {} ms", (uint32)_pageTextLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -5694,7 +5694,7 @@ void ObjectMgr::LoadInstanceTemplate()
{
Field* fields = result->Fetch();
- uint16 mapID = fields[0].GetUInt16();
+ uint16 mapID = fields[0].Get<uint16>();
if (!MapMgr::IsValidMAP(mapID, true))
{
@@ -5704,9 +5704,9 @@ void ObjectMgr::LoadInstanceTemplate()
InstanceTemplate instanceTemplate;
- instanceTemplate.AllowMount = fields[3].GetBool();
- instanceTemplate.Parent = uint32(fields[1].GetUInt16());
- instanceTemplate.ScriptId = sObjectMgr->GetScriptId(fields[2].GetCString());
+ instanceTemplate.AllowMount = fields[3].Get<bool>();
+ instanceTemplate.Parent = uint32(fields[1].Get<uint16>());
+ instanceTemplate.ScriptId = sObjectMgr->GetScriptId(fields[2].Get<std::string>());
_instanceTemplateStore[mapID] = instanceTemplate;
@@ -5744,10 +5744,10 @@ void ObjectMgr::LoadInstanceEncounters()
do
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint8 creditType = fields[1].GetUInt8();
- uint32 creditEntry = fields[2].GetUInt32();
- uint32 lastEncounterDungeon = fields[3].GetUInt16();
+ uint32 entry = fields[0].Get<uint32>();
+ uint8 creditType = fields[1].Get<uint8>();
+ uint32 creditEntry = fields[2].Get<uint32>();
+ uint32 lastEncounterDungeon = fields[3].Get<uint16>();
DungeonEncounterEntry const* dungeonEncounter = sDungeonEncounterStore.LookupEntry(entry);
if (!dungeonEncounter)
{
@@ -5852,7 +5852,7 @@ void ObjectMgr::LoadGossipText()
Field* fields = result->Fetch();
- uint32 id = fields[cic++].GetUInt32();
+ uint32 id = fields[cic++].Get<uint32>();
if (!id)
{
LOG_ERROR("sql.sql", "Table `npc_text` has record wit reserved id 0, ignore.");
@@ -5863,16 +5863,16 @@ void ObjectMgr::LoadGossipText()
for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; ++i)
{
- gText.Options[i].Text_0 = fields[cic++].GetString();
- gText.Options[i].Text_1 = fields[cic++].GetString();
- gText.Options[i].BroadcastTextID = fields[cic++].GetUInt32();
- gText.Options[i].Language = fields[cic++].GetUInt8();
- gText.Options[i].Probability = fields[cic++].GetFloat();
+ gText.Options[i].Text_0 = fields[cic++].Get<std::string>();
+ gText.Options[i].Text_1 = fields[cic++].Get<std::string>();
+ gText.Options[i].BroadcastTextID = fields[cic++].Get<uint32>();
+ gText.Options[i].Language = fields[cic++].Get<uint8>();
+ gText.Options[i].Probability = fields[cic++].Get<float>();
for (uint8 j = 0; j < MAX_GOSSIP_TEXT_EMOTES; ++j)
{
- gText.Options[i].Emotes[j]._Delay = fields[cic++].GetUInt16();
- gText.Options[i].Emotes[j]._Emote = fields[cic++].GetUInt16();
+ gText.Options[i].Emotes[j]._Delay = fields[cic++].Get<uint16>();
+ gText.Options[i].Emotes[j]._Emote = fields[cic++].Get<uint16>();
}
}
@@ -5913,17 +5913,17 @@ void ObjectMgr::LoadNpcTextLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
NpcTextLocale& data = _npcTextLocaleStore[ID];
for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; ++i)
{
- AddLocaleString(fields[2 + i * 2].GetString(), locale, data.Text_0[i]);
- AddLocaleString(fields[3 + i * 2].GetString(), locale, data.Text_1[i]);
+ AddLocaleString(fields[2 + i * 2].Get<std::string>(), locale, data.Text_0[i]);
+ AddLocaleString(fields[3 + i * 2].Get<std::string>(), locale, data.Text_1[i]);
}
} while (result->NextRow());
@@ -5937,23 +5937,23 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
time_t curTime = GameTime::GetGameTime().count();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_EXPIRED_MAIL);
- stmt->setUInt32(0, uint32(curTime));
+ stmt->SetData(0, uint32(curTime));
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
return;
std::map<uint32 /*messageId*/, MailItemInfoVec> itemsCache;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_EXPIRED_MAIL_ITEMS);
- stmt->setUInt32(0, uint32(curTime));
+ stmt->SetData(0, uint32(curTime));
if (PreparedQueryResult items = CharacterDatabase.Query(stmt))
{
MailItemInfo item;
do
{
Field* fields = items->Fetch();
- item.item_guid = fields[0].GetUInt32();
- item.item_template = fields[1].GetUInt32();
- uint32 mailId = fields[2].GetUInt32();
+ item.item_guid = fields[0].Get<uint32>();
+ item.item_template = fields[1].Get<uint32>();
+ uint32 mailId = fields[2].Get<uint32>();
itemsCache[mailId].push_back(item);
} while (items->NextRow());
}
@@ -5964,17 +5964,17 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
{
Field* fields = result->Fetch();
Mail* m = new Mail;
- m->messageID = fields[0].GetUInt32();
- m->messageType = fields[1].GetUInt8();
- m->sender = fields[2].GetUInt32();
- m->receiver = fields[3].GetUInt32();
- bool has_items = fields[4].GetBool();
- m->expire_time = time_t(fields[5].GetUInt32());
+ m->messageID = fields[0].Get<uint32>();
+ m->messageType = fields[1].Get<uint8>();
+ m->sender = fields[2].Get<uint32>();
+ m->receiver = fields[3].Get<uint32>();
+ bool has_items = fields[4].Get<bool>();
+ m->expire_time = time_t(fields[5].Get<uint32>());
m->deliver_time = time_t(0);
- m->stationery = fields[6].GetUInt8();
- m->checked = fields[7].GetUInt8();
- m->mailTemplateId = fields[8].GetInt16();
- m->auctionId = fields[9].GetInt32();
+ m->stationery = fields[6].Get<uint8>();
+ m->checked = fields[7].Get<uint8>();
+ m->mailTemplateId = fields[8].Get<int16>();
+ m->auctionId = fields[9].Get<int32>();
Player* player = nullptr;
if (serverUp)
@@ -5998,36 +5998,36 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
for (auto const& mailedItem : m->items)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, mailedItem.item_guid);
+ stmt->SetData(0, mailedItem.item_guid);
CharacterDatabase.Execute(stmt);
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->SetData(0, m->messageID);
CharacterDatabase.Execute(stmt);
}
else
{
// Mail will be returned
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_MAIL_RETURNED);
- stmt->setUInt32(0, m->receiver);
- stmt->setUInt32(1, m->sender);
- stmt->setUInt32(2, uint32(curTime + 30 * DAY));
- stmt->setUInt32(3, uint32(curTime));
- stmt->setUInt8 (4, uint8(MAIL_CHECK_MASK_RETURNED));
- stmt->setUInt32(5, m->messageID);
+ stmt->SetData(0, m->receiver);
+ stmt->SetData(1, m->sender);
+ stmt->SetData(2, uint32(curTime + 30 * DAY));
+ stmt->SetData(3, uint32(curTime));
+ stmt->SetData (4, uint8(MAIL_CHECK_MASK_RETURNED));
+ stmt->SetData(5, m->messageID);
CharacterDatabase.Execute(stmt);
for (auto const& mailedItem : m->items)
{
// Update receiver in mail items for its proper delivery, and in instance_item for avoid lost item at sender delete
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_MAIL_ITEM_RECEIVER);
- stmt->setUInt32(0, m->sender);
- stmt->setUInt32(1, mailedItem.item_guid);
+ stmt->SetData(0, m->sender);
+ stmt->SetData(1, mailedItem.item_guid);
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ITEM_OWNER);
- stmt->setUInt32(0, m->sender);
- stmt->setUInt32(1, mailedItem.item_guid);
+ stmt->SetData(0, m->sender);
+ stmt->SetData(1, mailedItem.item_guid);
CharacterDatabase.Execute(stmt);
}
@@ -6044,7 +6044,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
sCharacterCache->DecreaseCharacterMailCount(ObjectGuid(HighGuid::Player, m->receiver));
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, m->messageID);
+ stmt->SetData(0, m->messageID);
CharacterDatabase.Execute(stmt);
delete m;
++deletedCount;
@@ -6077,8 +6077,8 @@ void ObjectMgr::LoadQuestAreaTriggers()
Field* fields = result->Fetch();
- uint32 trigger_ID = fields[0].GetUInt32();
- uint32 quest_ID = fields[1].GetUInt32();
+ uint32 trigger_ID = fields[0].Get<uint32>();
+ uint32 quest_ID = fields[1].Get<uint32>();
AreaTrigger const* atEntry = GetAreaTrigger(trigger_ID);
if (!atEntry)
@@ -6127,15 +6127,15 @@ void ObjectMgr::LoadQuestOfferRewardLocale()
{
Field* fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
- std::string localeName = fields[1].GetString();
+ uint32 id = fields[0].Get<uint32>();
+ std::string localeName = fields[1].Get<std::string>();
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
QuestOfferRewardLocale& data = _questOfferRewardLocaleStore[id];
- AddLocaleString(fields[2].GetString(), locale, data.RewardText);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.RewardText);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Quest Offer Reward locale strings in {} ms", _questOfferRewardLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -6156,15 +6156,15 @@ void ObjectMgr::LoadQuestRequestItemsLocale()
{
Field* fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
- std::string localeName = fields[1].GetString();
+ uint32 id = fields[0].Get<uint32>();
+ std::string localeName = fields[1].Get<std::string>();
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
QuestRequestItemsLocale& data = _questRequestItemsLocaleStore[id];
- AddLocaleString(fields[2].GetString(), locale, data.CompletionText);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.CompletionText);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Quest Request Items locale strings in {} ms", _questRequestItemsLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -6193,7 +6193,7 @@ void ObjectMgr::LoadTavernAreaTriggers()
Field* fields = result->Fetch();
- uint32 Trigger_ID = fields[0].GetUInt32();
+ uint32 Trigger_ID = fields[0].Get<uint32>();
AreaTrigger const* atEntry = GetAreaTrigger(Trigger_ID);
if (!atEntry)
@@ -6231,8 +6231,8 @@ void ObjectMgr::LoadAreaTriggerScripts()
Field* fields = result->Fetch();
- uint32 Trigger_ID = fields[0].GetUInt32();
- const char* scriptName = fields[1].GetCString();
+ uint32 Trigger_ID = fields[0].Get<uint32>();
+ std::string scriptName = fields[1].Get<std::string>();
AreaTrigger const* atEntry = GetAreaTrigger(Trigger_ID);
if (!atEntry)
@@ -6374,16 +6374,16 @@ void ObjectMgr::LoadAreaTriggers()
AreaTrigger at;
- at.entry = fields[0].GetUInt32();
- at.map = fields[1].GetUInt32();
- at.x = fields[2].GetFloat();
- at.y = fields[3].GetFloat();
- at.z = fields[4].GetFloat();
- at.radius = fields[5].GetFloat();
- at.length = fields[6].GetFloat();
- at.width = fields[7].GetFloat();
- at.height = fields[8].GetFloat();
- at.orientation = fields[9].GetFloat();
+ at.entry = fields[0].Get<uint32>();
+ at.map = fields[1].Get<uint32>();
+ at.x = fields[2].Get<float>();
+ at.y = fields[3].Get<float>();
+ at.z = fields[4].Get<float>();
+ at.radius = fields[5].Get<float>();
+ at.length = fields[6].Get<float>();
+ at.width = fields[7].Get<float>();
+ at.height = fields[8].Get<float>();
+ at.orientation = fields[9].Get<float>();
MapEntry const* mapEntry = sMapStore.LookupEntry(at.map);
if (!mapEntry)
@@ -6423,15 +6423,15 @@ void ObjectMgr::LoadAreaTriggerTeleports()
++count;
- uint32 Trigger_ID = fields[0].GetUInt32();
+ uint32 Trigger_ID = fields[0].Get<uint32>();
AreaTriggerTeleport at;
- at.target_mapId = fields[1].GetUInt16();
- at.target_X = fields[2].GetFloat();
- at.target_Y = fields[3].GetFloat();
- at.target_Z = fields[4].GetFloat();
- at.target_Orientation = fields[5].GetFloat();
+ at.target_mapId = fields[1].Get<uint16>();
+ at.target_X = fields[2].Get<float>();
+ at.target_Y = fields[3].Get<float>();
+ at.target_Z = fields[4].Get<float>();
+ at.target_Orientation = fields[5].Get<float>();
AreaTrigger const* atEntry = GetAreaTrigger(Trigger_ID);
if (!atEntry)
@@ -6509,30 +6509,30 @@ void ObjectMgr::LoadAccessRequirements()
Field* fields = access_template_result->Fetch();
//Get the common variables for the access requirements
- uint8 dungeon_access_id = fields[0].GetUInt8();
- uint32 mapid = fields[1].GetUInt32();
- uint8 difficulty = fields[2].GetUInt8();
+ uint8 dungeon_access_id = fields[0].Get<uint8>();
+ uint32 mapid = fields[1].Get<uint32>();
+ uint8 difficulty = fields[2].Get<uint8>();
//Set up the access requirements
DungeonProgressionRequirements* ar = new DungeonProgressionRequirements();
- ar->levelMin = fields[3].GetUInt8();
- ar->levelMax = fields[4].GetUInt8();
- ar->reqItemLevel = fields[5].GetUInt16();
+ ar->levelMin = fields[3].Get<uint8>();
+ ar->levelMax = fields[4].Get<uint8>();
+ ar->reqItemLevel = fields[5].Get<uint16>();
// 0 1 2 3 4 6
- QueryResult progression_requirements_results = WorldDatabase.PQuery("SELECT requirement_type, requirement_id, requirement_note, faction, priority, leader_only FROM dungeon_access_requirements where dungeon_access_id = %u", dungeon_access_id);
+ QueryResult progression_requirements_results = WorldDatabase.Query("SELECT requirement_type, requirement_id, requirement_note, faction, priority, leader_only FROM dungeon_access_requirements where dungeon_access_id = {}", dungeon_access_id);
if (progression_requirements_results)
{
do
{
Field* progression_requirement_row = progression_requirements_results->Fetch();
- const uint8 requirement_type = progression_requirement_row[0].GetUInt8();
- const uint32 requirement_id = progression_requirement_row[1].GetUInt32();
- const std::string requirement_note = progression_requirement_row[2].GetString();
- const uint8 requirement_faction = progression_requirement_row[3].GetUInt8();
- const uint8 requirement_priority = progression_requirement_row[4].IsNull() ? UINT8_MAX : progression_requirement_row[4].GetUInt8();
- const bool requirement_checkLeaderOnly = progression_requirement_row[5].GetBool();
+ const uint8 requirement_type = progression_requirement_row[0].Get<uint8>();
+ const uint32 requirement_id = progression_requirement_row[1].Get<uint32>();
+ const std::string requirement_note = progression_requirement_row[2].Get<std::string>();
+ const uint8 requirement_faction = progression_requirement_row[3].Get<uint8>();
+ const uint8 requirement_priority = progression_requirement_row[4].IsNull() ? UINT8_MAX : progression_requirement_row[4].Get<uint8>();
+ const bool requirement_checkLeaderOnly = progression_requirement_row[5].Get<bool>();
ProgressionRequirement* progression_requirement = new ProgressionRequirement();
progression_requirement->id = requirement_id;
@@ -6680,53 +6680,53 @@ void ObjectMgr::SetHighestGuids()
{
QueryResult result = CharacterDatabase.Query("SELECT MAX(guid) FROM characters");
if (result)
- GetGuidSequenceGenerator<HighGuid::Player>().Set((*result)[0].GetUInt32() + 1);
+ GetGuidSequenceGenerator<HighGuid::Player>().Set((*result)[0].Get<uint32>() + 1);
result = CharacterDatabase.Query("SELECT MAX(guid) FROM item_instance");
if (result)
- GetGuidSequenceGenerator<HighGuid::Item>().Set((*result)[0].GetUInt32() + 1);
+ GetGuidSequenceGenerator<HighGuid::Item>().Set((*result)[0].Get<uint32>() + 1);
// Cleanup other tables from not existed guids ( >= _hiItemGuid)
- CharacterDatabase.PExecute("DELETE FROM character_inventory WHERE item >= '%u'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
- CharacterDatabase.PExecute("DELETE FROM mail_items WHERE item_guid >= '%u'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
- CharacterDatabase.PExecute("DELETE FROM auctionhouse WHERE itemguid >= '%u'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
- CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE item_guid >= '%u'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
+ CharacterDatabase.Execute("DELETE FROM character_inventory WHERE item >= '{}'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
+ CharacterDatabase.Execute("DELETE FROM mail_items WHERE item_guid >= '{}'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
+ CharacterDatabase.Execute("DELETE FROM auctionhouse WHERE itemguid >= '{}'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
+ CharacterDatabase.Execute("DELETE FROM guild_bank_item WHERE item_guid >= '{}'", GetGuidSequenceGenerator<HighGuid::Item>().GetNextAfterMaxUsed()); // One-time query
result = WorldDatabase.Query("SELECT MAX(guid) FROM transports");
if (result)
- GetGuidSequenceGenerator<HighGuid::Mo_Transport>().Set((*result)[0].GetUInt32() + 1);
+ GetGuidSequenceGenerator<HighGuid::Mo_Transport>().Set((*result)[0].Get<uint32>() + 1);
result = CharacterDatabase.Query("SELECT MAX(id) FROM auctionhouse");
if (result)
- _auctionId = (*result)[0].GetUInt32() + 1;
+ _auctionId = (*result)[0].Get<uint32>() + 1;
result = CharacterDatabase.Query("SELECT MAX(id) FROM mail");
if (result)
- _mailId = (*result)[0].GetUInt32() + 1;
+ _mailId = (*result)[0].Get<uint32>() + 1;
result = CharacterDatabase.Query("SELECT MAX(arenateamid) FROM arena_team");
if (result)
- sArenaTeamMgr->SetNextArenaTeamId((*result)[0].GetUInt32() + 1);
+ sArenaTeamMgr->SetNextArenaTeamId((*result)[0].Get<uint32>() + 1);
result = CharacterDatabase.Query("SELECT MAX(fight_id) FROM log_arena_fights");
if (result)
- sArenaTeamMgr->SetLastArenaLogId((*result)[0].GetUInt32());
+ sArenaTeamMgr->SetLastArenaLogId((*result)[0].Get<uint32>());
result = CharacterDatabase.Query("SELECT MAX(setguid) FROM character_equipmentsets");
if (result)
- _equipmentSetGuid = (*result)[0].GetUInt64() + 1;
+ _equipmentSetGuid = (*result)[0].Get<uint64>() + 1;
result = CharacterDatabase.Query("SELECT MAX(guildId) FROM guild");
if (result)
- sGuildMgr->SetNextGuildId((*result)[0].GetUInt32() + 1);
+ sGuildMgr->SetNextGuildId((*result)[0].Get<uint32>() + 1);
result = WorldDatabase.Query("SELECT MAX(guid) FROM creature");
if (result)
- _creatureSpawnId = (*result)[0].GetUInt32() + 1;
+ _creatureSpawnId = (*result)[0].Get<uint32>() + 1;
result = WorldDatabase.Query("SELECT MAX(guid) FROM gameobject");
if (result)
- _gameObjectSpawnId = (*result)[0].GetUInt32() + 1;
+ _gameObjectSpawnId = (*result)[0].Get<uint32>() + 1;
}
uint32 ObjectMgr::GenerateAuctionID()
@@ -6795,15 +6795,15 @@ void ObjectMgr::LoadGameObjectLocales()
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
GameObjectLocale& data = _gameObjectLocaleStore[ID];
- AddLocaleString(fields[2].GetString(), locale, data.Name);
- AddLocaleString(fields[3].GetString(), locale, data.CastBarCaption);
+ AddLocaleString(fields[2].Get<std::string>(), locale, data.Name);
+ AddLocaleString(fields[3].Get<std::string>(), locale, data.CastBarCaption);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Gameobject Locale strings in {} ms", (uint32)_gameObjectLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -6893,24 +6893,24 @@ void ObjectMgr::LoadGameObjectTemplate()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
GameObjectTemplate& got = _gameObjectTemplateStore[entry];
got.entry = entry;
- got.type = uint32(fields[1].GetUInt8());
- got.displayId = fields[2].GetUInt32();
- got.name = fields[3].GetString();
- got.IconName = fields[4].GetString();
- got.castBarCaption = fields[5].GetString();
- got.unk1 = fields[6].GetString();
- got.size = fields[7].GetFloat();
+ got.type = uint32(fields[1].Get<uint8>());
+ got.displayId = fields[2].Get<uint32>();
+ got.name = fields[3].Get<std::string>();
+ got.IconName = fields[4].Get<std::string>();
+ got.castBarCaption = fields[5].Get<std::string>();
+ got.unk1 = fields[6].Get<std::string>();
+ got.size = fields[7].Get<float>();
for (uint8 i = 0; i < MAX_GAMEOBJECT_DATA; ++i)
- got.raw.data[i] = fields[8 + i].GetInt32(); // data1 and data6 can be -1
+ got.raw.data[i] = fields[8 + i].Get<int32>(); // data1 and data6 can be -1
- got.AIName = fields[32].GetString();
- got.ScriptId = GetScriptId(fields[33].GetCString());
+ got.AIName = fields[32].Get<std::string>();
+ got.ScriptId = GetScriptId(fields[33].Get<std::string>());
got.IsForQuests = false;
// Checks
@@ -7072,7 +7072,7 @@ void ObjectMgr::LoadGameObjectTemplateAddons()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
GameObjectTemplate const* got = sObjectMgr->GetGameObjectTemplate(entry);
if (!got)
@@ -7084,10 +7084,10 @@ void ObjectMgr::LoadGameObjectTemplateAddons()
}
GameObjectTemplateAddon& gameObjectAddon = _gameObjectTemplateAddonStore[entry];
- gameObjectAddon.faction = uint32(fields[1].GetUInt16());
- gameObjectAddon.flags = fields[2].GetUInt32();
- gameObjectAddon.mingold = fields[3].GetUInt32();
- gameObjectAddon.maxgold = fields[4].GetUInt32();
+ gameObjectAddon.faction = uint32(fields[1].Get<uint16>());
+ gameObjectAddon.flags = fields[2].Get<uint32>();
+ gameObjectAddon.mingold = fields[3].Get<uint32>();
+ gameObjectAddon.maxgold = fields[4].Get<uint32>();
// checks
if (gameObjectAddon.faction && !sFactionTemplateStore.LookupEntry(gameObjectAddon.faction))
@@ -7135,8 +7135,8 @@ void ObjectMgr::LoadExplorationBaseXP()
do
{
Field* fields = result->Fetch();
- uint8 level = fields[0].GetUInt8();
- uint32 basexp = fields[1].GetInt32();
+ uint8 level = fields[0].Get<uint8>();
+ uint32 basexp = fields[1].Get<int32>();
_baseXPTable[level] = basexp;
++count;
} while (result->NextRow());
@@ -7175,9 +7175,9 @@ void ObjectMgr::LoadPetNames()
do
{
Field* fields = result->Fetch();
- std::string word = fields[0].GetString();
- uint32 entry = fields[1].GetUInt32();
- bool half = fields[2].GetBool();
+ std::string word = fields[0].Get<std::string>();
+ uint32 entry = fields[1].Get<uint32>();
+ bool half = fields[2].Get<bool>();
if (half)
_petHalfName1[entry].push_back(word);
else
@@ -7197,7 +7197,7 @@ void ObjectMgr::LoadPetNumber()
if (result)
{
Field* fields = result->Fetch();
- _hiPetNumber = fields[0].GetUInt32() + 1;
+ _hiPetNumber = fields[0].Get<uint32>() + 1;
}
LOG_INFO("server.loading", ">> Loaded the max pet number: {} in {} ms", _hiPetNumber - 1, GetMSTimeDiffToNow(oldMSTime));
@@ -7246,17 +7246,17 @@ void ObjectMgr::LoadReputationRewardRate()
{
Field* fields = result->Fetch();
- uint32 factionId = fields[0].GetUInt32();
+ uint32 factionId = fields[0].Get<uint32>();
RepRewardRate repRate;
- repRate.questRate = fields[1].GetFloat();
- repRate.questDailyRate = fields[2].GetFloat();
- repRate.questWeeklyRate = fields[3].GetFloat();
- repRate.questMonthlyRate = fields[4].GetFloat();
- repRate.questRepeatableRate = fields[5].GetFloat();
- repRate.creatureRate = fields[6].GetFloat();
- repRate.spellRate = fields[7].GetFloat();
+ repRate.questRate = fields[1].Get<float>();
+ repRate.questDailyRate = fields[2].Get<float>();
+ repRate.questWeeklyRate = fields[3].Get<float>();
+ repRate.questMonthlyRate = fields[4].Get<float>();
+ repRate.questRepeatableRate = fields[5].Get<float>();
+ repRate.creatureRate = fields[6].Get<float>();
+ repRate.spellRate = fields[7].Get<float>();
FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
if (!factionEntry)
@@ -7342,18 +7342,18 @@ void ObjectMgr::LoadReputationOnKill()
{
Field* fields = result->Fetch();
- uint32 creature_id = fields[0].GetUInt32();
+ uint32 creature_id = fields[0].Get<uint32>();
ReputationOnKillEntry repOnKill;
- repOnKill.RepFaction1 = fields[1].GetInt16();
- repOnKill.RepFaction2 = fields[2].GetInt16();
- repOnKill.IsTeamAward1 = fields[3].GetBool();
- repOnKill.ReputationMaxCap1 = fields[4].GetUInt8();
- repOnKill.RepValue1 = fields[5].GetInt32();
- repOnKill.IsTeamAward2 = fields[6].GetBool();
- repOnKill.ReputationMaxCap2 = fields[7].GetUInt8();
- repOnKill.RepValue2 = fields[8].GetInt32();
- repOnKill.TeamDependent = fields[9].GetUInt8();
+ repOnKill.RepFaction1 = fields[1].Get<int16>();
+ repOnKill.RepFaction2 = fields[2].Get<int16>();
+ repOnKill.IsTeamAward1 = fields[3].Get<bool>();
+ repOnKill.ReputationMaxCap1 = fields[4].Get<uint8>();
+ repOnKill.RepValue1 = fields[5].Get<int32>();
+ repOnKill.IsTeamAward2 = fields[6].Get<bool>();
+ repOnKill.ReputationMaxCap2 = fields[7].Get<uint8>();
+ repOnKill.RepValue2 = fields[8].Get<int32>();
+ repOnKill.TeamDependent = fields[9].Get<uint8>();
if (!GetCreatureTemplate(creature_id))
{
@@ -7410,22 +7410,22 @@ void ObjectMgr::LoadReputationSpilloverTemplate()
{
Field* fields = result->Fetch();
- uint32 factionId = fields[0].GetUInt16();
+ uint32 factionId = fields[0].Get<uint16>();
RepSpilloverTemplate repTemplate;
- repTemplate.faction[0] = fields[1].GetUInt16();
- repTemplate.faction_rate[0] = fields[2].GetFloat();
- repTemplate.faction_rank[0] = fields[3].GetUInt8();
- repTemplate.faction[1] = fields[4].GetUInt16();
- repTemplate.faction_rate[1] = fields[5].GetFloat();
- repTemplate.faction_rank[1] = fields[6].GetUInt8();
- repTemplate.faction[2] = fields[7].GetUInt16();
- repTemplate.faction_rate[2] = fields[8].GetFloat();
- repTemplate.faction_rank[2] = fields[9].GetUInt8();
- repTemplate.faction[3] = fields[10].GetUInt16();
- repTemplate.faction_rate[3] = fields[11].GetFloat();
- repTemplate.faction_rank[3] = fields[12].GetUInt8();
+ repTemplate.faction[0] = fields[1].Get<uint16>();
+ repTemplate.faction_rate[0] = fields[2].Get<float>();
+ repTemplate.faction_rank[0] = fields[3].Get<uint8>();
+ repTemplate.faction[1] = fields[4].Get<uint16>();
+ repTemplate.faction_rate[1] = fields[5].Get<float>();
+ repTemplate.faction_rank[1] = fields[6].Get<uint8>();
+ repTemplate.faction[2] = fields[7].Get<uint16>();
+ repTemplate.faction_rate[2] = fields[8].Get<float>();
+ repTemplate.faction_rank[2] = fields[9].Get<uint8>();
+ repTemplate.faction[3] = fields[10].Get<uint16>();
+ repTemplate.faction_rate[3] = fields[11].Get<float>();
+ repTemplate.faction_rank[3] = fields[12].Get<uint8>();
FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
@@ -7523,16 +7523,16 @@ void ObjectMgr::LoadPointsOfInterest()
{
Field* fields = result->Fetch();
- uint32 point_id = fields[0].GetUInt32();
+ uint32 point_id = fields[0].Get<uint32>();
PointOfInterest POI;
POI.ID = point_id;
- POI.PositionX = fields[1].GetFloat();
- POI.PositionY = fields[2].GetFloat();
- POI.Icon = fields[3].GetUInt32();
- POI.Flags = fields[4].GetUInt32();
- POI.Importance = fields[5].GetUInt32();
- POI.Name = fields[6].GetString();
+ POI.PositionX = fields[1].Get<float>();
+ POI.PositionY = fields[2].Get<float>();
+ POI.Icon = fields[3].Get<uint32>();
+ POI.Flags = fields[4].Get<uint32>();
+ POI.Importance = fields[5].Get<uint32>();
+ POI.Name = fields[6].Get<std::string>();
if (!Acore::IsValidMapCoord(POI.PositionX, POI.PositionY))
{
@@ -7576,17 +7576,17 @@ void ObjectMgr::LoadQuestPOI()
{
// The first result should have the highest questId
Field* fields = points->Fetch();
- uint32 questIdMax = fields[0].GetUInt32();
+ uint32 questIdMax = fields[0].Get<uint32>();
POIs.resize(questIdMax + 1);
do
{
fields = points->Fetch();
- uint32 questId = fields[0].GetUInt32();
- uint32 id = fields[1].GetUInt32();
- int32 x = fields[2].GetInt32();
- int32 y = fields[3].GetInt32();
+ uint32 questId = fields[0].Get<uint32>();
+ uint32 id = fields[1].Get<uint32>();
+ int32 x = fields[2].Get<int32>();
+ int32 y = fields[3].Get<int32>();
if (POIs[questId].size() <= id + 1)
POIs[questId].resize(id + 10);
@@ -7600,14 +7600,14 @@ void ObjectMgr::LoadQuestPOI()
{
Field* fields = result->Fetch();
- uint32 questId = fields[0].GetUInt32();
- uint32 id = fields[1].GetUInt32();
- int32 objIndex = fields[2].GetInt32();
- uint32 mapId = fields[3].GetUInt32();
- uint32 WorldMapAreaId = fields[4].GetUInt32();
- uint32 FloorId = fields[5].GetUInt32();
- uint32 unk3 = fields[6].GetUInt32();
- uint32 unk4 = fields[7].GetUInt32();
+ uint32 questId = fields[0].Get<uint32>();
+ uint32 id = fields[1].Get<uint32>();
+ int32 objIndex = fields[2].Get<int32>();
+ uint32 mapId = fields[3].Get<uint32>();
+ uint32 WorldMapAreaId = fields[4].Get<uint32>();
+ uint32 FloorId = fields[5].Get<uint32>();
+ uint32 unk3 = fields[6].Get<uint32>();
+ uint32 unk4 = fields[7].Get<uint32>();
QuestPOI POI(id, objIndex, mapId, WorldMapAreaId, FloorId, unk3, unk4);
if (questId < POIs.size() && id < POIs[questId].size())
@@ -7646,7 +7646,7 @@ void ObjectMgr::LoadNPCSpellClickSpells()
{
Field* fields = result->Fetch();
- uint32 npc_entry = fields[0].GetUInt32();
+ uint32 npc_entry = fields[0].Get<uint32>();
CreatureTemplate const* cInfo = GetCreatureTemplate(npc_entry);
if (!cInfo)
{
@@ -7654,7 +7654,7 @@ void ObjectMgr::LoadNPCSpellClickSpells()
continue;
}
- uint32 spellid = fields[1].GetUInt32();
+ uint32 spellid = fields[1].Get<uint32>();
SpellInfo const* spellinfo = sSpellMgr->GetSpellInfo(spellid);
if (!spellinfo)
{
@@ -7662,11 +7662,11 @@ void ObjectMgr::LoadNPCSpellClickSpells()
continue;
}
- uint8 userType = fields[3].GetUInt16();
+ uint8 userType = fields[3].Get<uint16>();
if (userType >= SPELL_CLICK_USER_MAX)
LOG_ERROR("sql.sql", "Table npc_spellclick_spells references unknown user type {}. Skipping entry.", uint32(userType));
- uint8 castFlags = fields[2].GetUInt8();
+ uint8 castFlags = fields[2].Get<uint8>();
SpellClickInfo info;
info.spellId = spellid;
info.castFlags = castFlags;
@@ -7720,7 +7720,7 @@ void ObjectMgr::LoadQuestRelationsHelper(QuestRelations& map, std::string const&
uint32 count = 0;
- QueryResult result = WorldDatabase.PQuery("SELECT id, quest, pool_entry FROM %s qr LEFT JOIN pool_quest pq ON qr.quest = pq.entry", table.c_str());
+ QueryResult result = WorldDatabase.Query("SELECT id, quest, pool_entry FROM {} qr LEFT JOIN pool_quest pq ON qr.quest = pq.entry", table);
if (!result)
{
@@ -7735,9 +7735,9 @@ void ObjectMgr::LoadQuestRelationsHelper(QuestRelations& map, std::string const&
do
{
- uint32 id = result->Fetch()[0].GetUInt32();
- uint32 quest = result->Fetch()[1].GetUInt32();
- uint32 poolId = result->Fetch()[2].GetUInt32();
+ uint32 id = result->Fetch()[0].Get<uint32>();
+ uint32 quest = result->Fetch()[1].Get<uint32>();
+ uint32 poolId = result->Fetch()[2].Get<uint32>();
if (_questTemplates.find(quest) == _questTemplates.end())
{
@@ -7834,7 +7834,7 @@ void ObjectMgr::LoadReservedPlayersNames()
do
{
fields = result->Fetch();
- std::string name = fields[0].GetString();
+ std::string name = fields[0].Get<std::string>();
std::wstring wstr;
if (!Utf8toWStr (name, wstr))
@@ -7883,7 +7883,7 @@ void ObjectMgr::AddReservedPlayerName(std::string const& name)
_reservedNamesStore.insert(wstr);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_RESERVED_PLAYER_NAME);
- stmt->setString(0, name);
+ stmt->SetData(0, name);
CharacterDatabase.Execute(stmt);
}
}
@@ -8116,7 +8116,7 @@ bool ObjectMgr::LoadAcoreStrings()
uint32 oldMSTime = getMSTime();
_acoreStringStore.clear(); // for reload case
- QueryResult result = WorldDatabase.PQuery("SELECT entry, content_default, locale_koKR, locale_frFR, locale_deDE, locale_zhCN, locale_zhTW, locale_esES, locale_esMX, locale_ruRU FROM acore_string");
+ QueryResult result = WorldDatabase.Query("SELECT entry, content_default, locale_koKR, locale_frFR, locale_deDE, locale_zhCN, locale_zhTW, locale_esES, locale_esMX, locale_ruRU FROM acore_string");
if (!result)
{
LOG_INFO("server.loading", ">> Loaded 0 acore strings. DB table `acore_strings` is empty.");
@@ -8128,14 +8128,14 @@ bool ObjectMgr::LoadAcoreStrings()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
AcoreString& data = _acoreStringStore[entry];
data.Content.resize(DEFAULT_LOCALE + 1);
for (uint8 i = 0; i < TOTAL_LOCALES; ++i)
- AddLocaleString(fields[i + 1].GetString(), LocaleConstant(i), data.Content);
+ AddLocaleString(fields[i + 1].Get<std::string>(), LocaleConstant(i), data.Content);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} acore strings in {} ms", (uint32)_acoreStringStore.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -8179,8 +8179,8 @@ void ObjectMgr::LoadFishingBaseSkillLevel()
do
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- int32 skill = fields[1].GetInt16();
+ uint32 entry = fields[0].Get<uint32>();
+ int32 skill = fields[1].Get<int16>();
AreaTableEntry const* fArea = sAreaTableStore.LookupEntry(entry);
if (!fArea)
@@ -8321,16 +8321,16 @@ void ObjectMgr::LoadGameTele()
{
Field* fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
+ uint32 id = fields[0].Get<uint32>();
GameTele gt;
- gt.position_x = fields[1].GetFloat();
- gt.position_y = fields[2].GetFloat();
- gt.position_z = fields[3].GetFloat();
- gt.orientation = fields[4].GetFloat();
- gt.mapId = fields[5].GetUInt16();
- gt.name = fields[6].GetString();
+ gt.position_x = fields[1].Get<float>();
+ gt.position_y = fields[2].Get<float>();
+ gt.position_z = fields[3].Get<float>();
+ gt.orientation = fields[4].Get<float>();
+ gt.mapId = fields[5].Get<uint16>();
+ gt.name = fields[6].Get<std::string>();
if (!MapMgr::IsValidMapCoord(gt.mapId, gt.position_x, gt.position_y, gt.position_z, gt.orientation))
{
@@ -8398,13 +8398,13 @@ bool ObjectMgr::AddGameTele(GameTele& tele)
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_GAME_TELE);
- stmt->setUInt32(0, new_id);
- stmt->setFloat(1, tele.position_x);
- stmt->setFloat(2, tele.position_y);
- stmt->setFloat(3, tele.position_z);
- stmt->setFloat(4, tele.orientation);
- stmt->setUInt16(5, uint16(tele.mapId));
- stmt->setString(6, tele.name);
+ stmt->SetData(0, new_id);
+ stmt->SetData(1, tele.position_x);
+ stmt->SetData(2, tele.position_y);
+ stmt->SetData(3, tele.position_z);
+ stmt->SetData(4, tele.orientation);
+ stmt->SetData(5, uint16(tele.mapId));
+ stmt->SetData(6, tele.name);
WorldDatabase.Execute(stmt);
@@ -8427,7 +8427,7 @@ bool ObjectMgr::DeleteGameTele(std::string_view name)
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GAME_TELE);
- stmt->setString(0, itr->second.name);
+ stmt->SetData(0, itr->second.name);
WorldDatabase.Execute(stmt);
@@ -8461,10 +8461,10 @@ void ObjectMgr::LoadMailLevelRewards()
{
Field* fields = result->Fetch();
- uint8 level = fields[0].GetUInt8();
- uint32 raceMask = fields[1].GetUInt32();
- uint32 mailTemplateId = fields[2].GetUInt32();
- uint32 senderEntry = fields[3].GetUInt32();
+ uint8 level = fields[0].Get<uint8>();
+ uint32 raceMask = fields[1].Get<uint32>();
+ uint32 mailTemplateId = fields[2].Get<uint32>();
+ uint32 senderEntry = fields[3].Get<uint32>();
if (level > MAX_LEVEL)
{
@@ -8608,13 +8608,13 @@ void ObjectMgr::LoadTrainerSpell()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 spell = fields[1].GetUInt32();
- uint32 spellCost = fields[2].GetUInt32();
- uint32 reqSkill = fields[3].GetUInt16();
- uint32 reqSkillValue = fields[4].GetUInt16();
- uint32 reqLevel = fields[5].GetUInt8();
- uint32 reqSpell = fields[6].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 spell = fields[1].Get<uint32>();
+ uint32 spellCost = fields[2].Get<uint32>();
+ uint32 reqSkill = fields[3].Get<uint16>();
+ uint32 reqSkillValue = fields[4].Get<uint16>();
+ uint32 reqLevel = fields[5].Get<uint8>();
+ uint32 reqSpell = fields[6].Get<uint32>();
AddSpellToTrainer(entry, spell, spellCost, reqSkill, reqSkillValue, reqLevel, reqSpell);
@@ -8629,7 +8629,7 @@ int ObjectMgr::LoadReferenceVendor(int32 vendor, int32 item, std::set<uint32>* s
{
// find all items from the reference vendor
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_NPC_VENDOR_REF);
- stmt->setUInt32(0, uint32(item));
+ stmt->SetData(0, uint32(item));
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -8640,16 +8640,16 @@ int ObjectMgr::LoadReferenceVendor(int32 vendor, int32 item, std::set<uint32>* s
{
Field* fields = result->Fetch();
- int32 item_id = fields[0].GetInt32();
+ int32 item_id = fields[0].Get<int32>();
// if item is a negative, its a reference
if (item_id < 0)
count += LoadReferenceVendor(vendor, -item_id, skip_vendors);
else
{
- int32 maxcount = fields[1].GetUInt8();
- uint32 incrtime = fields[2].GetUInt32();
- uint32 ExtendedCost = fields[3].GetUInt32();
+ int32 maxcount = fields[1].Get<uint8>();
+ uint32 incrtime = fields[2].Get<uint32>();
+ uint32 ExtendedCost = fields[3].Get<uint32>();
if (!IsVendorItemValid(vendor, item_id, maxcount, incrtime, ExtendedCost, nullptr, skip_vendors))
continue;
@@ -8689,17 +8689,17 @@ void ObjectMgr::LoadVendors()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- int32 item_id = fields[1].GetInt32();
+ uint32 entry = fields[0].Get<uint32>();
+ int32 item_id = fields[1].Get<int32>();
// if item is a negative, its a reference
if (item_id < 0)
count += LoadReferenceVendor(entry, -item_id, &skip_vendors);
else
{
- uint32 maxcount = fields[2].GetUInt8();
- uint32 incrtime = fields[3].GetUInt32();
- uint32 ExtendedCost = fields[4].GetUInt32();
+ uint32 maxcount = fields[2].Get<uint8>();
+ uint32 incrtime = fields[3].Get<uint32>();
+ uint32 ExtendedCost = fields[4].Get<uint32>();
if (!IsVendorItemValid(entry, item_id, maxcount, incrtime, ExtendedCost, nullptr, &skip_vendors))
continue;
@@ -8736,8 +8736,8 @@ void ObjectMgr::LoadGossipMenu()
GossipMenus gMenu;
- gMenu.MenuID = fields[0].GetUInt16();
- gMenu.TextID = fields[1].GetUInt32();
+ gMenu.MenuID = fields[0].Get<uint16>();
+ gMenu.TextID = fields[1].Get<uint32>();
if (!GetGossipText(gMenu.TextID))
{
@@ -8776,19 +8776,19 @@ void ObjectMgr::LoadGossipMenuItems()
GossipMenuItems gMenuItem;
- gMenuItem.MenuID = fields[0].GetUInt16();
- gMenuItem.OptionID = fields[1].GetUInt16();
- gMenuItem.OptionIcon = fields[2].GetUInt32();
- gMenuItem.OptionText = fields[3].GetString();
- gMenuItem.OptionBroadcastTextID = fields[4].GetUInt32();
- gMenuItem.OptionType = fields[5].GetUInt8();
- gMenuItem.OptionNpcFlag = fields[6].GetUInt32();
- gMenuItem.ActionMenuID = fields[7].GetUInt32();
- gMenuItem.ActionPoiID = fields[8].GetUInt32();
- gMenuItem.BoxCoded = fields[9].GetBool();
- gMenuItem.BoxMoney = fields[10].GetUInt32();
- gMenuItem.BoxText = fields[11].GetString();
- gMenuItem.BoxBroadcastTextID = fields[12].GetUInt32();
+ gMenuItem.MenuID = fields[0].Get<uint16>();
+ gMenuItem.OptionID = fields[1].Get<uint16>();
+ gMenuItem.OptionIcon = fields[2].Get<uint32>();
+ gMenuItem.OptionText = fields[3].Get<std::string>();
+ gMenuItem.OptionBroadcastTextID = fields[4].Get<uint32>();
+ gMenuItem.OptionType = fields[5].Get<uint8>();
+ gMenuItem.OptionNpcFlag = fields[6].Get<uint32>();
+ gMenuItem.ActionMenuID = fields[7].Get<uint32>();
+ gMenuItem.ActionPoiID = fields[8].Get<uint32>();
+ gMenuItem.BoxCoded = fields[9].Get<bool>();
+ gMenuItem.BoxMoney = fields[10].Get<uint32>();
+ gMenuItem.BoxText = fields[11].Get<std::string>();
+ gMenuItem.BoxBroadcastTextID = fields[12].Get<uint32>();
if (gMenuItem.OptionIcon >= GOSSIP_ICON_MAX)
{
@@ -8833,11 +8833,11 @@ void ObjectMgr::AddVendorItem(uint32 entry, uint32 item, int32 maxcount, uint32
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_NPC_VENDOR);
- stmt->setUInt32(0, entry);
- stmt->setUInt32(1, item);
- stmt->setUInt8(2, maxcount);
- stmt->setUInt32(3, incrtime);
- stmt->setUInt32(4, extendedCost);
+ stmt->SetData(0, entry);
+ stmt->SetData(1, item);
+ stmt->SetData(2, maxcount);
+ stmt->SetData(3, incrtime);
+ stmt->SetData(4, extendedCost);
WorldDatabase.Execute(stmt);
}
@@ -8856,8 +8856,8 @@ bool ObjectMgr::RemoveVendorItem(uint32 entry, uint32 item, bool persist /*= tru
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_NPC_VENDOR);
- stmt->setUInt32(0, entry);
- stmt->setUInt32(1, item);
+ stmt->SetData(0, entry);
+ stmt->SetData(1, item);
WorldDatabase.Execute(stmt);
}
@@ -8993,7 +8993,7 @@ void ObjectMgr::LoadScriptNames()
do
{
- _scriptNamesStore.push_back((*result)[0].GetString());
+ _scriptNamesStore.push_back((*result)[0].Get<std::string>());
} while (result->NextRow());
std::sort(_scriptNamesStore.begin(), _scriptNamesStore.end());
@@ -9044,19 +9044,19 @@ void ObjectMgr::LoadBroadcastTexts()
BroadcastText bct;
- bct.Id = fields[0].GetUInt32();
- bct.LanguageID = fields[1].GetUInt32();
- bct.MaleText[DEFAULT_LOCALE] = fields[2].GetString();
- bct.FemaleText[DEFAULT_LOCALE] = fields[3].GetString();
- bct.EmoteId1 = fields[4].GetUInt32();
- bct.EmoteId2 = fields[5].GetUInt32();
- bct.EmoteId3 = fields[6].GetUInt32();
- bct.EmoteDelay1 = fields[7].GetUInt32();
- bct.EmoteDelay2 = fields[8].GetUInt32();
- bct.EmoteDelay3 = fields[9].GetUInt32();
- bct.SoundEntriesId = fields[10].GetUInt32();
- bct.EmotesID = fields[11].GetUInt32();
- bct.Flags = fields[12].GetUInt32();
+ bct.Id = fields[0].Get<uint32>();
+ bct.LanguageID = fields[1].Get<uint32>();
+ bct.MaleText[DEFAULT_LOCALE] = fields[2].Get<std::string>();
+ bct.FemaleText[DEFAULT_LOCALE] = fields[3].Get<std::string>();
+ bct.EmoteId1 = fields[4].Get<uint32>();
+ bct.EmoteId2 = fields[5].Get<uint32>();
+ bct.EmoteId3 = fields[6].Get<uint32>();
+ bct.EmoteDelay1 = fields[7].Get<uint32>();
+ bct.EmoteDelay2 = fields[8].Get<uint32>();
+ bct.EmoteDelay3 = fields[9].Get<uint32>();
+ bct.SoundEntriesId = fields[10].Get<uint32>();
+ bct.EmotesID = fields[11].Get<uint32>();
+ bct.Flags = fields[12].Get<uint32>();
if (bct.SoundEntriesId)
{
@@ -9124,7 +9124,7 @@ void ObjectMgr::LoadBroadcastTextLocales()
{
Field* fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
+ uint32 id = fields[0].Get<uint32>();
BroadcastTextContainer::iterator bct = _broadcastTextStore.find(id);
if (bct == _broadcastTextStore.end())
@@ -9133,12 +9133,12 @@ void ObjectMgr::LoadBroadcastTextLocales()
continue;
}
- LocaleConstant locale = GetLocaleByName(fields[1].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[1].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
- AddLocaleString(fields[2].GetString(), locale, bct->second.MaleText);
- AddLocaleString(fields[3].GetString(), locale, bct->second.FemaleText);
+ AddLocaleString(fields[2].Get<std::string>(), locale, bct->second.MaleText);
+ AddLocaleString(fields[3].Get<std::string>(), locale, bct->second.FemaleText);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Broadcast Text Locales in {} ms", uint32(_broadcastTextStore.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -9189,8 +9189,8 @@ void ObjectMgr::LoadCreatureClassLevelStats()
{
Field* fields = result->Fetch();
- uint8 Level = fields[0].GetUInt8();
- uint8 Class = fields[1].GetUInt8();
+ uint8 Level = fields[0].Get<uint8>();
+ uint8 Class = fields[1].Get<uint8>();
if (!Class || ((1 << (Class - 1)) & CLASSMASK_ALL_CREATURES) == 0)
LOG_ERROR("sql.sql", "Creature base stats for level {} has invalid class {}", Level, Class);
@@ -9199,7 +9199,7 @@ void ObjectMgr::LoadCreatureClassLevelStats()
for (uint8 i = 0; i < MAX_EXPANSIONS; ++i)
{
- stats.BaseHealth[i] = fields[2 + i].GetUInt16();
+ stats.BaseHealth[i] = fields[2 + i].Get<uint16>();
if (stats.BaseHealth[i] == 0)
{
@@ -9221,7 +9221,7 @@ void ObjectMgr::LoadCreatureClassLevelStats()
}
}
- stats.BaseDamage[i] = fields[9 + i].GetFloat();
+ stats.BaseDamage[i] = fields[9 + i].Get<float>();
if (stats.BaseDamage[i] < 0.0f)
{
LOG_ERROR("sql.sql", "Creature base stats for class {}, level {} has invalid negative base damage[{}] - set to 0.0", Class, Level, i);
@@ -9229,11 +9229,11 @@ void ObjectMgr::LoadCreatureClassLevelStats()
}
}
- stats.BaseMana = fields[5].GetUInt16();
- stats.BaseArmor = fields[6].GetUInt16();
+ stats.BaseMana = fields[5].Get<uint16>();
+ stats.BaseArmor = fields[6].Get<uint16>();
- stats.AttackPower = fields[7].GetUInt16();
- stats.RangedAttackPower = fields[8].GetUInt16();
+ stats.AttackPower = fields[7].Get<uint16>();
+ stats.RangedAttackPower = fields[8].Get<uint16>();
_creatureBaseStatsStore[MAKE_PAIR16(Level, Class)] = stats;
@@ -9273,8 +9273,8 @@ void ObjectMgr::LoadFactionChangeAchievements()
{
Field* fields = result->Fetch();
- uint32 alliance = fields[0].GetUInt32();
- uint32 horde = fields[1].GetUInt32();
+ uint32 alliance = fields[0].Get<uint32>();
+ uint32 horde = fields[1].Get<uint32>();
if (!sAchievementStore.LookupEntry(alliance))
LOG_ERROR("sql.sql", "Achievement {} (alliance_id) referenced in `player_factionchange_achievement` does not exist, pair skipped!", alliance);
@@ -9309,8 +9309,8 @@ void ObjectMgr::LoadFactionChangeItems()
{
Field* fields = result->Fetch();
- uint32 alliance = fields[0].GetUInt32();
- uint32 horde = fields[1].GetUInt32();
+ uint32 alliance = fields[0].Get<uint32>();
+ uint32 horde = fields[1].Get<uint32>();
if (!GetItemTemplate(alliance))
LOG_ERROR("sql.sql", "Item {} (alliance_id) referenced in `player_factionchange_items` does not exist, pair skipped!", alliance);
@@ -9345,8 +9345,8 @@ void ObjectMgr::LoadFactionChangeQuests()
{
Field* fields = result->Fetch();
- uint32 alliance = fields[0].GetUInt32();
- uint32 horde = fields[1].GetUInt32();
+ uint32 alliance = fields[0].Get<uint32>();
+ uint32 horde = fields[1].Get<uint32>();
if (!sObjectMgr->GetQuestTemplate(alliance))
LOG_ERROR("sql.sql", "Quest {} (alliance_id) referenced in `player_factionchange_quests` does not exist, pair skipped!", alliance);
@@ -9381,8 +9381,8 @@ void ObjectMgr::LoadFactionChangeReputations()
{
Field* fields = result->Fetch();
- uint32 alliance = fields[0].GetUInt32();
- uint32 horde = fields[1].GetUInt32();
+ uint32 alliance = fields[0].Get<uint32>();
+ uint32 horde = fields[1].Get<uint32>();
if (!sFactionStore.LookupEntry(alliance))
LOG_ERROR("sql.sql", "Reputation {} (alliance_id) referenced in `player_factionchange_reputations` does not exist, pair skipped!", alliance);
@@ -9417,8 +9417,8 @@ void ObjectMgr::LoadFactionChangeSpells()
{
Field* fields = result->Fetch();
- uint32 alliance = fields[0].GetUInt32();
- uint32 horde = fields[1].GetUInt32();
+ uint32 alliance = fields[0].Get<uint32>();
+ uint32 horde = fields[1].Get<uint32>();
if (!sSpellMgr->GetSpellInfo(alliance))
LOG_ERROR("sql.sql", "Spell {} (alliance_id) referenced in `player_factionchange_spells` does not exist, pair skipped!", alliance);
@@ -9452,8 +9452,8 @@ void ObjectMgr::LoadFactionChangeTitles()
{
Field* fields = result->Fetch();
- uint32 alliance = fields[0].GetUInt32();
- uint32 horde = fields[1].GetUInt32();
+ uint32 alliance = fields[0].Get<uint32>();
+ uint32 horde = fields[1].Get<uint32>();
if (!sCharTitlesStore.LookupEntry(alliance))
LOG_ERROR("sql.sql", "Title {} (alliance_id) referenced in `player_factionchange_title` does not exist, pair skipped!", alliance);
@@ -9545,8 +9545,8 @@ void ObjectMgr::LoadGameObjectQuestItems()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 item = fields[1].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 item = fields[1].Get<uint32>();
_gameObjectQuestItemStore[entry].push_back(item);
@@ -9575,8 +9575,8 @@ void ObjectMgr::LoadCreatureQuestItems()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 item = fields[1].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 item = fields[1].Get<uint32>();
_creatureQuestItemStore[entry].push_back(item);
@@ -9605,14 +9605,14 @@ void ObjectMgr::LoadQuestMoneyRewards()
do
{
Field* fields = result->Fetch();
- uint32 Level = fields[0].GetUInt32();
+ uint32 Level = fields[0].Get<uint32>();
QuestMoneyRewardArray& questMoneyReward = _questMoneyRewards[Level];
questMoneyReward.fill(0);
for (uint8 i = 0; i < MAX_QUEST_MONEY_REWARDS; ++i)
{
- questMoneyReward[i] = fields[1 + i].GetUInt32();
+ questMoneyReward[i] = fields[1 + i].Get<uint32>();
++count;
}
} while (result->NextRow());
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 53b1bb5136..3f92db52d2 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -140,23 +140,23 @@ bool Group::Create(Player* leader)
uint8 index = 0;
- stmt->setUInt32(index++, lowguid);
- stmt->setUInt32(index++, m_leaderGuid.GetCounter());
- stmt->setUInt8(index++, uint8(m_lootMethod));
- stmt->setUInt32(index++, m_looterGuid.GetCounter());
- stmt->setUInt8(index++, uint8(m_lootThreshold));
- stmt->setUInt64(index++, m_targetIcons[0].GetRawValue());
- stmt->setUInt64(index++, m_targetIcons[1].GetRawValue());
- stmt->setUInt64(index++, m_targetIcons[2].GetRawValue());
- stmt->setUInt64(index++, m_targetIcons[3].GetRawValue());
- stmt->setUInt64(index++, m_targetIcons[4].GetRawValue());
- stmt->setUInt64(index++, m_targetIcons[5].GetRawValue());
- stmt->setUInt64(index++, m_targetIcons[6].GetRawValue());
- stmt->setUInt64(index++, m_targetIcons[7].GetRawValue());
- stmt->setUInt8(index++, uint8(m_groupType));
- stmt->setUInt32(index++, uint8(m_dungeonDifficulty));
- stmt->setUInt32(index++, uint8(m_raidDifficulty));
- stmt->setUInt32(index++, m_masterLooterGuid.GetCounter());
+ stmt->SetData(index++, lowguid);
+ stmt->SetData(index++, m_leaderGuid.GetCounter());
+ stmt->SetData(index++, uint8(m_lootMethod));
+ stmt->SetData(index++, m_looterGuid.GetCounter());
+ stmt->SetData(index++, uint8(m_lootThreshold));
+ stmt->SetData(index++, m_targetIcons[0].GetRawValue());
+ stmt->SetData(index++, m_targetIcons[1].GetRawValue());
+ stmt->SetData(index++, m_targetIcons[2].GetRawValue());
+ stmt->SetData(index++, m_targetIcons[3].GetRawValue());
+ stmt->SetData(index++, m_targetIcons[4].GetRawValue());
+ stmt->SetData(index++, m_targetIcons[5].GetRawValue());
+ stmt->SetData(index++, m_targetIcons[6].GetRawValue());
+ stmt->SetData(index++, m_targetIcons[7].GetRawValue());
+ stmt->SetData(index++, uint8(m_groupType));
+ stmt->SetData(index++, uint8(m_dungeonDifficulty));
+ stmt->SetData(index++, uint8(m_raidDifficulty));
+ stmt->SetData(index++, m_masterLooterGuid.GetCounter());
CharacterDatabase.Execute(stmt);
@@ -172,52 +172,52 @@ bool Group::Create(Player* leader)
bool Group::LoadGroupFromDB(Field* fields)
{
- ObjectGuid::LowType groupLowGuid = fields[16].GetUInt32();
+ ObjectGuid::LowType groupLowGuid = fields[16].Get<uint32>();
m_guid = ObjectGuid::Create<HighGuid::Group>(groupLowGuid);
- m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32());
+ m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>());
// group leader not exist
if (!sCharacterCache->GetCharacterNameByGuid(m_leaderGuid, m_leaderName))
{
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP);
- stmt->setUInt32(0, groupLowGuid);
+ stmt->SetData(0, groupLowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP_MEMBER_ALL);
- stmt->setUInt32(0, groupLowGuid);
+ stmt->SetData(0, groupLowGuid);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_LFG_DATA);
- stmt->setUInt32(0, groupLowGuid);
+ stmt->SetData(0, groupLowGuid);
CharacterDatabase.Execute(stmt);
return false;
}
- m_lootMethod = LootMethod(fields[1].GetUInt8());
- m_looterGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt32());
- m_lootThreshold = ItemQualities(fields[3].GetUInt8());
+ m_lootMethod = LootMethod(fields[1].Get<uint8>());
+ m_looterGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].Get<uint32>());
+ m_lootThreshold = ItemQualities(fields[3].Get<uint8>());
for (uint8 i = 0; i < TARGETICONCOUNT; ++i)
- m_targetIcons[i].Set(fields[4 + i].GetUInt64());
+ m_targetIcons[i].Set(fields[4 + i].Get<uint64>());
- m_groupType = GroupType(fields[12].GetUInt8());
+ m_groupType = GroupType(fields[12].Get<uint8>());
if (m_groupType & GROUPTYPE_RAID)
_initRaidSubGroupsCounter();
- uint32 diff = fields[13].GetUInt8();
+ uint32 diff = fields[13].Get<uint8>();
if (diff >= MAX_DUNGEON_DIFFICULTY)
m_dungeonDifficulty = DUNGEON_DIFFICULTY_NORMAL;
else
m_dungeonDifficulty = Difficulty(diff);
- uint32 r_diff = fields[14].GetUInt8();
+ uint32 r_diff = fields[14].Get<uint8>();
if (r_diff >= MAX_RAID_DIFFICULTY)
m_raidDifficulty = RAID_DIFFICULTY_10MAN_NORMAL;
else
m_raidDifficulty = Difficulty(r_diff);
- m_masterLooterGuid = ObjectGuid::Create<HighGuid::Player>(fields[15].GetUInt32());
+ m_masterLooterGuid = ObjectGuid::Create<HighGuid::Player>(fields[15].Get<uint32>());
if (m_groupType & GROUPTYPE_LFG)
sLFGMgr->_LoadFromDB(fields, GetGUID());
@@ -234,8 +234,8 @@ void Group::LoadMemberFromDB(ObjectGuid::LowType guidLow, uint8 memberFlags, uin
if (!sCharacterCache->GetCharacterNameByGuid(member.guid, member.name))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP_MEMBER);
- stmt->setUInt32(0, guidLow);
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, guidLow);
+ stmt->SetData(1, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
return;
}
@@ -269,8 +269,8 @@ void Group::ConvertToLFG(bool restricted /*= true*/)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_TYPE);
- stmt->setUInt8(0, uint8(m_groupType));
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, uint8(m_groupType));
+ stmt->SetData(1, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -288,8 +288,8 @@ void Group::ConvertToRaid()
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_TYPE);
- stmt->setUInt8(0, uint8(m_groupType));
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, uint8(m_groupType));
+ stmt->SetData(1, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -437,11 +437,11 @@ bool Group::AddMember(Player* player)
if (!isBGGroup() && !isBFGroup())
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GROUP_MEMBER);
- stmt->setUInt32(0, GetGUID().GetCounter());
- stmt->setUInt32(1, member.guid.GetCounter());
- stmt->setUInt8(2, member.flags);
- stmt->setUInt8(3, member.group);
- stmt->setUInt8(4, member.roles);
+ stmt->SetData(0, GetGUID().GetCounter());
+ stmt->SetData(1, member.guid.GetCounter());
+ stmt->SetData(2, member.flags);
+ stmt->SetData(3, member.group);
+ stmt->SetData(4, member.roles);
CharacterDatabase.Execute(stmt);
}
@@ -583,8 +583,8 @@ bool Group::RemoveMember(ObjectGuid guid, const RemoveMethod& method /*= GROUP_R
if (!isBGGroup() && !isBFGroup())
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP_MEMBER);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -716,8 +716,8 @@ void Group::ChangeLeader(ObjectGuid newLeaderGuid)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
// Update the group leader
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_LEADER);
- stmt->setUInt32(0, newLeader->GetGUID().GetCounter());
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, newLeader->GetGUID().GetCounter());
+ stmt->SetData(1, GetGUID().GetCounter());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -807,17 +807,17 @@ void Group::Disband(bool hideDestroy /* = false */)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP_MEMBER_ALL);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_LFG_DATA);
- stmt->setUInt32(0, GetGUID().GetCounter());
+ stmt->SetData(0, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -1779,8 +1779,8 @@ void Group::ChangeMembersGroup(ObjectGuid guid, uint8 group)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_MEMBER_SUBGROUP);
- stmt->setUInt8(0, group);
- stmt->setUInt32(1, guid.GetCounter());
+ stmt->SetData(0, group);
+ stmt->SetData(1, guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -1978,8 +1978,8 @@ void Group::SetDungeonDifficulty(Difficulty difficulty)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_DIFFICULTY);
- stmt->setUInt8(0, uint8(m_dungeonDifficulty));
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, uint8(m_dungeonDifficulty));
+ stmt->SetData(1, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -1999,8 +1999,8 @@ void Group::SetRaidDifficulty(Difficulty difficulty)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_RAID_DIFFICULTY);
- stmt->setUInt8(0, uint8(m_raidDifficulty));
- stmt->setUInt32(1, GetGUID().GetCounter());
+ stmt->SetData(0, uint8(m_raidDifficulty));
+ stmt->SetData(1, GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -2314,8 +2314,8 @@ void Group::SetGroupMemberFlag(ObjectGuid guid, bool apply, GroupMemberFlags fla
// Preserve the new setting in the db
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GROUP_MEMBER_FLAG);
- stmt->setUInt8(0, slot->flags);
- stmt->setUInt32(1, guid.GetCounter());
+ stmt->SetData(0, slot->flags);
+ stmt->SetData(1, guid.GetCounter());
CharacterDatabase.Execute(stmt);
diff --git a/src/server/game/Groups/GroupMgr.cpp b/src/server/game/Groups/GroupMgr.cpp
index 4ffddc75ba..af9567aa1d 100644
--- a/src/server/game/Groups/GroupMgr.cpp
+++ b/src/server/game/Groups/GroupMgr.cpp
@@ -46,7 +46,7 @@ void GroupMgr::InitGroupIds()
QueryResult result = CharacterDatabase.Query("SELECT MAX(guid) FROM `groups`");
if (result)
{
- uint32 maxId = (*result)[0].GetUInt32();
+ uint32 maxId = (*result)[0].Get<uint32>();
_groupIds.resize(maxId + 1);
}
}
@@ -170,10 +170,10 @@ void GroupMgr::LoadGroups()
do
{
Field* fields = result->Fetch();
- Group* group = GetGroupByGUID(fields[0].GetUInt32());
+ Group* group = GetGroupByGUID(fields[0].Get<uint32>());
if (group)
- group->LoadMemberFromDB(fields[1].GetUInt32(), fields[2].GetUInt8(), fields[3].GetUInt8(), fields[4].GetUInt8());
+ group->LoadMemberFromDB(fields[1].Get<uint32>(), fields[2].Get<uint8>(), fields[3].Get<uint8>(), fields[4].Get<uint8>());
++count;
} while (result->NextRow());
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index cc0cbcc279..39a1566064 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -180,19 +180,19 @@ Guild::LogEntry::LogEntry(uint32 guildId, ObjectGuid::LowType guid) :
void Guild::EventLogEntry::SaveToDB(CharacterDatabaseTransaction trans) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_EVENTLOG);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt32(1, m_guid);
+ stmt->SetData(0, m_guildId);
+ stmt->SetData(1, m_guid);
CharacterDatabase.ExecuteOrAppend(trans, stmt);
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_EVENTLOG);
- stmt->setUInt32( index, m_guildId);
- stmt->setUInt32(++index, m_guid);
- stmt->setUInt8 (++index, uint8(m_eventType));
- stmt->setUInt32(++index, m_playerGuid1.GetCounter());
- stmt->setUInt32(++index, m_playerGuid2.GetCounter());
- stmt->setUInt8 (++index, m_newRank);
- stmt->setUInt64(++index, m_timestamp);
+ stmt->SetData( index, m_guildId);
+ stmt->SetData(++index, m_guid);
+ stmt->SetData (++index, uint8(m_eventType));
+ stmt->SetData(++index, m_playerGuid1.GetCounter());
+ stmt->SetData(++index, m_playerGuid2.GetCounter());
+ stmt->SetData (++index, m_newRank);
+ stmt->SetData(++index, m_timestamp);
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
@@ -216,22 +216,22 @@ void Guild::BankEventLogEntry::SaveToDB(CharacterDatabaseTransaction trans) cons
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_EVENTLOG);
- stmt->setUInt32( index, m_guildId);
- stmt->setUInt32(++index, m_guid);
- stmt->setUInt8 (++index, m_bankTabId);
+ stmt->SetData( index, m_guildId);
+ stmt->SetData(++index, m_guid);
+ stmt->SetData (++index, m_bankTabId);
CharacterDatabase.ExecuteOrAppend(trans, stmt);
index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_BANK_EVENTLOG);
- stmt->setUInt32( index, m_guildId);
- stmt->setUInt32(++index, m_guid);
- stmt->setUInt8 (++index, m_bankTabId);
- stmt->setUInt8 (++index, uint8(m_eventType));
- stmt->setUInt32(++index, m_playerGuid.GetCounter());
- stmt->setUInt32(++index, m_itemOrMoney);
- stmt->setUInt16(++index, m_itemStackCount);
- stmt->setUInt8 (++index, m_destTabId);
- stmt->setUInt64(++index, m_timestamp);
+ stmt->SetData( index, m_guildId);
+ stmt->SetData(++index, m_guid);
+ stmt->SetData (++index, m_bankTabId);
+ stmt->SetData (++index, uint8(m_eventType));
+ stmt->SetData(++index, m_playerGuid.GetCounter());
+ stmt->SetData(++index, m_itemOrMoney);
+ stmt->SetData(++index, m_itemStackCount);
+ stmt->SetData (++index, m_destTabId);
+ stmt->SetData(++index, m_timestamp);
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
@@ -265,10 +265,10 @@ void Guild::BankEventLogEntry::WritePacket(WorldPackets::Guild::GuildBankLogQuer
// RankInfo
void Guild::RankInfo::LoadFromDB(Field* fields)
{
- m_rankId = fields[1].GetUInt8();
- m_name = fields[2].GetString();
- m_rights = fields[3].GetUInt32();
- m_bankMoneyPerDay = fields[4].GetUInt32();
+ m_rankId = fields[1].Get<uint8>();
+ m_name = fields[2].Get<std::string>();
+ m_rights = fields[3].Get<uint32>();
+ m_bankMoneyPerDay = fields[4].Get<uint32>();
if (m_rankId == GR_GUILDMASTER) // Prevent loss of leader rights
m_rights |= GR_RIGHT_ALL;
}
@@ -276,11 +276,11 @@ void Guild::RankInfo::LoadFromDB(Field* fields)
void Guild::RankInfo::SaveToDB(CharacterDatabaseTransaction trans) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_RANK);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt8 (1, m_rankId);
- stmt->setString(2, m_name);
- stmt->setUInt32(3, m_rights);
- stmt->setUInt32(4, m_bankMoneyPerDay);
+ stmt->SetData(0, m_guildId);
+ stmt->SetData (1, m_rankId);
+ stmt->SetData(2, m_name);
+ stmt->SetData(3, m_rights);
+ stmt->SetData(4, m_bankMoneyPerDay);
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
@@ -300,11 +300,11 @@ void Guild::RankInfo::CreateMissingTabsIfNeeded(uint8 tabs, CharacterDatabaseTra
LOG_ERROR("guild", "Guild {} has broken Tab {} for rank {}. Created default tab.", m_guildId, i, m_rankId);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_BANK_RIGHT);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt8(1, i);
- stmt->setUInt8(2, m_rankId);
- stmt->setUInt8(3, rightsAndSlots.GetRights());
- stmt->setUInt32(4, rightsAndSlots.GetSlots());
+ stmt->SetData(0, m_guildId);
+ stmt->SetData(1, i);
+ stmt->SetData(2, m_rankId);
+ stmt->SetData(3, rightsAndSlots.GetRights());
+ stmt->SetData(4, rightsAndSlots.GetSlots());
trans->Append(stmt);
}
}
@@ -317,9 +317,9 @@ void Guild::RankInfo::SetName(std::string_view name)
m_name = name;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_RANK_NAME);
- stmt->setString(0, m_name);
- stmt->setUInt8 (1, m_rankId);
- stmt->setUInt32(2, m_guildId);
+ stmt->SetData(0, m_name);
+ stmt->SetData (1, m_rankId);
+ stmt->SetData(2, m_guildId);
CharacterDatabase.Execute(stmt);
}
@@ -334,9 +334,9 @@ void Guild::RankInfo::SetRights(uint32 rights)
m_rights = rights;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_RANK_RIGHTS);
- stmt->setUInt32(0, m_rights);
- stmt->setUInt8 (1, m_rankId);
- stmt->setUInt32(2, m_guildId);
+ stmt->SetData(0, m_rights);
+ stmt->SetData (1, m_rankId);
+ stmt->SetData(2, m_guildId);
CharacterDatabase.Execute(stmt);
}
@@ -351,9 +351,9 @@ void Guild::RankInfo::SetBankMoneyPerDay(uint32 money)
m_bankMoneyPerDay = money;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_RANK_BANK_MONEY);
- stmt->setUInt32(0, money);
- stmt->setUInt8 (1, m_rankId);
- stmt->setUInt32(2, m_guildId);
+ stmt->SetData(0, money);
+ stmt->SetData (1, m_rankId);
+ stmt->SetData(2, m_guildId);
CharacterDatabase.Execute(stmt);
}
@@ -368,11 +368,11 @@ void Guild::RankInfo::SetBankTabSlotsAndRights(GuildBankRightsAndSlots rightsAnd
if (saveToDB)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_BANK_RIGHT);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt8 (1, guildBR.GetTabId());
- stmt->setUInt8 (2, m_rankId);
- stmt->setUInt8 (3, guildBR.GetRights());
- stmt->setUInt32(4, guildBR.GetSlots());
+ stmt->SetData(0, m_guildId);
+ stmt->SetData (1, guildBR.GetTabId());
+ stmt->SetData (2, m_rankId);
+ stmt->SetData (3, guildBR.GetRights());
+ stmt->SetData(4, guildBR.GetSlots());
CharacterDatabase.Execute(stmt);
}
}
@@ -380,16 +380,16 @@ void Guild::RankInfo::SetBankTabSlotsAndRights(GuildBankRightsAndSlots rightsAnd
// BankTab
void Guild::BankTab::LoadFromDB(Field* fields)
{
- m_name = fields[2].GetString();
- m_icon = fields[3].GetString();
- m_text = fields[4].GetString();
+ m_name = fields[2].Get<std::string>();
+ m_icon = fields[3].Get<std::string>();
+ m_text = fields[4].Get<std::string>();
}
bool Guild::BankTab::LoadItemFromDB(Field* fields)
{
- uint8 slotId = fields[13].GetUInt8();
- ObjectGuid::LowType itemGuid = fields[14].GetUInt32();
- uint32 itemEntry = fields[15].GetUInt32();
+ uint8 slotId = fields[13].Get<uint8>();
+ ObjectGuid::LowType itemGuid = fields[14].Get<uint32>();
+ uint32 itemEntry = fields[15].Get<uint32>();
if (slotId >= GUILD_BANK_MAX_SLOTS)
{
LOG_ERROR("guild", "Invalid slot for item (GUID: {}, id: {}) in guild bank, skipped.", itemGuid, itemEntry);
@@ -409,9 +409,9 @@ bool Guild::BankTab::LoadItemFromDB(Field* fields)
LOG_ERROR("guild", "Item (GUID {}, id: {}) not found in item_instance, deleting from guild bank!", itemGuid, itemEntry);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_NONEXISTENT_GUILD_BANK_ITEM);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt8 (1, m_tabId);
- stmt->setUInt8 (2, slotId);
+ stmt->SetData(0, m_guildId);
+ stmt->SetData (1, m_tabId);
+ stmt->SetData (2, slotId);
CharacterDatabase.Execute(stmt);
delete pItem;
@@ -446,10 +446,10 @@ void Guild::BankTab::SetInfo(std::string_view name, std::string_view icon)
m_icon = icon;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_BANK_TAB_INFO);
- stmt->setString(0, m_name);
- stmt->setString(1, m_icon);
- stmt->setUInt32(2, m_guildId);
- stmt->setUInt8 (3, m_tabId);
+ stmt->SetData(0, m_name);
+ stmt->SetData(1, m_icon);
+ stmt->SetData(2, m_guildId);
+ stmt->SetData (3, m_tabId);
CharacterDatabase.Execute(stmt);
}
@@ -462,9 +462,9 @@ void Guild::BankTab::SetText(std::string_view text)
utf8truncate(m_text, MAX_GUILD_BANK_TAB_TEXT_LEN); // DB and client size limitation
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_BANK_TAB_TEXT);
- stmt->setString(0, m_text);
- stmt->setUInt32(1, m_guildId);
- stmt->setUInt8 (2, m_tabId);
+ stmt->SetData(0, m_text);
+ stmt->SetData(1, m_guildId);
+ stmt->SetData (2, m_tabId);
CharacterDatabase.Execute(stmt);
}
@@ -478,18 +478,18 @@ bool Guild::BankTab::SetItem(CharacterDatabaseTransaction trans, uint8 slotId, I
m_items[slotId] = item;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_ITEM);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt8 (1, m_tabId);
- stmt->setUInt8 (2, slotId);
+ stmt->SetData(0, m_guildId);
+ stmt->SetData (1, m_tabId);
+ stmt->SetData (2, slotId);
CharacterDatabase.ExecuteOrAppend(trans, stmt);
if (item)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_BANK_ITEM);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt8 (1, m_tabId);
- stmt->setUInt8 (2, slotId);
- stmt->setUInt32(3, item->GetGUID().GetCounter());
+ stmt->SetData(0, m_guildId);
+ stmt->SetData (1, m_tabId);
+ stmt->SetData (2, slotId);
+ stmt->SetData(3, item->GetGUID().GetCounter());
CharacterDatabase.ExecuteOrAppend(trans, stmt);
item->SetGuidValue(ITEM_FIELD_CONTAINED, ObjectGuid::Empty);
@@ -548,8 +548,8 @@ void Guild::Member::SetPublicNote(std::string_view publicNote)
m_publicNote = publicNote;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_MEMBER_PNOTE);
- stmt->setString(0, m_publicNote);
- stmt->setUInt32(1, m_guid.GetCounter());
+ stmt->SetData(0, m_publicNote);
+ stmt->SetData(1, m_guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -561,8 +561,8 @@ void Guild::Member::SetOfficerNote(std::string_view officerNote)
m_officerNote = officerNote;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_MEMBER_OFFNOTE);
- stmt->setString(0, m_officerNote);
- stmt->setUInt32(1, m_guid.GetCounter());
+ stmt->SetData(0, m_officerNote);
+ stmt->SetData(1, m_guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -575,8 +575,8 @@ void Guild::Member::ChangeRank(uint8 newRank)
player->SetRank(newRank);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_MEMBER_RANK);
- stmt->setUInt8 (0, newRank);
- stmt->setUInt32(1, m_guid.GetCounter());
+ stmt->SetData (0, newRank);
+ stmt->SetData(1, m_guid.GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -588,11 +588,11 @@ void Guild::Member::UpdateLogoutTime()
void Guild::Member::SaveToDB(CharacterDatabaseTransaction trans) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_MEMBER);
- stmt->setUInt32(0, m_guildId);
- stmt->setUInt32(1, m_guid.GetCounter());
- stmt->setUInt8 (2, m_rankId);
- stmt->setString(3, m_publicNote);
- stmt->setString(4, m_officerNote);
+ stmt->SetData(0, m_guildId);
+ stmt->SetData(1, m_guid.GetCounter());
+ stmt->SetData (2, m_rankId);
+ stmt->SetData(3, m_publicNote);
+ stmt->SetData(4, m_officerNote);
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
@@ -601,19 +601,19 @@ void Guild::Member::SaveToDB(CharacterDatabaseTransaction trans) const
// In this case member has to be removed from guild.
bool Guild::Member::LoadFromDB(Field* fields)
{
- m_publicNote = fields[3].GetString();
- m_officerNote = fields[4].GetString();
+ m_publicNote = fields[3].Get<std::string>();
+ m_officerNote = fields[4].Get<std::string>();
for (uint8 i = 0; i <= GUILD_BANK_MAX_TABS; ++i)
- m_bankWithdraw[i] = fields[5 + i].GetUInt32();
+ m_bankWithdraw[i] = fields[5 + i].Get<uint32>();
- SetStats(fields[12].GetString(),
- fields[13].GetUInt8(), // characters.level
- fields[14].GetUInt8(), // characters.class
- fields[15].GetUInt8(), // characters.gender
- fields[16].GetUInt16(), // characters.zone
- fields[17].GetUInt32()); // characters.account
- m_logoutTime = fields[18].GetUInt32(); // characters.logout_time
+ SetStats(fields[12].Get<std::string>(),
+ fields[13].Get<uint8>(), // characters.level
+ fields[14].Get<uint8>(), // characters.class
+ fields[15].Get<uint8>(), // characters.gender
+ fields[16].Get<uint16>(), // characters.zone
+ fields[17].Get<uint32>()); // characters.account
+ m_logoutTime = fields[18].Get<uint32>(); // characters.logout_time
if (!CheckStats())
return false;
@@ -652,11 +652,11 @@ void Guild::Member::UpdateBankWithdrawValue(CharacterDatabaseTransaction trans,
m_bankWithdraw[tabId] += amount;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_MEMBER_WITHDRAW);
- stmt->setUInt32(0, m_guid.GetCounter());
+ stmt->SetData(0, m_guid.GetCounter());
for (uint8 i = 0; i <= GUILD_BANK_MAX_TABS;)
{
uint32 withdraw = m_bankWithdraw[i++];
- stmt->setUInt32(i, withdraw);
+ stmt->SetData(i, withdraw);
}
CharacterDatabase.ExecuteOrAppend(trans, stmt);
@@ -692,22 +692,22 @@ void EmblemInfo::ReadPacket(WorldPackets::Guild::SaveGuildEmblem& packet)
void EmblemInfo::LoadFromDB(Field* fields)
{
- m_style = fields[3].GetUInt8();
- m_color = fields[4].GetUInt8();
- m_borderStyle = fields[5].GetUInt8();
- m_borderColor = fields[6].GetUInt8();
- m_backgroundColor = fields[7].GetUInt8();
+ m_style = fields[3].Get<uint8>();
+ m_color = fields[4].Get<uint8>();
+ m_borderStyle = fields[5].Get<uint8>();
+ m_borderColor = fields[6].Get<uint8>();
+ m_backgroundColor = fields[7].Get<uint8>();
}
void EmblemInfo::SaveToDB(uint32 guildId) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_EMBLEM_INFO);
- stmt->setUInt32(0, m_style);
- stmt->setUInt32(1, m_color);
- stmt->setUInt32(2, m_borderStyle);
- stmt->setUInt32(3, m_borderColor);
- stmt->setUInt32(4, m_backgroundColor);
- stmt->setUInt32(5, guildId);
+ stmt->SetData(0, m_style);
+ stmt->SetData(1, m_color);
+ stmt->SetData(2, m_borderStyle);
+ stmt->SetData(3, m_borderColor);
+ stmt->SetData(4, m_backgroundColor);
+ stmt->SetData(5, guildId);
CharacterDatabase.Execute(stmt);
}
@@ -1067,23 +1067,23 @@ bool Guild::Create(Player* pLeader, std::string_view name)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_MEMBERS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD);
- stmt->setUInt32( index, m_id);
- stmt->setString(++index, m_name);
- stmt->setUInt32(++index, m_leaderGuid.GetCounter());
- stmt->setString(++index, m_info);
- stmt->setString(++index, m_motd);
- stmt->setUInt64(++index, uint32(m_createdDate));
- stmt->setUInt32(++index, m_emblemInfo.GetStyle());
- stmt->setUInt32(++index, m_emblemInfo.GetColor());
- stmt->setUInt32(++index, m_emblemInfo.GetBorderStyle());
- stmt->setUInt32(++index, m_emblemInfo.GetBorderColor());
- stmt->setUInt32(++index, m_emblemInfo.GetBackgroundColor());
- stmt->setUInt64(++index, m_bankMoney);
+ stmt->SetData( index, m_id);
+ stmt->SetData(++index, m_name);
+ stmt->SetData(++index, m_leaderGuid.GetCounter());
+ stmt->SetData(++index, m_info);
+ stmt->SetData(++index, m_motd);
+ stmt->SetData(++index, uint32(m_createdDate));
+ stmt->SetData(++index, m_emblemInfo.GetStyle());
+ stmt->SetData(++index, m_emblemInfo.GetColor());
+ stmt->SetData(++index, m_emblemInfo.GetBorderStyle());
+ stmt->SetData(++index, m_emblemInfo.GetBorderColor());
+ stmt->SetData(++index, m_emblemInfo.GetBackgroundColor());
+ stmt->SetData(++index, m_bankMoney);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -1118,34 +1118,34 @@ void Guild::Disband()
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_RANKS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_TABS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
// Free bank tab used memory and delete items stored in them
_DeleteBankItems(trans, true);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_ITEMS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_RIGHTS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_EVENTLOGS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_EVENTLOGS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -1191,8 +1191,8 @@ bool Guild::SetName(std::string_view const& name)
m_name = name;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_NAME);
- stmt->setString(0, m_name);
- stmt->setUInt32(1, GetId());
+ stmt->SetData(0, m_name);
+ stmt->SetData(1, GetId());
CharacterDatabase.Execute(stmt);
return true;
}
@@ -1279,8 +1279,8 @@ void Guild::HandleSetMOTD(WorldSession* session, std::string_view motd)
sScriptMgr->OnGuildMOTDChanged(this, m_motd);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_MOTD);
- stmt->setString(0, m_motd);
- stmt->setUInt32(1, m_id);
+ stmt->SetData(0, m_motd);
+ stmt->SetData(1, m_id);
CharacterDatabase.Execute(stmt);
_BroadcastEvent(GE_MOTD, ObjectGuid::Empty, m_motd);
@@ -1300,8 +1300,8 @@ void Guild::HandleSetInfo(WorldSession* session, std::string_view info)
sScriptMgr->OnGuildInfoChanged(this, m_info);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_INFO);
- stmt->setString(0, m_info);
- stmt->setUInt32(1, m_id);
+ stmt->SetData(0, m_info);
+ stmt->SetData(1, m_id);
CharacterDatabase.Execute(stmt);
}
}
@@ -1630,13 +1630,13 @@ void Guild::HandleRemoveRank(WorldSession* session, uint8 rankId)
// Delete bank rights for rank
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_RIGHTS_FOR_RANK);
- stmt->setUInt32(0, m_id);
- stmt->setUInt8(1, rankId);
+ stmt->SetData(0, m_id);
+ stmt->SetData(1, rankId);
CharacterDatabase.Execute(stmt);
// Delete rank
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_LOWEST_RANK);
- stmt->setUInt32(0, m_id);
- stmt->setUInt8(1, rankId);
+ stmt->SetData(0, m_id);
+ stmt->SetData(1, rankId);
CharacterDatabase.Execute(stmt);
// match what the sql statement does
@@ -1671,8 +1671,8 @@ void Guild::HandleMemberDepositMoney(WorldSession* session, uint32 amount)
_BroadcastEvent(GE_BANK_MONEY_SET, ObjectGuid::Empty, aux.c_str());
if (amount > 10 * GOLD) // receiver_acc = Guild id, receiver_name = Guild name
- CharacterDatabase.PExecute("INSERT INTO log_money VALUES(%u, %u, \"%s\", \"%s\", %u, \"%s\", %u, \"(guild members: %u, new amount: %u, leader guid low: %u, sender level: %u)\", NOW(), %u)",
- session->GetAccountId(), player->GetGUID().GetCounter(), player->GetName().c_str(), session->GetRemoteAddress().c_str(), GetId(), GetName().c_str(), amount, GetMemberCount(), GetTotalBankMoney(), GetLeaderGUID().GetCounter(), player->getLevel(), 3);
+ CharacterDatabase.Execute("INSERT INTO log_money VALUES({}, {}, \"{}\", \"{}\", {}, \"{}\", {}, \"(guild members: {}, new amount: {}, leader guid low: {}, sender level: {})\", NOW(), {})",
+ session->GetAccountId(), player->GetGUID().GetCounter(), player->GetName(), session->GetRemoteAddress(), GetId(), GetName(), amount, GetMemberCount(), GetTotalBankMoney(), GetLeaderGUID().GetCounter(), player->getLevel(), 3);
}
bool Guild::HandleMemberWithdrawMoney(WorldSession* session, uint32 amount, bool repair)
@@ -1715,8 +1715,8 @@ bool Guild::HandleMemberWithdrawMoney(WorldSession* session, uint32 amount, bool
CharacterDatabase.CommitTransaction(trans);
if (amount > 10 * GOLD) // sender_acc = 0 (guild has no account), sender_guid = Guild id, sender_name = Guild name
- CharacterDatabase.PExecute("INSERT INTO log_money VALUES(%u, %u, \"%s\", \"%s\", %u, \"%s\", %u, \"(guild, members: %u, new amount: %u, leader guid low: %u, withdrawer level: %u)\", NOW(), %u)",
- 0, GetId(), GetName().c_str(), session->GetRemoteAddress().c_str(), session->GetAccountId(), player->GetName().c_str(), amount, GetMemberCount(), GetTotalBankMoney(), GetLeaderGUID().GetCounter(), player->getLevel(), 4);
+ CharacterDatabase.Execute("INSERT INTO log_money VALUES({}, {}, \"{}\", \"{}\", {}, \"{}\", {}, \"(guild, members: {}, new amount: {}, leader guid low: {}, withdrawer level: {})\", NOW(), {})",
+ 0, GetId(), GetName(), session->GetRemoteAddress(), session->GetAccountId(), player->GetName(), amount, GetMemberCount(), GetTotalBankMoney(), GetLeaderGUID().GetCounter(), player->getLevel(), 4);
std::string aux = Acore::Impl::ByteArrayToHexStr(reinterpret_cast<uint8*>(&m_bankMoney), 8, true);
_BroadcastEvent(GE_BANK_MONEY_SET, ObjectGuid::Empty, aux.c_str());
@@ -1874,16 +1874,16 @@ void Guild::SendLoginInfo(WorldSession* session)
// Loading methods
bool Guild::LoadFromDB(Field* fields)
{
- m_id = fields[0].GetUInt32();
- m_name = fields[1].GetString();
- m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt32());
+ m_id = fields[0].Get<uint32>();
+ m_name = fields[1].Get<std::string>();
+ m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].Get<uint32>());
m_emblemInfo.LoadFromDB(fields);
- m_info = fields[8].GetString();
- m_motd = fields[9].GetString();
- m_createdDate = time_t(fields[10].GetUInt32());
- m_bankMoney = fields[11].GetUInt64();
+ m_info = fields[8].Get<std::string>();
+ m_motd = fields[9].Get<std::string>();
+ m_createdDate = time_t(fields[10].Get<uint32>());
+ m_bankMoney = fields[11].Get<uint64>();
- uint8 purchasedTabs = uint8(fields[12].GetUInt64());
+ uint8 purchasedTabs = uint8(fields[12].Get<uint64>());
if (purchasedTabs > GUILD_BANK_MAX_TABS)
purchasedTabs = GUILD_BANK_MAX_TABS;
@@ -1905,10 +1905,10 @@ void Guild::LoadRankFromDB(Field* fields)
bool Guild::LoadMemberFromDB(Field* fields)
{
- ObjectGuid::LowType lowguid = fields[1].GetUInt32();
+ ObjectGuid::LowType lowguid = fields[1].Get<uint32>();
ObjectGuid playerGuid(HighGuid::Player, lowguid);
- auto [memberIt, isNew] = m_members.try_emplace(lowguid, m_id, playerGuid, fields[2].GetUInt8());
+ auto [memberIt, isNew] = m_members.try_emplace(lowguid, m_id, playerGuid, fields[2].Get<uint8>());
if (!isNew)
{
LOG_ERROR("guild", "Tried to add {} to guild '{}'. Member already exists.", playerGuid.ToString(), m_name);
@@ -1930,9 +1930,9 @@ bool Guild::LoadMemberFromDB(Field* fields)
void Guild::LoadBankRightFromDB(Field* fields)
{
// tabId rights slots
- GuildBankRightsAndSlots rightsAndSlots(fields[1].GetUInt8(), fields[3].GetUInt8(), fields[4].GetUInt32());
+ GuildBankRightsAndSlots rightsAndSlots(fields[1].Get<uint8>(), fields[3].Get<uint8>(), fields[4].Get<uint32>());
// rankId
- _SetRankBankTabRightsAndSlots(fields[2].GetUInt8(), rightsAndSlots, false);
+ _SetRankBankTabRightsAndSlots(fields[2].Get<uint8>(), rightsAndSlots, false);
}
bool Guild::LoadEventLogFromDB(Field* fields)
@@ -1941,12 +1941,12 @@ bool Guild::LoadEventLogFromDB(Field* fields)
{
m_eventLog.LoadEvent(
m_id, // guild id
- fields[1].GetUInt32(), // guid
- time_t(fields[6].GetUInt32()), // timestamp
- GuildEventLogTypes(fields[2].GetUInt8()), // event type
- ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt32()), // player guid 1
- ObjectGuid::Create<HighGuid::Player>(fields[4].GetUInt32()), // player guid 2
- fields[5].GetUInt8()); // rank
+ fields[1].Get<uint32>(), // guid
+ time_t(fields[6].Get<uint32>()), // timestamp
+ GuildEventLogTypes(fields[2].Get<uint8>()), // event type
+ ObjectGuid::Create<HighGuid::Player>(fields[3].Get<uint32>()), // player guid 1
+ ObjectGuid::Create<HighGuid::Player>(fields[4].Get<uint32>()), // player guid 2
+ fields[5].Get<uint8>()); // rank
return true;
}
return false;
@@ -1954,7 +1954,7 @@ bool Guild::LoadEventLogFromDB(Field* fields)
bool Guild::LoadBankEventLogFromDB(Field* fields)
{
- uint8 dbTabId = fields[1].GetUInt8();
+ uint8 dbTabId = fields[1].Get<uint8>();
bool isMoneyTab = (dbTabId == GUILD_BANK_MONEY_LOGS_TAB);
if (dbTabId < _GetPurchasedTabsSize() || isMoneyTab)
{
@@ -1962,8 +1962,8 @@ bool Guild::LoadBankEventLogFromDB(Field* fields)
LogHolder<BankEventLogEntry>& bankLog = m_bankEventLog[tabId];
if (bankLog.CanInsert())
{
- ObjectGuid::LowType guid = fields[2].GetUInt32();
- GuildBankEventLogTypes eventType = GuildBankEventLogTypes(fields[3].GetUInt8());
+ ObjectGuid::LowType guid = fields[2].Get<uint32>();
+ GuildBankEventLogTypes eventType = GuildBankEventLogTypes(fields[3].Get<uint8>());
if (BankEventLogEntry::IsMoneyEvent(eventType))
{
if (!isMoneyTab)
@@ -1980,13 +1980,13 @@ bool Guild::LoadBankEventLogFromDB(Field* fields)
bankLog.LoadEvent(
m_id, // guild id
guid, // guid
- time_t(fields[8].GetUInt32()), // timestamp
+ time_t(fields[8].Get<uint32>()), // timestamp
dbTabId, // tab id
eventType, // event type
- ObjectGuid::Create<HighGuid::Player>(fields[4].GetUInt32()), // player guid
- fields[5].GetUInt32(), // item or money
- fields[6].GetUInt16(), // itam stack count
- fields[7].GetUInt8()); // dest tab id
+ ObjectGuid::Create<HighGuid::Player>(fields[4].Get<uint32>()), // player guid
+ fields[5].Get<uint32>(), // item or money
+ fields[6].Get<uint16>(), // itam stack count
+ fields[7].Get<uint8>()); // dest tab id
}
}
return true;
@@ -1994,7 +1994,7 @@ bool Guild::LoadBankEventLogFromDB(Field* fields)
void Guild::LoadBankTabFromDB(Field* fields)
{
- uint8 tabId = fields[1].GetUInt8();
+ uint8 tabId = fields[1].Get<uint8>();
if (tabId >= _GetPurchasedTabsSize())
LOG_ERROR("guild", "Invalid tab (tabId: {}) in guild bank, skipped.", tabId);
else
@@ -2003,11 +2003,11 @@ void Guild::LoadBankTabFromDB(Field* fields)
bool Guild::LoadBankItemFromDB(Field* fields)
{
- uint8 tabId = fields[12].GetUInt8();
+ uint8 tabId = fields[12].Get<uint8>();
if (tabId >= _GetPurchasedTabsSize())
{
LOG_ERROR("guild", "Invalid tab for item (GUID: {}, id: #{}) in guild bank, skipped.",
- fields[14].GetUInt32(), fields[15].GetUInt32());
+ fields[14].Get<uint32>(), fields[15].Get<uint32>());
return false;
}
return m_bankTabs[tabId].LoadItemFromDB(fields);
@@ -2195,18 +2195,18 @@ bool Guild::AddMember(ObjectGuid guid, uint8 rankId)
// xinef: sync query
// Player must exist
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_DATA_FOR_GUILD);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
Field* fields = result->Fetch();
- name = fields[0].GetString();
+ name = fields[0].Get<std::string>();
member.SetStats(
name,
- fields[1].GetUInt8(),
- fields[2].GetUInt8(),
- fields[3].GetUInt8(),
- fields[4].GetUInt16(),
- fields[5].GetUInt32());
+ fields[1].Get<uint8>(),
+ fields[2].Get<uint8>(),
+ fields[3].Get<uint8>(),
+ fields[4].Get<uint16>(),
+ fields[5].Get<uint32>());
ok = member.CheckStats();
}
@@ -2304,8 +2304,8 @@ bool Guild::ChangeMemberRank(ObjectGuid guid, uint8 newRank)
m_leaderGuid = guid;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_LEADER);
- stmt->setUInt32(0, m_leaderGuid.GetCounter());
- stmt->setUInt32(1, m_id);
+ stmt->SetData(0, m_leaderGuid.GetCounter());
+ stmt->SetData(1, m_id);
CharacterDatabase.Execute(stmt);
}
@@ -2361,13 +2361,13 @@ void Guild::_CreateNewBankTab()
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_TAB);
- stmt->setUInt32(0, m_id);
- stmt->setUInt8 (1, tabId);
+ stmt->SetData(0, m_id);
+ stmt->SetData (1, tabId);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_BANK_TAB);
- stmt->setUInt32(0, m_id);
- stmt->setUInt8 (1, tabId);
+ stmt->SetData(0, m_id);
+ stmt->SetData (1, tabId);
trans->Append(stmt);
++tabId;
@@ -2380,11 +2380,11 @@ void Guild::_CreateNewBankTab()
void Guild::_CreateDefaultGuildRanks(LocaleConstant loc)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_RANKS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_BANK_RIGHTS);
- stmt->setUInt32(0, m_id);
+ stmt->SetData(0, m_id);
CharacterDatabase.Execute(stmt);
_CreateRank(sObjectMgr->GetAcoreString(LANG_GUILD_MASTER, loc), GR_RIGHT_ALL);
@@ -2458,8 +2458,8 @@ bool Guild::_ModifyBankMoney(CharacterDatabaseTransaction trans, uint64 amount,
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_BANK_MONEY);
- stmt->setUInt64(0, m_bankMoney);
- stmt->setUInt32(1, m_id);
+ stmt->SetData(0, m_bankMoney);
+ stmt->SetData(1, m_id);
trans->Append(stmt);
return true;
}
@@ -2470,8 +2470,8 @@ void Guild::_SetLeaderGUID(Member& pLeader)
pLeader.ChangeRank(GR_GUILDMASTER);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GUILD_LEADER);
- stmt->setUInt32(0, m_leaderGuid.GetCounter());
- stmt->setUInt32(1, m_id);
+ stmt->SetData(0, m_leaderGuid.GetCounter());
+ stmt->SetData(1, m_id);
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h
index c712d3227c..d38f5c3b90 100644
--- a/src/server/game/Guilds/Guild.h
+++ b/src/server/game/Guilds/Guild.h
@@ -816,7 +816,7 @@ private:
inline void _DeleteMemberFromDB(ObjectGuid::LowType lowguid) const
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_MEMBER);
- stmt->setUInt32(0, lowguid);
+ stmt->SetData(0, lowguid);
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Guilds/GuildMgr.cpp b/src/server/game/Guilds/GuildMgr.cpp
index 5dd5bc7f1f..30a38aa8ed 100644
--- a/src/server/game/Guilds/GuildMgr.cpp
+++ b/src/server/game/Guilds/GuildMgr.cpp
@@ -155,7 +155,7 @@ void GuildMgr::LoadGuilds()
do
{
Field* fields = result->Fetch();
- uint32 guildId = fields[0].GetUInt32();
+ uint32 guildId = fields[0].Get<uint32>();
if (Guild* guild = GetGuildById(guildId))
guild->LoadRankFromDB(fields);
@@ -197,7 +197,7 @@ void GuildMgr::LoadGuilds()
do
{
Field* fields = result->Fetch();
- uint32 guildId = fields[0].GetUInt32();
+ uint32 guildId = fields[0].Get<uint32>();
if (Guild* guild = GetGuildById(guildId))
guild->LoadMemberFromDB(fields);
@@ -232,7 +232,7 @@ void GuildMgr::LoadGuilds()
do
{
Field* fields = result->Fetch();
- uint32 guildId = fields[0].GetUInt32();
+ uint32 guildId = fields[0].Get<uint32>();
if (Guild* guild = GetGuildById(guildId))
guild->LoadBankRightFromDB(fields);
@@ -250,7 +250,7 @@ void GuildMgr::LoadGuilds()
{
uint32 oldMSTime = getMSTime();
- CharacterDatabase.DirectPExecute(Acore::StringFormatFmt("DELETE FROM guild_eventlog WHERE LogGuid > {}", sWorld->getIntConfig(CONFIG_GUILD_EVENT_LOG_COUNT)).c_str());
+ CharacterDatabase.DirectExecute("DELETE FROM guild_eventlog WHERE LogGuid > {}", sWorld->getIntConfig(CONFIG_GUILD_EVENT_LOG_COUNT));
// 0 1 2 3 4 5 6
QueryResult result = CharacterDatabase.Query("SELECT guildid, LogGuid, EventType, PlayerGuid1, PlayerGuid2, NewRank, TimeStamp FROM guild_eventlog ORDER BY TimeStamp DESC, LogGuid DESC");
@@ -266,7 +266,7 @@ void GuildMgr::LoadGuilds()
do
{
Field* fields = result->Fetch();
- uint32 guildId = fields[0].GetUInt32();
+ uint32 guildId = fields[0].Get<uint32>();
if (Guild* guild = GetGuildById(guildId))
guild->LoadEventLogFromDB(fields);
@@ -285,7 +285,7 @@ void GuildMgr::LoadGuilds()
uint32 oldMSTime = getMSTime();
// Remove log entries that exceed the number of allowed entries per guild
- CharacterDatabase.DirectPExecute(Acore::StringFormatFmt("DELETE FROM guild_bank_eventlog WHERE LogGuid > {}", sWorld->getIntConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT)).c_str());
+ CharacterDatabase.DirectExecute("DELETE FROM guild_bank_eventlog WHERE LogGuid > {}", sWorld->getIntConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT));
// 0 1 2 3 4 5 6 7 8
QueryResult result = CharacterDatabase.Query("SELECT guildid, TabId, LogGuid, EventType, PlayerGuid, ItemOrMoney, ItemStackCount, DestTabId, TimeStamp FROM guild_bank_eventlog ORDER BY TimeStamp DESC, LogGuid DESC");
@@ -301,7 +301,7 @@ void GuildMgr::LoadGuilds()
do
{
Field* fields = result->Fetch();
- uint32 guildId = fields[0].GetUInt32();
+ uint32 guildId = fields[0].Get<uint32>();
if (Guild* guild = GetGuildById(guildId))
guild->LoadBankEventLogFromDB(fields);
@@ -336,7 +336,7 @@ void GuildMgr::LoadGuilds()
do
{
Field* fields = result->Fetch();
- uint32 guildId = fields[0].GetUInt32();
+ uint32 guildId = fields[0].Get<uint32>();
if (Guild* guild = GetGuildById(guildId))
guild->LoadBankTabFromDB(fields);
@@ -373,7 +373,7 @@ void GuildMgr::LoadGuilds()
do
{
Field* fields = result->Fetch();
- uint32 guildId = fields[11].GetUInt32();
+ uint32 guildId = fields[11].Get<uint32>();
if (Guild* guild = GetGuildById(guildId))
guild->LoadBankItemFromDB(fields);
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index 6087520fb7..c03f619aa3 100644
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -480,9 +480,9 @@ void WorldSession::HandleAuctionPlaceBid(WorldPacket& recvData)
GetPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID, price);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_AUCTION_BID);
- stmt->setUInt32(0, auction->bidder.GetCounter());
- stmt->setUInt32(1, auction->bid);
- stmt->setUInt32(2, auction->Id);
+ stmt->SetData(0, auction->bidder.GetCounter());
+ stmt->SetData(1, auction->bid);
+ stmt->SetData(2, auction->Id);
trans->Append(stmt);
SendAuctionCommandResult(auction->Id, AUCTION_PLACE_BID, ERR_AUCTION_OK, 0);
diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp
index d4e4af47a3..29b5a6261f 100644
--- a/src/server/game/Handlers/BattleGroundHandler.cpp
+++ b/src/server/game/Handlers/BattleGroundHandler.cpp
@@ -482,8 +482,8 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket& recvData)
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_TRACK_DESERTERS))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_DESERTER_TRACK);
- stmt->setUInt32(0, _player->GetGUID().GetCounter());
- stmt->setUInt8(1, BG_DESERTION_TYPE_LEAVE_QUEUE);
+ stmt->SetData(0, _player->GetGUID().GetCounter());
+ stmt->SetData(1, BG_DESERTION_TYPE_LEAVE_QUEUE);
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp
index 9fb2e5b450..15455d7899 100644
--- a/src/server/game/Handlers/CalendarHandler.cpp
+++ b/src/server/game/Handlers/CalendarHandler.cpp
@@ -570,10 +570,10 @@ void WorldSession::HandleCalendarEventInvite(WorldPacket& recvData)
}
// xinef: sync query
- if (QueryResult result = CharacterDatabase.PQuery("SELECT flags FROM character_social WHERE guid = %u AND friend = %u", inviteeGuid.GetCounter(), playerGuid.GetCounter()))
+ if (QueryResult result = CharacterDatabase.Query("SELECT flags FROM character_social WHERE guid = {} AND friend = {}", inviteeGuid.GetCounter(), playerGuid.GetCounter()))
{
Field* fields = result->Fetch();
- if (fields[0].GetUInt8() & SOCIAL_FLAG_IGNORED)
+ if (fields[0].Get<uint8>() & SOCIAL_FLAG_IGNORED)
{
sCalendarMgr->SendCalendarCommandResult(playerGuid, CALENDAR_ERROR_IGNORING_YOU_S, name.c_str());
return;
@@ -805,9 +805,9 @@ void WorldSession::HandleSetSavedInstanceExtend(WorldPacket& recvData)
// update in db
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_INSTANCE_EXTENDED);
- stmt->setUInt8(0, toggleExtendOn ? 1 : 0);
- stmt->setUInt32(1, GetPlayer()->GetGUID().GetCounter());
- stmt->setUInt32(2, instanceBind->save->GetInstanceId());
+ stmt->SetData(0, toggleExtendOn ? 1 : 0);
+ stmt->SetData(1, GetPlayer()->GetGUID().GetCounter());
+ stmt->SetData(2, instanceBind->save->GetInstanceId());
CharacterDatabase.Execute(stmt);
SendCalendarRaidLockoutUpdated(instanceBind->save, (bool)toggleExtendOn);
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index d7718bb945..fc4d54eacc 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -80,139 +80,139 @@ bool LoginQueryHolder::Initialize()
ObjectGuid::LowType lowGuid = m_guid.GetCounter();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_FROM, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_AURAS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_AURAS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_SPELL);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_SPELLS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_QUESTSTATUS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_DAILYQUESTSTATUS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_DAILY_QUEST_STATUS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_WEEKLYQUESTSTATUS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_WEEKLY_QUEST_STATUS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_MONTHLYQUESTSTATUS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_MONTHLY_QUEST_STATUS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_SEASONALQUESTSTATUS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_SEASONAL_QUEST_STATUS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_REPUTATION);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_REPUTATION, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_INVENTORY);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_INVENTORY, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_ACTIONS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_ACTIONS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAIL);
- stmt->setUInt32(0, lowGuid);
- stmt->setUInt32(1, uint32(GameTime::GetGameTime().count()));
+ stmt->SetData(0, lowGuid);
+ stmt->SetData(1, uint32(GameTime::GetGameTime().count()));
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_MAILS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAILITEMS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_SOCIALLIST);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_SOCIAL_LIST, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_HOMEBIND);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_HOME_BIND, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_SPELLCOOLDOWNS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_SPELL_COOLDOWNS, stmt);
if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_DECLINEDNAMES);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES, stmt);
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_ACHIEVEMENTS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_CRITERIAPROGRESS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_EQUIPMENTSETS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_EQUIPMENT_SETS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_ENTRY_POINT);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_ENTRY_POINT, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_GLYPHS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_GLYPHS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_TALENTS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_TALENTS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PLAYER_ACCOUNT_DATA);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_SKILLS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_SKILLS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_RANDOMBG);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_RANDOM_BG, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_BANNED);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_BANNED, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_QUESTSTATUSREW);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_REW, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_BREW_OF_THE_MONTH);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_BREW_OF_THE_MONTH, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ACCOUNT_INSTANCELOCKTIMES);
- stmt->setUInt32(0, m_accountId);
+ stmt->SetData(0, m_accountId);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_INSTANCE_LOCK_TIMES, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CORPSE_LOCATION);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_CORPSE_LOCATION, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_SETTINGS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_CHARACTER_SETTINGS, stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_PETS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
res &= SetPreparedQuery(PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS, stmt);
return res;
@@ -231,7 +231,7 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result)
{
do
{
- ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>((*result)[0].GetUInt32());
+ ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>((*result)[0].Get<uint32>());
LOG_DEBUG("network.opcode", "Loading char {} from account {}.", guid.ToString(), GetAccountId());
if (Player::BuildEnumData(result, &data))
{
@@ -257,8 +257,8 @@ void WorldSession::HandleCharEnumOpcode(WorldPacket& /*recvData*/)
else
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ENUM);
- stmt->setUInt8(0, PET_SAVE_AS_CURRENT);
- stmt->setUInt32(1, GetAccountId());
+ stmt->SetData(0, PET_SAVE_AS_CURRENT);
+ stmt->SetData(1, GetAccountId());
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&WorldSession::HandleCharEnum, this, std::placeholders::_1)));
}
@@ -378,7 +378,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHECK_NAME);
- stmt->setString(0, createInfo->Name);
+ stmt->SetData(0, createInfo->Name);
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt)
.WithChainingPreparedCallback([this](QueryCallback& queryCallback, PreparedQueryResult result)
@@ -390,7 +390,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
}
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_SUM_REALM_CHARACTERS);
- stmt->setUInt32(0, GetAccountId());
+ stmt->SetData(0, GetAccountId());
queryCallback.SetNextQuery(LoginDatabase.AsyncQuery(stmt));
})
.WithChainingPreparedCallback([this](QueryCallback& queryCallback, PreparedQueryResult result)
@@ -399,7 +399,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
if (result)
{
Field* fields = result->Fetch();
- acctCharCount = uint64(fields[0].GetDouble());
+ acctCharCount = uint64(fields[0].Get<double>());
}
if (acctCharCount >= static_cast<uint64>(sWorld->getIntConfig(CONFIG_CHARACTERS_PER_ACCOUNT)))
@@ -409,7 +409,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_SUM_CHARS);
- stmt->setUInt32(0, GetAccountId());
+ stmt->SetData(0, GetAccountId());
queryCallback.SetNextQuery(CharacterDatabase.AsyncQuery(stmt));
})
.WithChainingPreparedCallback([this, createInfo](QueryCallback& queryCallback, PreparedQueryResult result)
@@ -417,7 +417,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
if (result)
{
Field* fields = result->Fetch();
- createInfo->CharCount = uint8(fields[0].GetUInt64()); // SQL's COUNT() returns uint64 but it will always be less than uint8.Max
+ createInfo->CharCount = uint8(fields[0].Get<uint64>()); // SQL's COUNT() returns uint64 but it will always be less than uint8.Max
if (createInfo->CharCount >= sWorld->getIntConfig(CONFIG_CHARACTERS_PER_REALM))
{
@@ -444,11 +444,11 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
uint32 freeDeathKnightSlots = sWorld->getIntConfig(CONFIG_HEROIC_CHARACTERS_PER_REALM);
Field* field = result->Fetch();
- uint8 accRace = field[1].GetUInt8();
+ uint8 accRace = field[1].Get<uint8>();
if (checkDeathKnightReqs)
{
- uint8 accClass = field[2].GetUInt8();
+ uint8 accClass = field[2].Get<uint8>();
if (accClass == CLASS_DEATH_KNIGHT)
{
if (freeDeathKnightSlots > 0)
@@ -463,7 +463,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
if (!hasHeroicReqLevel)
{
- uint8 accLevel = field[0].GetUInt8();
+ uint8 accLevel = field[0].Get<uint8>();
if (accLevel >= heroicReqLevel)
hasHeroicReqLevel = true;
}
@@ -492,14 +492,14 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
break;
field = result->Fetch();
- accRace = field[1].GetUInt8();
+ accRace = field[1].Get<uint8>();
if (!haveSameRace)
haveSameRace = createInfo->Race == accRace;
if (checkDeathKnightReqs)
{
- uint8 acc_class = field[2].GetUInt8();
+ uint8 acc_class = field[2].Get<uint8>();
if (acc_class == CLASS_DEATH_KNIGHT)
{
if (freeDeathKnightSlots > 0)
@@ -514,7 +514,7 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
if (!hasHeroicReqLevel)
{
- uint8 acc_level = field[0].GetUInt8();
+ uint8 acc_level = field[0].Get<uint8>();
if (acc_level >= heroicReqLevel)
hasHeroicReqLevel = true;
}
@@ -562,14 +562,14 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
createInfo->CharCount++;
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_REALM_CHARACTERS_BY_REALM);
- stmt->setUInt32(0, GetAccountId());
- stmt->setUInt32(1, realm.Id.Realm);
+ stmt->SetData(0, GetAccountId());
+ stmt->SetData(1, realm.Id.Realm);
trans->Append(stmt);
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_REALM_CHARACTERS);
- stmt->setUInt32(0, createInfo->CharCount);
- stmt->setUInt32(1, GetAccountId());
- stmt->setUInt32(2, realm.Id.Realm);
+ stmt->SetData(0, createInfo->CharCount);
+ stmt->SetData(1, GetAccountId());
+ stmt->SetData(2, realm.Id.Realm);
trans->Append(stmt);
LoginDatabase.CommitTransaction(trans);
@@ -595,8 +595,8 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_CREATE_INFO);
- stmt->setUInt32(0, GetAccountId());
- stmt->setUInt32(1, (skipCinematics == 1 || createInfo->Class == CLASS_DEATH_KNIGHT) ? 10 : 1);
+ stmt->SetData(0, GetAccountId());
+ stmt->SetData(1, (skipCinematics == 1 || createInfo->Class == CLASS_DEATH_KNIGHT) ? 10 : 1);
queryCallback.WithPreparedCallback(std::move(finalizeCharacterCreation)).SetNextQuery(CharacterDatabase.AsyncQuery(stmt));
}));
}
@@ -907,12 +907,12 @@ void WorldSession::HandlePlayerLoginFromDB(LoginQueryHolder const& holder)
pCurrChar->SendInitialPacketsAfterAddToMap();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_ONLINE);
- stmt->setUInt32(0, pCurrChar->GetGUID().GetCounter());
+ stmt->SetData(0, pCurrChar->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
LoginDatabasePreparedStatement* loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_ONLINE);
- loginStmt->setUInt32(0, realm.Id.Realm);
- loginStmt->setUInt32(1, GetAccountId());
+ loginStmt->SetData(0, realm.Id.Realm);
+ loginStmt->SetData(1, GetAccountId());
LoginDatabase.Execute(loginStmt);
pCurrChar->SetInGameTime(GameTime::GetGameTimeMS().count());
@@ -1365,9 +1365,9 @@ void WorldSession::HandleCharRenameOpcode(WorldPacket& recvData)
// and that there is no character with the desired new name
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_FREE_NAME);
- stmt->setUInt32(0, renameInfo->Guid.GetCounter());
- stmt->setUInt32(1, GetAccountId());
- stmt->setString(2, renameInfo->Name);
+ stmt->SetData(0, renameInfo->Guid.GetCounter());
+ stmt->SetData(1, GetAccountId());
+ stmt->SetData(2, renameInfo->Name);
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt)
.WithPreparedCallback(std::bind(&WorldSession::HandleCharRenameCallBack, this, renameInfo, std::placeholders::_1)));
@@ -1383,9 +1383,9 @@ void WorldSession::HandleCharRenameCallBack(std::shared_ptr<CharacterRenameInfo>
Field* fields = result->Fetch();
- ObjectGuid::LowType guidLow = fields[0].GetUInt32();
- std::string oldName = fields[1].GetString();
- uint16 atLoginFlags = fields[2].GetUInt16();
+ ObjectGuid::LowType guidLow = fields[0].Get<uint32>();
+ std::string oldName = fields[1].Get<std::string>();
+ uint16 atLoginFlags = fields[2].Get<uint16>();
if (!(atLoginFlags & AT_LOGIN_RENAME))
{
@@ -1404,16 +1404,16 @@ void WorldSession::HandleCharRenameCallBack(std::shared_ptr<CharacterRenameInfo>
// Update name and at_login flag in the db
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_NAME_AT_LOGIN);
- stmt->setString(0, renameInfo->Name);
- stmt->setUInt16(1, atLoginFlags);
- stmt->setUInt32(2, guidLow);
+ stmt->SetData(0, renameInfo->Name);
+ stmt->SetData(1, atLoginFlags);
+ stmt->SetData(2, guidLow);
CharacterDatabase.Execute(stmt);
// Removed declined name from db
if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_DECLINED_NAME);
- stmt->setUInt32(0, guidLow);
+ stmt->SetData(0, guidLow);
CharacterDatabase.Execute(stmt);
}
@@ -1488,14 +1488,14 @@ void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recvData)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_DECLINED_NAME);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_DECLINED_NAME);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
for (uint8 i = 0; i < 5; i++)
- stmt->setString(i + 1, declinedname.name[i]);
+ stmt->SetData(i + 1, declinedname.name[i]);
trans->Append(stmt);
@@ -1633,7 +1633,7 @@ void WorldSession::HandleCharCustomize(WorldPacket& recvData)
>> customizeInfo->Face;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_CUSTOMIZE_INFO);
- stmt->setUInt32(0, customizeInfo->Guid.GetCounter());
+ stmt->SetData(0, customizeInfo->Guid.GetCounter());
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt)
.WithPreparedCallback(std::bind(&WorldSession::HandleCharCustomizeCallback, this, customizeInfo, std::placeholders::_1)));
@@ -1656,11 +1656,11 @@ void WorldSession::HandleCharCustomizeCallback(std::shared_ptr<CharacterCustomiz
}
Field* fields = result->Fetch();
- std::string oldName = fields[0].GetString();
- //uint8 plrRace = fields[1].GetUInt8();
- //uint8 plrClass = fields[2].GetUInt8();
- //uint8 plrGender = fields[3].GetUInt8();
- uint32 atLoginFlags = fields[4].GetUInt16();
+ std::string oldName = fields[0].Get<std::string>();
+ //uint8 plrRace = fields[1].Get<uint8>();
+ //uint8 plrClass = fields[2].Get<uint8>();
+ //uint8 plrGender = fields[3].Get<uint8>();
+ uint32 atLoginFlags = fields[4].Get<uint16>();
if (!(atLoginFlags & AT_LOGIN_CUSTOMIZE))
{
@@ -1712,16 +1712,16 @@ void WorldSession::HandleCharCustomizeCallback(std::shared_ptr<CharacterCustomiz
/// Name Change and update atLogin flags
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_NAME_AT_LOGIN);
- stmt->setString(0, customizeInfo->Name);
- stmt->setUInt16(1, atLoginFlags);
- stmt->setUInt32(2, lowGuid);
+ stmt->SetData(0, customizeInfo->Name);
+ stmt->SetData(1, atLoginFlags);
+ stmt->SetData(2, lowGuid);
trans->Append(stmt);
if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_DECLINED_NAME);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
}
@@ -1924,7 +1924,7 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recvData)
factionChangeInfo->FactionChange = (recvData.GetOpcode() == CMSG_CHAR_FACTION_CHANGE);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_RACE_OR_FACTION_CHANGE_INFOS);
- stmt->setUInt32(0, factionChangeInfo->Guid.GetCounter());
+ stmt->SetData(0, factionChangeInfo->Guid.GetCounter());
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt)
.WithPreparedCallback(std::bind(&WorldSession::HandleCharFactionOrRaceChangeCallback, this, factionChangeInfo, std::placeholders::_1)));
@@ -1959,9 +1959,9 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
}
Field* fields = result->Fetch();
- uint32 atLoginFlags = fields[0].GetUInt16();
- std::string knownTitlesStr = fields[1].GetString();
- uint32 money = fields[2].GetUInt32();
+ uint32 atLoginFlags = fields[0].Get<uint16>();
+ std::string knownTitlesStr = fields[1].Get<std::string>();
+ uint32 money = fields[2].Get<uint32>();
uint32 usedLoginFlag = (factionChangeInfo->FactionChange ? AT_LOGIN_CHANGE_FACTION : AT_LOGIN_CHANGE_RACE);
if (!(atLoginFlags & usedLoginFlag))
@@ -2102,13 +2102,13 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
CharacterDatabase.EscapeString(factionChangeInfo->Name);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_NAME_AT_LOGIN);
- stmt->setString(0, factionChangeInfo->Name);
- stmt->setUInt16(1, uint16((atLoginFlags | AT_LOGIN_RESURRECT) & ~usedLoginFlag));
- stmt->setUInt32(2, lowGuid);
+ stmt->SetData(0, factionChangeInfo->Name);
+ stmt->SetData(1, uint16((atLoginFlags | AT_LOGIN_RESURRECT) & ~usedLoginFlag));
+ stmt->SetData(2, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_DECLINED_NAME);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
}
@@ -2118,8 +2118,8 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
// Race Change
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_RACE);
- stmt->setUInt8(0, factionChangeInfo->Race);
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, factionChangeInfo->Race);
+ stmt->SetData(1, lowGuid);
trans->Append(stmt);
}
@@ -2134,18 +2134,18 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
// Switch Languages
// delete all languages first
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SKILL_LANGUAGES);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
// Now add them back
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
// Faction specific languages
if (newTeam == TEAM_HORDE)
- stmt->setUInt16(1, 109);
+ stmt->SetData(1, 109);
else
- stmt->setUInt16(1, 98);
+ stmt->SetData(1, 98);
trans->Append(stmt);
@@ -2153,33 +2153,33 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
if (factionChangeInfo->Race != RACE_ORC && factionChangeInfo->Race != RACE_HUMAN)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
switch (factionChangeInfo->Race)
{
case RACE_DWARF:
- stmt->setUInt16(1, 111);
+ stmt->SetData(1, 111);
break;
case RACE_DRAENEI:
- stmt->setUInt16(1, 759);
+ stmt->SetData(1, 759);
break;
case RACE_GNOME:
- stmt->setUInt16(1, 313);
+ stmt->SetData(1, 313);
break;
case RACE_NIGHTELF:
- stmt->setUInt16(1, 113);
+ stmt->SetData(1, 113);
break;
case RACE_UNDEAD_PLAYER:
- stmt->setUInt16(1, 673);
+ stmt->SetData(1, 673);
break;
case RACE_TAUREN:
- stmt->setUInt16(1, 115);
+ stmt->SetData(1, 115);
break;
case RACE_TROLL:
- stmt->setUInt16(1, 315);
+ stmt->SetData(1, 315);
break;
case RACE_BLOODELF:
- stmt->setUInt16(1, 137);
+ stmt->SetData(1, 137);
break;
}
@@ -2190,7 +2190,7 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
{
// Delete all Flypaths
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_TAXI_PATH);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
if (level > 7)
@@ -2217,8 +2217,8 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
taximaskstream << '0';
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_TAXIMASK);
- stmt->setString(0, taximaskstream.str());
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, taximaskstream.str());
+ stmt->SetData(1, lowGuid);
trans->Append(stmt);
}
@@ -2234,11 +2234,11 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
{
// Delete Friend List
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SOCIAL_BY_GUID);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SOCIAL_BY_FRIEND);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
}
@@ -2247,11 +2247,11 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
// Reset homebind and position
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_HOMEBIND);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PLAYER_HOMEBIND);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
WorldLocation loc;
uint16 zoneId = 0;
@@ -2267,11 +2267,11 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
zoneId = 1637;
}
- stmt->setUInt16(1, loc.GetMapId());
- stmt->setUInt16(2, zoneId);
- stmt->setFloat(3, loc.GetPositionX());
- stmt->setFloat(4, loc.GetPositionY());
- stmt->setFloat(5, loc.GetPositionZ());
+ stmt->SetData(1, loc.GetMapId());
+ stmt->SetData(2, zoneId);
+ stmt->SetData(3, loc.GetPositionX());
+ stmt->SetData(4, loc.GetPositionY());
+ stmt->SetData(5, loc.GetPositionZ());
trans->Append(stmt);
Player::SavePositionInDB(loc, zoneId, factionChangeInfo->Guid, trans);
@@ -2280,14 +2280,14 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
for (auto const& [achiev_alliance, achiev_horde] : sObjectMgr->FactionChangeAchievements)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACHIEVEMENT_BY_ACHIEVEMENT);
- stmt->setUInt16(0, uint16(newTeam == TEAM_ALLIANCE ? achiev_alliance : achiev_horde));
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, uint16(newTeam == TEAM_ALLIANCE ? achiev_alliance : achiev_horde));
+ stmt->SetData(1, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_ACHIEVEMENT);
- stmt->setUInt16(0, uint16(newTeam == TEAM_ALLIANCE ? achiev_alliance : achiev_horde));
- stmt->setUInt16(1, uint16(newTeam == TEAM_ALLIANCE ? achiev_horde : achiev_alliance));
- stmt->setUInt32(2, lowGuid);
+ stmt->SetData(0, uint16(newTeam == TEAM_ALLIANCE ? achiev_alliance : achiev_horde));
+ stmt->SetData(1, uint16(newTeam == TEAM_ALLIANCE ? achiev_horde : achiev_alliance));
+ stmt->SetData(2, lowGuid);
trans->Append(stmt);
}
@@ -2301,35 +2301,35 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
continue;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_INVENTORY_FACTION_CHANGE);
- stmt->setUInt32(0, new_entry);
- stmt->setUInt32(1, old_entry);
- stmt->setUInt32(2, lowGuid);
+ stmt->SetData(0, new_entry);
+ stmt->SetData(1, old_entry);
+ stmt->SetData(2, lowGuid);
trans->Append(stmt);
}
// Delete all current quests
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
// Quest conversion
for (auto const& [quest_alliance, quest_horde] : sObjectMgr->FactionChangeQuests)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS_REWARDED_BY_QUEST);
- stmt->setUInt32(0, lowGuid);
- stmt->setUInt32(1, (newTeam == TEAM_ALLIANCE ? quest_alliance : quest_horde));
+ stmt->SetData(0, lowGuid);
+ stmt->SetData(1, (newTeam == TEAM_ALLIANCE ? quest_alliance : quest_horde));
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_QUESTSTATUS_REWARDED_FACTION_CHANGE);
- stmt->setUInt32(0, (newTeam == TEAM_ALLIANCE ? quest_alliance : quest_horde));
- stmt->setUInt32(1, (newTeam == TEAM_ALLIANCE ? quest_horde : quest_alliance));
- stmt->setUInt32(2, lowGuid);
+ stmt->SetData(0, (newTeam == TEAM_ALLIANCE ? quest_alliance : quest_horde));
+ stmt->SetData(1, (newTeam == TEAM_ALLIANCE ? quest_horde : quest_alliance));
+ stmt->SetData(2, lowGuid);
trans->Append(stmt);
}
// Mark all rewarded quests as "active" (will count for completed quests achievements)
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_QUESTSTATUS_REWARDED_ACTIVE);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
// Disable all old-faction specific quests
@@ -2340,8 +2340,8 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
if (quest->GetAllowableRaces() && !(quest->GetAllowableRaces() & newRaceMask))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_QUESTSTATUS_REWARDED_ACTIVE_BY_QUEST);
- stmt->setUInt32(0, quest->GetQuestId());
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, quest->GetQuestId());
+ stmt->SetData(1, lowGuid);
trans->Append(stmt);
}
}
@@ -2350,14 +2350,14 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
for (auto const& [spell_alliance, spell_horde] : sObjectMgr->FactionChangeSpells)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SPELL_BY_SPELL);
- stmt->setUInt32(0, lowGuid);
- stmt->setUInt32(1, (newTeam == TEAM_ALLIANCE ? spell_alliance : spell_horde));
+ stmt->SetData(0, lowGuid);
+ stmt->SetData(1, (newTeam == TEAM_ALLIANCE ? spell_alliance : spell_horde));
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_SPELL_FACTION_CHANGE);
- stmt->setUInt32(0, (newTeam == TEAM_ALLIANCE ? spell_alliance : spell_horde));
- stmt->setUInt32(1, (newTeam == TEAM_ALLIANCE ? spell_horde : spell_alliance));
- stmt->setUInt32(2, lowGuid);
+ stmt->SetData(0, (newTeam == TEAM_ALLIANCE ? spell_alliance : spell_horde));
+ stmt->SetData(1, (newTeam == TEAM_ALLIANCE ? spell_horde : spell_alliance));
+ stmt->SetData(2, lowGuid);
trans->Append(stmt);
}
@@ -2369,15 +2369,15 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
// select old standing set in db
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_REP_BY_FACTION);
- stmt->setUInt32(0, oldReputation);
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, oldReputation);
+ stmt->SetData(1, lowGuid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
continue;
fields = result->Fetch();
- int32 oldDBRep = fields[0].GetInt32();
+ int32 oldDBRep = fields[0].Get<int32>();
FactionEntry const* factionEntry = sFactionStore.LookupEntry(oldReputation);
// old base reputation
@@ -2391,15 +2391,15 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
int32 newDBRep = FinalRep - newBaseRep;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_REP_BY_FACTION);
- stmt->setUInt32(0, newReputation);
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, newReputation);
+ stmt->SetData(1, lowGuid);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_REP_FACTION_CHANGE);
- stmt->setUInt16(0, uint16(newReputation));
- stmt->setInt32(1, newDBRep);
- stmt->setUInt16(2, uint16(oldReputation));
- stmt->setUInt32(3, lowGuid);
+ stmt->SetData(0, uint16(newReputation));
+ stmt->SetData(1, newDBRep);
+ stmt->SetData(2, uint16(oldReputation));
+ stmt->SetData(3, lowGuid);
trans->Append(stmt);
}
@@ -2465,13 +2465,13 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
ss << mask << ' ';
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_TITLES_FACTION_CHANGE);
- stmt->setString(0, ss.str().c_str());
- stmt->setUInt32(1, lowGuid);
+ stmt->SetData(0, ss.str().c_str());
+ stmt->SetData(1, lowGuid);
trans->Append(stmt);
// unset any currently chosen title
stmt = CharacterDatabase.GetPreparedStatement(CHAR_RES_CHAR_TITLES_FACTION_CHANGE);
- stmt->setUInt32(0, lowGuid);
+ stmt->SetData(0, lowGuid);
trans->Append(stmt);
}
}
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 86ee2f6b2a..e22d4f5b2d 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -889,9 +889,9 @@ void WorldSession::HandleBuybackItem(WorldPacket& recvData)
if (sWorld->getBoolConfig(CONFIG_ITEMDELETE_VENDOR))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_RECOVERY_ITEM);
- stmt->setUInt32(0, _player->GetGUID().GetCounter());
- stmt->setUInt32(1, pItem->GetEntry());
- stmt->setUInt32(2, pItem->GetCount());
+ stmt->SetData(0, _player->GetGUID().GetCounter());
+ stmt->SetData(1, pItem->GetEntry());
+ stmt->SetData(2, pItem->GetCount());
CharacterDatabase.Execute(stmt);
}
@@ -1299,10 +1299,10 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recvData)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_GIFT);
- stmt->setUInt32(0, item->GetOwnerGUID().GetCounter());
- stmt->setUInt32(1, item->GetGUID().GetCounter());
- stmt->setUInt32(2, item->GetEntry());
- stmt->setUInt32(3, item->GetUInt32Value(ITEM_FIELD_FLAGS));
+ stmt->SetData(0, item->GetOwnerGUID().GetCounter());
+ stmt->SetData(1, item->GetGUID().GetCounter());
+ stmt->SetData(2, item->GetEntry());
+ stmt->SetData(3, item->GetUInt32Value(ITEM_FIELD_FLAGS));
trans->Append(stmt);
item->SetEntry(gift->GetEntry());
@@ -1636,9 +1636,9 @@ bool WorldSession::recoveryItem(Item* pItem)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_RECOVERY_ITEM);
- stmt->setUInt32(0, pItem->GetOwnerGUID().GetCounter());
- stmt->setUInt32(1, pItem->GetTemplate()->ItemId);
- stmt->setUInt32(2, pItem->GetCount());
+ stmt->SetData(0, pItem->GetOwnerGUID().GetCounter());
+ stmt->SetData(1, pItem->GetTemplate()->ItemId);
+ stmt->SetData(2, pItem->GetCount());
CharacterDatabase.Query(stmt);
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 0e23427763..fd2f2a1619 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -313,8 +313,8 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
if( money >= 10 * GOLD )
{
CleanStringForMysqlQuery(subject);
- CharacterDatabase.PExecute("INSERT INTO log_money VALUES(%u, %u, \"%s\", \"%s\", %u, \"%s\", %u, \"%s\", NOW(), %u)",
- GetAccountId(), player->GetGUID().GetCounter(), player->GetName().c_str(), player->GetSession()->GetRemoteAddress().c_str(), rc_account, receiver.c_str(), money, subject.c_str(), 5);
+ CharacterDatabase.Execute("INSERT INTO log_money VALUES({}, {}, \"{}\", \"{}\", {}, \"{}\", {}, \"{}\", NOW(), {})",
+ GetAccountId(), player->GetGUID().GetCounter(), player->GetName(), player->GetSession()->GetRemoteAddress(), rc_account, receiver, money, subject, 5);
}
}
@@ -412,11 +412,11 @@ void WorldSession::HandleMailReturnToSender(WorldPacket& recvData)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_BY_ID);
- stmt->setUInt32(0, mailId);
+ stmt->SetData(0, mailId);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM_BY_ID);
- stmt->setUInt32(0, mailId);
+ stmt->SetData(0, mailId);
trans->Append(stmt);
player->RemoveMail(mailId);
@@ -532,8 +532,8 @@ void WorldSession::HandleMailTakeItem(WorldPacket& recvData)
}
std::string subj = m->subject;
CleanStringForMysqlQuery(subj);
- CharacterDatabase.PExecute("INSERT INTO log_money VALUES(%u, %u, \"%s\", \"%s\", %u, \"%s\", %u, \"%s\", NOW(), %u)",
- GetAccountId(), player->GetGUID().GetCounter(), player->GetName().c_str(), player->GetSession()->GetRemoteAddress().c_str(), sender_accId, senderName.c_str(), m->COD, subj.c_str(), 1);
+ CharacterDatabase.Execute("INSERT INTO log_money VALUES({}, {}, \"{}\", \"{}\", {}, \"{}\", {}, \"{}\", NOW(), {})",
+ GetAccountId(), player->GetGUID().GetCounter(), player->GetName(), player->GetSession()->GetRemoteAddress(), sender_accId, senderName, m->COD, subj, 1);
}
}
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index e7954a708f..a53fbdee5d 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -599,7 +599,7 @@ void WorldSession::HandleCharacterAuraFrozen(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- std::string player = fields[0].GetString();
+ std::string player = fields[0].Get<std::string>();
handler.PSendSysMessage(LANG_COMMAND_FROZEN_PLAYERS, player.c_str());
} while (result->NextRow());
}
@@ -623,8 +623,8 @@ void WorldSession::HandleBugOpcode(WorldPacket& recv_data)
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_BUG_REPORT);
- stmt->setString(0, type);
- stmt->setString(1, content);
+ stmt->SetData(0, type);
+ stmt->SetData(1, content);
CharacterDatabase.Execute(stmt);
}
@@ -1121,7 +1121,7 @@ void WorldSession::HandleWhoisOpcode(WorldPacket& recv_data)
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_WHOIS);
- stmt->setUInt32(0, accid);
+ stmt->SetData(0, accid);
PreparedQueryResult result = LoginDatabase.Query(stmt);
@@ -1132,13 +1132,13 @@ void WorldSession::HandleWhoisOpcode(WorldPacket& recv_data)
}
Field* fields = result->Fetch();
- std::string acc = fields[0].GetString();
+ std::string acc = fields[0].Get<std::string>();
if (acc.empty())
acc = "Unknown";
- std::string email = fields[1].GetString();
+ std::string email = fields[1].Get<std::string>();
if (email.empty())
email = "Unknown";
- std::string lastip = fields[2].GetString();
+ std::string lastip = fields[2].Get<std::string>();
if (lastip.empty())
lastip = "Unknown";
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp
index c65b94a72f..c2f8bbb915 100644
--- a/src/server/game/Handlers/NPCHandler.cpp
+++ b/src/server/game/Handlers/NPCHandler.cpp
@@ -605,9 +605,9 @@ void WorldSession::HandleStablePet(WorldPacket& recvData)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PetSaveMode(PET_SAVE_FIRST_STABLE_SLOT + freeSlot));
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, petStable->UnslottedPets[0].PetNumber);
+ stmt->SetData(0, PetSaveMode(PET_SAVE_FIRST_STABLE_SLOT + freeSlot));
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, petStable->UnslottedPets[0].PetNumber);
CharacterDatabase.Execute(stmt);
// stable unsummoned pet
@@ -691,9 +691,9 @@ void WorldSession::HandleUnstablePet(WorldPacket& recvData)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PetSaveMode(PET_SAVE_FIRST_STABLE_SLOT + std::distance(petStable->StabledPets.begin(), stabledPet)));
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, petStable->UnslottedPets[0].PetNumber);
+ stmt->SetData(0, PetSaveMode(PET_SAVE_FIRST_STABLE_SLOT + std::distance(petStable->StabledPets.begin(), stabledPet)));
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, petStable->UnslottedPets[0].PetNumber);
CharacterDatabase.Execute(stmt);
// move unsummoned pet into CurrentPet slot so that it gets moved into stable slot later
@@ -716,9 +716,9 @@ void WorldSession::HandleUnstablePet(WorldPacket& recvData)
// update current pet slot in db immediately to maintain slot consistency, dismissed pet was already saved
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PET_SAVE_NOT_IN_SLOT);
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, petnumber);
+ stmt->SetData(0, PET_SAVE_NOT_IN_SLOT);
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, petnumber);
CharacterDatabase.Execute(stmt);
SendStableResult(STABLE_ERR_STABLE);
@@ -727,9 +727,9 @@ void WorldSession::HandleUnstablePet(WorldPacket& recvData)
{
// update current pet slot in db immediately to maintain slot consistency, dismissed pet was already saved
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PET_SAVE_AS_CURRENT);
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, petnumber);
+ stmt->SetData(0, PET_SAVE_AS_CURRENT);
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, petnumber);
CharacterDatabase.Execute(stmt);
SendStableResult(STABLE_SUCCESS_UNSTABLE);
@@ -843,9 +843,9 @@ void WorldSession::HandleStableSwapPet(WorldPacket& recvData)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PetSaveMode(PET_SAVE_FIRST_STABLE_SLOT + std::distance(petStable->StabledPets.begin(), stabledPet)));
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, petStable->UnslottedPets[0].PetNumber);
+ stmt->SetData(0, PetSaveMode(PET_SAVE_FIRST_STABLE_SLOT + std::distance(petStable->StabledPets.begin(), stabledPet)));
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, petStable->UnslottedPets[0].PetNumber);
CharacterDatabase.Execute(stmt);
// move unsummoned pet into CurrentPet slot so that it gets moved into stable slot later
@@ -870,18 +870,18 @@ void WorldSession::HandleStableSwapPet(WorldPacket& recvData)
// update current pet slot in db immediately to maintain slot consistency, dismissed pet was already saved
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PET_SAVE_NOT_IN_SLOT);
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, petId);
+ stmt->SetData(0, PET_SAVE_NOT_IN_SLOT);
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, petId);
CharacterDatabase.Execute(stmt);
}
else
{
// update current pet slot in db immediately to maintain slot consistency, dismissed pet was already saved
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_SLOT_BY_ID);
- stmt->setUInt8(0, PET_SAVE_AS_CURRENT);
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, petId);
+ stmt->SetData(0, PET_SAVE_AS_CURRENT);
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, petId);
CharacterDatabase.Execute(stmt);
SendStableResult(STABLE_SUCCESS_UNSTABLE);
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index af84f012c5..7cd4bf940e 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -903,23 +903,23 @@ void WorldSession::HandlePetRename(WorldPacket& recvData)
if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_PET_DECLINEDNAME);
- stmt->setUInt32(0, pet->GetCharmInfo()->GetPetNumber());
+ stmt->SetData(0, pet->GetCharmInfo()->GetPetNumber());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_CHAR_PET_DECLINEDNAME);
- stmt->setUInt32(0, _player->GetGUID().GetCounter());
+ stmt->SetData(0, _player->GetGUID().GetCounter());
for (uint8 i = 0; i < 5; i++)
- stmt->setString(i + 1, declinedname.name[i]);
+ stmt->SetData(i + 1, declinedname.name[i]);
trans->Append(stmt);
}
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_PET_NAME);
- stmt->setString(0, name);
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
- stmt->setUInt32(2, pet->GetCharmInfo()->GetPetNumber());
+ stmt->SetData(0, name);
+ stmt->SetData(1, _player->GetGUID().GetCounter());
+ stmt->SetData(2, pet->GetCharmInfo()->GetPetNumber());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
diff --git a/src/server/game/Handlers/PetitionsHandler.cpp b/src/server/game/Handlers/PetitionsHandler.cpp
index 9826308db4..e93e920de9 100644
--- a/src/server/game/Handlers/PetitionsHandler.cpp
+++ b/src/server/game/Handlers/PetitionsHandler.cpp
@@ -202,8 +202,8 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket& recvData)
{
LOG_DEBUG("network", "Invalid petition: {}", petition->petitionGuid.ToString());
- trans->PAppend("DELETE FROM petition WHERE petitionguid = %u", petition->petitionGuid.GetCounter());
- trans->PAppend("DELETE FROM petition_sign WHERE petitionguid = %u", petition->petitionGuid.GetCounter());
+ trans->Append("DELETE FROM petition WHERE petitionguid = {}", petition->petitionGuid.GetCounter());
+ trans->Append("DELETE FROM petition_sign WHERE petitionguid = {}", petition->petitionGuid.GetCounter());
// xinef: clear petition store
sPetitionMgr->RemovePetition(petition->petitionGuid);
@@ -212,10 +212,10 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket& recvData)
// xinef: petition pointer is invalid from now on
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PETITION);
- stmt->setUInt32(0, _player->GetGUID().GetCounter());
- stmt->setUInt32(1, charter->GetGUID().GetCounter());
- stmt->setString(2, name);
- stmt->setUInt8(3, uint8(type));
+ stmt->SetData(0, _player->GetGUID().GetCounter());
+ stmt->SetData(1, charter->GetGUID().GetCounter());
+ stmt->SetData(2, name);
+ stmt->SetData(3, uint8(type));
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -373,8 +373,8 @@ void WorldSession::HandlePetitionRenameOpcode(WorldPacket& recvData)
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_PETITION_NAME);
- stmt->setString(0, newName);
- stmt->setUInt32(1, petitionGuid.GetCounter());
+ stmt->SetData(0, newName);
+ stmt->SetData(1, petitionGuid.GetCounter());
CharacterDatabase.Execute(stmt);
@@ -495,10 +495,10 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket& recvData)
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PETITION_SIGNATURE);
- stmt->setUInt32(0, petition->ownerGuid.GetCounter());
- stmt->setUInt32(1, petitionGuid.GetCounter());
- stmt->setUInt32(2, playerGuid.GetCounter());
- stmt->setUInt32(3, GetAccountId());
+ stmt->SetData(0, petition->ownerGuid.GetCounter());
+ stmt->SetData(1, petitionGuid.GetCounter());
+ stmt->SetData(2, playerGuid.GetCounter());
+ stmt->SetData(3, GetAccountId());
CharacterDatabase.Execute(stmt);
@@ -787,11 +787,11 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket& recvData)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_BY_GUID);
- stmt->setUInt32(0, petitionGuid.GetCounter());
+ stmt->SetData(0, petitionGuid.GetCounter());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE_BY_GUID);
- stmt->setUInt32(0, petitionGuid.GetCounter());
+ stmt->SetData(0, petitionGuid.GetCounter());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 00c4dff448..3d85d67387 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -432,8 +432,8 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPacket& recvData)
{
// prepare Quest Tracker datas
auto stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_QUEST_TRACK_ABANDON_TIME);
- stmt->setUInt32(0, questId);
- stmt->setUInt32(1, _player->GetGUID().GetCounter());
+ stmt->SetData(0, questId);
+ stmt->SetData(1, _player->GetGUID().GetCounter());
// add to Quest Tracker
CharacterDatabase.Execute(stmt);
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index ed3d433513..364b51d55c 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -236,7 +236,7 @@ void WorldSession::HandleOpenItemOpcode(WorldPacket& recvPacket)
if (item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_WRAPPED))// wrapped?
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_GIFT_BY_ITEM);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt)
.WithPreparedCallback(std::bind(&WorldSession::HandleOpenWrappedItemCallback, this, bagIndex, slot, item->GetGUID().GetCounter(), std::placeholders::_1)));
}
@@ -268,8 +268,8 @@ void WorldSession::HandleOpenWrappedItemCallback(uint8 bagIndex, uint8 slot, Obj
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 flags = fields[1].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 flags = fields[1].Get<uint32>();
item->SetGuidValue(ITEM_FIELD_GIFTCREATOR, ObjectGuid::Empty);
item->SetEntry(entry);
@@ -280,7 +280,7 @@ void WorldSession::HandleOpenWrappedItemCallback(uint8 bagIndex, uint8 slot, Obj
GetPlayer()->SaveInventoryAndGoldToDB(trans);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GIFT);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp
index acc3528c1e..2d2eb9e8c7 100644
--- a/src/server/game/Handlers/TicketHandler.cpp
+++ b/src/server/game/Handlers/TicketHandler.cpp
@@ -227,10 +227,10 @@ void WorldSession::HandleGMSurveySubmit(WorldPacket& recv_data)
continue;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GM_SUBSURVEY);
- stmt->setUInt32(0, nextSurveyID);
- stmt->setUInt32(1, subSurveyId);
- stmt->setUInt32(2, rank);
- stmt->setString(3, comment);
+ stmt->SetData(0, nextSurveyID);
+ stmt->SetData(1, subSurveyId);
+ stmt->SetData(2, rank);
+ stmt->SetData(3, comment);
trans->Append(stmt);
}
@@ -243,10 +243,10 @@ void WorldSession::HandleGMSurveySubmit(WorldPacket& recv_data)
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GM_SURVEY);
- stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
- stmt->setUInt32(1, nextSurveyID);
- stmt->setUInt32(2, mainSurvey);
- stmt->setString(3, comment);
+ stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
+ stmt->SetData(1, nextSurveyID);
+ stmt->SetData(2, mainSurvey);
+ stmt->SetData(3, comment);
trans->Append(stmt);
@@ -266,14 +266,14 @@ void WorldSession::HandleReportLag(WorldPacket& recv_data)
recv_data >> z;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_LAG_REPORT);
- stmt->setUInt32(0, GetPlayer()->GetGUID().GetCounter());
- stmt->setUInt8 (1, lagType);
- stmt->setUInt16(2, mapId);
- stmt->setFloat (3, x);
- stmt->setFloat (4, y);
- stmt->setFloat (5, z);
- stmt->setUInt32(6, GetLatency());
- stmt->setUInt32(7, GameTime::GetGameTime().count());
+ stmt->SetData(0, GetPlayer()->GetGUID().GetCounter());
+ stmt->SetData (1, lagType);
+ stmt->SetData(2, mapId);
+ stmt->SetData (3, x);
+ stmt->SetData (4, y);
+ stmt->SetData (5, z);
+ stmt->SetData(6, GetLatency());
+ stmt->SetData(7, GameTime::GetGameTime().count());
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp
index 3e31583988..10e2474688 100644
--- a/src/server/game/Handlers/TradeHandler.cpp
+++ b/src/server/game/Handlers/TradeHandler.cpp
@@ -463,13 +463,13 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& /*recvPacket*/)
if( my_trade->GetMoney() >= 10 * GOLD )
{
- CharacterDatabase.PExecute("INSERT INTO log_money VALUES(%u, %u, \"%s\", \"%s\", %u, \"%s\", %u, \"goods\", NOW(), %u)",
- GetAccountId(), _player->GetGUID().GetCounter(), _player->GetName().c_str(), GetRemoteAddress().c_str(), trader->GetSession()->GetAccountId(), trader->GetName().c_str(), my_trade->GetMoney(), 6);
+ CharacterDatabase.Execute("INSERT INTO log_money VALUES({}, {}, \"{}\", \"{}\", {}, \"{}\", {}, \"goods\", NOW(), {})",
+ GetAccountId(), _player->GetGUID().GetCounter(), _player->GetName(), GetRemoteAddress(), trader->GetSession()->GetAccountId(), trader->GetName(), my_trade->GetMoney(), 6);
}
if( his_trade->GetMoney() >= 10 * GOLD )
{
- CharacterDatabase.PExecute("INSERT INTO log_money VALUES(%u, %u, \"%s\", \"%s\", %u, \"%s\", %u, \"goods\", NOW(), %u)",
- trader->GetSession()->GetAccountId(), trader->GetGUID().GetCounter(), trader->GetName().c_str(), trader->GetSession()->GetRemoteAddress().c_str(), GetAccountId(), _player->GetName().c_str(), his_trade->GetMoney(), 6);
+ CharacterDatabase.Execute("INSERT INTO log_money VALUES({}, {}, \"{}\", \"{}\", {}, \"{}\", {}, \"goods\", NOW(), {})",
+ trader->GetSession()->GetAccountId(), trader->GetGUID().GetCounter(), trader->GetName(), trader->GetSession()->GetRemoteAddress(), GetAccountId(), _player->GetName(), his_trade->GetMoney(), 6);
}
// update money
diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp
index 71a00a7e43..c1268a7f3f 100644
--- a/src/server/game/Instances/InstanceSaveMgr.cpp
+++ b/src/server/game/Instances/InstanceSaveMgr.cpp
@@ -130,7 +130,7 @@ bool InstanceSaveMgr::DeleteInstanceSaveIfNeeded(InstanceSave* save, bool skipMa
// delete save from db:
// character_instance is deleted when unbinding a certain player
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INSTANCE_BY_INSTANCE);
- stmt->setUInt32(0, save->GetInstanceId());
+ stmt->SetData(0, save->GetInstanceId());
CharacterDatabase.Execute(stmt);
// clear respawn times (if map is loaded do it just to be sure, if already unloaded it won't do it by itself)
@@ -176,12 +176,12 @@ void InstanceSave::InsertToDB()
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_INSTANCE_SAVE);
- stmt->setUInt32(0, m_instanceid);
- stmt->setUInt16(1, GetMapId());
- stmt->setUInt32(2, uint32(GetResetTimeForDB()));
- stmt->setUInt8(3, uint8(GetDifficulty()));
- stmt->setUInt32(4, completedEncounters);
- stmt->setString(5, data);
+ stmt->SetData(0, m_instanceid);
+ stmt->SetData(1, GetMapId());
+ stmt->SetData(2, uint32(GetResetTimeForDB()));
+ stmt->SetData(3, uint8(GetDifficulty()));
+ stmt->SetData(4, completedEncounters);
+ stmt->SetData(5, data);
CharacterDatabase.Execute(stmt);
sScriptMgr->OnInstanceSave(this);
@@ -272,15 +272,15 @@ void InstanceSaveMgr::LoadResetTimes()
do
{
Field* fields = result->Fetch();
- uint32 mapid = fields[0].GetUInt16();
- Difficulty difficulty = Difficulty(fields[1].GetUInt8());
- uint64 resettime = fields[2].GetUInt32();
+ uint32 mapid = fields[0].Get<uint16>();
+ Difficulty difficulty = Difficulty(fields[1].Get<uint8>());
+ uint64 resettime = fields[2].Get<uint32>();
MapDifficulty const* mapDiff = GetMapDifficultyData(mapid, difficulty);
if (!mapDiff)
{
LOG_ERROR("instance.save", "InstanceSaveMgr::LoadResetTimes: invalid mapid({})/difficulty({}) pair in instance_reset!", mapid, difficulty);
- CharacterDatabase.DirectPExecute("DELETE FROM instance_reset WHERE mapid = '%u' AND difficulty = '%u'", mapid, difficulty);
+ CharacterDatabase.DirectExecute("DELETE FROM instance_reset WHERE mapid = '{}' AND difficulty = '{}'", mapid, difficulty);
continue;
}
@@ -310,7 +310,7 @@ void InstanceSaveMgr::LoadResetTimes()
// initialize the reset time
t = today + period + diff;
SetResetTimeFor(mapid, difficulty, t);
- CharacterDatabase.DirectPExecute("INSERT INTO instance_reset VALUES ('%u', '%u', '%u')", mapid, difficulty, (uint32)t);
+ CharacterDatabase.DirectExecute("INSERT INTO instance_reset VALUES ('{}', '{}', '{}')", mapid, difficulty, (uint32)t);
}
if (t < now)
@@ -319,7 +319,7 @@ void InstanceSaveMgr::LoadResetTimes()
// calculate the next reset time
t = (t * DAY) / DAY;
t += ((today - t) / period + 1) * period + diff;
- CharacterDatabase.DirectPExecute("UPDATE instance_reset SET resettime = '%u' WHERE mapid = '%u' AND difficulty = '%u'", (uint32)t, mapid, difficulty);
+ CharacterDatabase.DirectExecute("UPDATE instance_reset SET resettime = '{}' WHERE mapid = '{}' AND difficulty = '{}'", (uint32)t, mapid, difficulty);
}
SetExtendedResetTimeFor(mapid, difficulty, t);
@@ -343,12 +343,12 @@ void InstanceSaveMgr::LoadInstanceSaves()
{
Field* fields = result->Fetch();
- uint32 instanceId = fields[0].GetUInt32();
- uint32 mapId = fields[1].GetUInt16();
- time_t resettime = time_t(fields[2].GetUInt32());
- uint8 difficulty = fields[3].GetUInt8();
- uint32 completedEncounters = fields[4].GetUInt32();
- std::string instanceData = fields[5].GetString();
+ uint32 instanceId = fields[0].Get<uint32>();
+ uint32 mapId = fields[1].Get<uint16>();
+ time_t resettime = time_t(fields[2].Get<uint32>());
+ uint8 difficulty = fields[3].Get<uint8>();
+ uint32 completedEncounters = fields[4].Get<uint32>();
+ std::string instanceData = fields[5].Get<std::string>();
// Mark instance id as being used
sMapMgr->RegisterInstanceId(instanceId);
@@ -376,10 +376,10 @@ void InstanceSaveMgr::LoadCharacterBinds()
{
Field* fields = result->Fetch();
- ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32());
- uint32 instanceId = fields[1].GetUInt32();
- bool perm = fields[2].GetBool();
- bool extended = fields[3].GetBool();
+ ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>());
+ uint32 instanceId = fields[1].Get<uint32>();
+ bool perm = fields[2].Get<bool>();
+ bool extended = fields[3].Get<bool>();
if (InstanceSave* save = GetInstanceSave(instanceId))
{
@@ -390,16 +390,16 @@ void InstanceSaveMgr::LoadCharacterBinds()
if (bind.perm) // already loaded perm -> delete currently checked one from db
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INSTANCE_BY_INSTANCE_GUID);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt32(1, instanceId);
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, instanceId);
CharacterDatabase.Execute(stmt);
continue;
}
else // override temp bind by newest one
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INSTANCE_BY_INSTANCE_GUID);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt32(1, bind.save->GetInstanceId());
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, bind.save->GetInstanceId());
CharacterDatabase.Execute(stmt);
bind.save->RemovePlayer(guid, this);
}
@@ -483,10 +483,10 @@ void InstanceSaveMgr::_ResetSave(InstanceSaveHashMap::iterator& itr)
{
// delete character_instance per id, delete instance per id
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INSTANCE_BY_INSTANCE);
- stmt->setUInt32(0, itr->second->GetInstanceId());
+ stmt->SetData(0, itr->second->GetInstanceId());
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INSTANCE_BY_INSTANCE);
- stmt->setUInt32(0, itr->second->GetInstanceId());
+ stmt->SetData(0, itr->second->GetInstanceId());
CharacterDatabase.Execute(stmt);
// clear respawn times if the map is already unloaded and won't do it by itself
@@ -501,10 +501,10 @@ void InstanceSaveMgr::_ResetSave(InstanceSaveHashMap::iterator& itr)
// delete character_instance per id where extended = 0, transtaction with set extended = 0, transaction is used to avoid mysql thread races
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INSTANCE_BY_INSTANCE_NOT_EXTENDED);
- stmt->setUInt32(0, itr->second->GetInstanceId());
+ stmt->SetData(0, itr->second->GetInstanceId());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_INSTANCE_SET_NOT_EXTENDED);
- stmt->setUInt32(0, itr->second->GetInstanceId());
+ stmt->SetData(0, itr->second->GetInstanceId());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -548,9 +548,9 @@ void InstanceSaveMgr::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, bool
// update it in the DB
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GLOBAL_INSTANCE_RESETTIME);
- stmt->setUInt32(0, next_reset);
- stmt->setUInt16(1, uint16(mapid));
- stmt->setUInt8(2, uint8(difficulty));
+ stmt->SetData(0, next_reset);
+ stmt->SetData(1, uint16(mapid));
+ stmt->SetData(2, uint8(difficulty));
CharacterDatabase.Execute(stmt);
// remove all binds to instances of the given map and delete from db (delete per instance id, no mass deletion!)
@@ -604,10 +604,10 @@ InstancePlayerBind* InstanceSaveMgr::PlayerBindToInstance(ObjectGuid guid, Insta
bind.extended = false;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_INSTANCE);
- stmt->setUInt32(0, save->GetInstanceId());
- stmt->setBool(1, permanent);
- stmt->setUInt32(2, guid.GetCounter());
- stmt->setUInt32(3, bind.save->GetInstanceId());
+ stmt->SetData(0, save->GetInstanceId());
+ stmt->SetData(1, permanent);
+ stmt->SetData(2, guid.GetCounter());
+ stmt->SetData(3, bind.save->GetInstanceId());
CharacterDatabase.Execute(stmt);
}
}
@@ -620,21 +620,21 @@ InstancePlayerBind* InstanceSaveMgr::PlayerBindToInstance(ObjectGuid guid, Insta
/*CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
// ensure any for that map+difficulty is deleted!
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INSTANCE_BY_GUID_MAP_DIFF); // DELETE ci FROM character_instance ci JOIN instance i ON ci.instance = i.id WHERE ci.guid = ? AND i.map = ? AND i.difficulty = ?
- stmt->setUInt32(0, guidLow);
- stmt->setUInt16(1, uint16(save->GetMapId()));
- stmt->setUInt8(2, uint8(save->GetDifficulty()));
+ stmt->SetData(0, guidLow);
+ stmt->SetData(1, uint16(save->GetMapId()));
+ stmt->SetData(2, uint8(save->GetDifficulty()));
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_INSTANCE);
- stmt->setUInt32(0, guidLow);
- stmt->setUInt32(1, save->GetInstanceId());
- stmt->setBool(2, permanent);
+ stmt->SetData(0, guidLow);
+ stmt->SetData(1, save->GetInstanceId());
+ stmt->SetData(2, permanent);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);*/
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_INSTANCE);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt32(1, save->GetInstanceId());
- stmt->setBool(2, permanent);
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, save->GetInstanceId());
+ stmt->SetData(2, permanent);
CharacterDatabase.Execute(stmt);
}
@@ -670,8 +670,8 @@ void InstanceSaveMgr::PlayerUnbindInstance(ObjectGuid guid, uint32 mapid, Diffic
if (deleteFromDB)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INSTANCE_BY_INSTANCE_GUID);
- stmt->setUInt32(0, guid.GetCounter());
- stmt->setUInt32(1, itr->second.save->GetInstanceId());
+ stmt->SetData(0, guid.GetCounter());
+ stmt->SetData(1, itr->second.save->GetInstanceId());
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index 6a4af33d1a..034f528803 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -43,8 +43,8 @@ void InstanceScript::SaveToDB()
save->SetInstanceData(data);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_INSTANCE_SAVE_DATA);
- stmt->setString(0, data);
- stmt->setUInt32(1, instance->GetInstanceId());
+ stmt->SetData(0, data);
+ stmt->SetData(1, instance->GetInstanceId());
CharacterDatabase.Execute(stmt);
}
@@ -524,8 +524,8 @@ void InstanceScript::SetCompletedEncountersMask(uint32 newMask, bool save)
iSave->SetCompletedEncounterMask(completedEncounters);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_INSTANCE_SAVE_ENCOUNTERMASK);
- stmt->setUInt32(0, completedEncounters);
- stmt->setUInt32(1, instance->GetInstanceId());
+ stmt->SetData(0, completedEncounters);
+ stmt->SetData(1, instance->GetInstanceId());
CharacterDatabase.Execute(stmt);
}
}
diff --git a/src/server/game/Loot/LootItemStorage.cpp b/src/server/game/Loot/LootItemStorage.cpp
index 5473ef92c0..def74faff8 100644
--- a/src/server/game/Loot/LootItemStorage.cpp
+++ b/src/server/game/Loot/LootItemStorage.cpp
@@ -53,9 +53,9 @@ void LootItemStorage::LoadStorageFromDB()
{
Field* fields = result->Fetch();
- StoredLootItemList& itemList = lootItemStore[ObjectGuid::Create<HighGuid::Item>(fields[0].GetUInt32())];
- itemList.push_back(StoredLootItem(fields[1].GetUInt32(), fields[2].GetUInt32(), fields[3].GetUInt32(), fields[4].GetInt32(), fields[5].GetUInt32(), fields[6].GetBool(),
- fields[7].GetBool(), fields[8].GetBool(), fields[9].GetBool(), fields[10].GetBool(), fields[11].GetBool(), fields[12].GetUInt32()));
+ StoredLootItemList& itemList = lootItemStore[ObjectGuid::Create<HighGuid::Item>(fields[0].Get<uint32>())];
+ itemList.push_back(StoredLootItem(fields[1].Get<uint32>(), fields[2].Get<uint32>(), fields[3].Get<uint32>(), fields[4].Get<int32>(), fields[5].Get<uint32>(), fields[6].Get<bool>(),
+ fields[7].Get<bool>(), fields[8].Get<bool>(), fields[9].Get<bool>(), fields[10].Get<bool>(), fields[11].Get<bool>(), fields[12].Get<uint32>()));
++count;
} while (result->NextRow());
@@ -69,10 +69,10 @@ void LootItemStorage::RemoveEntryFromDB(ObjectGuid containerGUID, uint32 itemid,
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEMCONTAINER_SINGLE_ITEM);
- stmt->setUInt32(0, containerGUID.GetCounter());
- stmt->setUInt32(1, itemid);
- stmt->setUInt32(2, count);
- stmt->setUInt32(3, itemIndex);
+ stmt->SetData(0, containerGUID.GetCounter());
+ stmt->SetData(1, itemid);
+ stmt->SetData(2, count);
+ stmt->SetData(3, itemIndex);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
@@ -98,19 +98,19 @@ void LootItemStorage::AddNewStoredLoot(Loot* loot, Player* /*player*/)
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEMCONTAINER_SINGLE_ITEM);
- stmt->setUInt32(index++, loot->containerGUID.GetCounter());
- stmt->setUInt32(index++, 0);
- stmt->setUInt32(index++, 0);
- stmt->setUInt32(index++, loot->gold);
- stmt->setInt32(index++, 0);
- stmt->setUInt32(index++, 0);
- stmt->setBool(index++, false);
- stmt->setBool(index++, false);
- stmt->setBool(index++, false);
- stmt->setBool(index++, false);
- stmt->setBool(index++, false);
- stmt->setBool(index++, false);
- stmt->setUInt32(index++, 0);
+ stmt->SetData(index++, loot->containerGUID.GetCounter());
+ stmt->SetData(index++, 0);
+ stmt->SetData(index++, 0);
+ stmt->SetData(index++, loot->gold);
+ stmt->SetData(index++, 0);
+ stmt->SetData(index++, 0);
+ stmt->SetData(index++, false);
+ stmt->SetData(index++, false);
+ stmt->SetData(index++, false);
+ stmt->SetData(index++, false);
+ stmt->SetData(index++, false);
+ stmt->SetData(index++, false);
+ stmt->SetData(index++, 0);
trans->Append(stmt);
}
@@ -139,19 +139,19 @@ void LootItemStorage::AddNewStoredLoot(Loot* loot, Player* /*player*/)
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEMCONTAINER_SINGLE_ITEM);
- stmt->setUInt32(index++, loot->containerGUID.GetCounter());
- stmt->setUInt32(index++, li->itemid);
- stmt->setUInt32(index++, li->itemIndex);
- stmt->setUInt32(index++, li->count);
- stmt->setInt32 (index++, li->randomPropertyId);
- stmt->setUInt32(index++, li->randomSuffix);
- stmt->setBool(index++, li->follow_loot_rules);
- stmt->setBool(index++, li->freeforall);
- stmt->setBool(index++, li->is_blocked);
- stmt->setBool(index++, li->is_counted);
- stmt->setBool(index++, li->is_underthreshold);
- stmt->setBool(index++, li->needs_quest);
- stmt->setUInt32(index++, conditionLootId);
+ stmt->SetData(index++, loot->containerGUID.GetCounter());
+ stmt->SetData(index++, li->itemid);
+ stmt->SetData(index++, li->itemIndex);
+ stmt->SetData(index++, li->count);
+ stmt->SetData (index++, li->randomPropertyId);
+ stmt->SetData(index++, li->randomSuffix);
+ stmt->SetData(index++, li->follow_loot_rules);
+ stmt->SetData(index++, li->freeforall);
+ stmt->SetData(index++, li->is_blocked);
+ stmt->SetData(index++, li->is_counted);
+ stmt->SetData(index++, li->is_underthreshold);
+ stmt->SetData(index++, li->needs_quest);
+ stmt->SetData(index++, conditionLootId);
trans->Append(stmt);
}
@@ -279,7 +279,7 @@ void LootItemStorage::RemoveStoredLoot(ObjectGuid containerGUID)
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEMCONTAINER_CONTAINER);
- stmt->setUInt32(0, containerGUID.GetCounter());
+ stmt->SetData(0, containerGUID.GetCounter());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp
index 4dd1207d13..90809919bf 100644
--- a/src/server/game/Loot/LootMgr.cpp
+++ b/src/server/game/Loot/LootMgr.cpp
@@ -146,7 +146,7 @@ uint32 LootStore::LoadLootTable()
Clear();
// 0 1 2 3 4 5 6
- QueryResult result = WorldDatabase.PQuery("SELECT Entry, Item, Reference, Chance, QuestRequired, LootMode, GroupId, MinCount, MaxCount FROM %s", GetName());
+ QueryResult result = WorldDatabase.Query("SELECT Entry, Item, Reference, Chance, QuestRequired, LootMode, GroupId, MinCount, MaxCount FROM {}", GetName());
if (!result)
return 0;
@@ -157,15 +157,15 @@ uint32 LootStore::LoadLootTable()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 item = fields[1].GetUInt32();
- int32 reference = fields[2].GetInt32();
- float chance = fields[3].GetFloat();
- bool needsquest = fields[4].GetBool();
- uint16 lootmode = fields[5].GetUInt16();
- uint8 groupid = fields[6].GetUInt8();
- int32 mincount = fields[7].GetUInt8();
- int32 maxcount = fields[8].GetUInt8();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 item = fields[1].Get<uint32>();
+ int32 reference = fields[2].Get<int32>();
+ float chance = fields[3].Get<float>();
+ bool needsquest = fields[4].Get<bool>();
+ uint16 lootmode = fields[5].Get<uint16>();
+ uint8 groupid = fields[6].Get<uint8>();
+ int32 mincount = fields[7].Get<uint8>();
+ int32 maxcount = fields[8].Get<uint8>();
if (maxcount > std::numeric_limits<uint8>::max())
{
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index 23590a7b10..d8e0542935 100644
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -139,7 +139,7 @@ void MailDraft::deleteIncludedItems(CharacterDatabaseTransaction trans, bool inD
if (inDB)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, item->GetGUID().GetCounter());
+ stmt->SetData(0, item->GetGUID().GetCounter());
trans->Append(stmt);
}
@@ -177,8 +177,8 @@ void MailDraft::SendReturnToSender(uint32 /*sender_acc*/, ObjectGuid::LowType se
item->SaveToDB(trans); // item not in inventory and can be save standalone
// owner in data will set at mail receive and item extracting
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ITEM_OWNER);
- stmt->setUInt32(0, receiver_guid);
- stmt->setUInt32(1, item->GetGUID().GetCounter());
+ stmt->SetData(0, receiver_guid);
+ stmt->SetData(1, item->GetGUID().GetCounter());
trans->Append(stmt);
}
}
@@ -234,30 +234,30 @@ void MailDraft::SendMailTo(CharacterDatabaseTransaction trans, MailReceiver cons
// Add to DB
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL);
- stmt->setUInt32( index, mailId);
- stmt->setUInt8 (++index, uint8(sender.GetMailMessageType()));
- stmt->setInt8 (++index, int8(sender.GetStationery()));
- stmt->setUInt16(++index, GetMailTemplateId());
- stmt->setUInt32(++index, sender.GetSenderId());
- stmt->setUInt32(++index, receiver.GetPlayerGUIDLow());
- stmt->setString(++index, GetSubject());
- stmt->setString(++index, GetBody());
- stmt->setBool (++index, !m_items.empty());
- stmt->setUInt32(++index, uint32(expire_time));
- stmt->setUInt32(++index, uint32(deliver_time));
- stmt->setUInt32(++index, m_money);
- stmt->setUInt32(++index, m_COD);
- stmt->setUInt8 (++index, uint8(checked));
- stmt->setInt32(++index, auctionId);
+ stmt->SetData( index, mailId);
+ stmt->SetData (++index, uint8(sender.GetMailMessageType()));
+ stmt->SetData (++index, int8(sender.GetStationery()));
+ stmt->SetData(++index, GetMailTemplateId());
+ stmt->SetData(++index, sender.GetSenderId());
+ stmt->SetData(++index, receiver.GetPlayerGUIDLow());
+ stmt->SetData(++index, GetSubject());
+ stmt->SetData(++index, GetBody());
+ stmt->SetData (++index, !m_items.empty());
+ stmt->SetData(++index, uint32(expire_time));
+ stmt->SetData(++index, uint32(deliver_time));
+ stmt->SetData(++index, m_money);
+ stmt->SetData(++index, m_COD);
+ stmt->SetData (++index, uint8(checked));
+ stmt->SetData(++index, auctionId);
trans->Append(stmt);
for (MailItemMap::const_iterator mailItemIter = m_items.begin(); mailItemIter != m_items.end(); ++mailItemIter)
{
Item* pItem = mailItemIter->second;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_MAIL_ITEM);
- stmt->setUInt32(0, mailId);
- stmt->setUInt32(1, pItem->GetGUID().GetCounter());
- stmt->setUInt32(2, receiver.GetPlayerGUIDLow());
+ stmt->SetData(0, mailId);
+ stmt->SetData(1, pItem->GetGUID().GetCounter());
+ stmt->SetData(2, receiver.GetPlayerGUIDLow());
trans->Append(stmt);
}
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 84e99e0571..8d342d000f 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -3305,10 +3305,10 @@ void Map::SaveCreatureRespawnTime(ObjectGuid::LowType spawnId, time_t& respawnTi
_creatureRespawnTimes[spawnId] = respawnTime;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CREATURE_RESPAWN);
- stmt->setUInt32(0, spawnId);
- stmt->setUInt32(1, uint32(respawnTime));
- stmt->setUInt16(2, GetId());
- stmt->setUInt32(3, GetInstanceId());
+ stmt->SetData(0, spawnId);
+ stmt->SetData(1, uint32(respawnTime));
+ stmt->SetData(2, GetId());
+ stmt->SetData(3, GetInstanceId());
CharacterDatabase.Execute(stmt);
}
@@ -3317,9 +3317,9 @@ void Map::RemoveCreatureRespawnTime(ObjectGuid::LowType spawnId)
_creatureRespawnTimes.erase(spawnId);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CREATURE_RESPAWN);
- stmt->setUInt32(0, spawnId);
- stmt->setUInt16(1, GetId());
- stmt->setUInt32(2, GetInstanceId());
+ stmt->SetData(0, spawnId);
+ stmt->SetData(1, GetId());
+ stmt->SetData(2, GetInstanceId());
CharacterDatabase.Execute(stmt);
}
@@ -3339,10 +3339,10 @@ void Map::SaveGORespawnTime(ObjectGuid::LowType spawnId, time_t& respawnTime)
_goRespawnTimes[spawnId] = respawnTime;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GO_RESPAWN);
- stmt->setUInt32(0, spawnId);
- stmt->setUInt32(1, uint32(respawnTime));
- stmt->setUInt16(2, GetId());
- stmt->setUInt32(3, GetInstanceId());
+ stmt->SetData(0, spawnId);
+ stmt->SetData(1, uint32(respawnTime));
+ stmt->SetData(2, GetId());
+ stmt->SetData(3, GetInstanceId());
CharacterDatabase.Execute(stmt);
}
@@ -3351,39 +3351,39 @@ void Map::RemoveGORespawnTime(ObjectGuid::LowType spawnId)
_goRespawnTimes.erase(spawnId);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GO_RESPAWN);
- stmt->setUInt32(0, spawnId);
- stmt->setUInt16(1, GetId());
- stmt->setUInt32(2, GetInstanceId());
+ stmt->SetData(0, spawnId);
+ stmt->SetData(1, GetId());
+ stmt->SetData(2, GetInstanceId());
CharacterDatabase.Execute(stmt);
}
void Map::LoadRespawnTimes()
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CREATURE_RESPAWNS);
- stmt->setUInt16(0, GetId());
- stmt->setUInt32(1, GetInstanceId());
+ stmt->SetData(0, GetId());
+ stmt->SetData(1, GetInstanceId());
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType lowguid = fields[0].GetUInt32();
- uint32 respawnTime = fields[1].GetUInt32();
+ ObjectGuid::LowType lowguid = fields[0].Get<uint32>();
+ uint32 respawnTime = fields[1].Get<uint32>();
_creatureRespawnTimes[lowguid] = time_t(respawnTime);
} while (result->NextRow());
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GO_RESPAWNS);
- stmt->setUInt16(0, GetId());
- stmt->setUInt32(1, GetInstanceId());
+ stmt->SetData(0, GetId());
+ stmt->SetData(1, GetInstanceId());
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType lowguid = fields[0].GetUInt32();
- uint32 respawnTime = fields[1].GetUInt32();
+ ObjectGuid::LowType lowguid = fields[0].Get<uint32>();
+ uint32 respawnTime = fields[1].Get<uint32>();
_goRespawnTimes[lowguid] = time_t(respawnTime);
} while (result->NextRow());
@@ -3401,13 +3401,13 @@ void Map::DeleteRespawnTimes()
void Map::DeleteRespawnTimesInDB(uint16 mapId, uint32 instanceId)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CREATURE_RESPAWN_BY_INSTANCE);
- stmt->setUInt16(0, mapId);
- stmt->setUInt32(1, instanceId);
+ stmt->SetData(0, mapId);
+ stmt->SetData(1, instanceId);
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GO_RESPAWN_BY_INSTANCE);
- stmt->setUInt16(0, mapId);
- stmt->setUInt32(1, instanceId);
+ stmt->SetData(0, mapId);
+ stmt->SetData(1, instanceId);
CharacterDatabase.Execute(stmt);
}
@@ -3502,7 +3502,7 @@ void Map::LogEncounterFinished(EncounterCreditType type, uint32 creditEntry)
playersInfo += buffer;
}
CleanStringForMysqlQuery(playersInfo);
- CharacterDatabase.PExecute("INSERT INTO log_encounter VALUES(NOW(), %u, %u, %u, %u, '%s')", GetId(), (uint32)GetDifficulty(), type, creditEntry, playersInfo.c_str());
+ CharacterDatabase.Execute("INSERT INTO log_encounter VALUES(NOW(), {}, {}, {}, {}, '{}')", GetId(), (uint32)GetDifficulty(), type, creditEntry, playersInfo);
}
bool Map::AllTransportsEmpty() const
@@ -3950,8 +3950,8 @@ bool Map::CheckCollisionAndGetValidCoords(const WorldObject* source, float start
void Map::LoadCorpseData()
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CORPSES);
- stmt->setUInt32(0, GetId());
- stmt->setUInt32(1, GetInstanceId());
+ stmt->SetData(0, GetId());
+ stmt->SetData(1, GetInstanceId());
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// SELECT posX, posY, posZ, orientation, mapId, displayId, itemCache, bytes1, bytes2, guildId, flags, dynFlags, time, corpseType, instanceId, phaseMask, guid FROM corpse WHERE mapId = ? AND instanceId = ?
@@ -3962,8 +3962,8 @@ void Map::LoadCorpseData()
do
{
Field* fields = result->Fetch();
- CorpseType type = CorpseType(fields[13].GetUInt8());
- uint32 guid = fields[16].GetUInt32();
+ CorpseType type = CorpseType(fields[13].Get<uint8>());
+ uint32 guid = fields[16].Get<uint32>();
if (type >= MAX_CORPSE_TYPE || type == CORPSE_BONES)
{
LOG_ERROR("maps", "Corpse (guid: {}) have wrong corpse type ({}), not loading.", guid, type);
@@ -3988,7 +3988,7 @@ void Map::DeleteCorpseData()
{
// DELETE FROM corpse WHERE mapId = ? AND instanceId = ?
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CORPSES_FROM_MAP);
- stmt->setUInt32(0, GetId());
- stmt->setUInt32(1, GetInstanceId());
+ stmt->SetData(0, GetId());
+ stmt->SetData(1, GetInstanceId());
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/game/Maps/MapMgr.cpp b/src/server/game/Maps/MapMgr.cpp
index 8fbf6ed355..983de0a9a4 100644
--- a/src/server/game/Maps/MapMgr.cpp
+++ b/src/server/game/Maps/MapMgr.cpp
@@ -386,7 +386,7 @@ void MapMgr::InitInstanceIds()
QueryResult result = CharacterDatabase.Query("SELECT MAX(id) FROM instance");
if (result)
{
- uint32 maxId = (*result)[0].GetUInt32();
+ uint32 maxId = (*result)[0].Get<uint32>();
_instanceIds.resize(maxId + 1);
}
}
diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp
index c79a2a1ad7..2d44fc23df 100644
--- a/src/server/game/Maps/TransportMgr.cpp
+++ b/src/server/game/Maps/TransportMgr.cpp
@@ -64,7 +64,7 @@ void TransportMgr::LoadTransportTemplates()
do
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
GameObjectTemplate const* goInfo = sObjectMgr->GetGameObjectTemplate(entry);
if (goInfo == nullptr)
{
@@ -435,8 +435,8 @@ void TransportMgr::SpawnContinentTransports()
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint32 entry = fields[1].GetUInt32();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint32 entry = fields[1].Get<uint32>();
if (TransportTemplate const* tInfo = GetTransportTemplate(entry))
if (!tInfo->inInstance)
@@ -459,9 +459,9 @@ void TransportMgr::SpawnContinentTransports()
do
{
Field* fields = result2->Fetch();
- uint16 mapId = fields[0].GetUInt16();
- float x = fields[1].GetFloat();
- float y = fields[2].GetFloat();
+ uint16 mapId = fields[0].Get<uint16>();
+ float x = fields[1].Get<float>();
+ float y = fields[2].Get<float>();
MapEntry const* mapEntry = sMapStore.LookupEntry(mapId);
if (mapEntry && !mapEntry->Instanceable())
diff --git a/src/server/game/Misc/BanMgr.cpp b/src/server/game/Misc/BanMgr.cpp
index 7ebb215279..e55d4e276d 100644
--- a/src/server/game/Misc/BanMgr.cpp
+++ b/src/server/game/Misc/BanMgr.cpp
@@ -49,23 +49,23 @@ BanReturn BanMgr::BanAccount(std::string const& AccountName, std::string const&
// pussywizard: check existing ban to prevent overriding by a shorter one! >_>
LoginDatabasePreparedStatement* stmtAccountBanned = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BANNED);
- stmtAccountBanned->setUInt32(0, AccountID);
+ stmtAccountBanned->SetData(0, AccountID);
PreparedQueryResult banresult = LoginDatabase.Query(stmtAccountBanned);
- if (banresult && ((*banresult)[0].GetUInt32() == (*banresult)[1].GetUInt32() || ((*banresult)[1].GetUInt32() > GameTime::GetGameTime().count() + DurationSecs && DurationSecs)))
+ if (banresult && ((*banresult)[0].Get<uint32>() == (*banresult)[1].Get<uint32>() || ((*banresult)[1].Get<uint32>() > GameTime::GetGameTime().count() + DurationSecs && DurationSecs)))
return BAN_LONGER_EXISTS;
// make sure there is only one active ban
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_NOT_BANNED);
- stmt->setUInt32(0, AccountID);
+ stmt->SetData(0, AccountID);
trans->Append(stmt);
// No SQL injection with prepared statements
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT_BANNED);
- stmt->setUInt32(0, AccountID);
- stmt->setUInt32(1, DurationSecs);
- stmt->setString(2, Author);
- stmt->setString(3, Reason);
+ stmt->SetData(0, AccountID);
+ stmt->SetData(1, DurationSecs);
+ stmt->SetData(2, Author);
+ stmt->SetData(3, Reason);
trans->Append(stmt);
if (WorldSession* session = sWorld->FindSession(AccountID))
@@ -111,23 +111,23 @@ BanReturn BanMgr::BanAccountByPlayerName(std::string const& CharacterName, std::
// pussywizard: check existing ban to prevent overriding by a shorter one! >_>
LoginDatabasePreparedStatement* stmtAccountBanned = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BANNED);
- stmtAccountBanned->setUInt32(0, AccountID);
+ stmtAccountBanned->SetData(0, AccountID);
PreparedQueryResult banresult = LoginDatabase.Query(stmtAccountBanned);
- if (banresult && ((*banresult)[0].GetUInt32() == (*banresult)[1].GetUInt32() || ((*banresult)[1].GetUInt32() > GameTime::GetGameTime().count() + DurationSecs && DurationSecs)))
+ if (banresult && ((*banresult)[0].Get<uint32>() == (*banresult)[1].Get<uint32>() || ((*banresult)[1].Get<uint32>() > GameTime::GetGameTime().count() + DurationSecs && DurationSecs)))
return BAN_LONGER_EXISTS;
// make sure there is only one active ban
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_NOT_BANNED);
- stmt->setUInt32(0, AccountID);
+ stmt->SetData(0, AccountID);
trans->Append(stmt);
// No SQL injection with prepared statements
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT_BANNED);
- stmt->setUInt32(0, AccountID);
- stmt->setUInt32(1, DurationSecs);
- stmt->setString(2, Author);
- stmt->setString(3, Reason);
+ stmt->SetData(0, AccountID);
+ stmt->SetData(1, DurationSecs);
+ stmt->SetData(2, Author);
+ stmt->SetData(3, Reason);
trans->Append(stmt);
if (WorldSession* session = sWorld->FindSession(AccountID))
@@ -170,14 +170,14 @@ BanReturn BanMgr::BanIP(std::string const& IP, std::string const& Duration, std:
// No SQL injection with prepared statements
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BY_IP);
- stmt->setString(0, IP);
+ stmt->SetData(0, IP);
PreparedQueryResult resultAccounts = LoginDatabase.Query(stmt);
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_IP_BANNED);
- stmt->setString(0, IP);
- stmt->setUInt32(1, DurationSecs);
- stmt->setString(2, Author);
- stmt->setString(3, Reason);
+ stmt->SetData(0, IP);
+ stmt->SetData(1, DurationSecs);
+ stmt->SetData(2, Author);
+ stmt->SetData(3, Reason);
LoginDatabase.Execute(stmt);
if (sWorld->getBoolConfig(CONFIG_SHOW_BAN_IN_WORLD))
@@ -202,7 +202,7 @@ BanReturn BanMgr::BanIP(std::string const& IP, std::string const& Duration, std:
do
{
Field* fields = resultAccounts->Fetch();
- uint32 AccountID = fields[0].GetUInt32();
+ uint32 AccountID = fields[0].Get<uint32>();
if (WorldSession* session = sWorld->FindSession(AccountID))
if (session->GetPlayerName() != Author)
@@ -237,14 +237,14 @@ BanReturn BanMgr::BanCharacter(std::string const& CharacterName, std::string con
// make sure there is only one active ban
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_BAN);
- stmt->setUInt32(0, TargetGUID.GetCounter());
+ stmt->SetData(0, TargetGUID.GetCounter());
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_BAN);
- stmt->setUInt32(0, TargetGUID.GetCounter());
- stmt->setUInt32(1, DurationSecs);
- stmt->setString(2, Author);
- stmt->setString(3, Reason);
+ stmt->SetData(0, TargetGUID.GetCounter());
+ stmt->SetData(1, DurationSecs);
+ stmt->SetData(2, Author);
+ stmt->SetData(3, Reason);
CharacterDatabase.Execute(stmt);
if (target)
@@ -275,7 +275,7 @@ bool BanMgr::RemoveBanAccount(std::string const& AccountName)
// NO SQL injection as account is uint32
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_NOT_BANNED);
- stmt->setUInt32(0, AccountID);
+ stmt->SetData(0, AccountID);
LoginDatabase.Execute(stmt);
return true;
@@ -290,7 +290,7 @@ bool BanMgr::RemoveBanAccountByPlayerName(std::string const& CharacterName)
// NO SQL injection as account is uint32
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_NOT_BANNED);
- stmt->setUInt32(0, AccountID);
+ stmt->SetData(0, AccountID);
LoginDatabase.Execute(stmt);
return true;
@@ -300,7 +300,7 @@ bool BanMgr::RemoveBanAccountByPlayerName(std::string const& CharacterName)
bool BanMgr::RemoveBanIP(std::string const& IP)
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_IP_NOT_BANNED);
- stmt->setString(0, IP);
+ stmt->SetData(0, IP);
LoginDatabase.Execute(stmt);
return true;
@@ -322,7 +322,7 @@ bool BanMgr::RemoveBanCharacter(std::string const& CharacterName)
return false;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_BAN);
- stmt->setUInt32(0, guid.GetCounter());
+ stmt->SetData(0, guid.GetCounter());
CharacterDatabase.Execute(stmt);
return true;
}
diff --git a/src/server/game/Misc/GameGraveyard.cpp b/src/server/game/Misc/GameGraveyard.cpp
index 84dc27eac1..4542e9077b 100644
--- a/src/server/game/Misc/GameGraveyard.cpp
+++ b/src/server/game/Misc/GameGraveyard.cpp
@@ -46,15 +46,15 @@ void Graveyard::LoadGraveyardFromDB()
do
{
Field* fields = result->Fetch();
- uint32 ID = fields[0].GetUInt32();
+ uint32 ID = fields[0].Get<uint32>();
GraveyardStruct Graveyard;
- Graveyard.Map = fields[1].GetUInt32();
- Graveyard.x = fields[2].GetFloat();
- Graveyard.y = fields[3].GetFloat();
- Graveyard.z = fields[4].GetFloat();
- Graveyard.name = fields[5].GetString();
+ Graveyard.Map = fields[1].Get<uint32>();
+ Graveyard.x = fields[2].Get<float>();
+ Graveyard.y = fields[3].Get<float>();
+ Graveyard.z = fields[4].Get<float>();
+ Graveyard.name = fields[5].Get<std::string>();
if (!Utf8toWStr(Graveyard.name, Graveyard.wnameLow))
{
@@ -291,10 +291,10 @@ bool Graveyard::AddGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, bool p
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_GRAVEYARD_ZONE);
- stmt->setUInt32(0, id);
- stmt->setUInt32(1, zoneId);
+ stmt->SetData(0, id);
+ stmt->SetData(1, zoneId);
// Xinef: DB Data compatibility...
- stmt->setUInt16(2, uint16(teamId == TEAM_NEUTRAL ? 0 : (teamId == TEAM_ALLIANCE ? ALLIANCE : HORDE)));
+ stmt->SetData(2, uint16(teamId == TEAM_NEUTRAL ? 0 : (teamId == TEAM_ALLIANCE ? ALLIANCE : HORDE)));
WorldDatabase.Execute(stmt);
}
@@ -342,10 +342,10 @@ void Graveyard::RemoveGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, boo
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GRAVEYARD_ZONE);
- stmt->setUInt32(0, id);
- stmt->setUInt32(1, zoneId);
+ stmt->SetData(0, id);
+ stmt->SetData(1, zoneId);
// Xinef: DB Data compatibility...
- stmt->setUInt16(2, uint16(teamId == TEAM_NEUTRAL ? 0 : (teamId == TEAM_ALLIANCE ? ALLIANCE : HORDE)));
+ stmt->SetData(2, uint16(teamId == TEAM_NEUTRAL ? 0 : (teamId == TEAM_ALLIANCE ? ALLIANCE : HORDE)));
WorldDatabase.Execute(stmt);
}
@@ -375,9 +375,9 @@ void Graveyard::LoadGraveyardZones()
Field* fields = result->Fetch();
- uint32 safeLocId = fields[0].GetUInt32();
- uint32 zoneId = fields[1].GetUInt32();
- uint32 team = fields[2].GetUInt16();
+ uint32 safeLocId = fields[0].Get<uint32>();
+ uint32 zoneId = fields[1].Get<uint32>();
+ uint32 team = fields[2].Get<uint16>();
TeamId teamId = team == 0 ? TEAM_NEUTRAL : (team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE);
GraveyardStruct const* entry = sGraveyard->GetGraveyard(safeLocId);
diff --git a/src/server/game/Movement/Waypoints/WaypointMgr.cpp b/src/server/game/Movement/Waypoints/WaypointMgr.cpp
index e389d65aaf..9fda921096 100644
--- a/src/server/game/Movement/Waypoints/WaypointMgr.cpp
+++ b/src/server/game/Movement/Waypoints/WaypointMgr.cpp
@@ -64,23 +64,23 @@ void WaypointMgr::Load()
Field* fields = result->Fetch();
WaypointData* wp = new WaypointData();
- uint32 pathId = fields[0].GetUInt32();
+ uint32 pathId = fields[0].Get<uint32>();
WaypointPath& path = _waypointStore[pathId];
- float x = fields[2].GetFloat();
- float y = fields[3].GetFloat();
- float z = fields[4].GetFloat();
- float o = fields[5].GetFloat();
+ float x = fields[2].Get<float>();
+ float y = fields[3].Get<float>();
+ float z = fields[4].Get<float>();
+ float o = fields[5].Get<float>();
Acore::NormalizeMapCoord(x);
Acore::NormalizeMapCoord(y);
- wp->id = fields[1].GetUInt32();
+ wp->id = fields[1].Get<uint32>();
wp->x = x;
wp->y = y;
wp->z = z;
wp->orientation = o;
- wp->move_type = fields[6].GetUInt32();
+ wp->move_type = fields[6].Get<uint32>();
if (wp->move_type >= WAYPOINT_MOVE_TYPE_MAX)
{
@@ -89,9 +89,9 @@ void WaypointMgr::Load()
continue;
}
- wp->delay = fields[7].GetUInt32();
- wp->event_id = fields[8].GetUInt32();
- wp->event_chance = fields[9].GetInt16();
+ wp->delay = fields[7].Get<uint32>();
+ wp->event_id = fields[8].Get<uint32>();
+ wp->event_chance = fields[9].Get<int16>();
path.push_back(wp);
++count;
@@ -114,7 +114,7 @@ void WaypointMgr::ReloadPath(uint32 id)
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_BY_ID);
- stmt->setUInt32(0, id);
+ stmt->SetData(0, id);
PreparedQueryResult result = WorldDatabase.Query(stmt);
@@ -128,20 +128,20 @@ void WaypointMgr::ReloadPath(uint32 id)
Field* fields = result->Fetch();
WaypointData* wp = new WaypointData();
- float x = fields[1].GetFloat();
- float y = fields[2].GetFloat();
- float z = fields[3].GetFloat();
- float o = fields[4].GetFloat();
+ float x = fields[1].Get<float>();
+ float y = fields[2].Get<float>();
+ float z = fields[3].Get<float>();
+ float o = fields[4].Get<float>();
Acore::NormalizeMapCoord(x);
Acore::NormalizeMapCoord(y);
- wp->id = fields[0].GetUInt32();
+ wp->id = fields[0].Get<uint32>();
wp->x = x;
wp->y = y;
wp->z = z;
wp->orientation = o;
- wp->move_type = fields[5].GetUInt32();
+ wp->move_type = fields[5].Get<uint32>();
if (wp->move_type >= WAYPOINT_MOVE_TYPE_MAX)
{
@@ -150,9 +150,9 @@ void WaypointMgr::ReloadPath(uint32 id)
continue;
}
- wp->delay = fields[6].GetUInt32();
- wp->event_id = fields[7].GetUInt32();
- wp->event_chance = fields[8].GetUInt8();
+ wp->delay = fields[6].Get<uint32>();
+ wp->event_id = fields[7].Get<uint32>();
+ wp->event_chance = fields[8].Get<uint8>();
path.push_back(wp);
} while (result->NextRow());
diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.cpp b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
index 34a8ca417f..ff3a2b67ac 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvP.cpp
+++ b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
@@ -164,9 +164,9 @@ bool OPvPCapturePoint::DelCreature(uint32 type)
// map->Remove(cr, false);
// delete respawn time for this creature
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CREATURE_RESPAWN);
- stmt->setUInt32(0, spawnId);
- stmt->setUInt16(1, m_PvP->GetMap()->GetId());
- stmt->setUInt32(2, 0); // instance id, always 0 for world maps
+ stmt->SetData(0, spawnId);
+ stmt->SetData(1, m_PvP->GetMap()->GetId());
+ stmt->SetData(2, 0); // instance id, always 0 for world maps
CharacterDatabase.Execute(stmt);
sObjectMgr->DeleteCreatureData(spawnId);
diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
index 8a58179c67..da080b7093 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
+++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
@@ -64,7 +64,7 @@ void OutdoorPvPMgr::InitOutdoorPvP()
{
Field* fields = result->Fetch();
- typeId = fields[0].GetUInt8();
+ typeId = fields[0].Get<uint8>();
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_OUTDOORPVP, typeId, nullptr))
continue;
@@ -78,7 +78,7 @@ void OutdoorPvPMgr::InitOutdoorPvP()
OutdoorPvPData* data = new OutdoorPvPData();
OutdoorPvPTypes realTypeId = OutdoorPvPTypes(typeId);
data->TypeId = realTypeId;
- data->ScriptId = sObjectMgr->GetScriptId(fields[1].GetCString());
+ data->ScriptId = sObjectMgr->GetScriptId(fields[1].Get<std::string>());
m_OutdoorPvPDatas[realTypeId] = data;
++count;
diff --git a/src/server/game/Petitions/PetitionMgr.cpp b/src/server/game/Petitions/PetitionMgr.cpp
index b70695fc11..c2b7fc30d2 100644
--- a/src/server/game/Petitions/PetitionMgr.cpp
+++ b/src/server/game/Petitions/PetitionMgr.cpp
@@ -54,7 +54,7 @@ void PetitionMgr::LoadPetitions()
do
{
Field* fields = result->Fetch();
- AddPetition(ObjectGuid::Create<HighGuid::Item>(fields[1].GetUInt32()), ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt32()), fields[2].GetString(), fields[3].GetUInt8());
+ AddPetition(ObjectGuid::Create<HighGuid::Item>(fields[1].Get<uint32>()), ObjectGuid::Create<HighGuid::Player>(fields[0].Get<uint32>()), fields[2].Get<std::string>(), fields[3].Get<uint8>());
++count;
} while (result->NextRow());
@@ -79,7 +79,7 @@ void PetitionMgr::LoadSignatures()
do
{
Field* fields = result->Fetch();
- AddSignature(ObjectGuid::Create<HighGuid::Item>(fields[0].GetUInt32()), fields[2].GetUInt32(), ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt32()));
+ AddSignature(ObjectGuid::Create<HighGuid::Item>(fields[0].Get<uint32>()), fields[2].Get<uint32>(), ObjectGuid::Create<HighGuid::Player>(fields[1].Get<uint32>()));
++count;
} while (result->NextRow());
diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp
index d06ca85ae9..84d3c55e53 100644
--- a/src/server/game/Pools/PoolMgr.cpp
+++ b/src/server/game/Pools/PoolMgr.cpp
@@ -463,7 +463,7 @@ void PoolGroup<Quest>::SpawnObject(ActivePoolData& spawns, uint32 limit, uint32
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_POOL_QUEST_SAVE);
- stmt->setUInt32(0, poolId);
+ stmt->SetData(0, poolId);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
@@ -471,7 +471,7 @@ void PoolGroup<Quest>::SpawnObject(ActivePoolData& spawns, uint32 limit, uint32
{
do
{
- uint32 questId = result->Fetch()[0].GetUInt32();
+ uint32 questId = result->Fetch()[0].Get<uint32>();
spawns.ActivateObject<Quest>(questId, poolId);
PoolObject tempObj(questId, 0.0f);
Spawn1Object(&tempObj);
@@ -591,10 +591,10 @@ void PoolMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 pool_id = fields[0].GetUInt32();
+ uint32 pool_id = fields[0].Get<uint32>();
PoolTemplateData& pPoolTemplate = mPoolTemplate[pool_id];
- pPoolTemplate.MaxLimit = fields[1].GetUInt32();
+ pPoolTemplate.MaxLimit = fields[1].Get<uint32>();
++count;
} while (result->NextRow());
@@ -624,9 +624,9 @@ void PoolMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint32 pool_id = fields[1].GetUInt32();
- float chance = fields[2].GetFloat();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint32 pool_id = fields[1].Get<uint32>();
+ float chance = fields[2].Get<float>();
CreatureData const* data = sObjectMgr->GetCreatureData(guid);
if (!data)
@@ -682,9 +682,9 @@ void PoolMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint32 pool_id = fields[1].GetUInt32();
- float chance = fields[2].GetFloat();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint32 pool_id = fields[1].Get<uint32>();
+ float chance = fields[2].Get<float>();
GameObjectData const* data = sObjectMgr->GetGOData(guid);
if (!data)
@@ -752,9 +752,9 @@ void PoolMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 child_pool_id = fields[0].GetUInt32();
- uint32 mother_pool_id = fields[1].GetUInt32();
- float chance = fields[2].GetFloat();
+ uint32 child_pool_id = fields[0].Get<uint32>();
+ uint32 mother_pool_id = fields[1].Get<uint32>();
+ float chance = fields[2].Get<float>();
{
auto it = mPoolTemplate.find(mother_pool_id);
@@ -853,8 +853,8 @@ void PoolMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
- uint32 pool_id = fields[1].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
+ uint32 pool_id = fields[1].Get<uint32>();
Quest const* quest = sObjectMgr->GetQuestTemplate(entry);
if (!quest)
@@ -933,15 +933,15 @@ void PoolMgr::LoadFromDB()
do
{
Field* fields = result->Fetch();
- uint32 pool_entry = fields[0].GetUInt32();
- uint32 pool_pool_id = fields[1].GetUInt32();
+ uint32 pool_entry = fields[0].Get<uint32>();
+ uint32 pool_pool_id = fields[1].Get<uint32>();
if (!CheckPool(pool_entry))
{
if (pool_pool_id)
// The pool is a child pool in pool_pool table. Ideally we should remove it from the pool handler to ensure it never gets spawned,
// however that could recursively invalidate entire chain of mother pools. It can be done in the future but for now we'll do nothing.
- LOG_ERROR("sql.sql", "Pool Id {} has no equal chance pooled entites defined and explicit chance sum is not 100. This broken pool is a child pool of Id {} and cannot be safely removed.", pool_entry, fields[2].GetUInt32());
+ LOG_ERROR("sql.sql", "Pool Id {} has no equal chance pooled entites defined and explicit chance sum is not 100. This broken pool is a child pool of Id {} and cannot be safely removed.", pool_entry, fields[2].Get<uint32>());
else
LOG_ERROR("sql.sql", "Pool Id {} has no equal chance pooled entites defined and explicit chance sum is not 100. The pool will not be spawned.", pool_entry);
continue;
@@ -985,7 +985,7 @@ void PoolMgr::SaveQuestsToDB(bool daily, bool weekly, bool other)
continue;
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_POOL_SAVE);
- stmt->setUInt32(0, itr->second.GetPoolId());
+ stmt->SetData(0, itr->second.GetPoolId());
trans->Append(stmt);
deletedPools.insert(itr->second.GetPoolId());
}
@@ -995,8 +995,8 @@ void PoolMgr::SaveQuestsToDB(bool daily, bool weekly, bool other)
if (IsSpawnedObject<Quest>(itr->first))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_QUEST_POOL_SAVE);
- stmt->setUInt32(0, itr->second);
- stmt->setUInt32(1, itr->first);
+ stmt->SetData(0, itr->second);
+ stmt->SetData(1, itr->first);
trans->Append(stmt);
}
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index aa9611d477..e28a7c4377 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -30,39 +30,39 @@ Quest::Quest(Field* questRecord)
_rewItemsCount = 0;
_rewChoiceItemsCount = 0;
- Id = questRecord[0].GetUInt32();
- Method = questRecord[1].GetUInt8();
- Level = questRecord[2].GetInt16();
- MinLevel = questRecord[3].GetUInt8();
- ZoneOrSort = questRecord[4].GetInt16();
- Type = questRecord[5].GetUInt16();
- SuggestedPlayers = questRecord[6].GetUInt8();
- TimeAllowed = questRecord[7].GetUInt32();
- AllowableRaces = questRecord[8].GetUInt16();
- RequiredFactionId1 = questRecord[9].GetUInt16();
- RequiredFactionId2 = questRecord[10].GetUInt16();
- RequiredFactionValue1 = questRecord[11].GetInt32();
- RequiredFactionValue2 = questRecord[12].GetInt32();
- RewardNextQuest = questRecord[13].GetUInt32();
- RewardXPDifficulty = questRecord[14].GetUInt8();
- RewardMoney = questRecord[15].GetInt32();
- RewardMoneyDifficulty = questRecord[16].GetUInt32();
- RewardBonusMoney = questRecord[17].GetUInt32();
- RewardDisplaySpell = questRecord[18].GetUInt32();
- RewardSpell = questRecord[19].GetInt32();
- RewardHonor = questRecord[20].GetUInt32();
- RewardKillHonor = questRecord[21].GetFloat();
- StartItem = questRecord[22].GetUInt32();
- Flags = questRecord[23].GetUInt32();
- RewardTitleId = questRecord[24].GetUInt8();
- RequiredPlayerKills = questRecord[25].GetUInt8();
- RewardTalents = questRecord[26].GetUInt8();
- RewardArenaPoints = questRecord[27].GetUInt16();
+ Id = questRecord[0].Get<uint32>();
+ Method = questRecord[1].Get<uint8>();
+ Level = questRecord[2].Get<int16>();
+ MinLevel = questRecord[3].Get<uint8>();
+ ZoneOrSort = questRecord[4].Get<int16>();
+ Type = questRecord[5].Get<uint16>();
+ SuggestedPlayers = questRecord[6].Get<uint8>();
+ TimeAllowed = questRecord[7].Get<uint32>();
+ AllowableRaces = questRecord[8].Get<uint16>();
+ RequiredFactionId1 = questRecord[9].Get<uint16>();
+ RequiredFactionId2 = questRecord[10].Get<uint16>();
+ RequiredFactionValue1 = questRecord[11].Get<int32>();
+ RequiredFactionValue2 = questRecord[12].Get<int32>();
+ RewardNextQuest = questRecord[13].Get<uint32>();
+ RewardXPDifficulty = questRecord[14].Get<uint8>();
+ RewardMoney = questRecord[15].Get<int32>();
+ RewardMoneyDifficulty = questRecord[16].Get<uint32>();
+ RewardBonusMoney = questRecord[17].Get<uint32>();
+ RewardDisplaySpell = questRecord[18].Get<uint32>();
+ RewardSpell = questRecord[19].Get<int32>();
+ RewardHonor = questRecord[20].Get<uint32>();
+ RewardKillHonor = questRecord[21].Get<float>();
+ StartItem = questRecord[22].Get<uint32>();
+ Flags = questRecord[23].Get<uint32>();
+ RewardTitleId = questRecord[24].Get<uint8>();
+ RequiredPlayerKills = questRecord[25].Get<uint8>();
+ RewardTalents = questRecord[26].Get<uint8>();
+ RewardArenaPoints = questRecord[27].Get<uint16>();
for (int i = 0; i < QUEST_REWARDS_COUNT; ++i)
{
- RewardItemId[i] = questRecord[28 + i * 2].GetUInt32();
- RewardItemIdCount[i] = questRecord[29 + i * 2].GetUInt16();
+ RewardItemId[i] = questRecord[28 + i * 2].Get<uint32>();
+ RewardItemIdCount[i] = questRecord[29 + i * 2].Get<uint16>();
if (RewardItemId[i])
++_rewItemsCount;
@@ -70,8 +70,8 @@ Quest::Quest(Field* questRecord)
for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
{
- RewardChoiceItemId[i] = questRecord[36 + i * 2].GetUInt32();
- RewardChoiceItemCount[i] = questRecord[37 + i * 2].GetUInt16();
+ RewardChoiceItemId[i] = questRecord[36 + i * 2].Get<uint32>();
+ RewardChoiceItemCount[i] = questRecord[37 + i * 2].Get<uint16>();
if (RewardChoiceItemId[i])
++_rewChoiceItemsCount;
@@ -79,26 +79,26 @@ Quest::Quest(Field* questRecord)
for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)
{
- RewardFactionId[i] = questRecord[48 + i * 3].GetUInt16();
- RewardFactionValueId[i] = questRecord[49 + i * 3].GetInt32();
- RewardFactionValueIdOverride[i] = questRecord[50 + i * 3].GetInt32();
+ RewardFactionId[i] = questRecord[48 + i * 3].Get<uint16>();
+ RewardFactionValueId[i] = questRecord[49 + i * 3].Get<int32>();
+ RewardFactionValueIdOverride[i] = questRecord[50 + i * 3].Get<int32>();
}
- POIContinent = questRecord[63].GetUInt16();
- POIx = questRecord[64].GetFloat();
- POIy = questRecord[65].GetFloat();
- POIPriority = questRecord[66].GetUInt32();
- Title = questRecord[67].GetString();
- Objectives = questRecord[68].GetString();
- Details = questRecord[69].GetString();
- AreaDescription = questRecord[70].GetString();
- CompletedText = questRecord[71].GetString();
+ POIContinent = questRecord[63].Get<uint16>();
+ POIx = questRecord[64].Get<float>();
+ POIy = questRecord[65].Get<float>();
+ POIPriority = questRecord[66].Get<uint32>();
+ Title = questRecord[67].Get<std::string>();
+ Objectives = questRecord[68].Get<std::string>();
+ Details = questRecord[69].Get<std::string>();
+ AreaDescription = questRecord[70].Get<std::string>();
+ CompletedText = questRecord[71].Get<std::string>();
for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
{
- RequiredNpcOrGo[i] = questRecord[72 + i].GetInt32();
- RequiredNpcOrGoCount[i] = questRecord[76 + i].GetUInt16();
- ObjectiveText[i] = questRecord[101 + i].GetString();
+ RequiredNpcOrGo[i] = questRecord[72 + i].Get<int32>();
+ RequiredNpcOrGoCount[i] = questRecord[76 + i].Get<uint16>();
+ ObjectiveText[i] = questRecord[101 + i].Get<std::string>();
if (RequiredNpcOrGo[i])
++_reqCreatureOrGOcount;
@@ -106,21 +106,21 @@ Quest::Quest(Field* questRecord)
for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
{
- ItemDrop[i] = questRecord[80 + i].GetUInt32();
- ItemDropQuantity[i] = questRecord[84 + i].GetUInt16();
+ ItemDrop[i] = questRecord[80 + i].Get<uint32>();
+ ItemDropQuantity[i] = questRecord[84 + i].Get<uint16>();
}
for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
{
- RequiredItemId[i] = questRecord[88 + i].GetUInt32();
- RequiredItemCount[i] = questRecord[94 + i].GetUInt16();
+ RequiredItemId[i] = questRecord[88 + i].Get<uint32>();
+ RequiredItemCount[i] = questRecord[94 + i].Get<uint16>();
if (RequiredItemId[i])
++_reqItemsCount;
}
- // int8 Unknown0 = questRecord[100].GetUInt8();
- // int32 VerifiedBuild = questRecord[105].GetInt32();
+ // int8 Unknown0 = questRecord[100].Get<uint8>();
+ // int32 VerifiedBuild = questRecord[105].Get<int32>();
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
{
@@ -136,49 +136,49 @@ Quest::Quest(Field* questRecord)
void Quest::LoadQuestDetails(Field* fields)
{
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
- DetailsEmote[i] = fields[1 + i].GetUInt16();
+ DetailsEmote[i] = fields[1 + i].Get<uint16>();
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
- DetailsEmoteDelay[i] = fields[5 + i].GetUInt32();
+ DetailsEmoteDelay[i] = fields[5 + i].Get<uint32>();
}
void Quest::LoadQuestRequestItems(Field* fields)
{
- EmoteOnComplete = fields[1].GetUInt16();
- EmoteOnIncomplete = fields[2].GetUInt16();
- RequestItemsText = fields[3].GetString();
+ EmoteOnComplete = fields[1].Get<uint16>();
+ EmoteOnIncomplete = fields[2].Get<uint16>();
+ RequestItemsText = fields[3].Get<std::string>();
}
void Quest::LoadQuestOfferReward(Field* fields)
{
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
- OfferRewardEmote[i] = fields[1 + i].GetUInt16();
+ OfferRewardEmote[i] = fields[1 + i].Get<uint16>();
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
- OfferRewardEmoteDelay[i] = fields[5 + i].GetUInt32();
+ OfferRewardEmoteDelay[i] = fields[5 + i].Get<uint32>();
- OfferRewardText = fields[9].GetString();
+ OfferRewardText = fields[9].Get<std::string>();
}
void Quest::LoadQuestTemplateAddon(Field* fields)
{
- MaxLevel = fields[1].GetUInt8();
- RequiredClasses = fields[2].GetUInt32();
- SourceSpellid = fields[3].GetUInt32();
- PrevQuestId = fields[4].GetInt32();
- NextQuestId = fields[5].GetUInt32();
- ExclusiveGroup = fields[6].GetInt32();
- RewardMailTemplateId = fields[7].GetUInt32();
- RewardMailDelay = fields[8].GetUInt32();
- RequiredSkillId = fields[9].GetUInt16();
- RequiredSkillPoints = fields[10].GetUInt16();
- RequiredMinRepFaction = fields[11].GetUInt16();
- RequiredMaxRepFaction = fields[12].GetUInt16();
- RequiredMinRepValue = fields[13].GetInt32();
- RequiredMaxRepValue = fields[14].GetInt32();
- StartItemCount = fields[15].GetUInt8();
- RewardMailSenderEntry = fields[16].GetUInt32();
- SpecialFlags = fields[17].GetUInt8();
+ MaxLevel = fields[1].Get<uint8>();
+ RequiredClasses = fields[2].Get<uint32>();
+ SourceSpellid = fields[3].Get<uint32>();
+ PrevQuestId = fields[4].Get<int32>();
+ NextQuestId = fields[5].Get<uint32>();
+ ExclusiveGroup = fields[6].Get<int32>();
+ RewardMailTemplateId = fields[7].Get<uint32>();
+ RewardMailDelay = fields[8].Get<uint32>();
+ RequiredSkillId = fields[9].Get<uint16>();
+ RequiredSkillPoints = fields[10].Get<uint16>();
+ RequiredMinRepFaction = fields[11].Get<uint16>();
+ RequiredMaxRepFaction = fields[12].Get<uint16>();
+ RequiredMinRepValue = fields[13].Get<int32>();
+ RequiredMaxRepValue = fields[14].Get<int32>();
+ StartItemCount = fields[15].Get<uint8>();
+ RewardMailSenderEntry = fields[16].Get<uint32>();
+ SpecialFlags = fields[17].Get<uint8>();
if (SpecialFlags & QUEST_SPECIAL_FLAGS_AUTO_ACCEPT)
Flags |= QUEST_FLAGS_AUTO_ACCEPT;
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index b53bcb1621..5496a86fce 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -522,7 +522,7 @@ void ReputationMgr::LoadFromDB(PreparedQueryResult result)
// Set initial reputations (so everything is nifty before DB data load)
Initialize();
- //QueryResult* result = CharacterDatabase.PQuery("SELECT faction, standing, flags FROM character_reputation WHERE guid = '%u'", GetGUID().GetCounter());
+ //QueryResult* result = CharacterDatabase.Query("SELECT faction, standing, flags FROM character_reputation WHERE guid = '{}'", GetGUID().GetCounter());
if (result)
{
@@ -530,13 +530,13 @@ void ReputationMgr::LoadFromDB(PreparedQueryResult result)
{
Field* fields = result->Fetch();
- FactionEntry const* factionEntry = sFactionStore.LookupEntry(fields[0].GetUInt16());
+ FactionEntry const* factionEntry = sFactionStore.LookupEntry(fields[0].Get<uint16>());
if (factionEntry && (factionEntry->reputationListID >= 0))
{
FactionState* faction = &_factions[factionEntry->reputationListID];
// update standing to current
- faction->Standing = fields[1].GetInt32();
+ faction->Standing = fields[1].Get<int32>();
// update counters
int32 BaseRep = GetBaseReputation(factionEntry);
@@ -544,7 +544,7 @@ void ReputationMgr::LoadFromDB(PreparedQueryResult result)
ReputationRank new_rank = ReputationToRank(BaseRep + faction->Standing);
UpdateRankCounters(old_rank, new_rank);
- uint32 dbFactionFlags = fields[2].GetUInt16();
+ uint32 dbFactionFlags = fields[2].Get<uint16>();
if (dbFactionFlags & FACTION_FLAG_VISIBLE)
SetVisible(faction); // have internal checks for forced invisibility
@@ -586,15 +586,15 @@ void ReputationMgr::SaveToDB(CharacterDatabaseTransaction trans)
if (itr->second.needSave)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_REPUTATION_BY_FACTION);
- stmt->setUInt32(0, _player->GetGUID().GetCounter());
- stmt->setUInt16(1, uint16(itr->second.ID));
+ stmt->SetData(0, _player->GetGUID().GetCounter());
+ stmt->SetData(1, uint16(itr->second.ID));
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_REPUTATION_BY_FACTION);
- stmt->setUInt32(0, _player->GetGUID().GetCounter());
- stmt->setUInt16(1, uint16(itr->second.ID));
- stmt->setInt32(2, itr->second.Standing);
- stmt->setUInt16(3, uint16(itr->second.Flags));
+ stmt->SetData(0, _player->GetGUID().GetCounter());
+ stmt->SetData(1, uint16(itr->second.ID));
+ stmt->SetData(2, itr->second.Standing);
+ stmt->SetData(3, uint16(itr->second.Flags));
trans->Append(stmt);
itr->second.needSave = false;
diff --git a/src/server/game/Scripting/ScriptSystem.cpp b/src/server/game/Scripting/ScriptSystem.cpp
index 639f103282..73760cb8c3 100644
--- a/src/server/game/Scripting/ScriptSystem.cpp
+++ b/src/server/game/Scripting/ScriptSystem.cpp
@@ -60,13 +60,13 @@ void SystemMgr::LoadScriptWaypoints()
Field* pFields = result->Fetch();
ScriptPointMove temp;
- temp.uiCreatureEntry = pFields[0].GetUInt32();
+ temp.uiCreatureEntry = pFields[0].Get<uint32>();
uint32 uiEntry = temp.uiCreatureEntry;
- temp.uiPointId = pFields[1].GetUInt32();
- temp.fX = pFields[2].GetFloat();
- temp.fY = pFields[3].GetFloat();
- temp.fZ = pFields[4].GetFloat();
- temp.uiWaitTime = pFields[5].GetUInt32();
+ temp.uiPointId = pFields[1].Get<uint32>();
+ temp.fX = pFields[2].Get<float>();
+ temp.fY = pFields[3].Get<float>();
+ temp.fZ = pFields[4].Get<float>();
+ temp.uiWaitTime = pFields[5].Get<uint32>();
CreatureTemplate const* pCInfo = sObjectMgr->GetCreatureTemplate(temp.uiCreatureEntry);
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 6eeecbfd8c..c07b31b6da 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -147,14 +147,14 @@ WorldSession::WorldSession(uint32 id, std::string&& name, std::shared_ptr<WorldS
{
m_Address = sock->GetRemoteIpAddress().to_string();
ResetTimeOutTime(false);
- LoginDatabase.PExecute("UPDATE account SET online = 1 WHERE id = %u;", GetAccountId()); // One-time query
+ LoginDatabase.Execute("UPDATE account SET online = 1 WHERE id = {};", GetAccountId()); // One-time query
}
}
/// WorldSession destructor
WorldSession::~WorldSession()
{
- LoginDatabase.PExecute("UPDATE account SET totaltime = %u WHERE id = %u", GetTotalTime(), GetAccountId());
+ LoginDatabase.Execute("UPDATE account SET totaltime = {} WHERE id = {}", GetTotalTime(), GetAccountId());
///- unload player if not unloaded
if (_player)
@@ -173,7 +173,7 @@ WorldSession::~WorldSession()
delete packet;
if (GetShouldSetOfflineInDB())
- LoginDatabase.PExecute("UPDATE account SET online = 0 WHERE id = %u;", GetAccountId()); // One-time query
+ LoginDatabase.Execute("UPDATE account SET online = 0 WHERE id = {};", GetAccountId()); // One-time query
}
std::string const& WorldSession::GetPlayerName() const
@@ -595,8 +595,8 @@ void WorldSession::LogoutPlayer(bool save)
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_TRACK_DESERTERS))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_DESERTER_TRACK);
- stmt->setUInt32(0, _player->GetGUID().GetCounter());
- stmt->setUInt8(1, BG_DESERTION_TYPE_INVITE_LOGOUT);
+ stmt->SetData(0, _player->GetGUID().GetCounter());
+ stmt->SetData(1, BG_DESERTION_TYPE_INVITE_LOGOUT);
CharacterDatabase.Execute(stmt);
}
sScriptMgr->OnBattlegroundDesertion(_player, BG_DESERTION_TYPE_INVITE_LOGOUT);
@@ -694,7 +694,7 @@ void WorldSession::LogoutPlayer(bool save)
//! Since each account can only have one online character at any given time, ensure all characters for active account are marked as offline
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ACCOUNT_ONLINE);
- stmt->setUInt32(0, GetAccountId());
+ stmt->SetData(0, GetAccountId());
CharacterDatabase.Execute(stmt);
}
@@ -831,7 +831,7 @@ void WorldSession::SendAuthWaitQueue(uint32 position)
void WorldSession::LoadGlobalAccountData()
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ACCOUNT_DATA);
- stmt->setUInt32(0, GetAccountId());
+ stmt->SetData(0, GetAccountId());
LoadAccountData(CharacterDatabase.Query(stmt), GLOBAL_CACHE_MASK);
}
@@ -847,7 +847,7 @@ void WorldSession::LoadAccountData(PreparedQueryResult result, uint32 mask)
do
{
Field* fields = result->Fetch();
- uint32 type = fields[0].GetUInt8();
+ uint32 type = fields[0].Get<uint8>();
if (type >= NUM_ACCOUNT_DATA_TYPES)
{
LOG_ERROR("network", "Table `{}` have invalid account data type ({}), ignore.", mask == GLOBAL_CACHE_MASK ? "account_data" : "character_account_data", type);
@@ -860,8 +860,8 @@ void WorldSession::LoadAccountData(PreparedQueryResult result, uint32 mask)
continue;
}
- m_accountData[type].Time = time_t(fields[1].GetUInt32());
- m_accountData[type].Data = fields[2].GetString();
+ m_accountData[type].Time = time_t(fields[1].Get<uint32>());
+ m_accountData[type].Data = fields[2].Get<std::string>();
} while (result->NextRow());
}
@@ -885,10 +885,10 @@ void WorldSession::SetAccountData(AccountDataType type, time_t tm, std::string c
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(index);
- stmt->setUInt32(0, id);
- stmt->setUInt8(1, type);
- stmt->setUInt32(2, uint32(tm));
- stmt->setString(3, data);
+ stmt->SetData(0, id);
+ stmt->SetData(1, type);
+ stmt->SetData(2, uint32(tm));
+ stmt->SetData(3, data);
CharacterDatabase.Execute(stmt);
m_accountData[type].Time = tm;
@@ -912,10 +912,10 @@ void WorldSession::LoadTutorialsData()
memset(m_Tutorials, 0, sizeof(uint32) * MAX_ACCOUNT_TUTORIAL_VALUES);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_TUTORIALS);
- stmt->setUInt32(0, GetAccountId());
+ stmt->SetData(0, GetAccountId());
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
for (uint8 i = 0; i < MAX_ACCOUNT_TUTORIAL_VALUES; ++i)
- m_Tutorials[i] = (*result)[i].GetUInt32();
+ m_Tutorials[i] = (*result)[i].Get<uint32>();
m_TutorialsChanged = false;
}
@@ -934,14 +934,14 @@ void WorldSession::SaveTutorialsData(CharacterDatabaseTransaction trans)
return;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_HAS_TUTORIALS);
- stmt->setUInt32(0, GetAccountId());
+ stmt->SetData(0, GetAccountId());
bool hasTutorials = bool(CharacterDatabase.Query(stmt));
stmt = CharacterDatabase.GetPreparedStatement(hasTutorials ? CHAR_UPD_TUTORIALS : CHAR_INS_TUTORIALS);
for (uint8 i = 0; i < MAX_ACCOUNT_TUTORIAL_VALUES; ++i)
- stmt->setUInt32(i, m_Tutorials[i]);
- stmt->setUInt32(MAX_ACCOUNT_TUTORIAL_VALUES, GetAccountId());
+ stmt->SetData(i, m_Tutorials[i]);
+ stmt->SetData(MAX_ACCOUNT_TUTORIAL_VALUES, GetAccountId());
trans->Append(stmt);
m_TutorialsChanged = false;
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 5962dbea09..68132a8749 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -48,7 +48,7 @@ void WorldSocket::Start()
std::string ip_address = GetRemoteIpAddress().to_string();
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_IP_INFO);
- stmt->setString(0, ip_address);
+ stmt->SetData(0, ip_address);
_queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&WorldSocket::CheckIpCallback, this, std::placeholders::_1)));
}
@@ -61,7 +61,7 @@ void WorldSocket::CheckIpCallback(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- if (fields[0].GetUInt64() != 0)
+ if (fields[0].Get<uint64>() != 0)
banned = true;
} while (result->NextRow());
@@ -278,20 +278,20 @@ struct AccountInfo
// LEFT JOIN account_banned ab ON a.id = ab.id
// LEFT JOIN account r ON a.id = r.recruiter
// WHERE a.username = ? ORDER BY aa.RealmID DESC LIMIT 1
- Id = fields[0].GetUInt32();
- SessionKey = fields[1].GetBinary<SESSION_KEY_LENGTH>();
- LastIP = fields[2].GetString();
- IsLockedToIP = fields[3].GetBool();
- LockCountry = fields[4].GetString();
- Expansion = fields[5].GetUInt8();
- MuteTime = fields[6].GetInt64();
- Locale = LocaleConstant(fields[7].GetUInt8());
- Recruiter = fields[8].GetUInt32();
- OS = fields[9].GetString();
- TotalTime = fields[10].GetUInt32();
- Security = AccountTypes(fields[11].GetUInt8());
- IsBanned = fields[12].GetUInt64() != 0;
- IsRectuiter = fields[13].GetUInt32() != 0;
+ Id = fields[0].Get<uint32>();
+ SessionKey = fields[1].Get<Binary, SESSION_KEY_LENGTH>();
+ LastIP = fields[2].Get<std::string>();
+ IsLockedToIP = fields[3].Get<bool>();
+ LockCountry = fields[4].Get<std::string>();
+ Expansion = fields[5].Get<uint8>();
+ MuteTime = fields[6].Get<int64>();
+ Locale = LocaleConstant(fields[7].Get<uint8>());
+ Recruiter = fields[8].Get<uint32>();
+ OS = fields[9].Get<std::string>();
+ TotalTime = fields[10].Get<uint32>();
+ Security = AccountTypes(fields[11].Get<uint8>());
+ IsBanned = fields[12].Get<uint64>() != 0;
+ IsRectuiter = fields[13].Get<uint32>() != 0;
uint32 world_expansion = sWorld->getIntConfig(CONFIG_EXPANSION);
if (Expansion > world_expansion)
@@ -443,8 +443,8 @@ void WorldSocket::HandleAuthSession(WorldPacket & recvPacket)
// Get the account information from the auth database
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_INFO_BY_NAME);
- stmt->setInt32(0, int32(realm.Id.Realm));
- stmt->setString(1, authSession->Account);
+ stmt->SetData(0, int32(realm.Id.Realm));
+ stmt->SetData(1, authSession->Account);
_queryProcessor.AddCallback(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&WorldSocket::HandleAuthSessionCallback, this, authSession, std::placeholders::_1)));
}
@@ -470,8 +470,8 @@ void WorldSocket::HandleAuthSessionCallback(std::shared_ptr<AuthSession> authSes
// As we don't know if attempted login process by ip works, we update last_attempt_ip right away
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LAST_ATTEMPT_IP);
- stmt->setString(0, address);
- stmt->setString(1, authSession->Account);
+ stmt->SetData(0, address);
+ stmt->SetData(1, authSession->Account);
LoginDatabase.Execute(stmt);
// This also allows to check for possible "hack" attempts on account
@@ -560,8 +560,8 @@ void WorldSocket::HandleAuthSessionCallback(std::shared_ptr<AuthSession> authSes
account.MuteTime = GameTime::GetGameTime().count() + llabs(account.MuteTime);
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME_LOGIN);
- stmt->setInt64(0, account.MuteTime);
- stmt->setUInt32(1, account.Id);
+ stmt->SetData(0, account.MuteTime);
+ stmt->SetData(1, account.Id);
LoginDatabase.Execute(stmt);
}
@@ -590,8 +590,8 @@ void WorldSocket::HandleAuthSessionCallback(std::shared_ptr<AuthSession> authSes
// Update the last_ip in the database as it was successful for login
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LAST_IP);
- stmt->setString(0, address);
- stmt->setString(1, authSession->Account);
+ stmt->SetData(0, address);
+ stmt->SetData(1, authSession->Account);
LoginDatabase.Execute(stmt);
diff --git a/src/server/game/Skills/SkillDiscovery.cpp b/src/server/game/Skills/SkillDiscovery.cpp
index b508b12971..1ec03570d9 100644
--- a/src/server/game/Skills/SkillDiscovery.cpp
+++ b/src/server/game/Skills/SkillDiscovery.cpp
@@ -68,10 +68,10 @@ void LoadSkillDiscoveryTable()
{
Field* fields = result->Fetch();
- uint32 spellId = fields[0].GetUInt32();
- int32 reqSkillOrSpell = fields[1].GetInt32();
- uint32 reqSkillValue = fields[2].GetUInt16();
- float chance = fields[3].GetFloat();
+ uint32 spellId = fields[0].Get<uint32>();
+ int32 reqSkillOrSpell = fields[1].Get<int32>();
+ uint32 reqSkillValue = fields[2].Get<uint16>();
+ float chance = fields[3].Get<float>();
if (chance <= 0) // chance
{
diff --git a/src/server/game/Skills/SkillExtraItems.cpp b/src/server/game/Skills/SkillExtraItems.cpp
index 2e9ce2e5d0..763d229e3a 100644
--- a/src/server/game/Skills/SkillExtraItems.cpp
+++ b/src/server/game/Skills/SkillExtraItems.cpp
@@ -71,7 +71,7 @@ void LoadSkillPerfectItemTable()
{
Field* fields = result->Fetch();
- uint32 spellId = fields[0].GetUInt32();
+ uint32 spellId = fields[0].Get<uint32>();
if (!sSpellMgr->GetSpellInfo(spellId))
{
@@ -79,21 +79,21 @@ void LoadSkillPerfectItemTable()
continue;
}
- uint32 requiredSpecialization = fields[1].GetUInt32();
+ uint32 requiredSpecialization = fields[1].Get<uint32>();
if (!sSpellMgr->GetSpellInfo(requiredSpecialization))
{
LOG_ERROR("sql.sql", "Skill perfection data for spell {} has non-existent required specialization spell id {} in `skill_perfect_item_template`!", spellId, requiredSpecialization);
continue;
}
- float perfectCreateChance = fields[2].GetFloat();
+ float perfectCreateChance = fields[2].Get<float>();
if (perfectCreateChance <= 0.0f)
{
LOG_ERROR("sql.sql", "Skill perfection data for spell {} has impossibly low proc chance in `skill_perfect_item_template`!", spellId);
continue;
}
- uint32 perfectItemType = fields[3].GetUInt32();
+ uint32 perfectItemType = fields[3].Get<uint32>();
if (!sObjectMgr->GetItemTemplate(perfectItemType))
{
LOG_ERROR("sql.sql", "Skill perfection data for spell {} references non-existent perfect item id {} in `skill_perfect_item_template`!", spellId, perfectItemType);
@@ -157,7 +157,7 @@ void LoadSkillExtraItemTable()
{
Field* fields = result->Fetch();
- uint32 spellId = fields[0].GetUInt32();
+ uint32 spellId = fields[0].Get<uint32>();
if (!sSpellMgr->GetSpellInfo(spellId))
{
@@ -165,21 +165,21 @@ void LoadSkillExtraItemTable()
continue;
}
- uint32 requiredSpecialization = fields[1].GetUInt32();
+ uint32 requiredSpecialization = fields[1].Get<uint32>();
if (!sSpellMgr->GetSpellInfo(requiredSpecialization))
{
LOG_ERROR("sql.sql", "Skill specialization {} have not existed required specialization spell id {} in `skill_extra_item_template`!", spellId, requiredSpecialization);
continue;
}
- float additionalCreateChance = fields[2].GetFloat();
+ float additionalCreateChance = fields[2].Get<float>();
if (additionalCreateChance <= 0.0f)
{
LOG_ERROR("sql.sql", "Skill specialization {} has too low additional create chance in `skill_extra_item_template`!", spellId);
continue;
}
- int32 newMaxOrEntry = fields[3].GetInt32();
+ int32 newMaxOrEntry = fields[3].Get<int32>();
if (!newMaxOrEntry)
{
LOG_ERROR("sql.sql", "Skill specialization {} has 0 max number of extra items in `skill_extra_item_template`!", spellId);
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index bb41cccc21..f3c569c534 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -452,7 +452,7 @@ void DeleteSpellFromAllPlayers(uint32 spellId)
for (uint8 i = 0; i < 2; i++)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(stmts[i]);
- stmt->setUInt32(0, spellId);
+ stmt->SetData(0, spellId);
CharacterDatabase.Execute(stmt);
}
}
@@ -1320,11 +1320,11 @@ void SpellMgr::LoadSpellRanks()
{
Field* fields = result->Fetch();
- currentSpell = fields[0].GetUInt32();
+ currentSpell = fields[0].Get<uint32>();
if (lastSpell == -1)
lastSpell = currentSpell;
- uint32 spell_id = fields[1].GetUInt32();
- uint32 rank = fields[2].GetUInt8();
+ uint32 spell_id = fields[1].Get<uint32>();
+ uint32 rank = fields[2].Get<uint8>();
// don't drop the row if we're moving to the next rank
if (currentSpell == lastSpell)
@@ -1421,8 +1421,8 @@ void SpellMgr::LoadSpellRequired()
{
Field* fields = result->Fetch();
- uint32 spellId = fields[0].GetUInt32();
- uint32 spellReq = fields[1].GetUInt32();
+ uint32 spellId = fields[0].Get<uint32>();
+ uint32 spellReq = fields[1].Get<uint32>();
// check if chain is made with valid first spell
SpellInfo const* spellInfo = GetSpellInfo(spellId);
@@ -1538,17 +1538,17 @@ void SpellMgr::LoadSpellTargetPositions()
{
Field* fields = result->Fetch();
- uint32 Spell_ID = fields[0].GetUInt32();
+ uint32 Spell_ID = fields[0].Get<uint32>();
- SpellEffIndex effIndex = SpellEffIndex(fields[1].GetUInt8());
+ SpellEffIndex effIndex = SpellEffIndex(fields[1].Get<uint8>());
SpellTargetPosition st;
- st.target_mapId = fields[2].GetUInt16();
- st.target_X = fields[3].GetFloat();
- st.target_Y = fields[4].GetFloat();
- st.target_Z = fields[5].GetFloat();
- st.target_Orientation = fields[6].GetFloat();
+ st.target_mapId = fields[2].Get<uint16>();
+ st.target_X = fields[3].Get<float>();
+ st.target_Y = fields[4].Get<float>();
+ st.target_Z = fields[5].Get<float>();
+ st.target_Orientation = fields[6].Get<float>();
MapEntry const* mapEntry = sMapStore.LookupEntry(st.target_mapId);
if (!mapEntry)
@@ -1642,9 +1642,9 @@ void SpellMgr::LoadSpellGroups()
{
Field* fields = result->Fetch();
- uint32 group_id = fields[0].GetUInt32();
- int32 spell_id = fields[1].GetUInt32();
- SpellGroupSpecialFlags specialFlag = (SpellGroupSpecialFlags)fields[2].GetUInt32();
+ uint32 group_id = fields[0].Get<uint32>();
+ int32 spell_id = fields[1].Get<uint32>();
+ SpellGroupSpecialFlags specialFlag = (SpellGroupSpecialFlags)fields[2].Get<uint32>();
SpellInfo const* spellInfo = GetSpellInfo(spell_id);
if (!spellInfo)
@@ -1702,8 +1702,8 @@ void SpellMgr::LoadSpellGroupStackRules()
{
Field* fields = result->Fetch();
- uint32 group_id = fields[0].GetUInt32();
- uint8 stack_rule = fields[1].GetInt8();
+ uint32 group_id = fields[0].Get<uint32>();
+ uint8 stack_rule = fields[1].Get<int8>();
if (stack_rule >= SPELL_GROUP_STACK_FLAG_MAX)
{
LOG_ERROR("sql.sql", "SpellGroupStackRule {} listed in `spell_group_stack_rules` does not exist", stack_rule);
@@ -1753,7 +1753,7 @@ void SpellMgr::LoadSpellProcEvents()
{
Field* fields = result->Fetch();
- int32 spellId = fields[0].GetInt32();
+ int32 spellId = fields[0].Get<int32>();
bool allRanks = false;
if (spellId < 0)
@@ -1783,17 +1783,17 @@ void SpellMgr::LoadSpellProcEvents()
SpellProcEventEntry spellProcEvent;
- spellProcEvent.schoolMask = fields[1].GetInt8();
- spellProcEvent.spellFamilyName = fields[2].GetUInt16();
- spellProcEvent.spellFamilyMask[0] = fields[3].GetUInt32();
- spellProcEvent.spellFamilyMask[1] = fields[4].GetUInt32();
- spellProcEvent.spellFamilyMask[2] = fields[5].GetUInt32();
- spellProcEvent.procFlags = fields[6].GetUInt32();
- spellProcEvent.procEx = fields[7].GetUInt32();
- spellProcEvent.procPhase = fields[8].GetUInt32();
- spellProcEvent.ppmRate = fields[9].GetFloat();
- spellProcEvent.customChance = fields[10].GetFloat();
- spellProcEvent.cooldown = fields[11].GetUInt32();
+ spellProcEvent.schoolMask = fields[1].Get<int8>();
+ spellProcEvent.spellFamilyName = fields[2].Get<uint16>();
+ spellProcEvent.spellFamilyMask[0] = fields[3].Get<uint32>();
+ spellProcEvent.spellFamilyMask[1] = fields[4].Get<uint32>();
+ spellProcEvent.spellFamilyMask[2] = fields[5].Get<uint32>();
+ spellProcEvent.procFlags = fields[6].Get<uint32>();
+ spellProcEvent.procEx = fields[7].Get<uint32>();
+ spellProcEvent.procPhase = fields[8].Get<uint32>();
+ spellProcEvent.ppmRate = fields[9].Get<float>();
+ spellProcEvent.customChance = fields[10].Get<float>();
+ spellProcEvent.cooldown = fields[11].Get<uint32>();
// PROC_SPELL_PHASE_NONE is by default PROC_SPELL_PHASE_HIT
if (spellProcEvent.procPhase == PROC_SPELL_PHASE_NONE)
@@ -1847,7 +1847,7 @@ void SpellMgr::LoadSpellProcs()
{
Field* fields = result->Fetch();
- int32 spellId = fields[0].GetInt32();
+ int32 spellId = fields[0].Get<int32>();
bool allRanks = false;
if (spellId < 0)
@@ -1867,28 +1867,28 @@ void SpellMgr::LoadSpellProcs()
{
if (spellInfo->GetFirstRankSpell()->Id != uint32(spellId))
{
- LOG_ERROR("sql.sql", "Spell {} listed in `spell_proc` is not first rank of spell.", fields[0].GetInt32());
+ LOG_ERROR("sql.sql", "Spell {} listed in `spell_proc` is not first rank of spell.", fields[0].Get<int32>());
continue;
}
}
SpellProcEntry baseProcEntry;
- baseProcEntry.schoolMask = fields[1].GetInt8();
- baseProcEntry.spellFamilyName = fields[2].GetUInt16();
- baseProcEntry.spellFamilyMask[0] = fields[3].GetUInt32();
- baseProcEntry.spellFamilyMask[1] = fields[4].GetUInt32();
- baseProcEntry.spellFamilyMask[2] = fields[5].GetUInt32();
- baseProcEntry.typeMask = fields[6].GetUInt32();
- baseProcEntry.spellTypeMask = fields[7].GetUInt32();
- baseProcEntry.spellPhaseMask = fields[8].GetUInt32();
- baseProcEntry.hitMask = fields[9].GetUInt32();
- baseProcEntry.attributesMask = fields[10].GetUInt32();
- baseProcEntry.ratePerMinute = fields[11].GetFloat();
- baseProcEntry.chance = fields[12].GetFloat();
- float cooldown = fields[13].GetFloat();
+ baseProcEntry.schoolMask = fields[1].Get<int8>();
+ baseProcEntry.spellFamilyName = fields[2].Get<uint16>();
+ baseProcEntry.spellFamilyMask[0] = fields[3].Get<uint32>();
+ baseProcEntry.spellFamilyMask[1] = fields[4].Get<uint32>();
+ baseProcEntry.spellFamilyMask[2] = fields[5].Get<uint32>();
+ baseProcEntry.typeMask = fields[6].Get<uint32>();
+ baseProcEntry.spellTypeMask = fields[7].Get<uint32>();
+ baseProcEntry.spellPhaseMask = fields[8].Get<uint32>();
+ baseProcEntry.hitMask = fields[9].Get<uint32>();
+ baseProcEntry.attributesMask = fields[10].Get<uint32>();
+ baseProcEntry.ratePerMinute = fields[11].Get<float>();
+ baseProcEntry.chance = fields[12].Get<float>();
+ float cooldown = fields[13].Get<float>();
baseProcEntry.cooldown = uint32(cooldown);
- baseProcEntry.charges = fields[14].GetUInt32();
+ baseProcEntry.charges = fields[14].Get<uint32>();
while (spellInfo)
{
@@ -1984,7 +1984,7 @@ void SpellMgr::LoadSpellBonusess()
do
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
SpellInfo const* spell = GetSpellInfo(entry);
if (!spell)
@@ -1994,10 +1994,10 @@ void SpellMgr::LoadSpellBonusess()
}
SpellBonusEntry& sbe = mSpellBonusMap[entry];
- sbe.direct_damage = fields[1].GetFloat();
- sbe.dot_damage = fields[2].GetFloat();
- sbe.ap_bonus = fields[3].GetFloat();
- sbe.ap_dot_bonus = fields[4].GetFloat();
+ sbe.direct_damage = fields[1].Get<float>();
+ sbe.dot_damage = fields[2].Get<float>();
+ sbe.ap_bonus = fields[3].Get<float>();
+ sbe.ap_dot_bonus = fields[4].Get<float>();
++count;
} while (result->NextRow());
@@ -2026,7 +2026,7 @@ void SpellMgr::LoadSpellThreats()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
if (!GetSpellInfo(entry))
{
@@ -2035,9 +2035,9 @@ void SpellMgr::LoadSpellThreats()
}
SpellThreatEntry ste;
- ste.flatMod = fields[1].GetInt32();
- ste.pctMod = fields[2].GetFloat();
- ste.apPctMod = fields[3].GetFloat();
+ ste.flatMod = fields[1].Get<int32>();
+ ste.pctMod = fields[2].Get<float>();
+ ste.apPctMod = fields[3].Get<float>();
mSpellThreatMap[entry] = ste;
++count;
@@ -2067,7 +2067,7 @@ void SpellMgr::LoadSpellMixology()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 entry = fields[0].Get<uint32>();
if (!GetSpellInfo(entry))
{
@@ -2075,7 +2075,7 @@ void SpellMgr::LoadSpellMixology()
continue;
}
- mSpellMixologyMap[entry] = fields[1].GetFloat();
+ mSpellMixologyMap[entry] = fields[1].Get<float>();
++count;
} while (result->NextRow());
@@ -2125,10 +2125,10 @@ void SpellMgr::LoadSpellPetAuras()
{
Field* fields = result->Fetch();
- uint32 spell = fields[0].GetUInt32();
- uint8 eff = fields[1].GetUInt8();
- uint32 pet = fields[2].GetUInt32();
- uint32 aura = fields[3].GetUInt32();
+ uint32 spell = fields[0].Get<uint32>();
+ uint8 eff = fields[1].Get<uint8>();
+ uint32 pet = fields[2].Get<uint32>();
+ uint32 aura = fields[3].Get<uint32>();
SpellPetAuraMap::iterator itr = mSpellPetAuraMap.find((spell << 8) + eff);
if (itr != mSpellPetAuraMap.end())
@@ -2229,7 +2229,7 @@ void SpellMgr::LoadSpellEnchantProcData()
{
Field* fields = result->Fetch();
- uint32 enchantId = fields[0].GetUInt32();
+ uint32 enchantId = fields[0].Get<uint32>();
SpellItemEnchantmentEntry const* ench = sSpellItemEnchantmentStore.LookupEntry(enchantId);
if (!ench)
@@ -2240,9 +2240,9 @@ void SpellMgr::LoadSpellEnchantProcData()
SpellEnchantProcEntry spe;
- spe.customChance = fields[1].GetUInt32();
- spe.PPMChance = fields[2].GetFloat();
- spe.procEx = fields[3].GetUInt32();
+ spe.customChance = fields[1].Get<uint32>();
+ spe.PPMChance = fields[2].Get<float>();
+ spe.procEx = fields[3].Get<uint32>();
mSpellEnchantProcEventMap[enchantId] = spe;
@@ -2273,9 +2273,9 @@ void SpellMgr::LoadSpellLinked()
{
Field* fields = result->Fetch();
- int32 trigger = fields[0].GetInt32();
- int32 effect = fields[1].GetInt32();
- int32 type = fields[2].GetUInt8();
+ int32 trigger = fields[0].Get<int32>();
+ int32 effect = fields[1].Get<int32>();
+ int32 type = fields[2].Get<uint8>();
SpellInfo const* spellInfo = GetSpellInfo(std::abs(trigger));
if (!spellInfo)
@@ -2515,18 +2515,18 @@ void SpellMgr::LoadSpellAreas()
{
Field* fields = result->Fetch();
- uint32 spell = fields[0].GetUInt32();
+ uint32 spell = fields[0].Get<uint32>();
SpellArea spellArea;
spellArea.spellId = spell;
- spellArea.areaId = fields[1].GetUInt32();
- spellArea.questStart = fields[2].GetUInt32();
- spellArea.questStartStatus = fields[3].GetUInt32();
- spellArea.questEndStatus = fields[4].GetUInt32();
- spellArea.questEnd = fields[5].GetUInt32();
- spellArea.auraSpell = fields[6].GetInt32();
- spellArea.raceMask = fields[7].GetUInt32();
- spellArea.gender = Gender(fields[8].GetUInt8());
- spellArea.autocast = fields[9].GetBool();
+ spellArea.areaId = fields[1].Get<uint32>();
+ spellArea.questStart = fields[2].Get<uint32>();
+ spellArea.questStartStatus = fields[3].Get<uint32>();
+ spellArea.questEndStatus = fields[4].Get<uint32>();
+ spellArea.questEnd = fields[5].Get<uint32>();
+ spellArea.auraSpell = fields[6].Get<int32>();
+ spellArea.raceMask = fields[7].Get<uint32>();
+ spellArea.gender = Gender(fields[8].Get<uint8>());
+ spellArea.autocast = fields[9].Get<bool>();
if (SpellInfo const* spellInfo = GetSpellInfo(spell))
{
@@ -2772,8 +2772,8 @@ void SpellMgr::LoadSpellCustomAttr()
{
Field const* fields = result->Fetch();
- uint32 const spellId = fields[0].GetUInt32();
- uint32 attributes = fields[1].GetUInt32();
+ uint32 const spellId = fields[0].Get<uint32>();
+ uint32 attributes = fields[1].Get<uint32>();
SpellInfo* spellInfo = _GetSpellInfo(spellId);
if (!spellInfo)
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index 086367ba2b..eda2f978df 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -102,18 +102,18 @@ void CreatureTextMgr::LoadCreatureTexts()
Field* fields = result->Fetch();
CreatureTextEntry temp;
- temp.entry = fields[0].GetUInt32();
- temp.group = fields[1].GetUInt8();
- temp.id = fields[2].GetUInt8();
- temp.text = fields[3].GetString();
- temp.type = ChatMsg(fields[4].GetUInt8());
- temp.lang = Language(fields[5].GetUInt8());
- temp.probability = fields[6].GetFloat();
- temp.emote = Emote(fields[7].GetUInt32());
- temp.duration = fields[8].GetUInt32();
- temp.sound = fields[9].GetUInt32();
- temp.BroadcastTextId = fields[10].GetUInt32();
- temp.TextRange = CreatureTextRange(fields[11].GetUInt8());
+ temp.entry = fields[0].Get<uint32>();
+ temp.group = fields[1].Get<uint8>();
+ temp.id = fields[2].Get<uint8>();
+ temp.text = fields[3].Get<std::string>();
+ temp.type = ChatMsg(fields[4].Get<uint8>());
+ temp.lang = Language(fields[5].Get<uint8>());
+ temp.probability = fields[6].Get<float>();
+ temp.emote = Emote(fields[7].Get<uint32>());
+ temp.duration = fields[8].Get<uint32>();
+ temp.sound = fields[9].Get<uint32>();
+ temp.BroadcastTextId = fields[10].Get<uint32>();
+ temp.TextRange = CreatureTextRange(fields[11].Get<uint8>());
if (temp.sound)
{
@@ -180,16 +180,16 @@ void CreatureTextMgr::LoadCreatureTextLocales()
{
Field* fields = result->Fetch();
- uint32 CreatureId = fields[0].GetUInt32();
- uint32 GroupId = fields[1].GetUInt8();
- uint32 ID = fields[2].GetUInt8();
+ uint32 CreatureId = fields[0].Get<uint32>();
+ uint32 GroupId = fields[1].Get<uint8>();
+ uint32 ID = fields[2].Get<uint8>();
- LocaleConstant locale = GetLocaleByName(fields[3].GetString());
+ LocaleConstant locale = GetLocaleByName(fields[3].Get<std::string>());
if (locale == LOCALE_enUS)
continue;
CreatureTextLocale& data = mLocaleTextMap[CreatureTextId(CreatureId, GroupId, ID)];
- ObjectMgr::AddLocaleString(fields[4].GetString(), locale, data.Text);
+ ObjectMgr::AddLocaleString(fields[4].Get<std::string>(), locale, data.Text);
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} Creature Text Locale in {} ms", uint32(mLocaleTextMap.size()), GetMSTimeDiffToNow(oldMSTime));
diff --git a/src/server/game/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp
index 711b286f8f..6cf59cba4a 100644
--- a/src/server/game/Tickets/TicketMgr.cpp
+++ b/src/server/game/Tickets/TicketMgr.cpp
@@ -51,26 +51,26 @@ bool GmTicket::LoadFromDB(Field* fields)
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// id, type, playerGuid, name, message, createTime, mapId, posX, posY, posZ, lastModifiedTime, closedBy, assignedTo, comment, response, completed, escalated, viewed, haveTicket, resolvedBy
uint8 index = 0;
- _id = fields[ index].GetUInt32();
- _type = TicketType(fields[++index].GetUInt8());
- _playerGuid = ObjectGuid::Create<HighGuid::Player>(fields[++index].GetUInt32());
- _playerName = fields[++index].GetString();
- _message = fields[++index].GetString();
- _createTime = fields[++index].GetUInt32();
- _mapId = fields[++index].GetUInt16();
- _posX = fields[++index].GetFloat();
- _posY = fields[++index].GetFloat();
- _posZ = fields[++index].GetFloat();
- _lastModifiedTime = fields[++index].GetUInt32();
- _closedBy = ObjectGuid::Create<HighGuid::Player>(fields[++index].GetInt32());
- _assignedTo = ObjectGuid::Create<HighGuid::Player>(fields[++index].GetUInt32());
- _comment = fields[++index].GetString();
- _response = fields[++index].GetString();
- _completed = fields[++index].GetBool();
- _escalatedStatus = GMTicketEscalationStatus(fields[++index].GetUInt8());
- _viewed = fields[++index].GetBool();
- _needMoreHelp = fields[++index].GetBool();
- _resolvedBy = ObjectGuid::Create<HighGuid::Player>(fields[++index].GetInt32());
+ _id = fields[ index].Get<uint32>();
+ _type = TicketType(fields[++index].Get<uint8>());
+ _playerGuid = ObjectGuid::Create<HighGuid::Player>(fields[++index].Get<uint32>());
+ _playerName = fields[++index].Get<std::string>();
+ _message = fields[++index].Get<std::string>();
+ _createTime = fields[++index].Get<uint32>();
+ _mapId = fields[++index].Get<uint16>();
+ _posX = fields[++index].Get<float>();
+ _posY = fields[++index].Get<float>();
+ _posZ = fields[++index].Get<float>();
+ _lastModifiedTime = fields[++index].Get<uint32>();
+ _closedBy = ObjectGuid::Create<HighGuid::Player>(fields[++index].Get<int32>());
+ _assignedTo = ObjectGuid::Create<HighGuid::Player>(fields[++index].Get<uint32>());
+ _comment = fields[++index].Get<std::string>();
+ _response = fields[++index].Get<std::string>();
+ _completed = fields[++index].Get<bool>();
+ _escalatedStatus = GMTicketEscalationStatus(fields[++index].Get<uint8>());
+ _viewed = fields[++index].Get<bool>();
+ _needMoreHelp = fields[++index].Get<bool>();
+ _resolvedBy = ObjectGuid::Create<HighGuid::Player>(fields[++index].Get<int32>());
return true;
}
@@ -81,26 +81,26 @@ void GmTicket::SaveToDB(CharacterDatabaseTransaction trans) const
// id, type, playerGuid, name, description, createTime, mapId, posX, posY, posZ, lastModifiedTime, closedBy, assignedTo, comment, response, completed, escalated, viewed, needMoreHelp, resolvedBy
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GM_TICKET);
- stmt->setUInt32( index, _id);
- stmt->setUInt8 (++index, uint8(_type));
- stmt->setUInt32(++index, _playerGuid.GetCounter());
- stmt->setString(++index, _playerName);
- stmt->setString(++index, _message);
- stmt->setUInt32(++index, uint32(_createTime));
- stmt->setUInt16(++index, _mapId);
- stmt->setFloat (++index, _posX);
- stmt->setFloat (++index, _posY);
- stmt->setFloat (++index, _posZ);
- stmt->setUInt32(++index, uint32(_lastModifiedTime));
- stmt->setInt32 (++index, int32(_closedBy.GetCounter()));
- stmt->setUInt32(++index, _assignedTo.GetCounter());
- stmt->setString(++index, _comment);
- stmt->setString(++index, _response);
- stmt->setBool (++index, _completed);
- stmt->setUInt8 (++index, uint8(_escalatedStatus));
- stmt->setBool (++index, _viewed);
- stmt->setBool (++index, _needMoreHelp);
- stmt->setInt32 (++index, int32(_resolvedBy.GetCounter()));
+ stmt->SetData( index, _id);
+ stmt->SetData (++index, uint8(_type));
+ stmt->SetData(++index, _playerGuid.GetCounter());
+ stmt->SetData(++index, _playerName);
+ stmt->SetData(++index, _message);
+ stmt->SetData(++index, uint32(_createTime));
+ stmt->SetData(++index, _mapId);
+ stmt->SetData (++index, _posX);
+ stmt->SetData (++index, _posY);
+ stmt->SetData (++index, _posZ);
+ stmt->SetData(++index, uint32(_lastModifiedTime));
+ stmt->SetData (++index, int32(_closedBy.GetCounter()));
+ stmt->SetData(++index, _assignedTo.GetCounter());
+ stmt->SetData(++index, _comment);
+ stmt->SetData(++index, _response);
+ stmt->SetData (++index, _completed);
+ stmt->SetData (++index, uint8(_escalatedStatus));
+ stmt->SetData (++index, _viewed);
+ stmt->SetData (++index, _needMoreHelp);
+ stmt->SetData (++index, int32(_resolvedBy.GetCounter()));
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
@@ -108,7 +108,7 @@ void GmTicket::SaveToDB(CharacterDatabaseTransaction trans) const
void GmTicket::DeleteFromDB()
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GM_TICKET);
- stmt->setUInt32(0, _id);
+ stmt->SetData(0, _id);
CharacterDatabase.Execute(stmt);
}
@@ -351,7 +351,7 @@ void TicketMgr::LoadSurveys()
uint32 oldMSTime = getMSTime();
if (QueryResult result = CharacterDatabase.Query("SELECT MAX(surveyId) FROM gm_survey"))
- _lastSurveyId = (*result)[0].GetUInt32();
+ _lastSurveyId = (*result)[0].Get<uint32>();
LOG_INFO("server.loading", ">> Loaded GM Survey count from database in {} ms", GetMSTimeDiffToNow(oldMSTime));
LOG_INFO("server.loading", " ");
diff --git a/src/server/game/Tools/CharacterDatabaseCleaner.cpp b/src/server/game/Tools/CharacterDatabaseCleaner.cpp
index 557d332069..794135b21a 100644
--- a/src/server/game/Tools/CharacterDatabaseCleaner.cpp
+++ b/src/server/game/Tools/CharacterDatabaseCleaner.cpp
@@ -34,11 +34,11 @@ void CharacterDatabaseCleaner::CleanDatabase()
uint32 oldMSTime = getMSTime();
// check flags which clean ups are necessary
- QueryResult result = CharacterDatabase.PQuery("SELECT value FROM worldstates WHERE entry = %d", WS_CLEANING_FLAGS);
+ QueryResult result = CharacterDatabase.Query("SELECT value FROM worldstates WHERE entry = {}", WS_CLEANING_FLAGS);
if (!result)
return;
- uint32 flags = (*result)[0].GetUInt32();
+ uint32 flags = (*result)[0].Get<uint32>();
// clean up
if (flags & CLEANING_FLAG_ACHIEVEMENT_PROGRESS)
@@ -59,7 +59,7 @@ void CharacterDatabaseCleaner::CleanDatabase()
// NOTE: In order to have persistentFlags be set in worldstates for the next cleanup,
// you need to define them at least once in worldstates.
flags &= sWorld->getIntConfig(CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS);
- CharacterDatabase.DirectPExecute("UPDATE worldstates SET value = %u WHERE entry = %d", flags, WS_CLEANING_FLAGS);
+ CharacterDatabase.DirectExecute("UPDATE worldstates SET value = {} WHERE entry = {}", flags, WS_CLEANING_FLAGS);
sWorld->SetCleaningFlags(flags);
@@ -69,7 +69,7 @@ void CharacterDatabaseCleaner::CleanDatabase()
void CharacterDatabaseCleaner::CheckUnique(const char* column, const char* table, bool (*check)(uint32))
{
- QueryResult result = CharacterDatabase.PQuery("SELECT DISTINCT %s FROM %s", column, table);
+ QueryResult result = CharacterDatabase.Query("SELECT DISTINCT {} FROM {}", column, table);
if (!result)
{
LOG_INFO("sql.sql", "Table {} is empty.", table);
@@ -82,7 +82,7 @@ void CharacterDatabaseCleaner::CheckUnique(const char* column, const char* table
{
Field* fields = result->Fetch();
- uint32 id = fields[0].GetUInt32();
+ uint32 id = fields[0].Get<uint32>();
if (!check(id))
{
@@ -146,7 +146,7 @@ bool CharacterDatabaseCleaner::TalentCheck(uint32 talent_id)
void CharacterDatabaseCleaner::CleanCharacterTalent()
{
- CharacterDatabase.DirectPExecute("DELETE FROM character_talent WHERE specMask >= %u", 1 << MAX_TALENT_SPECS);
+ CharacterDatabase.DirectExecute("DELETE FROM character_talent WHERE specMask >= {}", 1 << MAX_TALENT_SPECS);
CheckUnique("spell", "character_talent", &TalentCheck);
}
diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp
index c47267755f..45c9149e60 100644
--- a/src/server/game/Tools/PlayerDump.cpp
+++ b/src/server/game/Tools/PlayerDump.cpp
@@ -259,14 +259,14 @@ void PlayerDump::InitializeTables()
TableStruct t;
t.TableName = dumpTable.Name;
- QueryResult result = CharacterDatabase.PQuery("DESC %s", dumpTable.Name);
+ QueryResult result = CharacterDatabase.Query("DESC {}", dumpTable.Name);
// prepared statement is correct (checked at startup) so table must exist
ASSERT(result);
int32 i = 0;
do
{
- std::string columnName = (*result)[0].GetString();
+ std::string columnName = (*result)[0].Get<std::string>();
t.FieldIndices.emplace(columnName, i++);
TableField f;
@@ -538,11 +538,11 @@ inline void AppendTableDump(StringTransaction& trans, TableStruct const& tableSt
for (uint32 i = 0; i < fieldSize;)
{
- char const* cString = fields[i].GetCString();
+ std::string cString = fields[i].Get<std::string>();
++i;
// null pointer -> we have null
- if (!cString)
+ if (cString.empty())
ss << "'NULL'";
else
{
@@ -604,7 +604,7 @@ void PlayerDumpWriter::PopulateGuids(ObjectGuid::LowType guid)
}
std::string whereStr = GenerateWhereStr(baseTable.PlayerGuid, guid);
- QueryResult result = CharacterDatabase.PQuery("SELECT %s FROM %s WHERE %s", baseTable.PrimaryKey, baseTable.TableName, whereStr.c_str());
+ QueryResult result = CharacterDatabase.Query("SELECT {} FROM {} WHERE {}", baseTable.PrimaryKey, baseTable.TableName, whereStr);
if (!result)
continue;
@@ -613,19 +613,19 @@ void PlayerDumpWriter::PopulateGuids(ObjectGuid::LowType guid)
switch (baseTable.StoredType)
{
case GUID_TYPE_ITEM:
- if (ObjectGuid::LowType itemLowGuid = (*result)[0].GetUInt32())
+ if (ObjectGuid::LowType itemLowGuid = (*result)[0].Get<uint32>())
_items.insert(itemLowGuid);
break;
case GUID_TYPE_MAIL:
- if (ObjectGuid::LowType mailLowGuid = (*result)[0].GetUInt32())
+ if (ObjectGuid::LowType mailLowGuid = (*result)[0].Get<uint32>())
_mails.insert(mailLowGuid);
break;
case GUID_TYPE_PET:
- if (ObjectGuid::LowType petLowGuid = (*result)[0].GetUInt32())
+ if (ObjectGuid::LowType petLowGuid = (*result)[0].Get<uint32>())
_pets.insert(petLowGuid);
break;
case GUID_TYPE_EQUIPMENT_SET:
- if (uint64 eqSetId = (*result)[0].GetUInt64())
+ if (uint64 eqSetId = (*result)[0].Get<uint64>())
_itemSets.insert(eqSetId);
break;
default:
@@ -671,7 +671,7 @@ bool PlayerDumpWriter::AppendTable(StringTransaction& trans, ObjectGuid::LowType
break;
}
- QueryResult result = CharacterDatabase.PQuery("SELECT * FROM %s WHERE %s", dumpTable.Name, whereStr.c_str());
+ QueryResult result = CharacterDatabase.Query("SELECT * FROM {} WHERE {}", dumpTable.Name, whereStr);
switch (dumpTable.Type)
{
case DTT_CHARACTER:
@@ -681,7 +681,7 @@ bool PlayerDumpWriter::AppendTable(StringTransaction& trans, ObjectGuid::LowType
int32 index = GetColumnIndexByName(tableStruct, "deleteInfos_Account");
ASSERT(index != -1); // checked at startup
- if ((*result)[index].GetUInt32())
+ if ((*result)[index].Get<uint32>())
return false;
}
break;
@@ -773,7 +773,7 @@ DumpReturn PlayerDumpReader::LoadDump(std::istream& input, uint32 account, std::
if (guid && guid < sObjectMgr->GetGenerator<HighGuid::Player>().GetNextAfterMaxUsed())
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHECK_GUID);
- stmt->setUInt32(0, guid);
+ stmt->SetData(0, guid);
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
guid = sObjectMgr->GetGenerator<HighGuid::Player>().GetNextAfterMaxUsed(); // use first free if exists
@@ -790,7 +790,7 @@ DumpReturn PlayerDumpReader::LoadDump(std::istream& input, uint32 account, std::
if (ObjectMgr::CheckPlayerName(name, true) == CHAR_NAME_SUCCESS)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHECK_NAME);
- stmt->setString(0, name);
+ stmt->SetData(0, name);
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
name.clear(); // use the one from the dump
diff --git a/src/server/game/Warden/WardenCheckMgr.cpp b/src/server/game/Warden/WardenCheckMgr.cpp
index 8ee63a2b8e..18b5755878 100644
--- a/src/server/game/Warden/WardenCheckMgr.cpp
+++ b/src/server/game/Warden/WardenCheckMgr.cpp
@@ -57,7 +57,7 @@ void WardenCheckMgr::LoadWardenChecks()
Field* fields = result->Fetch();
- uint16 maxCheckId = fields[0].GetUInt16();
+ uint16 maxCheckId = fields[0].Get<uint16>();
CheckStore.resize(maxCheckId + 1);
@@ -69,8 +69,8 @@ void WardenCheckMgr::LoadWardenChecks()
{
fields = result->Fetch();
- uint16 id = fields[0].GetUInt16();
- uint8 checkType = fields[1].GetUInt8();
+ uint16 id = fields[0].Get<uint16>();
+ uint8 checkType = fields[1].Get<uint8>();
if (checkType == LUA_EVAL_CHECK && id > 9999)
{
@@ -78,12 +78,12 @@ void WardenCheckMgr::LoadWardenChecks()
continue;
}
- std::string data = fields[2].GetString();
- std::string checkResult = fields[3].GetString();
- uint32 address = fields[4].GetUInt32();
- uint8 length = fields[5].GetUInt8();
- std::string str = fields[6].GetString();
- std::string comment = fields[7].GetString();
+ std::string data = fields[2].Get<std::string>();
+ std::string checkResult = fields[3].Get<std::string>();
+ uint32 address = fields[4].Get<uint32>();
+ uint8 length = fields[5].Get<uint8>();
+ std::string str = fields[6].Get<std::string>();
+ std::string comment = fields[7].Get<std::string>();
WardenCheck &wardenCheck = CheckStore.at(id);
wardenCheck.Type = checkType;
@@ -187,8 +187,8 @@ void WardenCheckMgr::LoadWardenOverrides()
{
Field* fields = result->Fetch();
- uint16 checkId = fields[0].GetUInt16();
- uint8 action = fields[1].GetUInt8();
+ uint16 checkId = fields[0].Get<uint16>();
+ uint8 action = fields[1].Get<uint8>();
// Check if action value is in range (0-2, see WardenActions enum)
if (action > WARDEN_ACTION_BAN)
diff --git a/src/server/game/Weather/WeatherMgr.cpp b/src/server/game/Weather/WeatherMgr.cpp
index 593388ad65..0ff17a8758 100644
--- a/src/server/game/Weather/WeatherMgr.cpp
+++ b/src/server/game/Weather/WeatherMgr.cpp
@@ -105,15 +105,15 @@ namespace WeatherMgr
{
Field* fields = result->Fetch();
- uint32 zone_id = fields[0].GetUInt32();
+ uint32 zone_id = fields[0].Get<uint32>();
WeatherData& wzc = mWeatherZoneMap[zone_id];
for (uint8 season = 0; season < WEATHER_SEASONS; ++season)
{
- wzc.data[season].rainChance = fields[season * (MAX_WEATHER_TYPE - 1) + 1].GetUInt8();
- wzc.data[season].snowChance = fields[season * (MAX_WEATHER_TYPE - 1) + 2].GetUInt8();
- wzc.data[season].stormChance = fields[season * (MAX_WEATHER_TYPE - 1) + 3].GetUInt8();
+ wzc.data[season].rainChance = fields[season * (MAX_WEATHER_TYPE - 1) + 1].Get<uint8>();
+ wzc.data[season].snowChance = fields[season * (MAX_WEATHER_TYPE - 1) + 2].Get<uint8>();
+ wzc.data[season].stormChance = fields[season * (MAX_WEATHER_TYPE - 1) + 3].Get<uint8>();
if (wzc.data[season].rainChance > 100)
{
@@ -134,7 +134,7 @@ namespace WeatherMgr
}
}
- wzc.ScriptId = sObjectMgr->GetScriptId(fields[13].GetCString());
+ wzc.ScriptId = sObjectMgr->GetScriptId(fields[13].Get<std::string>());
++count;
} while (result->NextRow());
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index dd0e87a8be..b4e04e73df 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -1503,7 +1503,7 @@ void World::SetInitialWorldSettings()
uint32 realm_zone = getIntConfig(CONFIG_REALM_ZONE);
- LoginDatabase.PExecute("UPDATE realmlist SET icon = %u, timezone = %u WHERE id = '%d'", server_type, realm_zone, realm.Id.Realm); // One-time query
+ LoginDatabase.Execute("UPDATE realmlist SET icon = {}, timezone = {} WHERE id = '{}'", server_type, realm_zone, realm.Id.Realm); // One-time query
///- Custom Hook for loading DB items
sScriptMgr->OnLoadCustomDatabaseTable();
@@ -1966,7 +1966,7 @@ void World::SetInitialWorldSettings()
LOG_INFO("server.loading", "Initialize game time and timers");
LOG_INFO("server.loading", " ");
- LoginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, uptime, revision) VALUES (%u, %u, 0, '%s')",
+ LoginDatabase.Execute("INSERT INTO uptime (realmid, starttime, uptime, revision) VALUES ({}, {}, 0, '{}')",
realm.Id.Realm, uint32(GameTime::GetStartTime().count()), GitRevision::GetFullVersion()); // One-time query
m_timers[WUPDATE_WEATHERS].SetInterval(1 * IN_MILLISECONDS);
@@ -2169,7 +2169,7 @@ void World::LoadAutobroadcasts()
uint32 realmId = sConfigMgr->GetOption<int32>("RealmID", 0);
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_AUTOBROADCAST);
- stmt->setInt32(0, realmId);
+ stmt->SetData(0, realmId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (!result)
@@ -2183,10 +2183,10 @@ void World::LoadAutobroadcasts()
do
{
Field* fields = result->Fetch();
- uint8 id = fields[0].GetUInt8();
+ uint8 id = fields[0].Get<uint8>();
- m_Autobroadcasts[id] = fields[2].GetString();
- m_AutobroadcastsWeights[id] = fields[1].GetUInt8();
+ m_Autobroadcasts[id] = fields[2].Get<std::string>();
+ m_AutobroadcastsWeights[id] = fields[1].Get<uint8>();
++count;
} while (result->NextRow());
@@ -2331,8 +2331,8 @@ void World::Update(uint32 diff)
m_timers[WUPDATE_CLEANDB].Reset();
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_OLD_LOGS);
- stmt->setUInt32(0, sWorld->getIntConfig(CONFIG_LOGDB_CLEARTIME));
- stmt->setUInt32(1, uint32(currentGameTime.count()));
+ stmt->SetData(0, sWorld->getIntConfig(CONFIG_LOGDB_CLEARTIME));
+ stmt->SetData(1, uint32(currentGameTime.count()));
LoginDatabase.Execute(stmt);
}
}
@@ -2392,10 +2392,10 @@ void World::Update(uint32 diff)
m_timers[WUPDATE_UPTIME].Reset();
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_UPTIME_PLAYERS);
- stmt->setUInt32(0, uint32(GameTime::GetUptime().count()));
- stmt->setUInt16(1, uint16(GetMaxPlayerCount()));
- stmt->setUInt32(2, realm.Id.Realm);
- stmt->setUInt32(3, uint32(GameTime::GetStartTime().count()));
+ stmt->SetData(0, uint32(GameTime::GetUptime().count()));
+ stmt->SetData(1, uint16(GetMaxPlayerCount()));
+ stmt->SetData(2, realm.Id.Realm);
+ stmt->SetData(3, uint32(GameTime::GetStartTime().count()));
LoginDatabase.Execute(stmt);
}
@@ -2999,7 +2999,7 @@ void World::SendAutoBroadcast()
void World::UpdateRealmCharCount(uint32 accountId)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_COUNT);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&World::_UpdateRealmCharCount, this, std::placeholders::_1)));
}
@@ -3008,20 +3008,20 @@ void World::_UpdateRealmCharCount(PreparedQueryResult resultCharCount)
if (resultCharCount)
{
Field* fields = resultCharCount->Fetch();
- uint32 accountId = fields[0].GetUInt32();
- uint8 charCount = uint8(fields[1].GetUInt64());
+ uint32 accountId = fields[0].Get<uint32>();
+ uint8 charCount = uint8(fields[1].Get<uint64>());
LoginDatabaseTransaction trans = LoginDatabase.BeginTransaction();
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_REALM_CHARACTERS_BY_REALM);
- stmt->setUInt32(0, accountId);
- stmt->setUInt32(1, realm.Id.Realm);
+ stmt->SetData(0, accountId);
+ stmt->SetData(1, realm.Id.Realm);
trans->Append(stmt);
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_REALM_CHARACTERS);
- stmt->setUInt8(0, charCount);
- stmt->setUInt32(1, accountId);
- stmt->setUInt32(2, realm.Id.Realm);
+ stmt->SetData(0, charCount);
+ stmt->SetData(1, accountId);
+ stmt->SetData(2, realm.Id.Realm);
trans->Append(stmt);
LoginDatabase.CommitTransaction(trans);
@@ -3124,11 +3124,11 @@ void World::ResetDailyQuests()
void World::LoadDBAllowedSecurityLevel()
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_REALMLIST_SECURITY_LEVEL);
- stmt->setInt32(0, int32(realm.Id.Realm));
+ stmt->SetData(0, int32(realm.Id.Realm));
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (result)
- SetPlayerSecurityLimit(AccountTypes(result->Fetch()->GetUInt8()));
+ SetPlayerSecurityLimit(AccountTypes(result->Fetch()->Get<uint8>()));
}
void World::SetPlayerSecurityLimit(AccountTypes _sec)
@@ -3174,7 +3174,7 @@ void World::ResetMonthlyQuests()
void World::ResetEventSeasonalQuests(uint16 event_id)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_SEASONAL);
- stmt->setUInt16(0, event_id);
+ stmt->SetData(0, event_id);
CharacterDatabase.Execute(stmt);
for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
@@ -3229,10 +3229,10 @@ void World::LoadDBVersion()
{
Field* fields = result->Fetch();
- m_DBVersion = fields[0].GetString();
+ m_DBVersion = fields[0].Get<std::string>();
// will be overwrite by config values if different and non-0
- m_int_configs[CONFIG_CLIENTCACHE_VERSION] = fields[1].GetUInt32();
+ m_int_configs[CONFIG_CLIENTCACHE_VERSION] = fields[1].Get<uint32>();
}
if (m_DBVersion.empty())
@@ -3249,19 +3249,19 @@ void World::LoadDBRevision()
{
Field* fields = resultWorld->Fetch();
- m_WorldDBRevision = fields[0].GetString();
+ m_WorldDBRevision = fields[0].Get<std::string>();
}
if (resultCharacter)
{
Field* fields = resultCharacter->Fetch();
- m_CharacterDBRevision = fields[0].GetString();
+ m_CharacterDBRevision = fields[0].Get<std::string>();
}
if (resultAuth)
{
Field* fields = resultAuth->Fetch();
- m_AuthDBRevision = fields[0].GetString();
+ m_AuthDBRevision = fields[0].Get<std::string>();
}
if (m_WorldDBRevision.empty())
@@ -3305,7 +3305,7 @@ void World::LoadWorldStates()
do
{
Field* fields = result->Fetch();
- m_worldstates[fields[0].GetUInt32()] = fields[1].GetUInt32();
+ m_worldstates[fields[0].Get<uint32>()] = fields[1].Get<uint32>();
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded {} world states in {} ms", m_worldstates.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -3319,15 +3319,15 @@ void World::setWorldState(uint32 index, uint64 timeValue)
if (it != m_worldstates.end())
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_WORLDSTATE);
- stmt->setUInt32(0, uint32(timeValue));
- stmt->setUInt32(1, index);
+ stmt->SetData(0, uint32(timeValue));
+ stmt->SetData(1, index);
CharacterDatabase.Execute(stmt);
}
else
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_WORLDSTATE);
- stmt->setUInt32(0, index);
- stmt->setUInt32(1, uint32(timeValue));
+ stmt->SetData(0, index);
+ stmt->SetData(1, uint32(timeValue));
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp
index ce0a61c840..1b042b11bd 100644
--- a/src/server/scripts/Commands/cs_account.cpp
+++ b/src/server/scripts/Commands/cs_account.cpp
@@ -121,7 +121,7 @@ public:
{ // check if 2FA already enabled
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_TOTP_SECRET);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (!result)
@@ -155,8 +155,8 @@ public:
Acore::Crypto::AEEncryptWithRandomIV<Acore::Crypto::AES>(pair.first->second, *masterKey);
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
- stmt->setBinary(0, pair.first->second);
- stmt->setUInt32(1, accountId);
+ stmt->SetData(0, pair.first->second);
+ stmt->SetData(1, accountId);
LoginDatabase.Execute(stmt);
suggestions.erase(pair.first);
@@ -196,7 +196,7 @@ public:
Acore::Crypto::TOTP::Secret secret;
{ // get current TOTP secret
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_TOTP_SECRET);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (!result)
@@ -215,7 +215,7 @@ public:
return false;
}
- secret = field->GetBinary();
+ secret = field->Get<Binary>();
}
if (token)
@@ -235,8 +235,8 @@ public:
if (Acore::Crypto::TOTP::ValidateToken(secret, *token))
{
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
- stmt->setNull(0);
- stmt->setUInt32(1, accountId);
+ stmt->SetData(0);
+ stmt->SetData(1, accountId);
LoginDatabase.Execute(stmt);
handler->SendSysMessage(LANG_2FA_REMOVE_COMPLETE);
return true;
@@ -273,8 +273,8 @@ public:
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_EXPANSION);
- stmt->setUInt8(0, *expansion);
- stmt->setUInt32(1, accountId);
+ stmt->SetData(0, *expansion);
+ stmt->SetData(1, accountId);
LoginDatabase.Execute(stmt);
@@ -411,22 +411,22 @@ public:
do
{
Field* fieldsDB = result->Fetch();
- std::string name = fieldsDB[0].GetString();
- uint32 account = fieldsDB[1].GetUInt32();
+ std::string name = fieldsDB[0].Get<std::string>();
+ uint32 account = fieldsDB[1].Get<uint32>();
///- Get the username, last IP and GM level of each account
// No SQL injection. account is uint32.
LoginDatabasePreparedStatement* loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_INFO);
- loginStmt->setUInt32(0, account);
+ loginStmt->SetData(0, account);
PreparedQueryResult resultLogin = LoginDatabase.Query(loginStmt);
if (resultLogin)
{
Field* fieldsLogin = resultLogin->Fetch();
handler->PSendSysMessage(LANG_ACCOUNT_LIST_LINE,
- fieldsLogin[0].GetCString(), name.c_str(), fieldsLogin[1].GetCString(),
- fieldsDB[2].GetUInt16(), fieldsDB[3].GetUInt16(), fieldsLogin[3].GetUInt8(),
- fieldsLogin[2].GetUInt8());
+ fieldsLogin[0].Get<std::string>().c_str(), name.c_str(), fieldsLogin[1].Get<std::string>().c_str(),
+ fieldsDB[2].Get<uint16>(), fieldsDB[3].Get<uint16>(), fieldsLogin[3].Get<uint8>(),
+ fieldsLogin[2].Get<uint8>());
}
else
handler->PSendSysMessage(LANG_ACCOUNT_LIST_ERROR, name.c_str());
@@ -467,8 +467,8 @@ public:
}
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_LOCK_COUNTRY);
- stmt->setString(0, "00");
- stmt->setUInt32(1, accountId);
+ stmt->SetData(0, "00");
+ stmt->SetData(1, accountId);
LoginDatabase.Execute(stmt);
handler->PSendSysMessage(LANG_COMMAND_ACCLOCKUNLOCKED);
@@ -493,8 +493,8 @@ public:
if (IpLocationRecord const* location = sIPLocation->GetLocationRecord(handler->GetSession()->GetRemoteAddress()))
{
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_LOCK_COUNTRY);
- stmt->setString(0, location->CountryCode);
- stmt->setUInt32(1, handler->GetSession()->GetAccountId());
+ stmt->SetData(0, location->CountryCode);
+ stmt->SetData(1, handler->GetSession()->GetAccountId());
LoginDatabase.Execute(stmt);
handler->PSendSysMessage(LANG_COMMAND_ACCLOCKLOCKED);
}
@@ -508,8 +508,8 @@ public:
else if (param == "off")
{
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_LOCK_COUNTRY);
- stmt->setString(0, "00");
- stmt->setUInt32(1, handler->GetSession()->GetAccountId());
+ stmt->SetData(0, "00");
+ stmt->SetData(1, handler->GetSession()->GetAccountId());
LoginDatabase.Execute(stmt);
handler->PSendSysMessage(LANG_COMMAND_ACCLOCKUNLOCKED);
}
@@ -538,16 +538,16 @@ public:
if (param == "on")
{
- stmt->setBool(0, true); // locked
+ stmt->SetData(0, true); // locked
handler->PSendSysMessage(LANG_COMMAND_ACCLOCKLOCKED);
}
else if (param == "off")
{
- stmt->setBool(0, false); // unlocked
+ stmt->SetData(0, false); // unlocked
handler->PSendSysMessage(LANG_COMMAND_ACCLOCKUNLOCKED);
}
- stmt->setUInt32(1, handler->GetSession()->GetAccountId());
+ stmt->SetData(1, handler->GetSession()->GetAccountId());
LoginDatabase.Execute(stmt);
return true;
@@ -658,8 +658,8 @@ public:
if (secret == "off")
{
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
- stmt->setNull(0);
- stmt->setUInt32(1, targetAccountId);
+ stmt->SetData(0);
+ stmt->SetData(1, targetAccountId);
LoginDatabase.Execute(stmt);
handler->PSendSysMessage(LANG_2FA_REMOVE_COMPLETE);
return true;
@@ -692,8 +692,8 @@ public:
Acore::Crypto::AEEncryptWithRandomIV<Acore::Crypto::AES>(*decoded, *masterKey);
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
- stmt->setBinary(0, *decoded);
- stmt->setUInt32(1, targetAccountId);
+ stmt->SetData(0, *decoded);
+ stmt->SetData(1, targetAccountId);
LoginDatabase.Execute(stmt);
handler->PSendSysMessage(LANG_2FA_SECRET_SET_COMPLETE, accountName.c_str());
@@ -762,8 +762,8 @@ public:
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_EXPANSION);
- stmt->setUInt8(0, *expansion);
- stmt->setUInt32(1, accountId);
+ stmt->SetData(0, *expansion);
+ stmt->SetData(1, accountId);
LoginDatabase.Execute(stmt);
@@ -841,8 +841,8 @@ public:
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_ACCESS_GMLEVEL_TEST);
- stmt->setUInt32(0, targetAccountId);
- stmt->setUInt8(1, uint8(gm));
+ stmt->SetData(0, targetAccountId);
+ stmt->SetData(1, uint8(gm));
PreparedQueryResult result = LoginDatabase.Query(stmt);
@@ -868,13 +868,13 @@ public:
if (gmRealmID == -1)
{
stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_ACCOUNT_ACCESS);
- stmt->setUInt32(0, targetAccountId);
+ stmt->SetData(0, targetAccountId);
}
else
{
stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_ACCOUNT_ACCESS_BY_REALM);
- stmt->setUInt32(0, targetAccountId);
- stmt->setUInt32(1, realm.Id.Realm);
+ stmt->SetData(0, targetAccountId);
+ stmt->SetData(1, realm.Id.Realm);
}
LoginDatabase.Execute(stmt);
@@ -883,9 +883,9 @@ public:
{
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT_ACCESS);
- stmt->setUInt32(0, targetAccountId);
- stmt->setUInt8(1, uint8(gm));
- stmt->setInt32(2, gmRealmID);
+ stmt->SetData(0, targetAccountId);
+ stmt->SetData(1, uint8(gm));
+ stmt->SetData(2, gmRealmID);
LoginDatabase.Execute(stmt);
}
diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp
index a34e0aa672..f17e470fc4 100644
--- a/src/server/scripts/Commands/cs_ban.cpp
+++ b/src/server/scripts/Commands/cs_ban.cpp
@@ -292,7 +292,7 @@ public:
static bool HandleBanInfoHelper(uint32 accountId, char const* accountName, ChatHandler* handler)
{
- QueryResult result = LoginDatabase.PQuery("SELECT FROM_UNIXTIME(bandate, '%%Y-%%m-%%d..%%H:%%I:%%s') as bandate, unbandate-bandate, active, unbandate, banreason, bannedby FROM account_banned WHERE id = '%u' ORDER BY bandate ASC", accountId);
+ QueryResult result = LoginDatabase.Query("SELECT FROM_UNIXTIME(bandate, '%Y-%m-%d..%H:%I:%s') as bandate, unbandate-bandate, active, unbandate, banreason, bannedby FROM account_banned WHERE id = '{}' ORDER BY bandate ASC", accountId);
if (!result)
{
handler->PSendSysMessage(LANG_BANINFO_NOACCOUNTBAN, accountName);
@@ -304,14 +304,14 @@ public:
{
Field* fields = result->Fetch();
- time_t unbanDate = time_t(fields[3].GetUInt32());
+ time_t unbanDate = time_t(fields[3].Get<uint32>());
bool active = false;
- if (fields[2].GetBool() && (fields[1].GetUInt64() == uint64(0) || unbanDate >= GameTime::GetGameTime().count()))
+ if (fields[2].Get<bool>() && (fields[1].Get<uint64>() == uint64(0) || unbanDate >= GameTime::GetGameTime().count()))
active = true;
- bool permanent = (fields[1].GetUInt64() == uint64(0));
- std::string banTime = permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt64(), true);
+ bool permanent = (fields[1].Get<uint64>() == uint64(0));
+ std::string banTime = permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].Get<uint64>(), true);
handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY,
- fields[0].GetCString(), banTime.c_str(), active ? handler->GetAcoreString(LANG_YES) : handler->GetAcoreString(LANG_NO), fields[4].GetCString(), fields[5].GetCString());
+ fields[0].Get<std::string>().c_str(), banTime.c_str(), active ? handler->GetAcoreString(LANG_YES) : handler->GetAcoreString(LANG_NO), fields[4].Get<std::string>().c_str(), fields[5].Get<std::string>().c_str());
} while (result->NextRow());
return true;
@@ -339,7 +339,7 @@ public:
targetGuid = target->GetGUID();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_BANINFO);
- stmt->setUInt32(0, targetGuid.GetCounter());
+ stmt->SetData(0, targetGuid.GetCounter());
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
@@ -352,14 +352,14 @@ public:
do
{
Field* fields = result->Fetch();
- time_t unbanDate = time_t(fields[3].GetUInt32());
+ time_t unbanDate = time_t(fields[3].Get<uint32>());
bool active = false;
- if (fields[2].GetUInt8() && (!fields[1].GetUInt32() || unbanDate >= GameTime::GetGameTime().count()))
+ if (fields[2].Get<uint8>() && (!fields[1].Get<uint32>() || unbanDate >= GameTime::GetGameTime().count()))
active = true;
- bool permanent = (fields[1].GetUInt32() == uint32(0));
- std::string banTime = permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt64(), true);
+ bool permanent = (fields[1].Get<uint32>() == uint32(0));
+ std::string banTime = permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].Get<uint64>(), true);
handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY,
- fields[0].GetCString(), banTime.c_str(), active ? handler->GetAcoreString(LANG_YES) : handler->GetAcoreString(LANG_NO), fields[4].GetCString(), fields[5].GetCString());
+ fields[0].Get<std::string>().c_str(), banTime.c_str(), active ? handler->GetAcoreString(LANG_YES) : handler->GetAcoreString(LANG_NO), fields[4].Get<std::string>().c_str(), fields[5].Get<std::string>().c_str());
} while (result->NextRow());
return true;
@@ -380,7 +380,7 @@ public:
std::string IP = ipStr;
LoginDatabase.EscapeString(IP);
- QueryResult result = LoginDatabase.PQuery("SELECT ip, FROM_UNIXTIME(bandate), FROM_UNIXTIME(unbandate), unbandate-UNIX_TIMESTAMP(), banreason, bannedby, unbandate-bandate FROM ip_banned WHERE ip = '%s'", IP.c_str());
+ QueryResult result = LoginDatabase.Query("SELECT ip, FROM_UNIXTIME(bandate), FROM_UNIXTIME(unbandate), unbandate-UNIX_TIMESTAMP(), banreason, bannedby, unbandate-bandate FROM ip_banned WHERE ip = '{}'", IP);
if (!result)
{
handler->PSendSysMessage(LANG_BANINFO_NOIP);
@@ -388,10 +388,10 @@ public:
}
Field* fields = result->Fetch();
- bool permanent = !fields[6].GetUInt64();
+ bool permanent = !fields[6].Get<uint64>();
handler->PSendSysMessage(LANG_BANINFO_IPENTRY,
- fields[0].GetCString(), fields[1].GetCString(), permanent ? handler->GetAcoreString(LANG_BANINFO_NEVER) : fields[2].GetCString(),
- permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[3].GetUInt64(), true).c_str(), fields[4].GetCString(), fields[5].GetCString());
+ fields[0].Get<std::string>().c_str(), fields[1].Get<std::string>().c_str(), permanent ? handler->GetAcoreString(LANG_BANINFO_NEVER) : fields[2].Get<std::string>().c_str(),
+ permanent ? handler->GetAcoreString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[3].Get<uint64>(), true).c_str(), fields[4].Get<std::string>().c_str(), fields[5].Get<std::string>().c_str());
return true;
}
@@ -414,7 +414,7 @@ public:
else
{
LoginDatabasePreparedStatement* stmt2 = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BANNED_BY_USERNAME);
- stmt2->setString(0, filter);
+ stmt2->SetData(0, filter);
result = LoginDatabase.Query(stmt2);
}
@@ -437,13 +437,13 @@ public:
do
{
Field* fields = result->Fetch();
- uint32 accountid = fields[0].GetUInt32();
+ uint32 accountid = fields[0].Get<uint32>();
- QueryResult banResult = LoginDatabase.PQuery("SELECT account.username FROM account, account_banned WHERE account_banned.id='%u' AND account_banned.id=account.id", accountid);
+ QueryResult banResult = LoginDatabase.Query("SELECT account.username FROM account, account_banned WHERE account_banned.id='{}' AND account_banned.id=account.id", accountid);
if (banResult)
{
Field* fields2 = banResult->Fetch();
- handler->PSendSysMessage("%s", fields2[0].GetCString());
+ handler->PSendSysMessage("%s", fields2[0].Get<std::string>().c_str());
}
} while (result->NextRow());
}
@@ -457,39 +457,39 @@ public:
{
handler->SendSysMessage("-------------------------------------------------------------------------------");
Field* fields = result->Fetch();
- uint32 accountId = fields[0].GetUInt32();
+ uint32 accountId = fields[0].Get<uint32>();
std::string accountName;
// "account" case, name can be get in same query
if (result->GetFieldCount() > 1)
- accountName = fields[1].GetString();
+ accountName = fields[1].Get<std::string>();
// "character" case, name need extract from another DB
else
AccountMgr::GetName(accountId, accountName);
// No SQL injection. id is uint32.
- QueryResult banInfo = LoginDatabase.PQuery("SELECT bandate, unbandate, bannedby, banreason FROM account_banned WHERE id = %u ORDER BY unbandate", accountId);
+ QueryResult banInfo = LoginDatabase.Query("SELECT bandate, unbandate, bannedby, banreason FROM account_banned WHERE id = {} ORDER BY unbandate", accountId);
if (banInfo)
{
Field* fields2 = banInfo->Fetch();
do
{
- tm tmBan = Acore::Time::TimeBreakdown(fields2[0].GetUInt32());
+ tm tmBan = Acore::Time::TimeBreakdown(fields2[0].Get<uint32>());
- if (fields2[0].GetUInt32() == fields2[1].GetUInt32())
+ if (fields2[0].Get<uint32>() == fields2[1].Get<uint32>())
{
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
accountName.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
- fields2[2].GetCString(), fields2[3].GetCString());
+ fields2[2].Get<std::string>().c_str(), fields2[3].Get<std::string>().c_str());
}
else
{
- tm tmUnban = Acore::Time::TimeBreakdown(fields2[1].GetUInt32());
+ tm tmUnban = Acore::Time::TimeBreakdown(fields2[1].Get<uint32>());
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
accountName.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
tmUnban.tm_year % 100, tmUnban.tm_mon + 1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
- fields2[2].GetCString(), fields2[3].GetCString());
+ fields2[2].Get<std::string>().c_str(), fields2[3].Get<std::string>().c_str());
}
} while (banInfo->NextRow());
}
@@ -512,7 +512,7 @@ public:
std::string filter(filterStr);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUID_BY_NAME_FILTER);
- stmt->setString(0, filter);
+ stmt->SetData(0, filter);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
{
@@ -529,11 +529,11 @@ public:
{
Field* fields = result->Fetch();
CharacterDatabasePreparedStatement* stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_SEL_BANNED_NAME);
- stmt2->setUInt32(0, fields[0].GetUInt32());
+ stmt2->SetData(0, fields[0].Get<uint32>());
PreparedQueryResult banResult = CharacterDatabase.Query(stmt2);
if (banResult)
- handler->PSendSysMessage("%s", (*banResult)[0].GetCString());
+ handler->PSendSysMessage("%s", (*banResult)[0].Get<std::string>().c_str());
} while (result->NextRow());
}
// Console wide output
@@ -548,10 +548,10 @@ public:
Field* fields = result->Fetch();
- std::string char_name = fields[1].GetString();
+ std::string char_name = fields[1].Get<std::string>();
CharacterDatabasePreparedStatement* stmt2 = CharacterDatabase.GetPreparedStatement(CHAR_SEL_BANINFO_LIST);
- stmt2->setUInt32(0, fields[0].GetUInt32());
+ stmt2->SetData(0, fields[0].Get<uint32>());
PreparedQueryResult banInfo = CharacterDatabase.Query(stmt2);
if (banInfo)
@@ -559,21 +559,21 @@ public:
Field* banFields = banInfo->Fetch();
do
{
- tm tmBan = Acore::Time::TimeBreakdown(banFields[0].GetUInt32());
+ tm tmBan = Acore::Time::TimeBreakdown(banFields[0].Get<uint32>());
- if (banFields[0].GetUInt32() == banFields[1].GetUInt32())
+ if (banFields[0].Get<uint32>() == banFields[1].Get<uint32>())
{
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
char_name.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
- banFields[2].GetCString(), banFields[3].GetCString());
+ banFields[2].Get<std::string>().c_str(), banFields[3].Get<std::string>().c_str());
}
else
{
- tm tmUnban = Acore::Time::TimeBreakdown(banFields[1].GetUInt32());
+ tm tmUnban = Acore::Time::TimeBreakdown(banFields[1].Get<uint32>());
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
char_name.c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
tmUnban.tm_year % 100, tmUnban.tm_mon + 1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
- banFields[2].GetCString(), banFields[3].GetCString());
+ banFields[2].Get<std::string>().c_str(), banFields[3].Get<std::string>().c_str());
}
} while (banInfo->NextRow());
}
@@ -603,7 +603,7 @@ public:
else
{
LoginDatabasePreparedStatement* stmt2 = LoginDatabase.GetPreparedStatement(LOGIN_SEL_IP_BANNED_BY_IP);
- stmt2->setString(0, filter);
+ stmt2->SetData(0, filter);
result = LoginDatabase.Query(stmt2);
}
@@ -620,7 +620,7 @@ public:
do
{
Field* fields = result->Fetch();
- handler->PSendSysMessage("%s", fields[0].GetCString());
+ handler->PSendSysMessage("%s", fields[0].Get<std::string>().c_str());
} while (result->NextRow());
}
// Console wide output
@@ -633,20 +633,20 @@ public:
{
handler->SendSysMessage("-------------------------------------------------------------------------------");
Field* fields = result->Fetch();
- tm tmBan = Acore::Time::TimeBreakdown(fields[1].GetUInt32());
- if (fields[1].GetUInt32() == fields[2].GetUInt32())
+ tm tmBan = Acore::Time::TimeBreakdown(fields[1].Get<uint32>());
+ if (fields[1].Get<uint32>() == fields[2].Get<uint32>())
{
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
- fields[0].GetCString(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
- fields[3].GetCString(), fields[4].GetCString());
+ fields[0].Get<std::string>().c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
+ fields[3].Get<std::string>().c_str(), fields[4].Get<std::string>().c_str());
}
else
{
- tm tmUnban = Acore::Time::TimeBreakdown(fields[2].GetUInt32());
+ tm tmUnban = Acore::Time::TimeBreakdown(fields[2].Get<uint32>());
handler->PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
- fields[0].GetCString(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
+ fields[0].Get<std::string>().c_str(), tmBan.tm_year % 100, tmBan.tm_mon + 1, tmBan.tm_mday, tmBan.tm_hour, tmBan.tm_min,
tmUnban.tm_year % 100, tmUnban.tm_mon + 1, tmUnban.tm_mday, tmUnban.tm_hour, tmUnban.tm_min,
- fields[3].GetCString(), fields[4].GetCString());
+ fields[3].Get<std::string>().c_str(), fields[4].Get<std::string>().c_str());
}
} while (result->NextRow());
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index 6ce2241a07..3305748dfe 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -120,7 +120,7 @@ public:
if (isNumeric(searchString.c_str()))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_DEL_INFO_BY_GUID);
- stmt->setUInt32(0, *Acore::StringTo<uint32>(searchString));
+ stmt->SetData(0, *Acore::StringTo<uint32>(searchString));
result = CharacterDatabase.Query(stmt);
}
// search by name
@@ -130,7 +130,7 @@ public:
return false;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_DEL_INFO_BY_NAME);
- stmt->setString(0, searchString);
+ stmt->SetData(0, searchString);
result = CharacterDatabase.Query(stmt);
}
}
@@ -148,13 +148,13 @@ public:
DeletedInfo info;
- info.lowGuid = fields[0].GetUInt32();
- info.name = fields[1].GetString();
- info.accountId = fields[2].GetUInt32();
+ info.lowGuid = fields[0].Get<uint32>();
+ info.name = fields[1].Get<std::string>();
+ info.accountId = fields[2].Get<uint32>();
// account name will be empty for nonexisting account
AccountMgr::GetName(info.accountId, info.accountName);
- info.deleteDate = time_t(fields[3].GetUInt32());
+ info.deleteDate = time_t(fields[3].Get<uint32>());
foundList.push_back(info);
} while (result->NextRow());
}
@@ -232,16 +232,16 @@ public:
}
auto* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_RESTORE_DELETE_INFO);
- stmt->setString(0, delInfo.name);
- stmt->setUInt32(1, delInfo.accountId);
- stmt->setUInt32(2, delInfo.lowGuid);
+ stmt->SetData(0, delInfo.name);
+ stmt->SetData(1, delInfo.accountId);
+ stmt->SetData(2, delInfo.lowGuid);
CharacterDatabase.Execute(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_NAME_DATA);
- stmt->setUInt32(0, delInfo.lowGuid);
+ stmt->SetData(0, delInfo.lowGuid);
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
- sCharacterCache->AddCharacterCacheEntry(ObjectGuid(HighGuid::Player, delInfo.lowGuid), delInfo.accountId, delInfo.name, (*result)[2].GetUInt8(), (*result)[0].GetUInt8(), (*result)[1].GetUInt8(), (*result)[3].GetUInt8());
+ sCharacterCache->AddCharacterCacheEntry(ObjectGuid(HighGuid::Player, delInfo.lowGuid), delInfo.accountId, delInfo.name, (*result)[2].Get<uint8>(), (*result)[0].Get<uint8>(), (*result)[1].Get<uint8>(), (*result)[3].Get<uint8>());
}
}
@@ -267,8 +267,8 @@ public:
{
// Update level and reset XP, everything else will be updated at login
auto* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_LEVEL);
- stmt->setUInt8(0, uint8(newLevel));
- stmt->setUInt32(1, playerGuid.GetCounter());
+ stmt->SetData(0, uint8(newLevel));
+ stmt->SetData(1, playerGuid.GetCounter());
CharacterDatabase.Execute(stmt);
sCharacterCache->UpdateCharacterLevel(playerGuid, newLevel);
@@ -363,7 +363,7 @@ public:
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHECK_NAME);
- stmt->setString(0, newName);
+ stmt->SetData(0, newName);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result)
{
@@ -374,7 +374,7 @@ public:
// Remove declined name from db
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_DECLINED_NAME);
- stmt->setUInt32(0, player->GetGUID().GetCounter());
+ stmt->SetData(0, player->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
if (Player* target = player->GetConnectedPlayer())
@@ -387,8 +387,8 @@ public:
else
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_NAME_BY_GUID);
- stmt->setString(0, newName);
- stmt->setUInt32(1, player->GetGUID().GetCounter());
+ stmt->SetData(0, newName);
+ stmt->SetData(1, player->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -412,8 +412,8 @@ public:
handler->PSendSysMessage(LANG_RENAME_PLAYER_GUID, handler->playerLink(*player).c_str(), player->GetGUID().GetCounter());
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(AT_LOGIN_RENAME));
- stmt->setUInt32(1, player->GetGUID().GetCounter());
+ stmt->SetData(0, uint16(AT_LOGIN_RENAME));
+ stmt->SetData(1, player->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
}
@@ -467,8 +467,8 @@ public:
{
handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, handler->playerLink(*player).c_str(), player->GetGUID().GetCounter());
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, static_cast<uint16>(AT_LOGIN_CUSTOMIZE));
- stmt->setUInt32(1, player->GetGUID().GetCounter());
+ stmt->SetData(0, static_cast<uint16>(AT_LOGIN_CUSTOMIZE));
+ stmt->SetData(1, player->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -491,8 +491,8 @@ public:
{
handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, handler->playerLink(*player).c_str(), player->GetGUID().GetCounter());
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(AT_LOGIN_CHANGE_FACTION));
- stmt->setUInt32(1, player->GetGUID().GetCounter());
+ stmt->SetData(0, uint16(AT_LOGIN_CHANGE_FACTION));
+ stmt->SetData(1, player->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
@@ -515,8 +515,8 @@ public:
{
handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, handler->playerLink(*player).c_str(), player->GetGUID().GetCounter());
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(AT_LOGIN_CHANGE_RACE));
- stmt->setUInt32(1, player->GetGUID().GetCounter());
+ stmt->SetData(0, uint16(AT_LOGIN_CHANGE_RACE));
+ stmt->SetData(1, player->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
}
diff --git a/src/server/scripts/Commands/cs_disable.cpp b/src/server/scripts/Commands/cs_disable.cpp
index 32dc24fc4a..30b28f12e3 100644
--- a/src/server/scripts/Commands/cs_disable.cpp
+++ b/src/server/scripts/Commands/cs_disable.cpp
@@ -149,8 +149,8 @@ public:
WorldDatabasePreparedStatement* stmt = nullptr;
stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_DISABLES);
- stmt->setUInt32(0, entry);
- stmt->setUInt8(1, disableType);
+ stmt->SetData(0, entry);
+ stmt->SetData(1, disableType);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
{
@@ -160,10 +160,10 @@ public:
}
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_DISABLES);
- stmt->setUInt32(0, entry);
- stmt->setUInt8(1, disableType);
- stmt->setUInt16(2, flags);
- stmt->setString(3, disableComment);
+ stmt->SetData(0, entry);
+ stmt->SetData(1, disableType);
+ stmt->SetData(2, flags);
+ stmt->SetData(3, disableComment);
WorldDatabase.Execute(stmt);
handler->PSendSysMessage("Add Disabled %s (Id: %u) for reason %s", disableTypeStr.c_str(), entry, disableComment.c_str());
@@ -237,8 +237,8 @@ public:
WorldDatabasePreparedStatement* stmt = nullptr;
stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_DISABLES);
- stmt->setUInt32(0, entry);
- stmt->setUInt8(1, disableType);
+ stmt->SetData(0, entry);
+ stmt->SetData(1, disableType);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
@@ -248,8 +248,8 @@ public:
}
stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_DISABLES);
- stmt->setUInt32(0, entry);
- stmt->setUInt8(1, disableType);
+ stmt->SetData(0, entry);
+ stmt->SetData(1, disableType);
WorldDatabase.Execute(stmt);
handler->PSendSysMessage("Remove Disabled %s (Id: %u)", disableTypeStr.c_str(), entry);
diff --git a/src/server/scripts/Commands/cs_gear.cpp b/src/server/scripts/Commands/cs_gear.cpp
index df53b59657..6e3e4c97cf 100644
--- a/src/server/scripts/Commands/cs_gear.cpp
+++ b/src/server/scripts/Commands/cs_gear.cpp
@@ -93,22 +93,22 @@ public:
if (sWorld->getIntConfig(CONFIG_MIN_LEVEL_STAT_SAVE))
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_STATS);
- stmt->setUInt32(0, player->GetGUID().GetCounter());
+ stmt->SetData(0, player->GetGUID().GetCounter());
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result)
{
Field* fields = result->Fetch();
- uint32 MaxHealth = fields[0].GetUInt32();
- uint32 Strength = fields[1].GetUInt32();
- uint32 Agility = fields[2].GetUInt32();
- uint32 Stamina = fields[3].GetUInt32();
- uint32 Intellect = fields[4].GetUInt32();
- uint32 Spirit = fields[5].GetUInt32();
- uint32 Armor = fields[6].GetUInt32();
- uint32 AttackPower = fields[7].GetUInt32();
- uint32 SpellPower = fields[8].GetUInt32();
- uint32 Resilience = fields[9].GetUInt32();
+ uint32 MaxHealth = fields[0].Get<uint32>();
+ uint32 Strength = fields[1].Get<uint32>();
+ uint32 Agility = fields[2].Get<uint32>();
+ uint32 Stamina = fields[3].Get<uint32>();
+ uint32 Intellect = fields[4].Get<uint32>();
+ uint32 Spirit = fields[5].Get<uint32>();
+ uint32 Armor = fields[6].Get<uint32>();
+ uint32 AttackPower = fields[7].Get<uint32>();
+ uint32 SpellPower = fields[8].Get<uint32>();
+ uint32 Resilience = fields[9].Get<uint32>();
handler->PSendSysMessage("Health: |cff00ffff%u|r - Stamina: |cff00ffff%u|r", MaxHealth, Stamina);
handler->PSendSysMessage("Strength: |cff00ffff%u|r - Agility: |cff00ffff%u|r", Strength, Agility);
diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp
index 4f16d8cecb..06fb48581b 100644
--- a/src/server/scripts/Commands/cs_gm.cpp
+++ b/src/server/scripts/Commands/cs_gm.cpp
@@ -157,8 +157,8 @@ public:
{
///- Get the accounts with GM Level >0
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_GM_ACCOUNTS);
- stmt->setUInt8(0, uint8(SEC_MODERATOR));
- stmt->setInt32(1, int32(realm.Id.Realm));
+ stmt->SetData(0, uint8(SEC_MODERATOR));
+ stmt->SetData(1, int32(realm.Id.Realm));
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (result)
@@ -169,16 +169,16 @@ public:
do
{
Field* fields = result->Fetch();
- char const* name = fields[0].GetCString();
- uint8 security = fields[1].GetUInt8();
- uint8 max = (16 - strlen(name)) / 2;
+ std::string name = fields[0].Get<std::string>();
+ uint8 security = fields[1].Get<uint8>();
+ uint8 max = (16 - name.length()) / 2;
uint8 max2 = max;
- if ((max + max2 + strlen(name)) == 16)
+ if ((max + max2 + name.length()) == 16)
max2 = max - 1;
if (handler->GetSession())
- handler->PSendSysMessage("| %s GMLevel %u", name, security);
+ handler->PSendSysMessage("| %s GMLevel %u", name.c_str(), security);
else
- handler->PSendSysMessage("|%*s%s%*s| %u |", max, " ", name, max2, " ", security);
+ handler->PSendSysMessage("|%*s%s%*s| %u |", max, " ", name.c_str(), max2, " ", security);
} while (result->NextRow());
handler->SendSysMessage("========================");
}
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp
index 6f255b5925..7fbf377808 100644
--- a/src/server/scripts/Commands/cs_gobject.cpp
+++ b/src/server/scripts/Commands/cs_gobject.cpp
@@ -190,17 +190,17 @@ public:
{
if (objectId->holds_alternative<GameObjectEntry>())
{
- result = WorldDatabase.PQuery("SELECT guid, id, position_x, position_y, position_z, orientation, map, phaseMask, (POW(position_x - '%f', 2) + POW(position_y - '%f', 2) + POW(position_z - '%f', 2)) AS order_ FROM gameobject WHERE map = '%i' AND id = '%u' ORDER BY order_ ASC LIMIT 1",
+ result = WorldDatabase.Query("SELECT guid, id, position_x, position_y, position_z, orientation, map, phaseMask, (POW(position_x - '{}', 2) + POW(position_y - '{}', 2) + POW(position_z - '{}', 2)) AS order_ FROM gameobject WHERE map = '{}' AND id = '{}' ORDER BY order_ ASC LIMIT 1",
player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), static_cast<uint32>(objectId->get<GameObjectEntry>()));
}
else
{
std::string name = std::string(objectId->get<std::string_view>());
WorldDatabase.EscapeString(name);
- result = WorldDatabase.PQuery(
- "SELECT guid, id, position_x, position_y, position_z, orientation, map, phaseMask, (POW(position_x - %f, 2) + POW(position_y - %f, 2) + POW(position_z - %f, 2)) AS order_ "
- "FROM gameobject LEFT JOIN gameobject_template ON gameobject_template.entry = gameobject.id WHERE map = %i AND name LIKE '%%%s%%' ORDER BY order_ ASC LIMIT 1",
- player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), name.c_str());
+ result = WorldDatabase.Query(
+ "SELECT guid, id, position_x, position_y, position_z, orientation, map, phaseMask, (POW(position_x - {}, 2) + POW(position_y - {}, 2) + POW(position_z - {}, 2)) AS order_ "
+ "FROM gameobject LEFT JOIN gameobject_template ON gameobject_template.entry = gameobject.id WHERE map = {} AND name LIKE '%{}%' ORDER BY order_ ASC LIMIT 1",
+ player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), name);
}
}
else
@@ -225,11 +225,11 @@ public:
else
eventFilter << ')';
- result = WorldDatabase.PQuery("SELECT gameobject.guid, id, position_x, position_y, position_z, orientation, map, phaseMask, "
- "(POW(position_x - %f, 2) + POW(position_y - %f, 2) + POW(position_z - %f, 2)) AS order_ FROM gameobject "
- "LEFT OUTER JOIN game_event_gameobject on gameobject.guid = game_event_gameobject.guid WHERE map = '%i' %s ORDER BY order_ ASC LIMIT 10",
+ result = WorldDatabase.Query("SELECT gameobject.guid, id, position_x, position_y, position_z, orientation, map, phaseMask, "
+ "(POW(position_x - {}, 2) + POW(position_y - {}, 2) + POW(position_z - {}, 2)) AS order_ FROM gameobject "
+ "LEFT OUTER JOIN game_event_gameobject on gameobject.guid = game_event_gameobject.guid WHERE map = '{}' {} ORDER BY order_ ASC LIMIT 10",
handler->GetSession()->GetPlayer()->GetPositionX(), handler->GetSession()->GetPlayer()->GetPositionY(), handler->GetSession()->GetPlayer()->GetPositionZ(),
- handler->GetSession()->GetPlayer()->GetMapId(), eventFilter.str().c_str());
+ handler->GetSession()->GetPlayer()->GetMapId(), eventFilter.str());
}
if (!result)
@@ -248,14 +248,14 @@ public:
do
{
Field* fields = result->Fetch();
- guidLow = fields[0].GetUInt32();
- id = fields[1].GetUInt32();
- x = fields[2].GetFloat();
- y = fields[3].GetFloat();
- z = fields[4].GetFloat();
- o = fields[5].GetFloat();
- mapId = fields[6].GetUInt16();
- phase = fields[7].GetUInt32();
+ guidLow = fields[0].Get<uint32>();
+ id = fields[1].Get<uint32>();
+ x = fields[2].Get<float>();
+ y = fields[3].Get<float>();
+ z = fields[4].Get<float>();
+ o = fields[5].Get<float>();
+ mapId = fields[6].Get<uint16>();
+ phase = fields[7].Get<uint32>();
poolId = sPoolMgr->IsPartOfAPool<GameObject>(guidLow);
if (!poolId || sPoolMgr->IsSpawnedObject<GameObject>(guidLow))
found = true;
@@ -457,15 +457,15 @@ public:
Player* player = handler->GetSession()->GetPlayer();
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_GAMEOBJECT_NEAREST);
- stmt->setFloat(0, player->GetPositionX());
- stmt->setFloat(1, player->GetPositionY());
- stmt->setFloat(2, player->GetPositionZ());
- stmt->setUInt32(3, player->GetMapId());
- stmt->setFloat(4, player->GetPositionX());
- stmt->setFloat(5, player->GetPositionY());
- stmt->setFloat(6, player->GetPositionZ());
- stmt->setFloat(7, distance * distance);
- stmt->setUInt32(8, player->GetPhaseMask());
+ stmt->SetData(0, player->GetPositionX());
+ stmt->SetData(1, player->GetPositionY());
+ stmt->SetData(2, player->GetPositionZ());
+ stmt->SetData(3, player->GetMapId());
+ stmt->SetData(4, player->GetPositionX());
+ stmt->SetData(5, player->GetPositionY());
+ stmt->SetData(6, player->GetPositionZ());
+ stmt->SetData(7, distance * distance);
+ stmt->SetData(8, player->GetPhaseMask());
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
@@ -473,12 +473,12 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint32 entry = fields[1].GetUInt32();
- float x = fields[2].GetFloat();
- float y = fields[3].GetFloat();
- float z = fields[4].GetFloat();
- uint16 mapId = fields[5].GetUInt16();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint32 entry = fields[1].Get<uint32>();
+ float x = fields[2].Get<float>();
+ float y = fields[3].Get<float>();
+ float z = fields[4].Get<float>();
+ uint16 mapId = fields[5].Get<uint16>();
GameObjectTemplate const* gameObjectInfo = sObjectMgr->GetGameObjectTemplate(entry);
diff --git a/src/server/scripts/Commands/cs_item.cpp b/src/server/scripts/Commands/cs_item.cpp
index 248b4a186e..d3edb11339 100644
--- a/src/server/scripts/Commands/cs_item.cpp
+++ b/src/server/scripts/Commands/cs_item.cpp
@@ -73,10 +73,10 @@ public:
// Check existence of item in recovery table
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_RECOVERY_ITEM);
- stmt->setUInt32(0, restoreId);
+ stmt->SetData(0, restoreId);
PreparedQueryResult fields = CharacterDatabase.Query(stmt);
- if (!fields || !(*fields)[1].GetUInt32() || (*fields)[3].GetUInt32() != player.GetGUID().GetCounter())
+ if (!fields || !(*fields)[1].Get<uint32>() || (*fields)[3].Get<uint32>() != player.GetGUID().GetCounter())
{
handler->SendSysMessage(LANG_ITEM_RESTORE_MISSING);
handler->SetSentErrorMessage(true);
@@ -84,8 +84,8 @@ public:
}
// Mail item to player
- uint32 itemEntry = (*fields)[1].GetUInt32();
- uint32 itemCount = (*fields)[2].GetUInt32();
+ uint32 itemEntry = (*fields)[1].Get<uint32>();
+ uint32 itemCount = (*fields)[2].Get<uint32>();
if (Player* onlinePlayer = player.GetConnectedPlayer())
{
@@ -112,7 +112,7 @@ public:
// Remove from recovery table
CharacterDatabasePreparedStatement* delStmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_RECOVERY_ITEM_BY_RECOVERY_ID);
- delStmt->setUInt32(0, (*fields)[0].GetUInt32());
+ delStmt->SetData(0, (*fields)[0].Get<uint32>());
CharacterDatabase.Execute(delStmt);
std::string nameLink = handler->playerLink(player.GetName());
@@ -130,7 +130,7 @@ public:
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_RECOVERY_ITEM_LIST);
- stmt->setUInt32(0, player.GetGUID().GetCounter());
+ stmt->SetData(0, player.GetGUID().GetCounter());
PreparedQueryResult disposedItems = CharacterDatabase.Query(stmt);
if (!disposedItems)
@@ -143,9 +143,9 @@ public:
do
{
Field* fields = disposedItems->Fetch();
- uint32 id = fields[0].GetUInt32();
- uint32 itemId = fields[1].GetUInt32();
- uint32 count = fields[2].GetUInt32();
+ uint32 id = fields[0].Get<uint32>();
+ uint32 itemId = fields[1].Get<uint32>();
+ uint32 count = fields[2].Get<uint32>();
std::string itemName = "";
if (ItemTemplate const* item = sObjectMgr->GetItemTemplate(itemId))
@@ -265,8 +265,8 @@ public:
ObjectGuid::LowType guid = player.GetGUID().GetCounter();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY_AND_OWNER);
- stmt->setUInt32(0, itemId);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, itemId);
+ stmt->SetData(1, guid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
@@ -275,24 +275,24 @@ public:
if (iece->reqhonorpoints)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_HONORPOINTS);
- stmt->setUInt32(0, guid);
+ stmt->SetData(0, guid);
PreparedQueryResult queryResult = CharacterDatabase.Query(stmt);
if (queryResult)
{
Field* fields = queryResult->Fetch();
- if ((fields[0].GetUInt32() + iece->reqhonorpoints) > sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS))
+ if ((fields[0].Get<uint32>() + iece->reqhonorpoints) > sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS))
{
- handler->PSendSysMessage(LANG_CMD_ITEM_REFUND_MAX_HONOR, item->Name1, item->ItemId, sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS), fields[0].GetUInt32(), iece->reqhonorpoints);
+ handler->PSendSysMessage(LANG_CMD_ITEM_REFUND_MAX_HONOR, item->Name1, item->ItemId, sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS), fields[0].Get<uint32>(), iece->reqhonorpoints);
handler->SetSentErrorMessage(true);
return false;
}
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_HONOR_POINTS_ACCUMULATIVE);
- stmt->setUInt32(0, iece->reqhonorpoints);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, iece->reqhonorpoints);
+ stmt->SetData(1, guid);
trans->Append(stmt);
handler->PSendSysMessage(LANG_CMD_ITEM_REFUNDED_HONOR, item->Name1, item->ItemId, iece->reqhonorpoints);
}
@@ -300,24 +300,24 @@ public:
if (iece->reqarenapoints)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ARENAPOINTS);
- stmt->setUInt32(0, guid);
+ stmt->SetData(0, guid);
PreparedQueryResult queryResult = CharacterDatabase.Query(stmt);
if (queryResult)
{
Field* fields = queryResult->Fetch();
- if ((fields[0].GetUInt32() + iece->reqhonorpoints) > sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS))
+ if ((fields[0].Get<uint32>() + iece->reqhonorpoints) > sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS))
{
- handler->PSendSysMessage(LANG_CMD_ITEM_REFUND_MAX_AP, item->Name1, item->ItemId, sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS), fields[0].GetUInt32(), iece->reqarenapoints);
+ handler->PSendSysMessage(LANG_CMD_ITEM_REFUND_MAX_AP, item->Name1, item->ItemId, sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS), fields[0].Get<uint32>(), iece->reqarenapoints);
handler->SetSentErrorMessage(true);
return false;
}
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_ARENA_POINTS_ACCUMULATIVE);
- stmt->setUInt32(0, iece->reqarenapoints);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, iece->reqarenapoints);
+ stmt->SetData(1, guid);
trans->Append(stmt);
handler->PSendSysMessage(LANG_CMD_ITEM_REFUNDED_AP, item->Name1, item->ItemId, iece->reqarenapoints);
}
@@ -358,11 +358,11 @@ public:
Field* fields = result->Fetch();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp
index 137a55f689..855ce22c95 100644
--- a/src/server/scripts/Commands/cs_list.cpp
+++ b/src/server/scripts/Commands/cs_list.cpp
@@ -85,18 +85,18 @@ public:
QueryResult result;
uint32 creatureCount = 0;
- result = WorldDatabase.PQuery("SELECT COUNT(guid) FROM creature WHERE id='%u'", uint32(creatureId));
+ result = WorldDatabase.Query("SELECT COUNT(guid) FROM creature WHERE id='{}'", uint32(creatureId));
if (result)
- creatureCount = (*result)[0].GetUInt64();
+ creatureCount = (*result)[0].Get<uint64>();
if (handler->GetSession())
{
Player* player = handler->GetSession()->GetPlayer();
- result = WorldDatabase.PQuery("SELECT guid, position_x, position_y, position_z, map, (POW(position_x - '%f', 2) + POW(position_y - '%f', 2) + POW(position_z - '%f', 2)) AS order_ FROM creature WHERE id = '%u' ORDER BY order_ ASC LIMIT %u",
+ result = WorldDatabase.Query("SELECT guid, position_x, position_y, position_z, map, (POW(position_x - '{}', 2) + POW(position_y - '{}', 2) + POW(position_z - '{}', 2)) AS order_ FROM creature WHERE id = '{}' ORDER BY order_ ASC LIMIT {}",
player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), uint32(creatureId), count);
}
else
- result = WorldDatabase.PQuery("SELECT guid, position_x, position_y, position_z, map FROM creature WHERE id = '%u' LIMIT %u",
+ result = WorldDatabase.Query("SELECT guid, position_x, position_y, position_z, map FROM creature WHERE id = '{}' LIMIT {}",
uint32(creatureId), count);
if (result)
@@ -104,11 +104,11 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- float x = fields[1].GetFloat();
- float y = fields[2].GetFloat();
- float z = fields[3].GetFloat();
- uint16 mapId = fields[4].GetUInt16();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ float x = fields[1].Get<float>();
+ float y = fields[2].Get<float>();
+ float z = fields[3].Get<float>();
+ uint16 mapId = fields[4].Get<uint16>();
bool liveFound = false;
// Get map (only support base map from console)
@@ -175,15 +175,15 @@ public:
uint32 inventoryCount = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_INVENTORY_COUNT_ITEM);
- stmt->setUInt32(0, itemId);
+ stmt->SetData(0, itemId);
result = CharacterDatabase.Query(stmt);
if (result)
- inventoryCount = (*result)[0].GetUInt64();
+ inventoryCount = (*result)[0].Get<uint64>();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY);
- stmt->setUInt32(0, itemId);
- stmt->setUInt32(1, count);
+ stmt->SetData(0, itemId);
+ stmt->SetData(1, count);
result = CharacterDatabase.Query(stmt);
if (result)
@@ -191,12 +191,12 @@ public:
do
{
Field* fields = result->Fetch();
- uint32 itemGuid = fields[0].GetUInt32();
- uint32 itemBag = fields[1].GetUInt32();
- uint8 itemSlot = fields[2].GetUInt8();
- uint32 ownerGuid = fields[3].GetUInt32();
- uint32 ownerAccountId = fields[4].GetUInt32();
- std::string ownerName = fields[5].GetString();
+ uint32 itemGuid = fields[0].Get<uint32>();
+ uint32 itemBag = fields[1].Get<uint32>();
+ uint8 itemSlot = fields[2].Get<uint8>();
+ uint32 ownerGuid = fields[3].Get<uint32>();
+ uint32 ownerAccountId = fields[4].Get<uint32>();
+ std::string ownerName = fields[5].Get<std::string>();
char const* itemPos = nullptr;
if (Player::IsEquipmentPos(itemBag, itemSlot))
@@ -224,17 +224,17 @@ public:
uint32 mailCount = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAIL_COUNT_ITEM);
- stmt->setUInt32(0, itemId);
+ stmt->SetData(0, itemId);
result = CharacterDatabase.Query(stmt);
if (result)
- mailCount = (*result)[0].GetUInt64();
+ mailCount = (*result)[0].Get<uint64>();
if (count > 0)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAIL_ITEMS_BY_ENTRY);
- stmt->setUInt32(0, itemId);
- stmt->setUInt32(1, count);
+ stmt->SetData(0, itemId);
+ stmt->SetData(1, count);
result = CharacterDatabase.Query(stmt);
}
else
@@ -245,13 +245,13 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType itemGuid = fields[0].GetUInt32();
- ObjectGuid::LowType itemSender = fields[1].GetUInt32();
- uint32 itemReceiver = fields[2].GetUInt32();
- uint32 itemSenderAccountId = fields[3].GetUInt32();
- std::string itemSenderName = fields[4].GetString();
- uint32 itemReceiverAccount = fields[5].GetUInt32();
- std::string itemReceiverName = fields[6].GetString();
+ ObjectGuid::LowType itemGuid = fields[0].Get<uint32>();
+ ObjectGuid::LowType itemSender = fields[1].Get<uint32>();
+ uint32 itemReceiver = fields[2].Get<uint32>();
+ uint32 itemSenderAccountId = fields[3].Get<uint32>();
+ std::string itemSenderName = fields[4].Get<std::string>();
+ uint32 itemReceiverAccount = fields[5].Get<uint32>();
+ std::string itemReceiverName = fields[6].Get<std::string>();
char const* itemPos = "[in mail]";
@@ -271,17 +271,17 @@ public:
uint32 auctionCount = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_AUCTIONHOUSE_COUNT_ITEM);
- stmt->setUInt32(0, itemId);
+ stmt->SetData(0, itemId);
result = CharacterDatabase.Query(stmt);
if (result)
- auctionCount = (*result)[0].GetUInt64();
+ auctionCount = (*result)[0].Get<uint64>();
if (count > 0)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_AUCTIONHOUSE_ITEM_BY_ENTRY);
- stmt->setUInt32(0, itemId);
- stmt->setUInt32(1, count);
+ stmt->SetData(0, itemId);
+ stmt->SetData(1, count);
result = CharacterDatabase.Query(stmt);
}
else
@@ -292,10 +292,10 @@ public:
do
{
Field* fields = result->Fetch();
- uint32 itemGuid = fields[0].GetUInt32();
- uint32 owner = fields[1].GetUInt32();
- uint32 ownerAccountId = fields[2].GetUInt32();
- std::string ownerName = fields[3].GetString();
+ uint32 itemGuid = fields[0].Get<uint32>();
+ uint32 owner = fields[1].Get<uint32>();
+ uint32 ownerAccountId = fields[2].Get<uint32>();
+ std::string ownerName = fields[3].Get<std::string>();
char const* itemPos = "[in auction]";
@@ -308,15 +308,15 @@ public:
uint32 guildCount = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUILD_BANK_COUNT_ITEM);
- stmt->setUInt32(0, itemId);
+ stmt->SetData(0, itemId);
result = CharacterDatabase.Query(stmt);
if (result)
- guildCount = (*result)[0].GetUInt64();
+ guildCount = (*result)[0].Get<uint64>();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUILD_BANK_ITEM_BY_ENTRY);
- stmt->setUInt32(0, itemId);
- stmt->setUInt32(1, count);
+ stmt->SetData(0, itemId);
+ stmt->SetData(1, count);
result = CharacterDatabase.Query(stmt);
if (result)
@@ -324,9 +324,9 @@ public:
do
{
Field* fields = result->Fetch();
- uint32 itemGuid = fields[0].GetUInt32();
- uint32 guildGuid = fields[1].GetUInt32();
- std::string guildName = fields[2].GetString();
+ uint32 itemGuid = fields[0].Get<uint32>();
+ uint32 guildGuid = fields[1].Get<uint32>();
+ std::string guildName = fields[2].Get<std::string>();
char const* itemPos = "[in guild bank]";
@@ -372,18 +372,18 @@ public:
QueryResult result;
uint32 objectCount = 0;
- result = WorldDatabase.PQuery("SELECT COUNT(guid) FROM gameobject WHERE id='%u'", uint32(gameObjectId));
+ result = WorldDatabase.Query("SELECT COUNT(guid) FROM gameobject WHERE id='{}'", uint32(gameObjectId));
if (result)
- objectCount = (*result)[0].GetUInt64();
+ objectCount = (*result)[0].Get<uint64>();
if (handler->GetSession())
{
Player* player = handler->GetSession()->GetPlayer();
- result = WorldDatabase.PQuery("SELECT guid, position_x, position_y, position_z, map, id, (POW(position_x - '%f', 2) + POW(position_y - '%f', 2) + POW(position_z - '%f', 2)) AS order_ FROM gameobject WHERE id = '%u' ORDER BY order_ ASC LIMIT %u",
+ result = WorldDatabase.Query("SELECT guid, position_x, position_y, position_z, map, id, (POW(position_x - '{}', 2) + POW(position_y - '{}', 2) + POW(position_z - '{}', 2)) AS order_ FROM gameobject WHERE id = '{}' ORDER BY order_ ASC LIMIT {}",
player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), uint32(gameObjectId), count);
}
else
- result = WorldDatabase.PQuery("SELECT guid, position_x, position_y, position_z, map, id FROM gameobject WHERE id = '%u' LIMIT %u",
+ result = WorldDatabase.Query("SELECT guid, position_x, position_y, position_z, map, id FROM gameobject WHERE id = '{}' LIMIT {}",
uint32(gameObjectId), count);
if (result)
@@ -391,12 +391,12 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- float x = fields[1].GetFloat();
- float y = fields[2].GetFloat();
- float z = fields[3].GetFloat();
- uint16 mapId = fields[4].GetUInt16();
- uint32 entry = fields[5].GetUInt32();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ float x = fields[1].Get<float>();
+ float y = fields[2].Get<float>();
+ float z = fields[3].Get<float>();
+ uint16 mapId = fields[4].Get<uint16>();
+ uint32 entry = fields[5].Get<uint32>();
bool liveFound = false;
// Get map (only support base map from console)
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index 0905ecbe71..d4f2ce45b8 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -1617,7 +1617,7 @@ public:
}
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BY_IP);
- stmt->setStringView(0, *ip);
+ stmt->SetData(0, *ip);
PreparedQueryResult result = LoginDatabase.Query(stmt);
return LookupPlayerSearchCommand(result, *limit ? *limit : -1, handler);
@@ -1631,7 +1631,7 @@ public:
}
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_LIST_BY_NAME);
- stmt->setString(0, account);
+ stmt->SetData(0, account);
PreparedQueryResult result = LoginDatabase.Query(stmt);
return LookupPlayerSearchCommand(result, *limit ? *limit : -1, handler);
@@ -1640,7 +1640,7 @@ public:
static bool HandleLookupPlayerEmailCommand(ChatHandler* handler, std::string email, Optional<int32> limit)
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_LIST_BY_EMAIL);
- stmt->setString(0, email);
+ stmt->SetData(0, email);
PreparedQueryResult result = LoginDatabase.Query(stmt);
return LookupPlayerSearchCommand(result, *limit ? *limit : -1, handler);
@@ -1668,11 +1668,11 @@ public:
}
Field* fields = result->Fetch();
- uint32 accountId = fields[0].GetUInt32();
- std::string accountName = fields[1].GetString();
+ uint32 accountId = fields[0].Get<uint32>();
+ std::string accountName = fields[1].Get<std::string>();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_GUID_NAME_BY_ACC);
- stmt->setUInt32(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result2 = CharacterDatabase.Query(stmt);
if (result2)
@@ -1682,8 +1682,8 @@ public:
do
{
Field* characterFields = result2->Fetch();
- ObjectGuid::LowType guid = characterFields[0].GetUInt32();
- std::string name = characterFields[1].GetString();
+ ObjectGuid::LowType guid = characterFields[0].Get<uint32>();
+ std::string name = characterFields[1].Get<std::string>();
uint8 plevel = 0, prace = 0, pclass = 0;
bool online = ObjectAccessor::FindPlayerByLowGUID(guid) != nullptr;
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 5f35e58d2c..ac474772d6 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -1981,7 +1981,7 @@ public:
// Query informations from the DB
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_PINFO);
- stmt->setUInt32(0, lowguid);
+ stmt->SetData(0, lowguid);
PreparedQueryResult charInfoResult = CharacterDatabase.Query(stmt);
if (!charInfoResult)
@@ -1990,17 +1990,17 @@ public:
}
Field* fields = charInfoResult->Fetch();
- totalPlayerTime = fields[0].GetUInt32();
- level = fields[1].GetUInt8();
- money = fields[2].GetUInt32();
- accId = fields[3].GetUInt32();
- raceid = fields[4].GetUInt8();
- classid = fields[5].GetUInt8();
- mapId = fields[6].GetUInt16();
- areaId = fields[7].GetUInt16();
- gender = fields[8].GetUInt8();
- uint32 health = fields[9].GetUInt32();
- uint32 playerFlags = fields[10].GetUInt32();
+ totalPlayerTime = fields[0].Get<uint32>();
+ level = fields[1].Get<uint8>();
+ money = fields[2].Get<uint32>();
+ accId = fields[3].Get<uint32>();
+ raceid = fields[4].Get<uint8>();
+ classid = fields[5].Get<uint8>();
+ mapId = fields[6].Get<uint16>();
+ areaId = fields[7].Get<uint16>();
+ gender = fields[8].Get<uint8>();
+ uint32 health = fields[9].Get<uint32>();
+ uint32 playerFlags = fields[10].Get<uint32>();
if (!health || playerFlags & PLAYER_FLAGS_GHOST)
{
@@ -2014,23 +2014,23 @@ public:
// Query the prepared statement for login data
loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO);
- loginStmt->setInt32(0, int32(realm.Id.Realm));
- loginStmt->setUInt32(1, accId);
+ loginStmt->SetData(0, int32(realm.Id.Realm));
+ loginStmt->SetData(1, accId);
PreparedQueryResult accInfoResult = LoginDatabase.Query(loginStmt);
if (accInfoResult)
{
Field* fields = accInfoResult->Fetch();
- userName = fields[0].GetString();
- security = fields[1].GetUInt8();
+ userName = fields[0].Get<std::string>();
+ security = fields[1].Get<uint8>();
// Only fetch these fields if commander has sufficient rights)
if (!handler->GetSession() || handler->GetSession()->GetSecurity() >= AccountTypes(security))
{
- eMail = fields[2].GetString();
- regMail = fields[3].GetString();
- lastIp = fields[4].GetString();
- lastLogin = fields[5].GetString();
+ eMail = fields[2].Get<std::string>();
+ regMail = fields[3].Get<std::string>();
+ lastIp = fields[4].Get<std::string>();
+ lastLogin = fields[5].Get<std::string>();
if (IpLocationRecord const* location = sIPLocation->GetLocationRecord(lastIp))
{
@@ -2047,12 +2047,12 @@ public:
lastLogin = handler->GetAcoreString(LANG_UNAUTHORIZED);
}
- muteTime = fields[6].GetUInt64();
- muteReason = fields[7].GetString();
- muteBy = fields[8].GetString();
- failedLogins = fields[9].GetUInt32();
- locked = fields[10].GetUInt8();
- OS = fields[11].GetString();
+ muteTime = fields[6].Get<uint64>();
+ muteReason = fields[7].Get<std::string>();
+ muteBy = fields[8].Get<std::string>();
+ failedLogins = fields[9].Get<uint32>();
+ locked = fields[10].Get<uint8>();
+ OS = fields[11].Get<std::string>();
}
// Creates a chat link to the character. Returns nameLink
@@ -2060,61 +2060,61 @@ public:
// Returns banType, banTime, bannedBy, banreason
LoginDatabasePreparedStatement* banQuery = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO_BANS);
- banQuery->setUInt32(0, accId);
+ banQuery->SetData(0, accId);
PreparedQueryResult accBannedResult = LoginDatabase.Query(banQuery);
if (!accBannedResult)
{
banType = handler->GetAcoreString(LANG_CHARACTER);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_BANS);
- stmt->setUInt32(0, lowguid);
+ stmt->SetData(0, lowguid);
accBannedResult = CharacterDatabase.Query(stmt);
}
if (accBannedResult)
{
Field* fields = accBannedResult->Fetch();
- banTime = int64(fields[1].GetUInt64() ? 0 : fields[0].GetUInt32());
- bannedBy = fields[2].GetString();
- banReason = fields[3].GetString();
+ banTime = int64(fields[1].Get<uint64>() ? 0 : fields[0].Get<uint32>());
+ bannedBy = fields[2].Get<std::string>();
+ banReason = fields[3].Get<std::string>();
}
// Can be used to query data from World database
WorldDatabasePreparedStatement* xpQuery = WorldDatabase.GetPreparedStatement(WORLD_SEL_REQ_XP);
- xpQuery->setUInt8(0, level);
+ xpQuery->SetData(0, level);
PreparedQueryResult xpResult = WorldDatabase.Query(xpQuery);
if (xpResult)
{
Field* fields = xpResult->Fetch();
- xptotal = fields[0].GetUInt32();
+ xptotal = fields[0].Get<uint32>();
}
// Can be used to query data from Characters database
CharacterDatabasePreparedStatement* charXpQuery = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_XP);
- charXpQuery->setUInt32(0, lowguid);
+ charXpQuery->SetData(0, lowguid);
PreparedQueryResult charXpResult = CharacterDatabase.Query(charXpQuery);
if (charXpResult)
{
Field* fields = charXpResult->Fetch();
- xp = fields[0].GetUInt32();
- ObjectGuid::LowType gguid = fields[1].GetUInt32();
+ xp = fields[0].Get<uint32>();
+ ObjectGuid::LowType gguid = fields[1].Get<uint32>();
if (gguid != 0)
{
CharacterDatabasePreparedStatement* guildQuery = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUILD_MEMBER_EXTENDED);
- guildQuery->setUInt32(0, lowguid);
+ guildQuery->SetData(0, lowguid);
PreparedQueryResult guildInfoResult = CharacterDatabase.Query(guildQuery);
if (guildInfoResult)
{
Field* guildInfoFields = guildInfoResult->Fetch();
- guildId = guildInfoFields[0].GetUInt32();
- guildName = guildInfoFields[1].GetString();
- guildRank = guildInfoFields[2].GetString();
- note = guildInfoFields[3].GetString();
- officeNote = guildInfoFields[4].GetString();
+ guildId = guildInfoFields[0].Get<uint32>();
+ guildName = guildInfoFields[1].Get<std::string>();
+ guildRank = guildInfoFields[2].Get<std::string>();
+ note = guildInfoFields[3].Get<std::string>();
+ officeNote = guildInfoFields[4].Get<std::string>();
}
}
}
@@ -2306,14 +2306,14 @@ public:
// Mail Data - an own query, because it may or may not be useful.
// SQL: "SELECT SUM(CASE WHEN (checked & 1) THEN 1 ELSE 0 END) AS 'readmail', COUNT(*) AS 'totalmail' FROM mail WHERE `receiver` = ?"
CharacterDatabasePreparedStatement* mailQuery = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_MAILS);
- mailQuery->setUInt32(0, lowguid);
+ mailQuery->SetData(0, lowguid);
PreparedQueryResult mailInfoResult = CharacterDatabase.Query(mailQuery);
if (mailInfoResult)
{
Field* fields = mailInfoResult->Fetch();
- uint32 readmail = uint32(fields[0].GetDouble());
- uint32 totalmail = uint32(fields[1].GetUInt64());
+ uint32 readmail = uint32(fields[0].Get<double>());
+ uint32 totalmail = uint32(fields[1].Get<uint64>());
// Output XXI. LANG_INFO_CHR_MAILS if at least one mail is given
if (totalmail >= 1)
@@ -2412,7 +2412,7 @@ public:
// Target is online, mute will be in effect right away.
int64 muteTime = GameTime::GetGameTime().count() + notSpeakTime * MINUTE;
target->GetSession()->m_muteTime = muteTime;
- stmt->setInt64(0, muteTime);
+ stmt->SetData(0, muteTime);
std::string nameLink = handler->playerLink(player->GetName());
if (sWorld->getBoolConfig(CONFIG_SHOW_MUTE_IN_WORLD))
@@ -2425,19 +2425,19 @@ public:
else
{
// Target is offline, mute will be in effect starting from the next login.
- stmt->setInt32(0, -int32(notSpeakTime * MINUTE));
+ stmt->SetData(0, -int32(notSpeakTime * MINUTE));
}
- stmt->setString(1, muteReasonStr);
- stmt->setString(2, muteBy);
- stmt->setUInt32(3, accountId);
+ stmt->SetData(1, muteReasonStr);
+ stmt->SetData(2, muteBy);
+ stmt->SetData(3, accountId);
LoginDatabase.Execute(stmt);
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT_MUTE);
- stmt->setUInt32(0, accountId);
- stmt->setUInt32(1, notSpeakTime);
- stmt->setString(2, muteBy);
- stmt->setString(3, muteReasonStr);
+ stmt->SetData(0, accountId);
+ stmt->SetData(1, notSpeakTime);
+ stmt->SetData(2, muteBy);
+ stmt->SetData(3, muteReasonStr);
LoginDatabase.Execute(stmt);
std::string nameLink = handler->playerLink(player->GetName());
@@ -2504,10 +2504,10 @@ public:
}
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);
- stmt->setInt64(0, 0);
- stmt->setString(1, "");
- stmt->setString(2, "");
- stmt->setUInt32(3, accountId);
+ stmt->SetData(0, 0);
+ stmt->SetData(1, "");
+ stmt->SetData(2, "");
+ stmt->SetData(3, accountId);
LoginDatabase.Execute(stmt);
if (playerTarget)
@@ -2544,7 +2544,7 @@ public:
static bool HandleMuteInfoHelper(ChatHandler* handler, uint32 accountId, char const* accountName)
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_MUTE_INFO);
- stmt->setUInt16(0, accountId);
+ stmt->SetData(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (!result)
@@ -2557,7 +2557,7 @@ public:
do
{
Field* fields = result->Fetch();
- handler->PSendSysMessage(LANG_COMMAND_MUTEHISTORY_OUTPUT, Acore::Time::TimeToHumanReadable(Seconds(fields[0].GetUInt32())).c_str(), fields[1].GetUInt32(), fields[2].GetCString(), fields[3].GetCString());
+ handler->PSendSysMessage(LANG_COMMAND_MUTEHISTORY_OUTPUT, Acore::Time::TimeToHumanReadable(Seconds(fields[0].Get<uint32>())).c_str(), fields[1].Get<uint32>(), fields[2].Get<std::string>().c_str(), fields[3].Get<std::string>().c_str());
} while (result->NextRow());
return true;
@@ -2869,7 +2869,7 @@ public:
else if (!creatureTarget && target && !target->IsConnected())
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_AURA_FROZEN);
- stmt->setUInt32(0, target->GetGUID().GetCounter());
+ stmt->SetData(0, target->GetGUID().GetCounter());
CharacterDatabase.Execute(stmt);
handler->PSendSysMessage(LANG_COMMAND_UNFREEZE, target->GetName().c_str());
return true;
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index 92689e8667..80ef81eebb 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -315,10 +315,8 @@ public:
// Update movement type
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_MOVEMENT_TYPE);
-
- stmt->setUInt8(0, uint8(WAYPOINT_MOTION_TYPE));
- stmt->setUInt32(1, lowGuid);
-
+ stmt->SetData(0, uint8(WAYPOINT_MOTION_TYPE));
+ stmt->SetData(1, uint32(lowGuid));
WorldDatabase.Execute(stmt);
handler->SendSysMessage(LANG_WAYPOINT_ADDED);
@@ -468,8 +466,8 @@ public:
// ..and DB
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_FACTION);
- stmt->setUInt16(0, uint16(factionId));
- stmt->setUInt32(1, creature->GetEntry());
+ stmt->SetData(0, uint16(factionId));
+ stmt->SetData(1, creature->GetEntry());
WorldDatabase.Execute(stmt);
@@ -529,8 +527,8 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_NPCFLAG);
- stmt->setUInt32(0, NPCFlags(npcFlags));
- stmt->setUInt32(1, creature->GetEntry());
+ stmt->SetData(0, NPCFlags(npcFlags));
+ stmt->SetData(1, creature->GetEntry());
WorldDatabase.Execute(stmt);
@@ -662,15 +660,15 @@ public:
Player* player = handler->GetSession()->GetPlayer();
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_NEAREST);
- stmt->setFloat(0, player->GetPositionX());
- stmt->setFloat(1, player->GetPositionY());
- stmt->setFloat(2, player->GetPositionZ());
- stmt->setUInt32(3, player->GetMapId());
- stmt->setFloat(4, player->GetPositionX());
- stmt->setFloat(5, player->GetPositionY());
- stmt->setFloat(6, player->GetPositionZ());
- stmt->setFloat(7, distance * distance);
- stmt->setUInt32(8, player->GetPhaseMask());
+ stmt->SetData(0, player->GetPositionX());
+ stmt->SetData(1, player->GetPositionY());
+ stmt->SetData(2, player->GetPositionZ());
+ stmt->SetData(3, player->GetMapId());
+ stmt->SetData(4, player->GetPositionX());
+ stmt->SetData(5, player->GetPositionY());
+ stmt->SetData(6, player->GetPositionZ());
+ stmt->SetData(7, distance * distance);
+ stmt->SetData(8, player->GetPhaseMask());
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
@@ -678,13 +676,13 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
- uint32 entry = fields[1].GetUInt32();
- //uint32 entry2 = fields[2].GetUInt32();
- float x = fields[3].GetFloat();
- float y = fields[4].GetFloat();
- float z = fields[5].GetFloat();
- uint16 mapId = fields[6].GetUInt16();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
+ uint32 entry = fields[1].Get<uint32>();
+ //uint32 entry2 = fields[2].Get<uint32>();
+ float x = fields[3].Get<float>();
+ float y = fields[4].Get<float>();
+ float z = fields[5].Get<float>();
+ uint16 mapId = fields[6].Get<uint16>();
CreatureTemplate const* creatureTemplate = sObjectMgr->GetCreatureTemplate(entry);
if (!creatureTemplate)
@@ -751,11 +749,11 @@ public:
}
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_POSITION);
- stmt->setFloat(0, x);
- stmt->setFloat(1, y);
- stmt->setFloat(2, z);
- stmt->setFloat(3, o);
- stmt->setUInt32(4, lowguid);
+ stmt->SetData(0, x);
+ stmt->SetData(1, y);
+ stmt->SetData(2, z);
+ stmt->SetData(3, o);
+ stmt->SetData(4, lowguid);
WorldDatabase.Execute(stmt);
@@ -977,9 +975,9 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_WANDER_DISTANCE);
- stmt->setFloat(0, option);
- stmt->setUInt8(1, uint8(mtype));
- stmt->setUInt32(2, guidLow);
+ stmt->SetData(0, option);
+ stmt->SetData(1, uint8(mtype));
+ stmt->SetData(2, guidLow);
WorldDatabase.Execute(stmt);
@@ -995,8 +993,8 @@ public:
return false;
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_SPAWN_TIME_SECS);
- stmt->setUInt32(0, spawnTime);
- stmt->setUInt32(1, creature->GetSpawnId());
+ stmt->SetData(0, spawnTime);
+ stmt->SetData(1, creature->GetSpawnId());
WorldDatabase.Execute(stmt);
creature->SetRespawnDelay(spawnTime);
@@ -1216,11 +1214,11 @@ public:
creature->SearchFormation();
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_CREATURE_FORMATION);
- stmt->setUInt32(0, leaderGUID);
- stmt->setUInt32(1, lowguid);
- stmt->setFloat(2, group_member.follow_dist);
- stmt->setFloat(3, group_member.follow_angle);
- stmt->setUInt32(4, uint32(group_member.groupAI));
+ stmt->SetData(0, leaderGUID);
+ stmt->SetData(1, lowguid);
+ stmt->SetData(2, group_member.follow_dist);
+ stmt->SetData(3, group_member.follow_angle);
+ stmt->SetData(4, uint32(group_member.groupAI));
WorldDatabase.Execute(stmt);
diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp
index 18f3257265..30d6c55699 100644
--- a/src/server/scripts/Commands/cs_quest.cpp
+++ b/src/server/scripts/Commands/cs_quest.cpp
@@ -97,7 +97,7 @@ public:
else
{
ObjectGuid::LowType guid = playerTarget->GetGUID().GetCounter();
- QueryResult result = CharacterDatabase.PQuery("SELECT 1 FROM character_queststatus WHERE guid = %u AND quest = %u", guid, entry);
+ QueryResult result = CharacterDatabase.Query("SELECT 1 FROM character_queststatus WHERE guid = {} AND quest = {}", guid, entry);
if (result)
{
@@ -109,23 +109,23 @@ public:
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHAR_QUESTSTATUS);
- stmt->setUInt32(index++, guid);
- stmt->setUInt32(index++, entry);
- stmt->setUInt8(index++, 1);
- stmt->setBool(index++, false);
- stmt->setUInt32(index++, 0);
+ stmt->SetData(index++, guid);
+ stmt->SetData(index++, entry);
+ stmt->SetData(index++, 1);
+ stmt->SetData(index++, false);
+ stmt->SetData(index++, 0);
for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; i++)
{
- stmt->setUInt16(index++, 0);
+ stmt->SetData(index++, 0);
}
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; i++)
{
- stmt->setUInt16(index++, 0);
+ stmt->SetData(index++, 0);
}
- stmt->setUInt16(index, 0);
+ stmt->SetData(index, 0);
CharacterDatabase.Execute(stmt);
}
@@ -188,20 +188,20 @@ public:
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS_REWARDED_BY_QUEST);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS_BY_QUEST);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
trans->Append(stmt);
for (uint32 const& requiredItem : quest->RequiredItemId)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY_AND_OWNER);
- stmt->setUInt32(0, requiredItem);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, requiredItem);
+ stmt->SetData(1, guid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
@@ -210,11 +210,11 @@ public:
Field* fields = result->Fetch();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
}
}
@@ -348,7 +348,7 @@ public:
else
{
ObjectGuid::LowType guid = playerTarget->GetGUID().GetCounter();
- QueryResult result = CharacterDatabase.PQuery("SELECT 1 FROM character_queststatus WHERE guid = %u AND quest = %u", guid, entry);
+ QueryResult result = CharacterDatabase.Query("SELECT 1 FROM character_queststatus WHERE guid = {} AND quest = {}", guid, entry);
if (!result)
{
@@ -395,24 +395,24 @@ public:
uint8 index = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHAR_QUESTSTATUS);
- stmt->setUInt32(index++, guid);
- stmt->setUInt32(index++, entry);
- stmt->setUInt8(index++, 1);
- stmt->setBool(index++, quest->HasFlag(QUEST_FLAGS_EXPLORATION));
- stmt->setUInt32(index++, 0);
+ stmt->SetData(index++, guid);
+ stmt->SetData(index++, entry);
+ stmt->SetData(index++, 1);
+ stmt->SetData(index++, quest->HasFlag(QUEST_FLAGS_EXPLORATION));
+ stmt->SetData(index++, 0);
for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; i++)
{
- stmt->setUInt16(index++, quest->RequiredNpcOrGoCount[i]);
+ stmt->SetData(index++, quest->RequiredNpcOrGoCount[i]);
}
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; i++)
{
// Will be updated once they loot the items from the mailbox.
- stmt->setUInt16(index++, 0);
+ stmt->SetData(index++, 0);
}
- stmt->setUInt16(index, 0);
+ stmt->SetData(index, 0);
trans->Append(stmt);
@@ -422,24 +422,24 @@ public:
uint32 repValue = quest->GetRepObjectiveValue();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_REP_BY_FACTION);
- stmt->setUInt32(0, repFaction);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, repFaction);
+ stmt->SetData(1, guid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result)
{
Field* fields = result->Fetch();
- uint32 curRep = fields[0].GetUInt32();
+ uint32 curRep = fields[0].Get<uint32>();
if (curRep < repValue)
{
if (sFactionStore.LookupEntry(repFaction))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_REP_FACTION_CHANGE);
- stmt->setUInt32(0, repFaction);
- stmt->setUInt32(1, repValue);
- stmt->setUInt32(2, repFaction);
- stmt->setUInt32(3, guid);
+ stmt->SetData(0, repFaction);
+ stmt->SetData(1, repValue);
+ stmt->SetData(2, repFaction);
+ stmt->SetData(3, guid);
trans->Append(stmt);
}
}
@@ -452,24 +452,24 @@ public:
uint32 repValue = quest->GetRepObjectiveValue();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_REP_BY_FACTION);
- stmt->setUInt32(0, repFaction);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, repFaction);
+ stmt->SetData(1, guid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result)
{
Field* fields = result->Fetch();
- uint32 curRep = fields[0].GetUInt32();
+ uint32 curRep = fields[0].Get<uint32>();
if (curRep < repValue)
{
if (sFactionStore.LookupEntry(repFaction))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_REP_FACTION_CHANGE);
- stmt->setUInt32(0, repFaction);
- stmt->setUInt32(1, repValue);
- stmt->setUInt32(2, repFaction);
- stmt->setUInt32(3, guid);
+ stmt->SetData(0, repFaction);
+ stmt->SetData(1, repValue);
+ stmt->SetData(2, repFaction);
+ stmt->SetData(3, guid);
trans->Append(stmt);
}
}
@@ -484,8 +484,8 @@ public:
{
// prepare Quest Tracker datas
auto stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_QUEST_TRACK_GM_COMPLETE);
- stmt->setUInt32(0, entry);
- stmt->setUInt32(1, playerTarget->GetGUID().GetCounter());
+ stmt->SetData(0, entry);
+ stmt->SetData(1, playerTarget->GetGUID().GetCounter());
// add to Quest Tracker
CharacterDatabase.Execute(stmt);
@@ -536,7 +536,7 @@ public:
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt;
- QueryResult result = CharacterDatabase.PQuery("SELECT 1 FROM character_queststatus WHERE guid = %u AND quest = %u AND status = 1", guid, entry);
+ QueryResult result = CharacterDatabase.Query("SELECT 1 FROM character_queststatus WHERE guid = {} AND quest = {} AND status = 1", guid, entry);
if (!result)
{
@@ -548,8 +548,8 @@ public:
for (uint32 const& requiredItem : quest->RequiredItemId)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY_AND_OWNER);
- stmt->setUInt32(0, requiredItem);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, requiredItem);
+ stmt->SetData(1, guid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
@@ -558,11 +558,11 @@ public:
Field* fields = result->Fetch();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
}
}
@@ -570,8 +570,8 @@ public:
for (uint32 const& sourceItem : quest->ItemDrop)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY_AND_OWNER);
- stmt->setUInt32(0, sourceItem);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, sourceItem);
+ stmt->SetData(1, guid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
@@ -580,11 +580,11 @@ public:
Field* fields = result->Fetch();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_INVENTORY_BY_ITEM);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE);
- stmt->setUInt32(0, fields[0].GetUInt32());
+ stmt->SetData(0, fields[0].Get<uint32>());
trans->Append(stmt);
}
}
@@ -651,48 +651,48 @@ public:
if (quest->IsDaily() || quest->IsDFQuest())
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_DAILYQUESTSTATUS);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
- stmt->setUInt64(2, GameTime::GetGameTime().count());
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
+ stmt->SetData(2, GameTime::GetGameTime().count());
trans->Append(stmt);
}
else if (quest->IsWeekly())
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_WEEKLYQUESTSTATUS);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
trans->Append(stmt);
}
else if (quest->IsMonthly())
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_MONTHLYQUESTSTATUS);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
trans->Append(stmt);
}
else if (quest->IsSeasonal())
{
// We can't know which event is the quest linked to, so we can't do anything about this.
/* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_SEASONALQUESTSTATUS);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
- stmt->setUInt32(2, event_id);
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
+ stmt->SetData(2, event_id);
trans->Append(stmt);*/
}
if (uint32 honor = quest->CalculateHonorGain(charLevel))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_HONOR_POINTS_ACCUMULATIVE);
- stmt->setUInt32(0, honor);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, honor);
+ stmt->SetData(1, guid);
trans->Append(stmt);
}
if (quest->GetRewArenaPoints())
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_ARENA_POINTS_ACCUMULATIVE);
- stmt->setUInt32(0, quest->GetRewArenaPoints());
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, quest->GetRewArenaPoints());
+ stmt->SetData(1, guid);
trans->Append(stmt);
}
@@ -707,8 +707,8 @@ public:
// Some experience might get lost on level up.
uint32 xp = uint32(quest->XPValue(charLevel) * sWorld->getRate(RATE_XP_QUEST));
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_XP_ACCUMULATIVE);
- stmt->setUInt32(0, xp);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, xp);
+ stmt->SetData(1, guid);
trans->Append(stmt);
}
@@ -721,19 +721,19 @@ public:
if (rewMoney > 0)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UDP_CHAR_MONEY_ACCUMULATIVE);
- stmt->setUInt32(0, rewMoney);
- stmt->setUInt32(1, guid);
+ stmt->SetData(0, rewMoney);
+ stmt->SetData(1, guid);
trans->Append(stmt);
}
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_QUESTSTATUS_REWARDED);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
trans->Append(stmt);
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_QUESTSTATUS_BY_QUEST);
- stmt->setUInt32(0, guid);
- stmt->setUInt32(1, entry);
+ stmt->SetData(0, guid);
+ stmt->SetData(1, entry);
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index d920d29129..7f5ab230cd 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -435,7 +435,7 @@ public:
uint32 entry = Acore::StringTo<uint32>(entryStr).value_or(0);
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_TEMPLATE);
- stmt->setUInt32(0, entry);
+ stmt->SetData(0, entry);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index f0cbf66143..e38a1f10ce 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -178,8 +178,8 @@ public:
else
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(AT_LOGIN_RESET_SPELLS));
- stmt->setUInt32(1, targetGuid.GetCounter());
+ stmt->SetData(0, uint16(AT_LOGIN_RESET_SPELLS));
+ stmt->SetData(1, targetGuid.GetCounter());
CharacterDatabase.Execute(stmt);
handler->PSendSysMessage(LANG_RESET_SPELLS_OFFLINE, targetName.c_str());
@@ -252,8 +252,8 @@ public:
else if (targetGuid)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(AT_LOGIN_NONE | AT_LOGIN_RESET_PET_TALENTS));
- stmt->setUInt32(1, targetGuid.GetCounter());
+ stmt->SetData(0, uint16(AT_LOGIN_NONE | AT_LOGIN_RESET_PET_TALENTS));
+ stmt->SetData(1, targetGuid.GetCounter());
CharacterDatabase.Execute(stmt);
std::string nameLink = handler->playerLink(targetName);
@@ -298,7 +298,7 @@ public:
}
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ALL_AT_LOGIN_FLAGS);
- stmt->setUInt16(0, uint16(atLogin));
+ stmt->SetData(0, uint16(atLogin));
CharacterDatabase.Execute(stmt);
std::shared_lock<std::shared_mutex> lock(*HashMapHolder<Player>::GetLock());
diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp
index 5b9d25f879..0dd127834b 100644
--- a/src/server/scripts/Commands/cs_server.cpp
+++ b/src/server/scripts/Commands/cs_server.cpp
@@ -119,8 +119,8 @@ public:
{
uint16 dbPort = 0;
- if (QueryResult res = LoginDatabase.PQuery("SELECT port FROM realmlist WHERE id = %u", realm.Id.Realm))
- dbPort = (*res)[0].GetUInt16();
+ if (QueryResult res = LoginDatabase.Query("SELECT port FROM realmlist WHERE id = {}", realm.Id.Realm))
+ dbPort = (*res)[0].Get<uint16>();
if (dbPort)
dbPortOutput = Acore::StringFormatFmt("Realmlist (Realm Id: {}) configured in port {}", realm.Id.Realm, dbPort);
diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp
index f8ebdaf80b..fb29793eb9 100644
--- a/src/server/scripts/Commands/cs_tele.cpp
+++ b/src/server/scripts/Commands/cs_tele.cpp
@@ -186,14 +186,14 @@ public:
else
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_HOMEBIND);
- stmt->setUInt32(0, player->GetGUID().GetCounter());
+ stmt->SetData(0, player->GetGUID().GetCounter());
PreparedQueryResult resultDB = CharacterDatabase.Query(stmt);
if (resultDB)
{
Field* fieldsDB = resultDB->Fetch();
- WorldLocation loc(fieldsDB[0].GetUInt16(), fieldsDB[2].GetFloat(), fieldsDB[3].GetFloat(), fieldsDB[4].GetFloat(), 0.0f);
- uint32 zoneId = fieldsDB[1].GetUInt16();
+ WorldLocation loc(fieldsDB[0].Get<uint16>(), fieldsDB[2].Get<float>(), fieldsDB[3].Get<float>(), fieldsDB[4].Get<float>(), 0.0f);
+ uint32 zoneId = fieldsDB[1].Get<uint16>();
Player::SavePositionInDB(loc, zoneId, player->GetGUID(), nullptr);
}
@@ -373,7 +373,7 @@ public:
WorldDatabase.EscapeString(normalizedName);
// May need work //PussyWizardEliteMalcrom
- QueryResult result = WorldDatabase.PQuery("SELECT c.position_x, c.position_y, c.position_z, c.orientation, c.map, ct.name FROM creature c INNER JOIN creature_template ct ON c.id1 = ct.entry WHERE ct.name LIKE '%s'", normalizedName.c_str());
+ QueryResult result = WorldDatabase.Query("SELECT c.position_x, c.position_y, c.position_z, c.orientation, c.map, ct.name FROM creature c INNER JOIN creature_template ct ON c.id1 = ct.entry WHERE ct.name LIKE '{}'", normalizedName);
if (!result)
{
handler->SendSysMessage(LANG_COMMAND_GOCREATNOTFOUND);
@@ -385,7 +385,7 @@ public:
handler->SendSysMessage(LANG_COMMAND_GOCREATMULTIPLE);
Field* fields = result->Fetch();
- return DoNameTeleport(handler, player, fields[4].GetUInt16(), { fields[0].GetFloat(), fields[1].GetFloat(), fields[2].GetFloat(), fields[3].GetFloat() }, fields[5].GetString());
+ return DoNameTeleport(handler, player, fields[4].Get<uint16>(), { fields[0].Get<float>(), fields[1].Get<float>(), fields[2].Get<float>(), fields[3].Get<float>() }, fields[5].Get<std::string>());
}
};
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index 0fe661f3c2..2220657411 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -101,7 +101,7 @@ public:
PreparedQueryResult result = WorldDatabase.Query(stmt);
- uint32 maxpathid = result->Fetch()->GetInt32();
+ uint32 maxpathid = result->Fetch()->Get<int32>();
pathid = maxpathid + 1;
handler->PSendSysMessage("%s%s|r", "|cff00ff00", "New path started.");
}
@@ -119,22 +119,22 @@ public:
}
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_MAX_POINT);
- stmt->setUInt32(0, pathid);
+ stmt->SetData(0, pathid);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
- point = (*result)[0].GetUInt32();
+ point = (*result)[0].Get<uint32>();
Player* player = handler->GetSession()->GetPlayer();
//Map* map = player->GetMap();
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_DATA);
- stmt->setUInt32(0, pathid);
- stmt->setUInt32(1, point + 1);
- stmt->setFloat(2, player->GetPositionX());
- stmt->setFloat(3, player->GetPositionY());
- stmt->setFloat(4, player->GetPositionZ());
+ stmt->SetData(0, pathid);
+ stmt->SetData(1, point + 1);
+ stmt->SetData(2, player->GetPositionX());
+ stmt->SetData(3, player->GetPositionY());
+ stmt->SetData(4, player->GetPositionZ());
WorldDatabase.Execute(stmt);
@@ -187,7 +187,7 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_ADDON_BY_GUID);
- stmt->setUInt32(0, guidLow);
+ stmt->SetData(0, guidLow);
PreparedQueryResult result = WorldDatabase.Query(stmt);
@@ -195,23 +195,23 @@ public:
{
stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_ADDON_PATH);
- stmt->setUInt32(0, pathid);
- stmt->setUInt32(1, guidLow);
+ stmt->SetData(0, pathid);
+ stmt->SetData(1, guidLow);
}
else
{
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_CREATURE_ADDON);
- stmt->setUInt32(0, guidLow);
- stmt->setUInt32(1, pathid);
+ stmt->SetData(0, guidLow);
+ stmt->SetData(1, pathid);
}
WorldDatabase.Execute(stmt);
stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_MOVEMENT_TYPE);
- stmt->setUInt8(0, uint8(WAYPOINT_MOTION_TYPE));
- stmt->setUInt32(1, guidLow);
+ stmt->SetData(0, uint8(WAYPOINT_MOTION_TYPE));
+ stmt->SetData(1, guidLow);
WorldDatabase.Execute(stmt);
@@ -255,15 +255,15 @@ public:
if (target->GetCreatureAddon()->path_id != 0)
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE_ADDON);
- stmt->setUInt32(0, guildLow);
+ stmt->SetData(0, guildLow);
WorldDatabase.Execute(stmt);
target->UpdateWaypointID(0);
stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_MOVEMENT_TYPE);
- stmt->setUInt8(0, uint8(IDLE_MOTION_TYPE));
- stmt->setUInt32(1, guildLow);
+ stmt->SetData(0, uint8(IDLE_MOTION_TYPE));
+ stmt->SetData(1, guildLow);
WorldDatabase.Execute(stmt);
@@ -302,14 +302,14 @@ public:
if (id)
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
- stmt->setUInt32(0, id);
+ stmt->SetData(0, id);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_SCRIPT);
- stmt->setUInt32(0, id);
+ stmt->SetData(0, id);
WorldDatabase.Execute(stmt);
@@ -324,11 +324,11 @@ public:
PreparedQueryResult result = WorldDatabase.Query(stmt);
- id = result->Fetch()->GetUInt32();
+ id = result->Fetch()->Get<uint32>();
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_SCRIPT);
- stmt->setUInt32(0, id + 1);
+ stmt->SetData(0, id + 1);
WorldDatabase.Execute(stmt);
@@ -353,7 +353,7 @@ public:
char const* a7;
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_BY_ID);
- stmt->setUInt32(0, id);
+ stmt->SetData(0, id);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -367,16 +367,16 @@ public:
do
{
fields = result->Fetch();
- a2 = fields[0].GetUInt32();
- a3 = fields[1].GetUInt32();
- a4 = fields[2].GetUInt32();
- a5 = fields[3].GetUInt32();
- a6 = fields[4].GetUInt32();
- a7 = fields[5].GetCString();
- a8 = fields[6].GetFloat();
- a9 = fields[7].GetFloat();
- a10 = fields[8].GetFloat();
- a11 = fields[9].GetFloat();
+ a2 = fields[0].Get<uint32>();
+ a3 = fields[1].Get<uint32>();
+ a4 = fields[2].Get<uint32>();
+ a5 = fields[3].Get<uint32>();
+ a6 = fields[4].Get<uint32>();
+ a7 = fields[5].Get<std::string>().c_str();
+ a8 = fields[6].Get<float>();
+ a9 = fields[7].Get<float>();
+ a10 = fields[8].Get<float>();
+ a11 = fields[9].Get<float>();
handler->PSendSysMessage("|cffff33ffid:|r|cff00ffff %u|r|cff00ff00, guid: |r|cff00ffff%u|r|cff00ff00, delay: |r|cff00ffff%u|r|cff00ff00, command: |r|cff00ffff%u|r|cff00ff00, datalong: |r|cff00ffff%u|r|cff00ff00, datalong2: |r|cff00ffff%u|r|cff00ff00, datatext: |r|cff00ffff%s|r|cff00ff00, posx: |r|cff00ffff%f|r|cff00ff00, posy: |r|cff00ffff%f|r|cff00ff00, posz: |r|cff00ffff%f|r|cff00ff00, orientation: |r|cff00ffff%f|r", id, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
} while (result->NextRow());
@@ -394,7 +394,7 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
- stmt->setUInt32(0, id);
+ stmt->SetData(0, id);
PreparedQueryResult result = WorldDatabase.Query(stmt);
@@ -402,7 +402,7 @@ public:
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_WAYPOINT_SCRIPT);
- stmt->setUInt32(0, id);
+ stmt->SetData(0, id);
WorldDatabase.Execute(stmt);
@@ -465,8 +465,8 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_SCRIPT_ID);
- stmt->setUInt32(0, newid);
- stmt->setUInt32(1, id);
+ stmt->SetData(0, newid);
+ stmt->SetData(1, id);
WorldDatabase.Execute(stmt);
@@ -475,7 +475,7 @@ public:
else
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
- stmt->setUInt32(0, id);
+ stmt->SetData(0, id);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -488,8 +488,8 @@ public:
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_SCRIPT_X);
- stmt->setFloat(0, float(atof(arg_3)));
- stmt->setUInt32(1, id);
+ stmt->SetData(0, float(atof(arg_3)));
+ stmt->SetData(1, id);
WorldDatabase.Execute(stmt);
@@ -500,8 +500,8 @@ public:
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_SCRIPT_Y);
- stmt->setFloat(0, float(atof(arg_3)));
- stmt->setUInt32(1, id);
+ stmt->SetData(0, float(atof(arg_3)));
+ stmt->SetData(1, id);
WorldDatabase.Execute(stmt);
@@ -512,8 +512,8 @@ public:
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_SCRIPT_Z);
- stmt->setFloat(0, float(atof(arg_3)));
- stmt->setUInt32(1, id);
+ stmt->SetData(0, float(atof(arg_3)));
+ stmt->SetData(1, id);
WorldDatabase.Execute(stmt);
@@ -524,8 +524,8 @@ public:
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_SCRIPT_O);
- stmt->setFloat(0, float(atof(arg_3)));
- stmt->setUInt32(1, id);
+ stmt->SetData(0, float(atof(arg_3)));
+ stmt->SetData(1, id);
WorldDatabase.Execute(stmt);
@@ -534,7 +534,7 @@ public:
}
else if (arg_str_2 == "dataint")
{
- WorldDatabase.PExecute("UPDATE waypoint_scripts SET %s='%u' WHERE guid='%u'", arg_2, atoi(arg_3), id); // Query can't be a prepared statement
+ WorldDatabase.Execute("UPDATE waypoint_scripts SET {}='{}' WHERE guid='{}'", arg_2, atoi(arg_3), id); // Query can't be a prepared statement
handler->PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 dataint updated.|r", id);
return true;
@@ -543,7 +543,7 @@ public:
{
std::string arg_str_3 = arg_3;
WorldDatabase.EscapeString(arg_str_3);
- WorldDatabase.PExecute("UPDATE waypoint_scripts SET %s='%s' WHERE guid='%u'", arg_2, arg_str_3.c_str(), id); // Query can't be a prepared statement
+ WorldDatabase.Execute("UPDATE waypoint_scripts SET {}='{}' WHERE guid='{}'", arg_2, arg_str_3, id); // Query can't be a prepared statement
}
}
handler->PSendSysMessage("%s%s|r|cff00ffff%u:|r|cff00ff00 %s %s|r", "|cff00ff00", "Waypoint script:", id, arg_2, "updated.");
@@ -596,7 +596,7 @@ public:
// Check the creature
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_BY_WPGUID);
- stmt->setUInt32(0, wpSpawnId);
+ stmt->SetData(0, wpSpawnId);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -611,12 +611,12 @@ public:
std::string maxDiff = "0.01";
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_BY_POS);
- stmt->setFloat(0, target->GetPositionX());
- stmt->setString(1, maxDiff);
- stmt->setFloat(2, target->GetPositionY());
- stmt->setString(3, maxDiff);
- stmt->setFloat(4, target->GetPositionZ());
- stmt->setString(5, maxDiff);
+ stmt->SetData(0, target->GetPositionX());
+ stmt->SetData(1, maxDiff);
+ stmt->SetData(2, target->GetPositionY());
+ stmt->SetData(3, maxDiff);
+ stmt->SetData(4, target->GetPositionZ());
+ stmt->SetData(5, maxDiff);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -629,8 +629,8 @@ public:
do
{
Field* fields = result->Fetch();
- pathid = fields[0].GetUInt32();
- point = fields[1].GetUInt32();
+ pathid = fields[0].Get<uint32>();
+ point = fields[1].Get<uint32>();
} while (result->NextRow());
// We have the waypoint number and the GUID of the "master npc"
@@ -657,14 +657,14 @@ public:
}
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_WAYPOINT_DATA);
- stmt->setUInt32(0, pathid);
- stmt->setUInt32(1, point);
+ stmt->SetData(0, pathid);
+ stmt->SetData(1, point);
WorldDatabase.Execute(stmt);
stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_DATA_POINT);
- stmt->setUInt32(0, pathid);
- stmt->setUInt32(1, point);
+ stmt->SetData(0, pathid);
+ stmt->SetData(1, point);
WorldDatabase.Execute(stmt);
@@ -715,11 +715,11 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_DATA_POSITION);
- stmt->setFloat(0, chr->GetPositionX());
- stmt->setFloat(1, chr->GetPositionY());
- stmt->setFloat(2, chr->GetPositionZ());
- stmt->setUInt32(3, pathid);
- stmt->setUInt32(4, point);
+ stmt->SetData(0, chr->GetPositionX());
+ stmt->SetData(1, chr->GetPositionY());
+ stmt->SetData(2, chr->GetPositionZ());
+ stmt->SetData(3, pathid);
+ stmt->SetData(4, point);
WorldDatabase.Execute(stmt);
@@ -733,14 +733,14 @@ public:
if (text == 0)
{
// show_str check for present in list of correct values, no sql injection possible
- WorldDatabase.PExecute("UPDATE waypoint_data SET %s=nullptr WHERE id='%u' AND point='%u'", show_str, pathid, point); // Query can't be a prepared statement
+ WorldDatabase.Execute("UPDATE waypoint_data SET {}=nullptr WHERE id='{}' AND point='{}'", show_str, pathid, point); // Query can't be a prepared statement
}
else
{
// show_str check for present in list of correct values, no sql injection possible
std::string text2 = text;
WorldDatabase.EscapeString(text2);
- WorldDatabase.PExecute("UPDATE waypoint_data SET %s='%s' WHERE id='%u' AND point='%u'", show_str, text2.c_str(), pathid, point); // Query can't be a prepared statement
+ WorldDatabase.Execute("UPDATE waypoint_data SET {}='{}' WHERE id='{}' AND point='{}'", show_str, text2, pathid, point); // Query can't be a prepared statement
}
handler->PSendSysMessage(LANG_WAYPOINT_CHANGED_NO, show_str);
@@ -807,7 +807,7 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_ALL_BY_WPGUID);
- stmt->setUInt32(0, target->GetSpawnId());
+ stmt->SetData(0, target->GetSpawnId());
PreparedQueryResult result = WorldDatabase.Query(stmt);
@@ -821,12 +821,12 @@ public:
do
{
Field* fields = result->Fetch();
- pathid = fields[0].GetUInt32();
- uint32 point = fields[1].GetUInt32();
- uint32 delay = fields[2].GetUInt32();
- uint32 flag = fields[3].GetUInt32();
- uint32 ev_id = fields[4].GetUInt32();
- uint32 ev_chance = fields[5].GetUInt32();
+ pathid = fields[0].Get<uint32>();
+ uint32 point = fields[1].Get<uint32>();
+ uint32 delay = fields[2].Get<uint32>();
+ uint32 flag = fields[3].Get<uint32>();
+ uint32 ev_id = fields[4].Get<uint32>();
+ uint32 ev_chance = fields[5].Get<uint32>();
handler->PSendSysMessage("|cff00ff00Show info: for current point: |r|cff00ffff%u|r|cff00ff00, Path ID: |r|cff00ffff%u|r", point, pathid);
handler->PSendSysMessage("|cff00ff00Show info: delay: |r|cff00ffff%u|r", delay);
@@ -842,7 +842,7 @@ public:
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_POS_BY_ID);
- stmt->setUInt32(0, pathid);
+ stmt->SetData(0, pathid);
PreparedQueryResult result = WorldDatabase.Query(stmt);
@@ -858,7 +858,7 @@ public:
// Delete all visuals for this NPC
stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_WPGUID_BY_ID);
- stmt->setUInt32(0, pathid);
+ stmt->SetData(0, pathid);
PreparedQueryResult result2 = WorldDatabase.Query(stmt);
@@ -868,7 +868,7 @@ public:
do
{
Field* fields = result2->Fetch();
- uint32 wpguid = fields[0].GetUInt32();
+ uint32 wpguid = fields[0].Get<uint32>();
Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid::Create<HighGuid::Unit>(VISUAL_WAYPOINT, wpguid));
if (!creature)
@@ -877,7 +877,7 @@ public:
hasError = true;
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE);
- stmt->setUInt32(0, wpguid);
+ stmt->SetData(0, wpguid);
WorldDatabase.Execute(stmt);
}
@@ -900,10 +900,10 @@ public:
do
{
Field* fields = result->Fetch();
- uint32 point = fields[0].GetUInt32();
- float x = fields[1].GetFloat();
- float y = fields[2].GetFloat();
- float z = fields[3].GetFloat();
+ uint32 point = fields[0].Get<uint32>();
+ float x = fields[1].Get<float>();
+ float y = fields[2].Get<float>();
+ float z = fields[3].Get<float>();
uint32 id = VISUAL_WAYPOINT;
@@ -921,9 +921,9 @@ public:
// Set "wpguid" column to the visual waypoint
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_DATA_WPGUID);
- stmt->setInt32(0, int32(wpCreature->GetSpawnId()));
- stmt->setUInt32(1, pathid);
- stmt->setUInt32(2, point);
+ stmt->SetData(0, int32(wpCreature->GetSpawnId()));
+ stmt->SetData(1, pathid);
+ stmt->SetData(2, point);
WorldDatabase.Execute(stmt);
@@ -953,7 +953,7 @@ public:
handler->PSendSysMessage("|cff00ff00DEBUG: wp first, GUID: %u|r", pathid);
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_POS_FIRST_BY_ID);
- stmt->setUInt32(0, pathid);
+ stmt->SetData(0, pathid);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -964,9 +964,9 @@ public:
}
Field* fields = result->Fetch();
- float x = fields[0].GetFloat();
- float y = fields[1].GetFloat();
- float z = fields[2].GetFloat();
+ float x = fields[0].Get<float>();
+ float y = fields[1].Get<float>();
+ float z = fields[2].Get<float>();
uint32 id = VISUAL_WAYPOINT;
Player* chr = handler->GetSession()->GetPlayer();
@@ -1003,7 +1003,7 @@ public:
handler->PSendSysMessage("|cff00ff00DEBUG: wp last, PathID: |r|cff00ffff%u|r", pathid);
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_POS_LAST_BY_ID);
- stmt->setUInt32(0, pathid);
+ stmt->SetData(0, pathid);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -1014,10 +1014,10 @@ public:
}
Field* fields = result->Fetch();
- float x = fields[0].GetFloat();
- float y = fields[1].GetFloat();
- float z = fields[2].GetFloat();
- float o = fields[3].GetFloat();
+ float x = fields[0].Get<float>();
+ float y = fields[1].Get<float>();
+ float z = fields[2].Get<float>();
+ float o = fields[3].Get<float>();
uint32 id = VISUAL_WAYPOINT;
Player* chr = handler->GetSession()->GetPlayer();
@@ -1051,7 +1051,7 @@ public:
if (show == "off")
{
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_BY_ID);
- stmt->setUInt32(0, 1);
+ stmt->SetData(0, 1);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
@@ -1066,7 +1066,7 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType guid = fields[0].GetUInt32();
+ ObjectGuid::LowType guid = fields[0].Get<uint32>();
Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid::Create<HighGuid::Unit>(VISUAL_WAYPOINT, guid));
if (!creature)
{
@@ -1075,7 +1075,7 @@ public:
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE);
- stmt->setUInt32(0, guid);
+ stmt->SetData(0, guid);
WorldDatabase.Execute(stmt);
}
diff --git a/src/server/scripts/World/action_ip_logger.cpp b/src/server/scripts/World/action_ip_logger.cpp
index a37f0e01b9..1977217fb1 100644
--- a/src/server/scripts/World/action_ip_logger.cpp
+++ b/src/server/scripts/World/action_ip_logger.cpp
@@ -142,22 +142,22 @@ public:
// For those, we need last_ip...
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ALDL_IP_LOGGING);
- stmt->setUInt32(0, playerGuid);
- stmt->setUInt32(1, characterGuid);
- stmt->setUInt8(2, aType);
- stmt->setUInt32(3, playerGuid);
- stmt->setString(4, systemNote.c_str());
+ stmt->SetData(0, playerGuid);
+ stmt->SetData(1, characterGuid);
+ stmt->SetData(2, aType);
+ stmt->SetData(3, playerGuid);
+ stmt->SetData(4, systemNote.c_str());
LoginDatabase.Execute(stmt);
}
else // ... but for failed login, we query last_attempt_ip from account table. Which we do with an unique query
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_FACL_IP_LOGGING);
- stmt->setUInt32(0, playerGuid);
- stmt->setUInt32(1, characterGuid);
- stmt->setUInt8(2, aType);
- stmt->setUInt32(3, playerGuid);
- stmt->setString(4, systemNote.c_str());
+ stmt->SetData(0, playerGuid);
+ stmt->SetData(1, characterGuid);
+ stmt->SetData(2, aType);
+ stmt->SetData(3, playerGuid);
+ stmt->SetData(4, systemNote.c_str());
LoginDatabase.Execute(stmt);
}
return;
@@ -238,11 +238,11 @@ public:
// Once we have done everything, we can insert the new log.
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_CHAR_IP_LOGGING);
- stmt->setUInt32(0, playerGuid);
- stmt->setUInt32(1, characterGuid);
- stmt->setUInt8(2, aType);
- stmt->setString(3, currentIp.c_str()); // We query the ip here.
- stmt->setString(4, systemNote.c_str());
+ stmt->SetData(0, playerGuid);
+ stmt->SetData(1, characterGuid);
+ stmt->SetData(2, aType);
+ stmt->SetData(3, currentIp.c_str()); // We query the ip here.
+ stmt->SetData(4, systemNote.c_str());
// Seeing as the time differences should be minimal, we do not get unixtime and the timestamp right now;
// Rather, we let it be added with the SQL query.
@@ -300,11 +300,11 @@ public:
// Once we have done everything, we can insert the new log.
LoginDatabasePreparedStatement* stmt2 = LoginDatabase.GetPreparedStatement(LOGIN_INS_ALDL_IP_LOGGING);
- stmt2->setUInt32(0, playerGuid);
- stmt2->setUInt32(1, characterGuid);
- stmt2->setUInt8(2, aType);
- stmt2->setUInt32(3, playerGuid);
- stmt2->setString(4, systemNote.c_str());
+ stmt2->SetData(0, playerGuid);
+ stmt2->SetData(1, characterGuid);
+ stmt2->SetData(2, aType);
+ stmt2->SetData(3, playerGuid);
+ stmt2->SetData(4, systemNote.c_str());
// Seeing as the time differences should be minimal, we do not get unixtime and the timestamp right now;
// Rather, we let it be added with the SQL query.
diff --git a/src/server/shared/DataStores/DBCDatabaseLoader.cpp b/src/server/shared/DataStores/DBCDatabaseLoader.cpp
index da3e96e0bf..47016cf2d6 100644
--- a/src/server/shared/DataStores/DBCDatabaseLoader.cpp
+++ b/src/server/shared/DataStores/DBCDatabaseLoader.cpp
@@ -52,7 +52,7 @@ char* DBCDatabaseLoader::Load(uint32& records, char**& indexTable)
// Resize index table
// database query *MUST* contain ORDER BY `index_field` DESC clause
- uint32 indexTableSize = std::max(records, (*result)[_sqlIndexPos].GetUInt32() + 1);
+ uint32 indexTableSize = std::max(records, (*result)[_sqlIndexPos].Get<uint32>() + 1);
if (indexTableSize > records)
{
char** tmpIdxTable = new char* [indexTableSize];
@@ -70,7 +70,7 @@ char* DBCDatabaseLoader::Load(uint32& records, char**& indexTable)
do
{
Field* fields = result->Fetch();
- uint32 indexValue = fields[_sqlIndexPos].GetUInt32();
+ uint32 indexValue = fields[_sqlIndexPos].Get<uint32>();
char* dataValue = indexTable[indexValue];
// If exist in DBC file override from DB
@@ -86,20 +86,20 @@ char* DBCDatabaseLoader::Load(uint32& records, char**& indexTable)
switch (*dbcFormat)
{
case FT_FLOAT:
- *reinterpret_cast<float*>(&dataValue[dataOffset]) = fields[sqlColumnNumber].GetFloat();
+ *reinterpret_cast<float*>(&dataValue[dataOffset]) = fields[sqlColumnNumber].Get<float>();
dataOffset += sizeof(float);
break;
case FT_IND:
case FT_INT:
- *reinterpret_cast<uint32*>(&dataValue[dataOffset]) = fields[sqlColumnNumber].GetUInt32();
+ *reinterpret_cast<uint32*>(&dataValue[dataOffset]) = fields[sqlColumnNumber].Get<uint32>();
dataOffset += sizeof(uint32);
break;
case FT_BYTE:
- *reinterpret_cast<uint8*>(&dataValue[dataOffset]) = fields[sqlColumnNumber].GetUInt8();
+ *reinterpret_cast<uint8*>(&dataValue[dataOffset]) = fields[sqlColumnNumber].Get<uint8>();
dataOffset += sizeof(uint8);
break;
case FT_STRING:
- *reinterpret_cast<char**>(&dataValue[dataOffset]) = CloneStringToPool(fields[sqlColumnNumber].GetString());
+ *reinterpret_cast<char**>(&dataValue[dataOffset]) = CloneStringToPool(fields[sqlColumnNumber].Get<std::string>());
dataOffset += sizeof(char*);
break;
case FT_SORT:
diff --git a/src/server/shared/Realms/RealmList.cpp b/src/server/shared/Realms/RealmList.cpp
index 505a02c6ec..8a07b710b2 100644
--- a/src/server/shared/Realms/RealmList.cpp
+++ b/src/server/shared/Realms/RealmList.cpp
@@ -59,10 +59,10 @@ void RealmList::LoadBuildInfo()
{
Field* fields = result->Fetch();
RealmBuildInfo& build = _builds.emplace_back();
- build.MajorVersion = fields[0].GetUInt32();
- build.MinorVersion = fields[1].GetUInt32();
- build.BugfixVersion = fields[2].GetUInt32();
- std::string hotfixVersion = fields[3].GetString();
+ build.MajorVersion = fields[0].Get<uint32>();
+ build.MinorVersion = fields[1].Get<uint32>();
+ build.BugfixVersion = fields[2].Get<uint32>();
+ std::string hotfixVersion = fields[3].Get<std::string>();
if (hotfixVersion.length() < build.HotfixVersion.size())
{
@@ -73,15 +73,15 @@ void RealmList::LoadBuildInfo()
std::fill(hotfixVersion.begin(), hotfixVersion.end(), '\0');
}
- build.Build = fields[4].GetUInt32();
- std::string windowsHash = fields[5].GetString();
+ build.Build = fields[4].Get<uint32>();
+ std::string windowsHash = fields[5].Get<std::string>();
if (windowsHash.length() == build.WindowsHash.size() * 2)
{
HexStrToByteArray(windowsHash, build.WindowsHash);
}
- std::string macHash = fields[6].GetString();
+ std::string macHash = fields[6].Get<std::string>();
if (macHash.length() == build.MacHash.size() * 2)
{
@@ -154,12 +154,12 @@ void RealmList::UpdateRealms(boost::system::error_code const& error)
try
{
Field* fields = result->Fetch();
- uint32 realmId = fields[0].GetUInt32();
- std::string name = fields[1].GetString();
- std::string externalAddressString = fields[2].GetString();
- std::string localAddressString = fields[3].GetString();
- std::string localSubmaskString = fields[4].GetString();
- uint16 port = fields[5].GetUInt16();
+ uint32 realmId = fields[0].Get<uint32>();
+ std::string name = fields[1].Get<std::string>();
+ std::string externalAddressString = fields[2].Get<std::string>();
+ std::string localAddressString = fields[3].Get<std::string>();
+ std::string localSubmaskString = fields[4].Get<std::string>();
+ uint16 port = fields[5].Get<uint16>();
Optional<boost::asio::ip::tcp::endpoint> externalAddress = _resolver->Resolve(boost::asio::ip::tcp::v4(), externalAddressString, "");
if (!externalAddress)
@@ -182,7 +182,7 @@ void RealmList::UpdateRealms(boost::system::error_code const& error)
continue;
}
- uint8 icon = fields[6].GetUInt8();
+ uint8 icon = fields[6].Get<uint8>();
if (icon == REALM_TYPE_FFA_PVP)
{
@@ -194,11 +194,11 @@ void RealmList::UpdateRealms(boost::system::error_code const& error)
icon = REALM_TYPE_NORMAL;
}
- RealmFlags flag = RealmFlags(fields[7].GetUInt8());
- uint8 timezone = fields[8].GetUInt8();
- uint8 allowedSecurityLevel = fields[9].GetUInt8();
- float pop = fields[10].GetFloat();
- uint32 build = fields[11].GetUInt32();
+ RealmFlags flag = RealmFlags(fields[7].Get<uint8>());
+ uint8 timezone = fields[8].Get<uint8>();
+ uint8 allowedSecurityLevel = fields[9].Get<uint8>();
+ float pop = fields[10].Get<float>();
+ uint32 build = fields[11].Get<uint32>();
RealmHandle id{ realmId };
diff --git a/src/server/shared/Secrets/SecretMgr.cpp b/src/server/shared/Secrets/SecretMgr.cpp
index bded014971..cfc42e4ca6 100644
--- a/src/server/shared/Secrets/SecretMgr.cpp
+++ b/src/server/shared/Secrets/SecretMgr.cpp
@@ -110,10 +110,10 @@ void SecretMgr::AttemptLoad(Secrets i, LogLevel errorLevel, std::unique_lock<std
Optional<std::string> oldDigest;
{
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_SECRET_DIGEST);
- stmt->setUInt32(0, i);
+ stmt->SetData(0, i);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (result)
- oldDigest = result->Fetch()->GetString();
+ oldDigest = result->Fetch()->Get<std::string>();
}
Optional<BigNumber> currentValue = GetHexFromConfig(info.configKey, info.bits);
@@ -182,8 +182,8 @@ Optional<std::string> SecretMgr::AttemptTransition(Secrets i, Optional<BigNumber
if (fields[1].IsNull())
continue;
- uint32 id = fields[0].GetUInt32();
- std::vector<uint8> totpSecret = fields[1].GetBinary();
+ uint32 id = fields[0].Get<uint32>();
+ std::vector<uint8> totpSecret = fields[1].Get<Binary>();
if (hadOldSecret)
{
@@ -199,8 +199,8 @@ Optional<std::string> SecretMgr::AttemptTransition(Secrets i, Optional<BigNumber
Acore::Crypto::AEEncryptWithRandomIV<Acore::Crypto::AES>(totpSecret, newSecret->ToByteArray<Acore::Crypto::AES::KEY_SIZE_BYTES>());
auto* updateStmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
- updateStmt->setBinary(0, totpSecret);
- updateStmt->setUInt32(1, id);
+ updateStmt->SetData(0, totpSecret);
+ updateStmt->SetData(1, id);
trans->Append(updateStmt);
} while (result->NextRow());
@@ -213,7 +213,7 @@ Optional<std::string> SecretMgr::AttemptTransition(Secrets i, Optional<BigNumber
if (hadOldSecret)
{
auto* deleteStmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_SECRET_DIGEST);
- deleteStmt->setUInt32(0, i);
+ deleteStmt->SetData(0, i);
trans->Append(deleteStmt);
}
@@ -226,8 +226,8 @@ Optional<std::string> SecretMgr::AttemptTransition(Secrets i, Optional<BigNumber
return std::string("Failed to hash new secret");
auto* insertStmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_SECRET_DIGEST);
- insertStmt->setUInt32(0, i);
- insertStmt->setString(1, *hash);
+ insertStmt->SetData(0, i);
+ insertStmt->SetData(1, *hash);
trans->Append(insertStmt);
}
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index ab3ff23975..633881678b 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -291,7 +291,7 @@ int main(int argc, char** argv)
std::shared_ptr<void> dbHandle(nullptr, [](void*) { StopDB(); });
// set server offline (not connectable)
- LoginDatabase.DirectPExecute("UPDATE realmlist SET flag = (flag & ~%u) | %u WHERE id = '%d'", REALM_FLAG_OFFLINE, REALM_FLAG_VERSION_MISMATCH, realm.Id.Realm);
+ LoginDatabase.DirectExecute("UPDATE realmlist SET flag = (flag & ~{}) | {} WHERE id = '{}'", REALM_FLAG_OFFLINE, REALM_FLAG_VERSION_MISMATCH, realm.Id.Realm);
LoadRealmInfo(*ioContext);
@@ -379,7 +379,7 @@ int main(int argc, char** argv)
});
// Set server online (allow connecting now)
- LoginDatabase.DirectPExecute("UPDATE realmlist SET flag = flag & ~%u, population = 0 WHERE id = '%u'", REALM_FLAG_VERSION_MISMATCH, realm.Id.Realm);
+ LoginDatabase.DirectExecute("UPDATE realmlist SET flag = flag & ~{}, population = 0 WHERE id = '{}'", REALM_FLAG_VERSION_MISMATCH, realm.Id.Realm);
realm.PopulationLevel = 0.0f;
realm.Flags = RealmFlags(realm.Flags & ~uint32(REALM_FLAG_VERSION_MISMATCH));
@@ -424,7 +424,7 @@ int main(int argc, char** argv)
sScriptMgr->OnShutdown();
// set server offline
- LoginDatabase.DirectPExecute("UPDATE realmlist SET flag = flag | %u WHERE id = '%d'", REALM_FLAG_OFFLINE, realm.Id.Realm);
+ LoginDatabase.DirectExecute("UPDATE realmlist SET flag = flag | {} WHERE id = '{}'", REALM_FLAG_OFFLINE, realm.Id.Realm);
LOG_INFO("server.worldserver", "Halting process...");
@@ -475,7 +475,7 @@ bool StartDB()
ClearOnlineAccounts();
///- Insert version info into DB
- WorldDatabase.PExecute("UPDATE version SET core_version = '%s', core_revision = '%s'", GitRevision::GetFullVersion(), GitRevision::GetHash()); // One-time query
+ WorldDatabase.Execute("UPDATE version SET core_version = '{}', core_revision = '{}'", GitRevision::GetFullVersion(), GitRevision::GetHash()); // One-time query
sWorld->LoadDBVersion();
sWorld->LoadDBRevision();
@@ -501,7 +501,7 @@ void ClearOnlineAccounts()
{
// Reset online status for all accounts with characters on the current realm
// pussywizard: tc query would set online=0 even if logged in on another realm >_>
- LoginDatabase.DirectPExecute("UPDATE account SET online = 0 WHERE online = %u", realm.Id.Realm);
+ LoginDatabase.DirectExecute("UPDATE account SET online = 0 WHERE online = {}", realm.Id.Realm);
// Reset online status for all characters
CharacterDatabase.DirectExecute("UPDATE characters SET online = 0 WHERE online <> 0");
@@ -662,49 +662,49 @@ AsyncAcceptor* StartRaSocketAcceptor(Acore::Asio::IoContext& ioContext)
bool LoadRealmInfo(Acore::Asio::IoContext& ioContext)
{
- QueryResult result = LoginDatabase.PQuery("SELECT id, name, address, localAddress, localSubnetMask, port, icon, flag, timezone, allowedSecurityLevel, population, gamebuild FROM realmlist WHERE id = %u", realm.Id.Realm);
+ QueryResult result = LoginDatabase.Query("SELECT id, name, address, localAddress, localSubnetMask, port, icon, flag, timezone, allowedSecurityLevel, population, gamebuild FROM realmlist WHERE id = {}", realm.Id.Realm);
if (!result)
return false;
Acore::Asio::Resolver resolver(ioContext);
Field* fields = result->Fetch();
- realm.Name = fields[1].GetString();
+ realm.Name = fields[1].Get<std::string>();
- Optional<boost::asio::ip::tcp::endpoint> externalAddress = resolver.Resolve(boost::asio::ip::tcp::v4(), fields[2].GetString(), "");
+ Optional<boost::asio::ip::tcp::endpoint> externalAddress = resolver.Resolve(boost::asio::ip::tcp::v4(), fields[2].Get<std::string>(), "");
if (!externalAddress)
{
- LOG_ERROR("server.worldserver", "Could not resolve address {}", fields[2].GetString());
+ LOG_ERROR("server.worldserver", "Could not resolve address {}", fields[2].Get<std::string>());
return false;
}
realm.ExternalAddress = std::make_unique<boost::asio::ip::address>(externalAddress->address());
- Optional<boost::asio::ip::tcp::endpoint> localAddress = resolver.Resolve(boost::asio::ip::tcp::v4(), fields[3].GetString(), "");
+ Optional<boost::asio::ip::tcp::endpoint> localAddress = resolver.Resolve(boost::asio::ip::tcp::v4(), fields[3].Get<std::string>(), "");
if (!localAddress)
{
- LOG_ERROR("server.worldserver", "Could not resolve address {}", fields[3].GetString());
+ LOG_ERROR("server.worldserver", "Could not resolve address {}", fields[3].Get<std::string>());
return false;
}
realm.LocalAddress = std::make_unique<boost::asio::ip::address>(localAddress->address());
- Optional<boost::asio::ip::tcp::endpoint> localSubmask = resolver.Resolve(boost::asio::ip::tcp::v4(), fields[4].GetString(), "");
+ Optional<boost::asio::ip::tcp::endpoint> localSubmask = resolver.Resolve(boost::asio::ip::tcp::v4(), fields[4].Get<std::string>(), "");
if (!localSubmask)
{
- LOG_ERROR("server.worldserver", "Could not resolve address {}", fields[4].GetString());
+ LOG_ERROR("server.worldserver", "Could not resolve address {}", fields[4].Get<std::string>());
return false;
}
realm.LocalSubnetMask = std::make_unique<boost::asio::ip::address>(localSubmask->address());
- realm.Port = fields[5].GetUInt16();
- realm.Type = fields[6].GetUInt8();
- realm.Flags = RealmFlags(fields[7].GetUInt8());
- realm.Timezone = fields[8].GetUInt8();
- realm.AllowedSecurityLevel = AccountTypes(fields[9].GetUInt8());
- realm.PopulationLevel = fields[10].GetFloat();
- realm.Build = fields[11].GetUInt32();
+ realm.Port = fields[5].Get<uint16>();
+ realm.Type = fields[6].Get<uint8>();
+ realm.Flags = RealmFlags(fields[7].Get<uint8>());
+ realm.Timezone = fields[8].Get<uint8>();
+ realm.AllowedSecurityLevel = AccountTypes(fields[9].Get<uint8>());
+ realm.PopulationLevel = fields[10].Get<float>();
+ realm.Build = fields[11].Get<uint32>();
return true;
}
diff --git a/src/server/worldserver/RemoteAccess/RASession.cpp b/src/server/worldserver/RemoteAccess/RASession.cpp
index 4f478650ef..4bbd1b5385 100644
--- a/src/server/worldserver/RemoteAccess/RASession.cpp
+++ b/src/server/worldserver/RemoteAccess/RASession.cpp
@@ -126,7 +126,7 @@ bool RASession::CheckAccessLevel(const std::string& user)
Utf8ToUpperOnlyLatin(safeUser);
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_ACCESS);
- stmt->setString(0, safeUser);
+ stmt->SetData(0, safeUser);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (!result)
@@ -137,12 +137,12 @@ bool RASession::CheckAccessLevel(const std::string& user)
Field* fields = result->Fetch();
- if (fields[1].GetUInt8() < sConfigMgr->GetOption<int32>("Ra.MinLevel", 3))
+ if (fields[1].Get<uint8>() < sConfigMgr->GetOption<int32>("Ra.MinLevel", 3))
{
LOG_INFO("commands.ra", "User {} has no privilege to login", user);
return false;
}
- else if (fields[2].GetInt32() != -1)
+ else if (fields[2].Get<int32>() != -1)
{
LOG_INFO("commands.ra", "User {} has to be assigned on all realms (with RealmID = '-1')", user);
return false;
@@ -163,12 +163,12 @@ bool RASession::CheckPassword(const std::string& user, const std::string& pass)
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_CHECK_PASSWORD_BY_NAME);
- stmt->setString(0, safe_user);
+ stmt->SetData(0, safe_user);
if (PreparedQueryResult result = LoginDatabase.Query(stmt))
{
- Acore::Crypto::SRP6::Salt salt = (*result)[0].GetBinary<Acore::Crypto::SRP6::SALT_LENGTH>();
- Acore::Crypto::SRP6::Verifier verifier = (*result)[1].GetBinary<Acore::Crypto::SRP6::VERIFIER_LENGTH>();
+ Acore::Crypto::SRP6::Salt salt = (*result)[0].Get<Binary, Acore::Crypto::SRP6::SALT_LENGTH>();
+ Acore::Crypto::SRP6::Verifier verifier = (*result)[1].Get<Binary, Acore::Crypto::SRP6::VERIFIER_LENGTH>();
if (Acore::Crypto::SRP6::CheckLogin(safe_user, safe_pass, salt, verifier))
return true;
diff --git a/src/tools/mesh_extractor/DBC.h b/src/tools/mesh_extractor/DBC.h
index 4d93b13eaf..6c5126556b 100644
--- a/src/tools/mesh_extractor/DBC.h
+++ b/src/tools/mesh_extractor/DBC.h
@@ -61,7 +61,7 @@ public:
return *(T*)(&Values[index]);
}
- std::string GetString(int index)
+ std::string Get<std::string>(int index)
{
return Source->GetStringByOffset(Values[index]);
}
diff --git a/src/tools/mesh_extractor/MeshExtractor.cpp b/src/tools/mesh_extractor/MeshExtractor.cpp
index 117c0287f3..8ef89e31b4 100644
--- a/src/tools/mesh_extractor/MeshExtractor.cpp
+++ b/src/tools/mesh_extractor/MeshExtractor.cpp
@@ -50,7 +50,7 @@ void ExtractMMaps(std::set<uint32>& mapIds, uint32 threads)
continue;
}
- std::string name = (*itr)->GetString(1);
+ std::string name = (*itr)->Get<std::string>(1);
WDT wdt("World\\maps\\" + name + "\\" + name + ".wdt");
if (!wdt.IsValid)
{
@@ -121,7 +121,7 @@ void ExtractGameobjectModels()
DBC* dbc = MPQHandler->GetDBC("GameObjectDisplayInfo");
for (std::vector<Record*>::iterator itr = dbc->Records.begin(); itr != dbc->Records.end(); ++itr)
{
- std::string path = (*itr)->GetString(1);
+ std::string path = (*itr)->Get<std::string>(1);
std::string fileName = Utils::GetPlainName(path.c_str());
std::string extension = Utils::GetExtension(fileName);
// Convert the extension to lowercase