mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
dynamically load database names for cleanup queries (#1040)
* dynamically load database names for cleanup queries
This commit is contained in:
@@ -452,15 +452,19 @@ void RandomPlayerbotFactory::CreateRandomBots()
|
|||||||
// Clear playerbots_random_bots table
|
// Clear playerbots_random_bots table
|
||||||
PlayerbotsDatabase.Execute("DELETE FROM playerbots_random_bots");
|
PlayerbotsDatabase.Execute("DELETE FROM playerbots_random_bots");
|
||||||
|
|
||||||
|
// Get the database names dynamically
|
||||||
|
std::string loginDBName = LoginDatabase.GetConnectionInfo()->database;
|
||||||
|
std::string characterDBName = CharacterDatabase.GetConnectionInfo()->database;
|
||||||
|
|
||||||
// Delete all characters from bot accounts
|
// Delete all characters from bot accounts
|
||||||
CharacterDatabase.Execute("DELETE FROM characters WHERE account IN (SELECT id FROM acore_auth.account WHERE username LIKE '{}%%')",
|
CharacterDatabase.Execute("DELETE FROM characters WHERE account IN (SELECT id FROM " + loginDBName + ".account WHERE username LIKE '{}%%')",
|
||||||
sPlayerbotAIConfig->randomBotAccountPrefix.c_str());
|
sPlayerbotAIConfig->randomBotAccountPrefix.c_str());
|
||||||
|
|
||||||
// Clean up orphaned entries in playerbots_guild_tasks
|
// Clean up orphaned entries in playerbots_guild_tasks
|
||||||
PlayerbotsDatabase.Execute("DELETE FROM playerbots_guild_tasks WHERE owner NOT IN (SELECT guid FROM acore_characters.characters)");
|
PlayerbotsDatabase.Execute("DELETE FROM playerbots_guild_tasks WHERE owner NOT IN (SELECT guid FROM " + characterDBName + ".characters)");
|
||||||
|
|
||||||
// Clean up orphaned entries in playerbots_db_store
|
// Clean up orphaned entries in playerbots_db_store
|
||||||
PlayerbotsDatabase.Execute("DELETE FROM playerbots_db_store WHERE guid NOT IN (SELECT guid FROM acore_characters.characters WHERE account IN (SELECT id FROM acore_auth.account WHERE username NOT LIKE '{}%%'))",
|
PlayerbotsDatabase.Execute("DELETE FROM playerbots_db_store WHERE guid NOT IN (SELECT guid FROM " + characterDBName + ".characters WHERE account IN (SELECT id FROM " + loginDBName + ".account WHERE username NOT LIKE '{}%%'))",
|
||||||
sPlayerbotAIConfig->randomBotAccountPrefix.c_str());
|
sPlayerbotAIConfig->randomBotAccountPrefix.c_str());
|
||||||
|
|
||||||
// Clean up orphaned records in character-related tables
|
// Clean up orphaned records in character-related tables
|
||||||
|
|||||||
Reference in New Issue
Block a user