Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2025-07-25 21:18:51 +08:00
479 changed files with 24580 additions and 34176 deletions

View File

@@ -61,6 +61,44 @@ enum AccountTypes
SEC_CONSOLE = 4 // must be always last in list, accounts must have less security level always also
};
enum AccountFlag
{
ACCOUNT_FLAG_GM = 0x1, // Account is GM
ACCOUNT_FLAG_NOKICK = 0x2, // NYI UNK
ACCOUNT_FLAG_COLLECTOR = 0x4, // NYI Collector's Edition
ACCOUNT_FLAG_TRIAL = 0x8, // NYI Trial account
ACCOUNT_FLAG_CANCELLED = 0x10, // NYI UNK
ACCOUNT_FLAG_IGR = 0x20, // NYI Internet Game Room (Internet cafe?)
ACCOUNT_FLAG_WHOLESALER = 0x40, // NYI UNK
ACCOUNT_FLAG_PRIVILEGED = 0x80, // NYI UNK
ACCOUNT_FLAG_EU_FORBID_ELV = 0x100, // NYI UNK
ACCOUNT_FLAG_EU_FORBID_BILLING = 0x200, // NYI UNK
ACCOUNT_FLAG_RESTRICTED = 0x400, // NYI UNK
ACCOUNT_FLAG_REFERRAL = 0x800, // NYI Recruit-A-Friend, either referer or referee
ACCOUNT_FLAG_BLIZZARD = 0x1000, // NYI UNK
ACCOUNT_FLAG_RECURRING_BILLING = 0x2000, // NYI UNK
ACCOUNT_FLAG_NOELECTUP = 0x4000, // NYI UNK
ACCOUNT_FLAG_KR_CERTIFICATE = 0x8000, // NYI Korean certificate?
ACCOUNT_FLAG_EXPANSION_COLLECTOR = 0x10000, // NYI TBC Collector's Edition
ACCOUNT_FLAG_DISABLE_VOICE = 0x20000, // NYI Can't join voice chat
ACCOUNT_FLAG_DISABLE_VOICE_SPEAK = 0x40000, // NYI Can't speak in voice chat
ACCOUNT_FLAG_REFERRAL_RESURRECT = 0x80000, // NYI Scroll of Resurrection
ACCOUNT_FLAG_EU_FORBID_CC = 0x100000, // NYI UNK
ACCOUNT_FLAG_OPENBETA_DELL = 0x200000, // NYI https://wowpedia.fandom.com/wiki/Dell_XPS_M1730_World_of_Warcraft_Edition
ACCOUNT_FLAG_PROPASS = 0x400000, // NYI UNK
ACCOUNT_FLAG_PROPASS_LOCK = 0x800000, // NYI Pro pass (arena tournament)
ACCOUNT_FLAG_PENDING_UPGRADE = 0x1000000, // NYI UNK
ACCOUNT_FLAG_RETAIL_FROM_TRIAL = 0x2000000, // NYI UNK
ACCOUNT_FLAG_EXPANSION2_COLLECTOR = 0x4000000, // NYI WotLK Collector's Edition
ACCOUNT_FLAG_OVERMIND_LINKED = 0x8000000, // NYI Linked with Battle.net account
ACCOUNT_FLAG_DEMOS = 0x10000000, // NYI UNK
ACCOUNT_FLAG_DEATH_KNIGHT_OK = 0x20000000, // NYI Has level 55 on account?
// Below might be StarCraft II related
ACCOUNT_FLAG_S2_REQUIRE_IGR = 0x40000000, // NYI UNK
ACCOUNT_FLAG_S2_TRIAL = 0x80000000, // NYI UNK
ACCOUNT_FLAG_S2_RESTRICTED = 0xFFFFFFFF // NYI UNK
};
enum LocaleConstant
{
LOCALE_enUS = 0,

View File

@@ -29,6 +29,7 @@
#include "Timer.h"
#include "Tokenize.h"
#include <chrono>
#include <memory>
Log::Log() : AppenderId(0), highestLogLevel(LOG_LEVEL_FATAL)
{
@@ -39,7 +40,6 @@ Log::Log() : AppenderId(0), highestLogLevel(LOG_LEVEL_FATAL)
Log::~Log()
{
delete _strand;
Close();
}
@@ -369,7 +369,7 @@ void Log::Initialize(Acore::Asio::IoContext* ioContext)
if (ioContext)
{
_ioContext = ioContext;
_strand = new Acore::Asio::Strand(*ioContext);
_strand = std::make_unique<Acore::Asio::Strand>(*ioContext);
}
LoadFromConfig();
@@ -377,8 +377,7 @@ void Log::Initialize(Acore::Asio::IoContext* ioContext)
void Log::SetSynchronous()
{
delete _strand;
_strand = nullptr;
_strand.reset();
_ioContext = nullptr;
}

View File

@@ -24,6 +24,7 @@
#include "StringFormat.h"
#include <unordered_map>
#include <vector>
#include <memory>
class Appender;
class Logger;
@@ -120,7 +121,7 @@ private:
std::string m_logsTimestamp;
Acore::Asio::IoContext* _ioContext;
Acore::Asio::Strand* _strand;
std::unique_ptr<Acore::Asio::Strand> _strand;
};
#define sLog Log::instance()

View File

@@ -107,18 +107,17 @@ void Metric::LoadFromConfigs()
}
std::vector<std::string_view> tokens = Acore::Tokenize(connectionInfo, ';', true);
if (tokens.size() != 2)
{
LOG_ERROR("metric", "Metric.InfluxDB.Connection specified with wrong format in configuration file.");
return;
}
_hostname.assign(tokens[0]);
_port.assign(tokens[1]);
_useV2 = sConfigMgr->GetOption<bool>("Metric.InfluxDB.v2", false);
if (_useV2)
{
if (tokens.size() != 2)
{
LOG_ERROR("metric", "Metric.InfluxDB.Connection specified with wrong format in configuration file. (hostname;port)");
return;
}
_hostname.assign(tokens[0]);
_port.assign(tokens[1]);
_org = sConfigMgr->GetOption<std::string>("Metric.InfluxDB.Org", "");
_bucket = sConfigMgr->GetOption<std::string>("Metric.InfluxDB.Bucket", "");
_token = sConfigMgr->GetOption<std::string>("Metric.InfluxDB.Token", "");
@@ -133,10 +132,12 @@ void Metric::LoadFromConfigs()
{
if (tokens.size() != 3)
{
LOG_ERROR("metric", "Metric.InfluxDB.Connection specified with wrong format in configuration file.");
LOG_ERROR("metric", "Metric.InfluxDB.Connection specified with wrong format in configuration file. (hostname;port;database)");
return;
}
_hostname.assign(tokens[0]);
_port.assign(tokens[1]);
_databaseName.assign(tokens[2]);
}