Core/Players: Implemented PlayerDataElementAccount, PlayerDataElementCharacter, PlayerDataFlagAccount and PlayerDataFlagCharacter

This commit is contained in:
Shauren
2025-06-27 15:29:30 +02:00
parent e0f3291eab
commit 60400d25f5
26 changed files with 996 additions and 23 deletions

View File

@@ -796,6 +796,13 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_UPD_CHARACTER_INSTANCE_LOCK_FORCE_EXPIRE, "UPDATE character_instance_lock SET expiryTime = ?, extended = 0 WHERE guid = ? AND mapId = ? AND lockId = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_INSTANCE, "DELETE FROM instance WHERE instanceId = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_INS_INSTANCE, "INSERT INTO instance (instanceId, data, completedEncountersMask, entranceWorldSafeLocId) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_PLAYER_DATA_ELEMENTS_CHARACTER, "SELECT playerDataElementCharacterId, floatValue, int64Value FROM character_player_data_element WHERE characterGuid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_PLAYER_DATA_ELEMENTS_CHARACTER, "DELETE FROM character_player_data_element WHERE characterGuid = ? AND playerDataElementCharacterId = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_INS_PLAYER_DATA_ELEMENTS_CHARACTER, "INSERT INTO character_player_data_element (characterGuid, playerDataElementCharacterId, floatValue, int64Value) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_PLAYER_DATA_FLAGS_CHARACTER, "SELECT storageIndex, mask FROM character_player_data_flag WHERE characterGuid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_PLAYER_DATA_FLAGS_CHARACTER, "DELETE FROM character_player_data_flag WHERE characterGuid = ? AND storageIndex = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_INS_PLAYER_DATA_FLAGS_CHARACTER, "INSERT INTO character_player_data_flag (characterGuid, storageIndex, mask) VALUES (?, ?, ?)", CONNECTION_ASYNC);
}
CharacterDatabaseConnection::CharacterDatabaseConnection(MySQLConnectionInfo& connInfo, ConnectionFlags connectionFlags) : MySQLConnection(connInfo, connectionFlags)

View File

@@ -650,6 +650,13 @@ enum CharacterDatabaseStatements : uint32
CHAR_DEL_INSTANCE,
CHAR_INS_INSTANCE,
CHAR_SEL_PLAYER_DATA_ELEMENTS_CHARACTER,
CHAR_DEL_PLAYER_DATA_ELEMENTS_CHARACTER,
CHAR_INS_PLAYER_DATA_ELEMENTS_CHARACTER,
CHAR_SEL_PLAYER_DATA_FLAGS_CHARACTER,
CHAR_DEL_PLAYER_DATA_FLAGS_CHARACTER,
CHAR_INS_PLAYER_DATA_FLAGS_CHARACTER,
MAX_CHARACTERDATABASE_STATEMENTS
};

View File

@@ -1320,6 +1320,26 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_PLAYER_CONDITION, "SELECT ID, FailureDescription_lang FROM player_condition_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
// PlayerDataElementAccount.db2
PrepareStatement(HOTFIX_SEL_PLAYER_DATA_ELEMENT_ACCOUNT, "SELECT ID, StorageIndex, Type FROM player_data_element_account"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PLAYER_DATA_ELEMENT_ACCOUNT, "SELECT MAX(ID) + 1 FROM player_data_element_account", CONNECTION_SYNCH);
// PlayerDataElementCharacter.db2
PrepareStatement(HOTFIX_SEL_PLAYER_DATA_ELEMENT_CHARACTER, "SELECT ID, StorageIndex, Type FROM player_data_element_character"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PLAYER_DATA_ELEMENT_CHARACTER, "SELECT MAX(ID) + 1 FROM player_data_element_character", CONNECTION_SYNCH);
// PlayerDataFlagAccount.db2
PrepareStatement(HOTFIX_SEL_PLAYER_DATA_FLAG_ACCOUNT, "SELECT ID, StorageIndex, Unknown1107 FROM player_data_flag_account"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PLAYER_DATA_FLAG_ACCOUNT, "SELECT MAX(ID) + 1 FROM player_data_flag_account", CONNECTION_SYNCH);
// PlayerDataFlagCharacter.db2
PrepareStatement(HOTFIX_SEL_PLAYER_DATA_FLAG_CHARACTER, "SELECT ID, StorageIndex, Unknown1107 FROM player_data_flag_character"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PLAYER_DATA_FLAG_CHARACTER, "SELECT MAX(ID) + 1 FROM player_data_flag_character", CONNECTION_SYNCH);
// PowerDisplay.db2
PrepareStatement(HOTFIX_SEL_POWER_DISPLAY, "SELECT ID, GlobalStringBaseTag, ActualType, Red, Green, Blue FROM power_display"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);

