mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-04-09 17:26:58 +00:00
- Added ICharacterReputation and IPropertyReputationContribution interfaces for managing character and property reputations. - Implemented MySQL and SQLite database methods for getting and setting character reputations. - Created migration scripts for character and property reputation tables in both MySQL and SQLite. - Updated CharacterComponent to retrieve and set character reputation. - Enhanced PropertyManagementComponent to manage property reputation and contributions. - Added methods for handling reputation contributions and decay. - Introduced CharacterReputationMigration to migrate existing character reputations from XML to the database.
32 lines
1.3 KiB
C++
32 lines
1.3 KiB
C++
#include "SQLiteDatabase.h"
|
|
|
|
std::vector<IPropertyReputationContribution::ContributionInfo> SQLiteDatabase::GetPropertyReputationContributions(
|
|
const LWOOBJID propertyId, const std::string& date) {
|
|
auto [_, result] = ExecuteSelect(
|
|
"SELECT player_id, reputation_gained FROM property_reputation_contribution WHERE property_id = ? AND contribution_date = ?;",
|
|
propertyId, date);
|
|
|
|
std::vector<IPropertyReputationContribution::ContributionInfo> contributions;
|
|
while (!result.eof()) {
|
|
IPropertyReputationContribution::ContributionInfo info;
|
|
info.playerId = result.getInt64Field("player_id");
|
|
info.reputationGained = static_cast<uint32_t>(result.getIntField("reputation_gained"));
|
|
contributions.push_back(info);
|
|
result.nextRow();
|
|
}
|
|
return contributions;
|
|
}
|
|
|
|
void SQLiteDatabase::UpdatePropertyReputationContribution(
|
|
const LWOOBJID propertyId, const LWOOBJID playerId,
|
|
const std::string& date, const uint32_t reputationGained) {
|
|
ExecuteInsert(
|
|
"INSERT OR REPLACE INTO property_reputation_contribution (property_id, player_id, contribution_date, reputation_gained) "
|
|
"VALUES (?, ?, ?, ?);",
|
|
propertyId, playerId, date, reputationGained);
|
|
}
|
|
|
|
void SQLiteDatabase::UpdatePropertyReputation(const LWOOBJID propertyId, const uint32_t reputation) {
|
|
ExecuteUpdate("UPDATE properties SET reputation = ? WHERE id = ?;", reputation, propertyId);
|
|
}
|