[Databuckets] Add Zone Scoped Databuckets

This commit is contained in:
Akkadius
2025-02-16 20:11:00 -06:00
parent 55155ff800
commit d5af7472a4
11 changed files with 607 additions and 49 deletions
+56
View File
@@ -172,6 +172,8 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool is_static) {
zone->RequestUCSServerStatus();
zone->StartShutdownTimer();
DataBucket::LoadZoneCache(iZoneID, iInstanceID);
/*
* Set Logging
*/
@@ -932,6 +934,8 @@ void Zone::Shutdown(bool quiet)
parse->ReloadQuests(true);
UpdateWindowTitle(nullptr);
DataBucket::DeleteCachedBuckets(DataBucketLoadType::Zone, zone->GetZoneID(), zone->GetInstanceID());
LogSys.CloseFileLogs();
if (RuleB(Zone, KillProcessOnDynamicShutdown)) {
@@ -3187,4 +3191,56 @@ bool Zone::DoesAlternateCurrencyExist(uint32 currency_id)
);
}
std::string Zone::GetBucket(const std::string& bucket_name)
{
DataBucketKey k = {};
k.zone_id = zoneid;
k.instance_id = instanceid;
k.key = bucket_name;
return DataBucket::GetData(k).value;
}
void Zone::SetBucket(const std::string& bucket_name, const std::string& bucket_value, const std::string& expiration)
{
DataBucketKey k = {};
k.zone_id = zoneid;
k.instance_id = instanceid;
k.key = bucket_name;
k.expires = expiration;
k.value = bucket_value;
DataBucket::SetData(k);
}
void Zone::DeleteBucket(const std::string& bucket_name)
{
DataBucketKey k = {};
k.zone_id = zoneid;
k.instance_id = instanceid;
k.key = bucket_name;
DataBucket::DeleteData(k);
}
std::string Zone::GetBucketExpires(const std::string& bucket_name)
{
DataBucketKey k = {};
k.zone_id = zoneid;
k.instance_id = instanceid;
k.key = bucket_name;
return DataBucket::GetDataExpires(k);
}
std::string Zone::GetBucketRemaining(const std::string& bucket_name)
{
DataBucketKey k = {};
k.zone_id = zoneid;
k.instance_id = instanceid;
k.key = bucket_name;
return DataBucket::GetDataRemaining(k);
}
#include "zone_loot.cpp"