mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-17 10:55:43 +00:00
feat(Core/Items): Delete old item id from recovery item (#18332)
This commit is contained in:
committed by
GitHub
parent
a452b25def
commit
985410f184
@@ -4334,6 +4334,49 @@ void Player::DeleteOldCharacters(uint32 keepDays)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Items which were kept back in the database after being deleted and are now too old (see config option "ItemDelete.KeepDays"), will be completely deleted.
|
||||
*/
|
||||
void Player::DeleteOldRecoveryItems()
|
||||
{
|
||||
uint32 keepDays = sWorld->getIntConfig(CONFIG_ITEMDELETE_KEEP_DAYS);
|
||||
if (!keepDays)
|
||||
return;
|
||||
|
||||
Player::DeleteOldRecoveryItems(keepDays);
|
||||
}
|
||||
|
||||
/**
|
||||
* Items which were kept back in the database after being deleted and are older than the specified amount of days, will be completely deleted.
|
||||
*/
|
||||
void Player::DeleteOldRecoveryItems(uint32 keepDays)
|
||||
{
|
||||
LOG_INFO("server.loading", "Player::DeleteOldRecoveryItems: Deleting all items which have been deleted {} days before...", keepDays);
|
||||
LOG_INFO("server.loading", " ");
|
||||
|
||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_RECOVERY_ITEM_OLD_ITEMS);
|
||||
stmt->SetData(0, uint32(GameTime::GetGameTime().count() - time_t(keepDays * DAY)));
|
||||
PreparedQueryResult result = CharacterDatabase.Query(stmt);
|
||||
|
||||
if (result)
|
||||
{
|
||||
LOG_INFO("server.loading", "Player::DeleteOldRecoveryItems: Found {} item(s) to delete", result->GetRowCount());
|
||||
do
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint32 guid = fields[0].Get<uint32>();
|
||||
uint32 itemEntry = fields[1].Get<uint32>();
|
||||
|
||||
CharacterDatabasePreparedStatement* deleteStmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_RECOVERY_ITEM_BY_GUID);
|
||||
deleteStmt->SetData(0, guid);
|
||||
CharacterDatabase.Execute(deleteStmt);
|
||||
|
||||
LOG_INFO("server.loading", "Deleted item from recovery_item table where guid {} and item id {}", guid, itemEntry);
|
||||
} while (result->NextRow());
|
||||
}
|
||||
}
|
||||
|
||||
void Player::SetMovement(PlayerMovementType pType)
|
||||
{
|
||||
WorldPacket data;
|
||||
|
||||
Reference in New Issue
Block a user