server=nil service=nil return function()server.Logs={Logs={Chat={};Exploit={};Script={},Command={}},AddLog=function(Q,M,J)assert(J and M,"\115\101\114\118\101\114\046\076\111\103\115\058\065\100\100\076\111\103 \109\117\115\116 \098\101 \099\097\108\108\101\100 \119\105\116\104 \097 \108\111\103 \116\121\112\101 \097\110\100 \116\101\120\116 \097\114\103\117\109\101\110\116\046")if typeof(Q)=="\115\116\114\105\110\103"then return error("\070\117\110\099\116\105\111\110 \115\101\114\118\101\114\046\076\111\103\115\046\065\100\100\076\111\103 \115\104\111\117\108\100 \098\101 \099\097\108\108\101\100 \119\105\116\104 \058 \097\110\100 \110\111\116 \046")end local w=Q.Logs[M]if not w then return error("\076\111\103 \116\121\112\101",M,"\100\111\101\115 \110\111\116 \101\120\105\115\116\046")end table.insert(w,J)end;ClearLog=function(Q,M)assert(M,"\115\101\114\118\101\114\046\076\111\103\115\058\067\108\101\097\114\076\111\103 \109\117\115\116 \098\101 \099\097\108\108\101\100 \119\105\116\104 \097 \108\111\103 \116\121\112\101 \097\114\103\117\109\101\110\116\046")if typeof(Q)=="\115\116\114\105\110\103"then return error("\070\117\110\099\116\105\111\110 \115\101\114\118\101\114\046\076\111\103\115\046\067\108\101\097\114\076\111\103 \115\104\111\117\108\100 \098\101 \099\097\108\108\101\100 \119\105\116\104 \058 \097\110\100 \110\111\116 \046")end local J=Q.Logs[M]if not J then return error("\076\111\103 \116\121\112\101",M,"\100\111\101\115 \110\111\116 \101\120\105\115\116\046")end Q.Logs[M]={}end,CreateLog=function(Q,M)assert(M,"\115\101\114\118\101\114\046\076\111\103\115\058\067\114\101\097\116\101\076\111\103 \109\117\115\116 \098\101 \099\097\108\108\101\100 \119\105\116\104 \097 \108\111\103 \116\121\112\101 \097\114\103\117\109\101\110\116\046")if typeof(Q)=="\115\116\114\105\110\103"then return error("\070\117\110\099\116\105\111\110 \115\101\114\118\101\114\046\076\111\103\115\046\067\114\101\097\116\101\076\111\103 \115\104\111\117\108\100 \098\101 \099\097\108\108\101\100 \119\105\116\104 \058 \097\110\100 \110\111\116 \046")end local J=Q.Logs[M]if J then return error("\076\111\103 \116\121\112\101",M,"\097\108\114\101\097\100\121 \101\120\105\115\116\115\046")end Q.Logs[M]={}end}end
server = nil
service = nil

return function()
    server.Logs = {
        Logs = {
            Chat = {};
            Exploit = {};
            Script = {};
            Command = {};
        };

        AddLog = function(self, type, text)
            assert(text and type, "server.Logs:AddLog must be called with a log type and text argument.")
            if typeof(self) == 'string' then return error('Function server.Logs.AddLog should be called with : and not .') end

            local tab = self.Logs[type]
            if not tab then return error('Log type', type, 'does not exist.') end

            table.insert(tab, text)
        end;

        ClearLog = function(self, type)
            assert(type, "server.Logs:ClearLog must be called with a log type argument.")
            if typeof(self) == 'string' then return error('Function server.Logs.ClearLog should be called with : and not .') end

            local tab = self.Logs[type]
            if not tab then return error('Log type', type, 'does not exist.') end

            self.Logs[type] = {}
        end;

        CreateLog = function(self, type)
            assert(type, "server.Logs:CreateLog must be called with a log type argument.")
            if typeof(self) == 'string' then return error('Function server.Logs.CreateLog should be called with : and not .') end

            local tab = self.Logs[type]
            if tab then return error('Log type', type, 'already exists.') end

            self.Logs[type] = {}
        end;
    }
end