#pragma once #include "APIHelp.h" #include #include #include "LiteLoader/include/llapi/KVDBAPI.h" #include #include //////////////////// Data Static //////////////////// class DataClass { public: static Local xuid2name(const Arguments& args); static Local name2xuid(const Arguments& args); static Local getAllPlayerInfo(const Arguments& args); static Local parseJson(const Arguments& args); static Local toJson(const Arguments& args); static Local toMD5(const Arguments& args); static Local toSHA1(const Arguments& args); static Local toBase64(const Arguments& args); static Local fromBase64(const Arguments& args); // For Compatibility static Local openConfig(const Arguments& args); static Local openDB(const Arguments& args); }; extern ClassDefine DataClassBuilder; //////////////////// Money Static //////////////////// class MoneyClass { public: static Local set(const Arguments& args); static Local get(const Arguments& args); static Local add(const Arguments& args); static Local reduce(const Arguments& args); static Local trans(const Arguments& args); static Local getHistory(const Arguments& args); static Local clearHistory(const Arguments& args); }; extern ClassDefine MoneyClassBuilder; //////////////////// Classes //////////////////// class ConfBaseClass { protected: std::string confPath; virtual bool flush() = 0; virtual bool close() = 0; virtual bool reload() = 0; public: explicit ConfBaseClass(const string& dir); virtual Local reload(const Arguments& args) = 0; virtual Local close(const Arguments& args) = 0; Local getPath(const Arguments& args); Local read(const Arguments& args); virtual Local write(const Arguments& args) = 0; }; class ConfJsonClass : public ScriptClass, public ConfBaseClass { private: fifo_json jsonConf; bool flush() override; bool close() override; bool reload() override; public: explicit ConfJsonClass(const Local& scriptObj, const string& path, const string& defContent); explicit ConfJsonClass(const string& path, const string& defContent); ~ConfJsonClass(); static ConfJsonClass* constructor(const Arguments& args); Local init(const Arguments& args); Local get(const Arguments& args); Local set(const Arguments& args); Local del(const Arguments& args); virtual Local reload(const Arguments& args) override; virtual Local close(const Arguments& args) override; virtual Local write(const Arguments& args) override; // For Compatibility static Local newConf(const string& path, const string& defContent = ""); }; extern ClassDefine ConfJsonClassBuilder; class ConfIniClass : public ScriptClass, public ConfBaseClass { private: SimpleIni* iniConf; bool flush() override; bool close() override; bool reload() override; public: explicit ConfIniClass(const Local& scriptObj, const string& path, const string& defContent); explicit ConfIniClass(const string& path, const string& defContent); ~ConfIniClass(); static ConfIniClass* constructor(const Arguments& args); bool isValid() { return iniConf != nullptr; } Local init(const Arguments& args); Local set(const Arguments& args); Local getStr(const Arguments& args); Local getInt(const Arguments& args); Local getFloat(const Arguments& args); Local getBool(const Arguments& args); Local del(const Arguments& args); virtual Local reload(const Arguments& args) override; virtual Local close(const Arguments& args) override; virtual Local write(const Arguments& args) override; // For Compatibility static Local newConf(const string& path, const string& defContent = ""); }; extern ClassDefine ConfIniClassBuilder;