mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-10-11 18:08:05 +00:00

* feat: convert character ids to 64 bits remove all usages of the PERSISTENT bit with regards to storing of playerIDs on the server. the bit does not exist and was a phantom in the first place. Tested that a full playthrough of ag, ns and gf was still doable. slash commands work, ugc works, friends works, ignore list works, properties work and have names, teaming works. migrating an old mysql database works . need to test an old sqlite database * fix sqlite migration * remove nd specific column migration
55 lines
1.7 KiB
C++
55 lines
1.7 KiB
C++
#ifndef __GAMEDATABASE__H__
|
|
#define __GAMEDATABASE__H__
|
|
|
|
#include <optional>
|
|
|
|
#include "ILeaderboard.h"
|
|
#include "IPlayerCheatDetections.h"
|
|
#include "ICommandLog.h"
|
|
#include "IMail.h"
|
|
#include "IObjectIdTracker.h"
|
|
#include "IPlayKeys.h"
|
|
#include "IServers.h"
|
|
#include "IBugReports.h"
|
|
#include "IPropertyContents.h"
|
|
#include "IProperty.h"
|
|
#include "IPetNames.h"
|
|
#include "ICharXml.h"
|
|
#include "IMigrationHistory.h"
|
|
#include "IUgc.h"
|
|
#include "IFriends.h"
|
|
#include "ICharInfo.h"
|
|
#include "IAccounts.h"
|
|
#include "IActivityLog.h"
|
|
#include "IIgnoreList.h"
|
|
#include "IAccountsRewardCodes.h"
|
|
#include "IBehaviors.h"
|
|
#include "IUgcModularBuild.h"
|
|
|
|
#ifdef _DEBUG
|
|
# define DLU_SQL_TRY_CATCH_RETHROW(x) do { try { x; } catch (std::exception& ex) { LOG("SQL Error: %s", ex.what()); throw; } } while(0)
|
|
#else
|
|
# define DLU_SQL_TRY_CATCH_RETHROW(x) x
|
|
#endif // _DEBUG
|
|
|
|
class GameDatabase :
|
|
public IPlayKeys, public ILeaderboard, public IObjectIdTracker, public IServers,
|
|
public IMail, public ICommandLog, public IPlayerCheatDetections, public IBugReports,
|
|
public IPropertyContents, public IProperty, public IPetNames, public ICharXml,
|
|
public IMigrationHistory, public IUgc, public IFriends, public ICharInfo,
|
|
public IAccounts, public IActivityLog, public IAccountsRewardCodes, public IIgnoreList,
|
|
public IBehaviors, public IUgcModularBuild {
|
|
public:
|
|
virtual ~GameDatabase() = default;
|
|
// TODO: These should be made private.
|
|
virtual void Connect() = 0;
|
|
virtual void Destroy(std::string source = "") = 0;
|
|
virtual void ExecuteCustomQuery(const std::string_view query) = 0;
|
|
virtual void Commit() = 0;
|
|
virtual bool GetAutoCommit() = 0;
|
|
virtual void SetAutoCommit(bool value) = 0;
|
|
virtual void DeleteCharacter(const LWOOBJID characterId) = 0;
|
|
};
|
|
|
|
#endif //!__GAMEDATABASE__H__
|