diff --git a/include/TLuaEngine.h b/include/TLuaEngine.h index b4f171b..f77341f 100644 --- a/include/TLuaEngine.h +++ b/include/TLuaEngine.h @@ -12,7 +12,7 @@ class TLuaEngine : public IThreaded { public: explicit TLuaEngine(TServer& Server, TTCPServer& TCPServer, TUDPServer& UDPServer); - ~TLuaEngine(); + //~TLuaEngine(); using TSetOfLuaFile = std::set>; diff --git a/include/TLuaFile.h b/include/TLuaFile.h index 0541da1..cd5bf6e 100644 --- a/include/TLuaFile.h +++ b/include/TLuaFile.h @@ -20,7 +20,7 @@ class TLuaEngine; class TLuaFile { public: - void Init(); + void Load(); void RegisterEvent(const std::string& Event, const std::string& FunctionName); void UnRegisterEvent(const std::string& Event); void SetLastWrite(fs::file_time_type time); @@ -33,7 +33,7 @@ public: std::string GetOrigin(); std::mutex Lock; void Reload(); - TLuaFile(TLuaEngine& Engine, const std::string& PluginName, const std::string& FileName, fs::file_time_type LastWrote, bool Console = false); + void Init(const std::string& PluginName, const std::string& FileName, fs::file_time_type LastWrote); explicit TLuaFile(TLuaEngine& Engine, bool Console = false); ~TLuaFile(); void SetStopThread(bool StopThread) { mStopThread = StopThread; } diff --git a/include/TServer.h b/include/TServer.h index b8c308b..38eef9a 100644 --- a/include/TServer.h +++ b/include/TServer.h @@ -18,14 +18,14 @@ public: TServer(int argc, char** argv); - void InsertClient(std::shared_ptr Ptr); + void InsertClient(const std::shared_ptr& Ptr); std::weak_ptr InsertNewClient(); - void RemoveClient(std::weak_ptr); + void RemoveClient(const std::weak_ptr&); // in Fn, return true to continue, return false to break void ForEachClient(const std::function)>& Fn); size_t ClientCount() const; - static void GlobalParser(std::weak_ptr Client, std::string Packet, TPPSMonitor& PPSMonitor, TUDPServer& UDPServer, TTCPServer& TCPServer); + static void GlobalParser(const std::weak_ptr& Client, std::string Packet, TPPSMonitor& PPSMonitor, TUDPServer& UDPServer, TTCPServer& TCPServer); static void HandleEvent(TClient& c, const std::string& Data); private: diff --git a/src/Common.cpp b/src/Common.cpp index 28ce8d0..da1e0f6 100644 --- a/src/Common.cpp +++ b/src/Common.cpp @@ -1,7 +1,6 @@ #include "Common.h" #include "TConsole.h" -#include #include #include #include diff --git a/src/THeartbeatThread.cpp b/src/THeartbeatThread.cpp index 3bb70ec..ea3c81a 100644 --- a/src/THeartbeatThread.cpp +++ b/src/THeartbeatThread.cpp @@ -10,7 +10,7 @@ void THeartbeatThread::operator()() { std::string T; // these are "hot-change" related variables - static std::string Last = ""; + static std::string Last; static std::chrono::high_resolution_clock::time_point LastNormalUpdateTime = std::chrono::high_resolution_clock::now(); bool isAuth = false; diff --git a/src/TLuaEngine.cpp b/src/TLuaEngine.cpp index 7b30ec4..85d6e9b 100644 --- a/src/TLuaEngine.cpp +++ b/src/TLuaEngine.cpp @@ -83,10 +83,11 @@ void TLuaEngine::RegisterFiles(const std::string& Path, bool HotSwap) { if (pos != std::string::npos && entry.path().string().length() - pos == 4) { if (!HotSwap || NewFile(entry.path().string())) { auto FileName = entry.path().string(); - std::unique_ptr ScriptToInsert(new TLuaFile(*this, Name, FileName, fs::last_write_time(FileName))); + std::unique_ptr ScriptToInsert(new TLuaFile(*this)); auto& Script = *ScriptToInsert; mLuaFiles.insert(std::move(ScriptToInsert)); - Script.Init(); + Script.Init(Name, FileName, fs::last_write_time(FileName)); + //Script.Load(); if (HotSwap) info(("[HOTSWAP] Added : ") + Script.GetFileName().substr(Script.GetFileName().find('\\'))); } @@ -102,5 +103,5 @@ bool TLuaEngine::NewFile(const std::string& Path) { return true; } -TLuaEngine::~TLuaEngine() { -} +/*TLuaEngine::~TLuaEngine() { +}*/ diff --git a/src/TLuaFile.cpp b/src/TLuaFile.cpp index efbb0e9..156d030 100644 --- a/src/TLuaFile.cpp +++ b/src/TLuaFile.cpp @@ -131,7 +131,7 @@ int lua_RegisterEvent(lua_State* L) { if (Args == 2 && lua_isstring(L, 1) && lua_isstring(L, 2)) { Script.RegisterEvent(lua_tostring(L, 1), lua_tostring(L, 2)); } else - SendError(Engine(), L, ("RegisterEvent invalid argument count expected 2 got ") + std::to_string(Args)); + SendError(Engine(), L, "RegisterEvent invalid argument count expected 2 got " + std::to_string(Args)); return 0; } int lua_TriggerEventL(lua_State* L) { @@ -308,7 +308,7 @@ int lua_GetGuest(lua_State* L) { } int lua_GetAllPlayers(lua_State* L) { lua_newtable(L); - Engine().Server().ForEachClient([&](std::weak_ptr ClientPtr) -> bool { + Engine().Server().ForEachClient([&](const std::weak_ptr& ClientPtr) -> bool { if (ClientPtr.expired()) return true; auto Client = ClientPtr.lock(); @@ -575,9 +575,8 @@ int lua_Print(lua_State* L) { int lua_TempFix(lua_State* L); -TLuaFile::TLuaFile(TLuaEngine& Engine, const std::string& PluginName, const std::string& FileName, fs::file_time_type LastWrote, bool Console) - : mEngine(Engine) - , mLuaState(luaL_newstate()) { + +void TLuaFile::Init(const std::string& PluginName, const std::string& FileName, fs::file_time_type LastWrote){ // set global engine for lua_* functions if (!TheEngine) { TheEngine = &mEngine; @@ -590,14 +589,16 @@ TLuaFile::TLuaFile(TLuaEngine& Engine, const std::string& PluginName, const std: SetFileName(FileName); } SetLastWrite(LastWrote); - Init(); + Load(); } TLuaFile::TLuaFile(TLuaEngine& Engine, bool Console) : mEngine(Engine) , mLuaState(luaL_newstate()) { - mConsole = Console; - Init(); + if(Console) { + mConsole = Console; + Load(); + } } void TLuaFile::Execute(const std::string& Command) { @@ -642,7 +643,7 @@ void TLuaFile::SetFileName(const std::string& Name) { mFileName = Name; } -void TLuaFile::Init() { +void TLuaFile::Load() { Assert(mLuaState); luaL_openlibs(mLuaState); lua_register(mLuaState, "TriggerGlobalEvent", lua_TriggerEventG); diff --git a/src/TPPSMonitor.cpp b/src/TPPSMonitor.cpp index 8cafd6f..02e8b09 100644 --- a/src/TPPSMonitor.cpp +++ b/src/TPPSMonitor.cpp @@ -29,7 +29,7 @@ void TPPSMonitor::operator()() { Application::SetPPS("-"); continue; } - mServer.ForEachClient([&](std::weak_ptr ClientPtr) -> bool { + mServer.ForEachClient([&](const std::weak_ptr& ClientPtr) -> bool { if (!ClientPtr.expired()) { auto c = ClientPtr.lock(); if (c->GetCarCount() > 0) { diff --git a/src/TServer.cpp b/src/TServer.cpp index 47a839c..3f7fd69 100644 --- a/src/TServer.cpp +++ b/src/TServer.cpp @@ -18,8 +18,8 @@ TServer::TServer(int argc, char** argv) { if (argc > 1) { Application::Settings.CustomIP = argv[1]; size_t n = std::count(Application::Settings.CustomIP.begin(), Application::Settings.CustomIP.end(), '.'); - auto p = Application::Settings.CustomIP.find_first_not_of((".0123456789")); - if (p != std::string::npos || n != 3 || Application::Settings.CustomIP.substr(0, 3) == ("127")) { + auto p = Application::Settings.CustomIP.find_first_not_of(".0123456789"); + if (p != std::string::npos || n != 3 || Application::Settings.CustomIP.substr(0, 3) == "127") { Application::Settings.CustomIP.clear(); warn("IP Specified is invalid! Ignoring"); } else { @@ -28,7 +28,7 @@ TServer::TServer(int argc, char** argv) { } } -void TServer::RemoveClient(std::weak_ptr WeakClientPtr) { +void TServer::RemoveClient(const std::weak_ptr& WeakClientPtr) { if (!WeakClientPtr.expired()) { TClient& Client = *WeakClientPtr.lock(); debug("removing client " + Client.GetName() + " (" + std::to_string(ClientCount()) + ")"); @@ -59,7 +59,7 @@ size_t TServer::ClientCount() const { return mClients.size(); } -void TServer::GlobalParser(std::weak_ptr Client, std::string Packet, TPPSMonitor& PPSMonitor, TUDPServer& UDPServer, TTCPServer& TCPServer) { +void TServer::GlobalParser(const std::weak_ptr& Client, std::string Packet, TPPSMonitor& PPSMonitor, TUDPServer& UDPServer, TTCPServer& TCPServer) { if (Packet.find("Zp") != std::string::npos && Packet.size() > 500) { abort(); } @@ -271,7 +271,7 @@ void TServer::Apply(TClient& c, int VID, const std::string& pckt) { c.SetCarData(VID, Header + Buffer.GetString()); } -void TServer::InsertClient(std::shared_ptr NewClient) { +void TServer::InsertClient(const std::shared_ptr& NewClient) { debug("inserting client (" + std::to_string(ClientCount()) + ")"); WriteLock Lock(mClientsMutex); (void)mClients.insert(NewClient); diff --git a/src/TTCPServer.cpp b/src/TTCPServer.cpp index de1ce4e..a668b2b 100644 --- a/src/TTCPServer.cpp +++ b/src/TTCPServer.cpp @@ -113,7 +113,7 @@ void TTCPServer::Authentication(SOCKET TCPSock) { debug("Name -> " + Client->GetName() + ", Guest -> " + std::to_string(Client->IsGuest()) + ", Roles -> " + Client->GetRoles()); debug("There are " + std::to_string(mServer.ClientCount()) + " known clients"); - mServer.ForEachClient([&](std::weak_ptr ClientPtr) -> bool { + mServer.ForEachClient([&](const std::weak_ptr& ClientPtr) -> bool { if (!ClientPtr.expired()) { auto Cl = ClientPtr.lock(); info("Client Iteration: Name -> " + Client->GetName() + ", Guest -> " + std::to_string(Client->IsGuest()) + ", Roles -> " + Client->GetRoles()); diff --git a/src/main.cpp b/src/main.cpp index 3620e46..4022b27 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,7 +6,6 @@ #include "TResourceManager.h" #include "TServer.h" #include "TUDPServer.h" -#include #include #include