Core/Addons: Improve WorldSession::ReadAddonsInfo

(ported commits: cd3d317ebf 01124c6f4e and 86b516c3f2
This commit is contained in:
Ovahlord
2019-08-01 01:09:16 +02:00
parent c1627e6a3e
commit 46cf03eb7b
6 changed files with 175 additions and 77 deletions

View File

@@ -66,7 +66,7 @@ void LoadFromDB()
TC_LOG_INFO("server.loading", ">> Loaded 0 known addons. DB table `addons` is empty!");
oldMSTime = getMSTime();
result = CharacterDatabase.Query("SELECT id, name, version, UNIX_TIMESTAMP(timestamp) FROM banned_addons");
result = CharacterDatabase.Query("SELECT id, name, version, UNIX_TIMESTAMP(timestamp) FROM banned_addons ORDER BY timestamp");
if (result)
{
uint32 count = 0;
@@ -96,18 +96,16 @@ void LoadFromDB()
}
}
void SaveAddon(AddonInfo const& addon)
void SaveAddon(std::string const& name, uint32 publicKeyCrc)
{
std::string name = addon.Name;
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ADDON);
stmt->setString(0, name);
stmt->setUInt32(1, addon.CRC);
stmt->setUInt32(1, publicKeyCrc);
CharacterDatabase.Execute(stmt);
m_knownAddons.push_back(SavedAddon(addon.Name, addon.CRC));
m_knownAddons.emplace_back(name, publicKeyCrc);
}
SavedAddon const* GetAddonInfo(const std::string& name)

View File

@@ -21,20 +21,7 @@
#include "Define.h"
#include <string>
#include <list>
struct AddonInfo
{
AddonInfo(const std::string& name, uint8 enabled, uint32 crc, uint8 state, bool crcOrPubKey)
: Name(name), Enabled(enabled), CRC(crc), State(state), UsePublicKeyOrCRC(crcOrPubKey)
{ }
std::string Name;
uint8 Enabled;
uint32 CRC;
uint8 State;
bool UsePublicKeyOrCRC;
};
#include <vector>
struct SavedAddon
{
@@ -60,10 +47,10 @@ struct BannedAddon
namespace AddonMgr
{
void LoadFromDB();
void SaveAddon(AddonInfo const& addon);
void SaveAddon(std::string const& name, uint32 publicKeyCrc);
SavedAddon const* GetAddonInfo(const std::string& name);
typedef std::list<BannedAddon> BannedAddonList;
typedef std::vector<BannedAddon> BannedAddonList;
BannedAddonList const* GetBannedAddons();
}