View File

@@ -756,6 +756,18 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_PLAYER_CONDITION_MAX_ID,
HOTFIX_SEL_PLAYER_CONDITION_LOCALE,
HOTFIX_SEL_PLAYER_DATA_ELEMENT_ACCOUNT,
HOTFIX_SEL_PLAYER_DATA_ELEMENT_ACCOUNT_MAX_ID,
HOTFIX_SEL_PLAYER_DATA_ELEMENT_CHARACTER,
HOTFIX_SEL_PLAYER_DATA_ELEMENT_CHARACTER_MAX_ID,
HOTFIX_SEL_PLAYER_DATA_FLAG_ACCOUNT,
HOTFIX_SEL_PLAYER_DATA_FLAG_ACCOUNT_MAX_ID,
HOTFIX_SEL_PLAYER_DATA_FLAG_CHARACTER,
HOTFIX_SEL_PLAYER_DATA_FLAG_CHARACTER_MAX_ID,
HOTFIX_SEL_POWER_DISPLAY,
HOTFIX_SEL_POWER_DISPLAY_MAX_ID,

View File

@@ -196,6 +196,13 @@ void LoginDatabaseConnection::DoPrepareStatements()
"ON DUPLICATE KEY UPDATE isFavorite = VALUES(isFavorite)", CONNECTION_ASYNC);
PrepareStatement(LOGIN_UPD_BNET_WARBAND_SCENE, "UPDATE battlenet_account_warband_scenes SET isFavorite = ?, hasFanfare = ? WHERE battlenetAccountId = ? AND warbandSceneId = ?", CONNECTION_ASYNC);
PrepareStatement(LOGIN_DEL_BNET_WARBAND_SCENE, "DELETE FROM battlenet_account_warband_scenes WHERE battlenetAccountId = ? AND warbandSceneId = ?", CONNECTION_ASYNC);
PrepareStatement(LOGIN_SEL_BNET_PLAYER_DATA_ELEMENTS_ACCOUNT, "SELECT playerDataElementAccountId, floatValue, int64Value FROM battlenet_account_player_data_element WHERE battlenetAccountId = ?", CONNECTION_ASYNC);
PrepareStatement(LOGIN_DEL_BNET_PLAYER_DATA_ELEMENTS_ACCOUNT, "DELETE FROM battlenet_account_player_data_element WHERE battlenetAccountId = ? AND playerDataElementAccountId = ?", CONNECTION_ASYNC);
PrepareStatement(LOGIN_INS_BNET_PLAYER_DATA_ELEMENTS_ACCOUNT, "INSERT INTO battlenet_account_player_data_element (battlenetAccountId, playerDataElementAccountId, floatValue, int64Value) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(LOGIN_SEL_BNET_PLAYER_DATA_FLAGS_ACCOUNT, "SELECT storageIndex, mask FROM battlenet_account_player_data_flag WHERE battlenetAccountId = ?", CONNECTION_ASYNC);
PrepareStatement(LOGIN_DEL_BNET_PLAYER_DATA_FLAGS_ACCOUNT, "DELETE FROM battlenet_account_player_data_flag WHERE battlenetAccountId = ? AND storageIndex = ?", CONNECTION_ASYNC);
PrepareStatement(LOGIN_INS_BNET_PLAYER_DATA_FLAGS_ACCOUNT, "INSERT INTO battlenet_account_player_data_flag (battlenetAccountId, storageIndex, mask) VALUES (?, ?, ?)", CONNECTION_ASYNC);
}
LoginDatabaseConnection::LoginDatabaseConnection(MySQLConnectionInfo& connInfo, ConnectionFlags connectionFlags) : MySQLConnection(connInfo, connectionFlags)

View File

@@ -181,6 +181,13 @@ enum LoginDatabaseStatements : uint32
LOGIN_UPD_BNET_WARBAND_SCENE,
LOGIN_DEL_BNET_WARBAND_SCENE,
LOGIN_SEL_BNET_PLAYER_DATA_ELEMENTS_ACCOUNT,
LOGIN_DEL_BNET_PLAYER_DATA_ELEMENTS_ACCOUNT,
LOGIN_INS_BNET_PLAYER_DATA_ELEMENTS_ACCOUNT,
LOGIN_SEL_BNET_PLAYER_DATA_FLAGS_ACCOUNT,
LOGIN_DEL_BNET_PLAYER_DATA_FLAGS_ACCOUNT,
LOGIN_INS_BNET_PLAYER_DATA_FLAGS_ACCOUNT,
MAX_LOGINDATABASE_STATEMENTS
};