From 726c212545b88af6080603f91dc8a4d37dfeb696 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Sat, 15 Dec 2018 16:20:01 +0000 Subject: [PATCH] Updated for FSM 1.2.5 --- FactorioSoftmodManager.lua | 285 ++++++++++-------- control.lua | 2 +- modules/DeconControl/softmod.json | 4 +- modules/ExpGamingAdmin/AdminLib/softmod.json | 6 +- modules/ExpGamingAdmin/Ban/softmod.json | 4 +- modules/ExpGamingAdmin/Gui/softmod.json | 2 +- modules/ExpGamingAdmin/Jail/softmod.json | 4 +- modules/ExpGamingAdmin/Kick/softmod.json | 4 +- modules/ExpGamingAdmin/Reports/softmod.json | 4 +- modules/ExpGamingAdmin/TempBan/softmod.json | 4 +- modules/ExpGamingAdmin/Warnings/softmod.json | 6 +- modules/ExpGamingBot/autoChat/softmod.json | 2 +- modules/ExpGamingBot/autoMessage/softmod.json | 4 +- modules/ExpGamingCommands/kill/softmod.json | 2 +- modules/ExpGamingCommands/repair/softmod.json | 2 +- modules/ExpGamingCommands/tags/softmod.json | 2 +- modules/ExpGamingCore/Group/softmod.json | 2 +- modules/ExpGamingCore/Gui/popup/control.lua | 12 +- modules/ExpGamingCore/Role/softmod.json | 6 +- modules/ExpGamingCore/Sync/softmod.json | 4 +- modules/ExpGamingInfo/Readme/softmod.json | 2 +- modules/ExpGamingPlayer/afkKick/softmod.json | 6 +- .../inventorySearch/softmod.json | 2 +- .../ExpGamingPlayer/playerInfo/softmod.json | 4 +- .../ExpGamingPlayer/playerList/softmod.json | 6 +- modules/ExpGamingPlayer/polls/softmod.json | 2 +- modules/WarpPoints/softmod.json | 4 +- modules/index.lua | 140 ++++----- softmod.json | 32 -- 29 files changed, 277 insertions(+), 282 deletions(-) delete mode 100644 softmod.json diff --git a/FactorioSoftmodManager.lua b/FactorioSoftmodManager.lua index c977ef8b..3b4ab4cf 100644 --- a/FactorioSoftmodManager.lua +++ b/FactorioSoftmodManager.lua @@ -7,7 +7,7 @@ local moduleIndex = require("/modules/index") local Manager = {} -- this is a constant that is used to represent the server -SERVER = setmetatable({index=0,name='',admin=true,online_time=0,afk_time=0,print=print,__self=true,valid=true},{__index=function(tbl,key) if type(game.players[1][key]) == 'function' then return function() end else return nil end end}) +SERVER = setmetatable({index=0,name='',online_time=0,afk_time=0,print=print,admin=true},{__index=function(tbl,key) if type(game.players[1][key]) == 'function' then return function() end else return nil end end}) --- Setup for metatable of the Manager to force read only nature -- @usage Manager() -- runs Manager.loadModdules() @@ -74,9 +74,9 @@ Manager.verbose = function(rtn,action) local settings = Manager.setVerbose local state = Manager.currentState if Manager.error and state == Manager.error.__crash then return end - -- if ran in a module the the global module_name is present + -- if ran in a module the the global moduleName is present local rtn = type(rtn) == table and serpent.line(rtn) or tostring(rtn) - if module_name then rtn='['..module_name..'] '..rtn + if moduleName then rtn='['..moduleName..'] '..rtn else rtn='[FSM] '..rtn end -- module_verbose is a local override for a file, action is used in the manager to describe an extra type, state is the current state -- if action is true then it will always trigger verbose @@ -178,10 +178,10 @@ Manager.global=setmetatable({__defaults={},__global={ -- creates varible link to global and module information, use of a metatable is for already formed globals local Global = _G.global local metatable = getmetatable(metatable_src) - local module_name = type(default) == 'string' and default or metatable and metatable._module_name or module_name - local module_path = type(default) == 'string' and moduleIndex[default] or metatable and metatable._module_path or module_path + local moduleName = type(default) == 'string' and default or metatable and metatable._moduleName or moduleName + local module_path = type(default) == 'string' and Manager.loadModules.__load[default] or metatable and metatable._module_path or module_path -- if there is no name or path then it will return and unedited version of global - if not module_path or not module_name then return _G.global end + if not module_path or not moduleName then return _G.global end -- edits the link to global to be the corrected dir, path varible is also created local path = 'global' for dir in module_path:gmatch('%a+') do @@ -190,14 +190,14 @@ Manager.global=setmetatable({__defaults={},__global={ Global = rawget(Global,dir) end -- the default value is set if there was a default given - if type(default) == 'table' then Manager.verbose('Default global has been set for: global'..string.sub(module_path:gsub('/','.')),2) rawset(rawget(tbl,'__defaults'),tostring(module_name),default) end + if type(default) == 'table' then Manager.verbose('Default global has been set for: global'..string.sub(module_path:gsub('/','.')),2) rawset(rawget(tbl,'__defaults'),tostring(moduleName),default) end -- if the default value is true then it will reset the global to its default - if default == true and rawget(rawget(tbl,'__defaults'),tostring(module_name)) then + if default == true and rawget(rawget(tbl,'__defaults'),tostring(moduleName)) then Manager.verbose('Reset Global Dir to default: '..path) -- cant set it to be equle otherwise it will lose its global propeity local function deepcopy(tbl) if type(tbl) ~= 'table' then return tbl end local rtn = {} for key,value in pairs(tbl) do rtn[key] = deepcopy(value) end return rtn end for key,value in pairs(Global) do rawset(Global,key,nil) end - for key,value in pairs(rawget(rawget(tbl,'__defaults'),tostring(module_name))) do rawset(Global,key,deepcopy(value)) end + for key,value in pairs(rawget(rawget(tbl,'__defaults'),tostring(moduleName))) do rawset(Global,key,deepcopy(value)) end end -- the metatable is remade if not already present metatable = metatable or { @@ -212,7 +212,7 @@ Manager.global=setmetatable({__defaults={},__global={ end return next_pair, tbl, nil end, - _module_path=module_path,_module_name=module_name + _module_path=module_path,_moduleName=moduleName } return setmetatable(Global,metatable) end, @@ -286,7 +286,7 @@ Manager.require = setmetatable({ },{ __metatable=false, __index=function(tbl,key) return tbl(key,nil,true) end, - __call=function(tbl,path,env,mute) + __call=function(tbl,path,env,mute,noLoad) local raw_require = rawget(tbl,'__require') local env = env or {} -- runs in a sand box becuase sandbox everything @@ -295,23 +295,23 @@ Manager.require = setmetatable({ if success then return unpack(data) else if type(path) ~= 'string' then error('Path supplied must be a string; got: '..type(path),2) return end - -- else it assums the path was a module name and checks index for the module - if moduleIndex[path] then return rawget(Manager.loadModules,path) end - if moduleIndex[path:gsub('?','')] then return rawget(Manager.loadModules,path) end - -- if its not listed then it tries to remove a version tag and tries again - local path_no_version = path:find('@') and path:sub(1,path:find('@')-1) or path - if moduleIndex[path_no_version] then return rawget(Manager.loadModules,path_no_version) end - -- still no then it will look for all modules that include this one in the name (like a collection) - local collection = {} - for module_name,path in pairs(moduleIndex) do - if module_name:find('@') and module_name:sub(1,module_name:find('@')-1) == path_no_version then return rawget(Manager.loadModules,module_name) end - if module_name:find(path_no_version) then - local start, _end = module_name:find(path_no_version) - collection[module_name:sub(_end+2)] = rawget(Manager.loadModules,module_name) + local override = {} + local softmod = override + local path = path:find('@') and path:sub(1,path:find('@')-1) or path + -- tries to load the module from the modeul index + if moduleIndex[path] and not noLoad or Manager.loadModules.__load[path] then softmod = Manager.loadModules[path] end + -- will then look for any submodules if there are any; only once every module is loaded + for moduleName,subpath in pairs(moduleIndex) do + if moduleName:find(path) == 1 and moduleName ~= path then + local start, _end = moduleName:find(path) + local subname = moduleName:sub(_end+2) + -- does not add the module if it is a subsubmodule; or the key already exitsts + if not softmod then softmod = {} end + if not subname:find('.',nil,true) and not softmod[subname] then softmod[subname] = Manager.require(moduleName,nil,true,true) end end end - -- if there is any keys in the collection the collection is returned else the errors with the require error - for _ in pairs(collection) do return collection end + -- if there is any keys in the softmod it is returned else the errors with the require error + if override ~= softmod then return softmod end if mute then return false else error(data,2) end end end @@ -324,95 +324,134 @@ require = Manager.require -- @usage #Manager.loadModules -- returns the number of modules loaded -- @usage tostring(Manager.loadModules) -- returns a formatted list of all modules loaded -- @usage pairs(Manager.loadModules) -- loops over the loaded modules moduleName, module -Manager.loadModules = setmetatable({}, +Manager.loadModules = setmetatable({ + __load=setmetatable({},{__call=function(self,moduleName) + -- check to provent multiple calls + if self[moduleName] then return end + self[moduleName] = true + self = Manager.loadModules + -- loads the module and its dependices if there are not loaded + local load = moduleIndex[moduleName] + if not load then return end + local path = table.remove(load,1) + Manager.verbose('Loading module: "'..moduleName..'"; path: '..path) + -- loads the parent module + if moduleName:find('.',nil,true) then + local revModuleName = moduleName:reverse() + local start, _end = revModuleName:find('.',nil,true) + local parentName = revModuleName:sub(_end+1):reverse() + Manager.verbose('Loading module parent: "'..parentName..'" for: "'..moduleName..'"; path: '..path) + self.__load(parentName) + end + -- loads the dependices + Manager.verbose('Loading module dependices for: "'..moduleName..'"; path: '..path) + for _,depName in pairs(load) do self.__load(depName) end + self.__load[moduleName] = path + -- runs the module in a sandbox env + local success, module, sandbox = Manager.sandbox(Manager.require.__require,{moduleName=setupModuleName(moduleName),module_path=path},path..'/control') + -- extracts the module into a global index table for later use + if success then + -- verbose to notifie of any globals that were attempted to be created + local globals = '' + for key,value in pairs(sandbox) do globals = globals..key..', ' end + if globals ~= '' then Manager.verbose('Globals caught in "'..moduleName..'": '..globals:sub(1,-3),'errorCaught') end + Manager.verbose('Successfully loaded: "'..moduleName..'"; path: '..path) + -- if it is not a table or nil then it will set up a metatable on it + local currentType = type(rawget(self,moduleName)) + if currentType ~= 'nil' and currentType ~= 'table' then + -- if it is a function then it is still able to be called even if more keys are going to be added + -- if it is a string then it will act like one; if it is a number well thats too many metatable indexs + self[moduleName] = setmetatable({__old=self[moduleName]},{ + __call=function(self,...) if type(self.__old) == 'function' then self.__old(...) else return self.__old end end, + __tostring=function(self) return self.__old end, + __concat=function(self,val) return self.__old..val end + }) + end + -- if you prefere module_exports can be used rather than returning the module + local appendAs = sandbox.module_exports or table.remove(module,1) + if not self[moduleName] then self[moduleName] = appendAs -- if nil it just sets the value + else for key,value in pairs(appendAs) do self[moduleName][key] = value end end -- else it appends the new values + -- if there is a module by this name in _G ex table then it will be indexed to the new module + if rawget(_G,moduleName) and type(rawget(self,moduleName)) == 'table' then setmetatable(rawget(_G,moduleName),{__index=self[moduleName]}) end + if type(rawget(self,moduleName)) == 'table' then self[moduleName]._module_path = path self[moduleName]._moduleName = moduleName end + -- loads the submodule for this softmod + Manager.verbose('Loading submodules for: "'..moduleName..'"; path: '..path) + for subModName,_ in pairs(moduleIndex) do + if subModName:find(moduleName) == 1 and subModName ~= moduleName then self.__load(subModName) end + end + else + Manager.verbose('Failed load: "'..moduleName..'"; path: '..path..' ('..module..')','errorCaught') + for event_name,callbacks in pairs(Manager.event) do Manager.verbose('Removed Event Handler: "'..moduleName..'/'..Manager.event.names[event_name],'eventRegistered') callbacks[moduleName] = nil end + end + end}), + __init=setmetatable({},{__call=function(self,moduleName) + -- check to provent multiple calls + if self[moduleName] or not Manager.loadModules.__load[moduleName] then return end + self[moduleName] = true + self = Manager.loadModules + -- calls on_init for each module + -- looks for init so that init or on_init can be used + local data = self[moduleName] + if type(data) == 'table' and data.init and data.on_init == nil then data.on_init = data.init data.init = nil end + if type(data) == 'table' and data.on_init and type(data.on_init) == 'function' then + Manager.verbose('Initiating module: "'..moduleName..'"') + local success, err = Manager.sandbox(data.on_init,{moduleName=setupModuleName(moduleName),module_path=Manager.loadModules.__load[tostring(moduleName)]},data) + if success then + Manager.verbose('Successfully Initiated: "'..moduleName..'"') + else + Manager.verbose('Failed Initiation: "'..moduleName..'" ('..err..')','errorCaught') + end + -- clears the init function so it cant be used in runtime + data.on_init = nil + end + end}), + __post=setmetatable({},{__call=function(self,moduleName) + -- check to provent multiple calls + if self[moduleName] or not Manager.loadModules.__init[moduleName] then return end + self[moduleName] = true + self = Manager.loadModules + -- calls on_post for each module + -- looks for post so that post or on_post can be used + local data = self[moduleName] + if type(data) == 'table' and data.post and data.on_post == nil then data.on_post = data.post data.post = nil end + if type(data) == 'table' and data.on_post and type(data.on_post) == 'function' then + Manager.verbose('Post for module: "'..moduleName..'"') + local success, err = Manager.sandbox(data.on_post,{moduleName=setupModuleName(moduleName),module_path=Manager.loadModules.__load[tostring(moduleName)]},data) + if success then + Manager.verbose('Successful post: "'..moduleName..'"') + else + Manager.verbose('Failed post: "'..moduleName..'" ('..err..')','errorCaught') + end + -- clears the post function so it cant be used in runtime + data.on_post = nil + end + end}) + }, { __metatable=false, - __index=Manager.require, - __call=function(tbl) - -- ReadOnlyManager used to trigger verbose change + __index=function(self,moduleName) + -- will load one module if it is not already loaded, will not init during load state or post + self.__load(moduleName) + if (ReadOnlyManager.currentState == 'moduleLoad') then return end + self.__init(moduleName) + if (ReadOnlyManager.currentState == 'moduleInit') then return end + self.__post(moduleName) + return rawget(self,moduleName) + end, + __call=function(self) + -- goes though the index looking for modules to load ReadOnlyManager.currentState = 'moduleLoad' - -- goes though the index looking for modules - for module_name,path in pairs(moduleIndex) do - Manager.verbose('Loading module: "'..module_name..'"; path: '..path) - -- runs the module in a sandbox env - local success, module, sandbox = Manager.sandbox(Manager.require.__require,{module_name=setupModuleName(module_name),module_path=path},path..'/control') - -- extracts the module into a global index table for later use - if success then - -- verbose to notifie of any globals that were attempted to be created - local globals = '' - for key,value in pairs(sandbox) do globals = globals..key..', ' end - if globals ~= '' then Manager.verbose('Globals caught in "'..module_name..'": '..globals:sub(1,-3),'errorCaught') end - Manager.verbose('Successfully loaded: "'..module_name..'"; path: '..path) - -- sets that it has been loaded and adds to the loaded index - -- if you prefere module_exports can be used rather than returning the module - if type(tbl[module_name]) == 'nil' then - -- if it is a new module then creat the new index - if sandbox.module_exports and type(sandbox.module_exports) == 'table' - then tbl[module_name] = sandbox.module_exports - else tbl[module_name] = table.remove(module,1) end - elseif type(tbl[module_name]) == 'table' then - -- if this module adds onto an existing one then append the keys - if sandbox.module_exports and type(sandbox.module_exports) == 'table' - then for key,value in pairs(sandbox.module_exports) do tbl[module_name][key] = value end - else for key,value in pairs(table.remove(module,1)) do tbl[module_name][key] = value end end - else - -- if it is a function then it is still able to be called even if more keys are going to be added - -- if it is a string then it will act like one; if it is a number well thats too many metatable indexs - tbl[module_name] = setmetatable({__old=tbl[module_name]},{ - __call=function(tbl,...) if type(tbl.__old) == 'function' then tbl.__old(...) else return tbl.__old end end, - __tostring=function(tbl) return tbl.__old end, - __concat=function(tbl,val) return tbl.__old..val end - }) - -- same as above for adding the keys to the table - if sandbox.module_exports and type(sandbox.module_exports) == 'table' - then for key,value in pairs(sandbox.module_exports) do tbl[module_name][key] = value end - else for key,value in pairs(table.remove(module,1)) do tbl[module_name][key] = value end end - end - -- if there is a module by this name in _G ex table then it will be indexed to the new module - if rawget(_G,module_name) and type(tbl[module_name]) == 'table' then setmetatable(rawget(_G,module_name),{__index=tbl[module_name]}) end - if type(tbl[module_name]) == 'table' then tbl[module_name]._module_path = path tbl[module_name]._module_name = module_name end - else - Manager.verbose('Failed load: "'..module_name..'"; path: '..path..' ('..module..')','errorCaught') - for event_name,callbacks in pairs(Manager.event) do Manager.verbose('Removed Event Handler: "'..module_name..'/'..Manager.event.names[event_name],'eventRegistered') callbacks[module_name] = nil end - end - end - -- new state for the manager to allow control of verbose - ReadOnlyManager.currentState = 'moduleInit' + for moduleName,path in pairs(moduleIndex) do self.__load(moduleName) end -- runs though all loaded modules looking for on_init function; all other modules have been loaded use this to load extra code based on opttial dependies - for module_name,data in pairs(tbl) do - -- looks for init so that init or on_init can be used - if type(data) == 'table' and data.init and data.on_init == nil then data.on_init = data.init data.init = nil end - if type(data) == 'table' and data.on_init and type(data.on_init) == 'function' then - Manager.verbose('Initiating module: "'..module_name..'"') - local success, err = Manager.sandbox(data.on_init,{module_name=setupModuleName(module_name),module_path=moduleIndex[tostring(module_name)]},data) - if success then - Manager.verbose('Successfully Initiated: "'..module_name..'"') - else - Manager.verbose('Failed Initiation: "'..module_name..'" ('..err..')','errorCaught') - end - -- clears the init function so it cant be used in runtime - data.on_init = nil - end + ReadOnlyManager.currentState = 'moduleInit' + for moduleName,path in pairs(self) do + if moduleName ~= '__load' and moduleName ~= '__init' and moduleName ~= '__post' then self.__init(moduleName) end end - -- new state for the manager to allow control of verbose - ReadOnlyManager.currentState = 'modulePost' -- runs though all loaded modules looking for on_post function; all other modules have been loaded and inited, do not load extra code in this time only altar your own data - for module_name,data in pairs(tbl) do - -- looks for post so that post or on_post can be used - if type(data) == 'table' and data.post and data.on_post == nil then data.on_post = data.post data.post = nil end - if type(data) == 'table' and data.on_post and type(data.on_post) == 'function' then - Manager.verbose('Post for module: "'..module_name..'"') - local success, err = Manager.sandbox(data.on_post,{module_name=setupModuleName(module_name),module_path=moduleIndex[tostring(module_name)]},data) - if success then - Manager.verbose('Successful post: "'..module_name..'"') - else - Manager.verbose('Failed post: "'..module_name..'" ('..err..')','errorCaught') - end - -- clears the post function so it cant be used in runtime - data.on_post = nil - end + ReadOnlyManager.currentState = 'modulePost' + for moduleName,path in pairs(self) do + if moduleName ~= '__load' and moduleName ~= '__init' and moduleName ~= '__post' then self.__post(moduleName) end end - -- this could also be called runtime ReadOnlyManager.currentState = 'moduleEnv' end, __len=function(tbl) @@ -421,13 +460,13 @@ Manager.loadModules = setmetatable({}, for key,value in pairs(tbl) do rtn = rtn + 1 end - return rtn + return rtn-3 end, __tostring=function(tbl) -- a concat of all the loaded modules local rtn = 'Load Modules: ' for key,value in pairs(tbl) do - rtn=rtn..key..', ' + if key ~= '__load' and key ~= '__init' and key ~= '__post' then rtn=rtn..key..', ' end end return rtn:sub(1,-3) end @@ -575,13 +614,13 @@ Manager.event = setmetatable({ -- other wise raise the event and call every callback; no use of script.raise_event due to override local event_functions = tbl.__events[event_name] if type(event_functions) == 'table' then - for module_name,callback in pairs(event_functions) do + for moduleName,callback in pairs(event_functions) do -- loops over the call backs and which module it is from - if type(callback) ~= 'function' then error('Invalid Event Callback: "'..event_name..'/'..module_name..'"') end - local success, err = Manager.sandbox(callback,{module_name=setupModuleName(module_name),module_path=moduleIndex[tostring(module_name)]},new_callback,...) + if type(callback) ~= 'function' then error('Invalid Event Callback: "'..event_name..'/'..moduleName..'"') end + local success, err = Manager.sandbox(callback,{moduleName=setupModuleName(moduleName),module_path=Manager.loadModules.__load[tostring(moduleName)]},new_callback,...) if not success then local chache = tbl.error_chache - local error_message = 'Event Failed: "'..module_name..'/'..tbl.names[event_name]..'" ('..err..')' + local error_message = 'Event Failed: "'..moduleName..'/'..tbl.names[event_name]..'" ('..err..')' if not chache[error_message] then Manager.verbose(error_message,'errorCaught') error(error_message) end if tbl.names[event_name] == 'on_tick' then if not chache[error_message] then chache[error_message] = {game.tick,1} end @@ -589,12 +628,12 @@ Manager.event = setmetatable({ else chache[error_message] = nil end if chache[error_message] and chache[error_message][2] > 100 then Manager.verbose('There was an error happening every tick for 100 ticks, the event handler has been removed!','errorCaught') - event_functions[module_name] = nil + event_functions[moduleName] = nil end end end -- if stop constant is returned then stop further processing - if err == rawget(tbl,'__stop') then Manager.verbose('Event Haulted By: "'..module_name..'"','errorCaught') break end + if err == rawget(tbl,'__stop') then Manager.verbose('Event Haulted By: "'..moduleName..'"','errorCaught') break end end end end, @@ -602,7 +641,7 @@ Manager.event = setmetatable({ -- handles the creation of new event handlers if type(value) ~= 'function' and type(value) ~= nil then error('Attempted to set a non function value to an event',2) end -- checks for a global module name that is present - local module_name = module_name or 'FSM' + local moduleName = moduleName or 'FSM' -- converts the key to a number index for the event Manager.verbose('Added Handler: "'..tbl.names[key]..'"','eventRegistered') -- checks that the event has a valid table to store callbacks; if its not valid it will creat it and register a real event handler @@ -611,18 +650,18 @@ Manager.event = setmetatable({ elseif key < 0 then rawget(tbl,tbl.names[key])(function(...) tbl(key,...) end) else rawget(tbl,'__event')(key,function(...) tbl(key,...) end) end rawset(rawget(tbl,'__events'),key,{}) end - -- adds callback to Manager.event.__events[event_id][module_name] - rawset(rawget(rawget(tbl,'__events'),key),tostring(module_name),value) + -- adds callback to Manager.event.__events[event_id][moduleName] + rawset(rawget(rawget(tbl,'__events'),key),tostring(moduleName),value) end, __index=function(tbl,key) -- few redirect key local redirect={register=tbl,dispatch=tbl,remove=function(event_id) tbl[event_name]=nil end} if rawget(redirect,key) then return rawget(redirect,key) end -- proforms different look ups depentding weather the current module has an event handler registered - if module_name then + if moduleName then -- first looks for the event callback table and then under the module name; does same but converts the key to a number; no handler regisered so returns the converted event id - return rawget(rawget(tbl,'__events'),key) and rawget(rawget(rawget(tbl,'__events'),key),tostring(module_name)) - or rawget(rawget(tbl,'__events'),rawget(tbl,'names')[key]) and rawget(rawget(rawget(tbl,'__events'),rawget(tbl,'names')[key]),tostring(module_name)) + return rawget(rawget(tbl,'__events'),key) and rawget(rawget(rawget(tbl,'__events'),key),tostring(moduleName)) + or rawget(rawget(tbl,'__events'),rawget(tbl,'names')[key]) and rawget(rawget(rawget(tbl,'__events'),rawget(tbl,'names')[key]),tostring(moduleName)) or rawget(tbl,'names')[key] else -- if there is no module present then it will return the full list of regisered handlers; or other wise the converted event id @@ -702,7 +741,7 @@ script.on_load(function(...) end) --over rides for the base values; can be called though Event Event=setmetatable({},{__call=Manager.event,__index=function(tbl,key) return Manager.event[key] or script[key] or error('Invalid Index To Table Event') end}) -script.mod_name = setmetatable({},{__index=_G.module_name}) +script.mod_name = setmetatable({},{__index=_G.moduleName}) script.on_event=Manager.event script.raise_event=Manager.event script.on_init=function(callback) Manager.event(-1,callback) end diff --git a/control.lua b/control.lua index c5e46030..1c352a55 100644 --- a/control.lua +++ b/control.lua @@ -6,7 +6,7 @@ Manager.setVerbose{ moduleLoad=false, -- when a module is required by the manager moduleInit=false, -- when and within the initation of a module modulePost=false, -- when and within the post of a module - moduleEnv=true, -- during module runtime, this is a global option set within each module for fine control + moduleEnv=false, -- during module runtime, this is a global option set within each module for fine control eventRegistered=false, -- when a module registers its event handlers errorCaught=true, -- when an error is caught during runtime output=Manager._verbose -- can be: can be: print || log || other function diff --git a/modules/DeconControl/softmod.json b/modules/DeconControl/softmod.json index 3040a69f..70ec9616 100644 --- a/modules/DeconControl/softmod.json +++ b/modules/DeconControl/softmod.json @@ -19,8 +19,8 @@ "FactorioStdLib.Game": "^0.8.0", "ExpGamingLib": "^4.0.0", "ExpGamingAdmin.Warnings": "?^4.0.0", - "ExpGamingCore.Role": "^4.0.0", - "ExpGamingAdmin.AdminLib": "^4.0.0" + "ExpGamingCore.Role": "?^4.0.0", + "ExpGamingAdmin.AdminLib": "?^4.0.0" }, "submodules": {} } diff --git a/modules/ExpGamingAdmin/AdminLib/softmod.json b/modules/ExpGamingAdmin/AdminLib/softmod.json index ba431266..4674410f 100644 --- a/modules/ExpGamingAdmin/AdminLib/softmod.json +++ b/modules/ExpGamingAdmin/AdminLib/softmod.json @@ -10,10 +10,10 @@ ], "dependencies": { "FactorioStdLib": "^0.8.0", - "ExpGamingCore.Role": "^4.0.0", - "ExpGamingCore.Sync": "^4.0.0", + "ExpGamingCore.Role": "?^4.0.0", + "ExpGamingCore.Sync": "?^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "ExpGamingCore.Server": "^4.0.0" + "ExpGamingCore.Server": "?^4.0.0" }, "collection": "ExpGamingAdmin@4.0.0", "submodules": {} diff --git a/modules/ExpGamingAdmin/Ban/softmod.json b/modules/ExpGamingAdmin/Ban/softmod.json index 0c2bfa08..1f9c339f 100644 --- a/modules/ExpGamingAdmin/Ban/softmod.json +++ b/modules/ExpGamingAdmin/Ban/softmod.json @@ -14,8 +14,8 @@ "ExpGamingAdmin.Gui": "^4.0.0", "ExpGamingCore.Server": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "FactorioStdLib.Color": "^0.8.0", - "ExpGamingCore.Sync": "^4.0.0", + "FactorioStdLib.Color": "?^0.8.0", + "ExpGamingCore.Sync": "?^4.0.0", "ExpGamingAdmin.ClearInventory": "?^4.0.0" }, "collection": "ExpGamingAdmin@4.0.0", diff --git a/modules/ExpGamingAdmin/Gui/softmod.json b/modules/ExpGamingAdmin/Gui/softmod.json index cf063874..4e668d3e 100644 --- a/modules/ExpGamingAdmin/Gui/softmod.json +++ b/modules/ExpGamingAdmin/Gui/softmod.json @@ -15,7 +15,7 @@ "ExpGamingCore.Role": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", "ExpGamingPlayer": "?^4.0.0", - "ExpGamingPlayer.playerInfo": "^4.0.0", + "ExpGamingPlayer.playerInfo": "?^4.0.0", "mod-gui": "*" }, "collection": "ExpGamingAdmin@4.0.0", diff --git a/modules/ExpGamingAdmin/Jail/softmod.json b/modules/ExpGamingAdmin/Jail/softmod.json index d6b6559f..3d5a1cf4 100644 --- a/modules/ExpGamingAdmin/Jail/softmod.json +++ b/modules/ExpGamingAdmin/Jail/softmod.json @@ -15,8 +15,8 @@ "ExpGamingCore.Server": "^4.0.0", "ExpGamingCore.Role": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "FactorioStdLib.Color": "^0.8.0", - "ExpGamingCore.Sync": "^4.0.0", + "FactorioStdLib.Color": "?^0.8.0", + "ExpGamingCore.Sync": "?^4.0.0", "ExpGamingAdmin.ClearInventory": "?^4.0.0" }, "collection": "ExpGamingAdmin@4.0.0", diff --git a/modules/ExpGamingAdmin/Kick/softmod.json b/modules/ExpGamingAdmin/Kick/softmod.json index ad64f975..7ac3ea5c 100644 --- a/modules/ExpGamingAdmin/Kick/softmod.json +++ b/modules/ExpGamingAdmin/Kick/softmod.json @@ -14,8 +14,8 @@ "ExpGamingAdmin.Gui": "^4.0.0", "ExpGamingCore.Server": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "FactorioStdLib.Color": "^0.8.0", - "ExpGamingCore.Sync": "^4.0.0", + "FactorioStdLib.Color": "?^0.8.0", + "ExpGamingCore.Sync": "?^4.0.0", "ExpGamingAdmin.ClearInventory": "?^4.0.0" }, "collection": "ExpGamingAdmin@4.0.0", diff --git a/modules/ExpGamingAdmin/Reports/softmod.json b/modules/ExpGamingAdmin/Reports/softmod.json index 2c522323..4ea22139 100644 --- a/modules/ExpGamingAdmin/Reports/softmod.json +++ b/modules/ExpGamingAdmin/Reports/softmod.json @@ -16,8 +16,8 @@ "ExpGamingCore.Server": "^4.0.0", "ExpGamingCore.Role": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "FactorioStdLib.Color": "^0.8.0", - "ExpGamingCore.Sync": "^4.0.0", + "FactorioStdLib.Color": "?^0.8.0", + "ExpGamingCore.Sync": "?^4.0.0", "ExpGamingCore.Gui": "^4.0.0" }, "collection": "ExpGamingAdmin@4.0.0", diff --git a/modules/ExpGamingAdmin/TempBan/softmod.json b/modules/ExpGamingAdmin/TempBan/softmod.json index 552f6088..88aee99d 100644 --- a/modules/ExpGamingAdmin/TempBan/softmod.json +++ b/modules/ExpGamingAdmin/TempBan/softmod.json @@ -15,8 +15,8 @@ "ExpGamingCore.Server": "^4.0.0", "ExpGamingCore.Role": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "FactorioStdLib.Color": "^0.8.0", - "ExpGamingCore.Sync": "^4.0.0", + "FactorioStdLib.Color": "?^0.8.0", + "ExpGamingCore.Sync": "?^4.0.0", "ExpGamingAdmin.ClearInventory": "?^4.0.0" }, "collection": "ExpGamingAdmin@4.0.0", diff --git a/modules/ExpGamingAdmin/Warnings/softmod.json b/modules/ExpGamingAdmin/Warnings/softmod.json index f1b488af..74504119 100644 --- a/modules/ExpGamingAdmin/Warnings/softmod.json +++ b/modules/ExpGamingAdmin/Warnings/softmod.json @@ -17,9 +17,9 @@ "ExpGamingCore.Server": "^4.0.0", "ExpGamingCore.Role": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "FactorioStdLib.Color": "^0.8.0", - "ExpGamingAdmin.Reports": "^4.0.0", - "ExpGamingCore.Sync": "^4.0.0" + "FactorioStdLib.Color": "?^0.8.0", + "ExpGamingAdmin.Reports": "?^4.0.0", + "ExpGamingCore.Sync": "?^4.0.0" }, "collection": "ExpGamingAdmin@4.0.0", "submodules": {} diff --git a/modules/ExpGamingBot/autoChat/softmod.json b/modules/ExpGamingBot/autoChat/softmod.json index 24970c88..7c790178 100644 --- a/modules/ExpGamingBot/autoChat/softmod.json +++ b/modules/ExpGamingBot/autoChat/softmod.json @@ -12,7 +12,7 @@ "dependencies": { "FactorioStdLib.Game": "^0.8.0", "ExpGamingCore.Server": "^4.0.0", - "ExpGamingCore.Role": "^4.0.0" + "ExpGamingCore.Role": "?^4.0.0" }, "collection": "ExpGamingBot@4.0.0", "submodules": {} diff --git a/modules/ExpGamingBot/autoMessage/softmod.json b/modules/ExpGamingBot/autoMessage/softmod.json index 07e5d3df..769ab362 100644 --- a/modules/ExpGamingBot/autoMessage/softmod.json +++ b/modules/ExpGamingBot/autoMessage/softmod.json @@ -12,8 +12,8 @@ "dependencies": { "ExpGamingCore.Server": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "ExpGamingCore.Role": "^4.0.0", - "ExpGamingCore.Sync": "^4.0.0" + "ExpGamingCore.Role": "?^4.0.0", + "ExpGamingCore.Sync": "?^4.0.0" }, "collection": "ExpGamingBot@4.0.0", "submodules": {} diff --git a/modules/ExpGamingCommands/kill/softmod.json b/modules/ExpGamingCommands/kill/softmod.json index d823a048..989c03ee 100644 --- a/modules/ExpGamingCommands/kill/softmod.json +++ b/modules/ExpGamingCommands/kill/softmod.json @@ -14,7 +14,7 @@ "dependencies": { "ExpGamingCore.Command": "^4.0.0", "ExpGamingCore.Role": "^4.0.0", - "FactorioStdLib.Game": "^4.0.0" + "FactorioStdLib.Game": "^0.8.0" }, "collection": "ExpGamingCommands@4.0.0", "submodules": {} diff --git a/modules/ExpGamingCommands/repair/softmod.json b/modules/ExpGamingCommands/repair/softmod.json index 01391716..db6cbfab 100644 --- a/modules/ExpGamingCommands/repair/softmod.json +++ b/modules/ExpGamingCommands/repair/softmod.json @@ -15,7 +15,7 @@ "ExpGamingLib": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", "ExpGamingCore.Role": "^4.0.0", - "ExpGamingAdmin.TempBan": "^4.0.0" + "ExpGamingAdmin.TempBan": "?^4.0.0" }, "collection": "ExpGamingCommands@4.0.0", "submodules": {} diff --git a/modules/ExpGamingCommands/tags/softmod.json b/modules/ExpGamingCommands/tags/softmod.json index 365b3f82..ae4843ee 100644 --- a/modules/ExpGamingCommands/tags/softmod.json +++ b/modules/ExpGamingCommands/tags/softmod.json @@ -11,7 +11,7 @@ ], "dependencies": { "ExpGamingLib": "^4.0.0", - "ExpGamingCore.Role": "^4.0.0", + "ExpGamingCore.Role": "?^4.0.0", "ExpGamingCore.Command": "^4.0.0", "FactorioStdLib.Game": "^0.8.0" }, diff --git a/modules/ExpGamingCore/Group/softmod.json b/modules/ExpGamingCore/Group/softmod.json index d1502e8a..f69d8304 100644 --- a/modules/ExpGamingCore/Group/softmod.json +++ b/modules/ExpGamingCore/Group/softmod.json @@ -13,7 +13,7 @@ ], "dependencies": { "FactorioStdLib": "^0.8.0", - "ExpGamingCore.Server": "^4.0.0", + "ExpGamingCore.Server": "?^4.0.0", "ExpGamingLib": "^4.0.0", "FactorioStdLib.Game": "^0.8.0" }, diff --git a/modules/ExpGamingCore/Gui/popup/control.lua b/modules/ExpGamingCore/Gui/popup/control.lua index 626f1172..9f74c92b 100644 --- a/modules/ExpGamingCore/Gui/popup/control.lua +++ b/modules/ExpGamingCore/Gui/popup/control.lua @@ -101,14 +101,14 @@ function popup.open(style,data,players) end end +function popup._prototype:add_left(obj) + if not Gui.left then return end + obj.name = obj.name or self.name + self.left = Gui.left(obj) +end + function popup:on_init() if loaded_modules['ExpGamingCore.Server'] then Server = require('ExpGamingCore.Server') end - if loaded_modules['ExpGamingCore.Gui.left'] then - function popup._prototype:add_left(obj) - obj.name = obj.name or self.name - self.left = Gui.left(obj) - end - end end function popup:on_post() diff --git a/modules/ExpGamingCore/Role/softmod.json b/modules/ExpGamingCore/Role/softmod.json index 6214e160..3af9da54 100644 --- a/modules/ExpGamingCore/Role/softmod.json +++ b/modules/ExpGamingCore/Role/softmod.json @@ -15,9 +15,9 @@ "FactorioStdLib.Table": "^0.8.0", "FactorioStdLib.Game": "^0.8.0", "ExpGamingCore.Group": "^4.0.0", - "ExpGamingCore.Server": "^4.0.0", - "ExpGamingCore.Command": "^4.0.0", - "ExpGamingCore.Sync": "^4.0.0" + "ExpGamingCore.Server": "?^4.0.0", + "ExpGamingCore.Command": "?^4.0.0", + "ExpGamingCore.Sync": "?^4.0.0" }, "collection": "ExpGamingCore@4.0.0", "submodules": {} diff --git a/modules/ExpGamingCore/Sync/softmod.json b/modules/ExpGamingCore/Sync/softmod.json index bd1d36a7..c86e56dd 100644 --- a/modules/ExpGamingCore/Sync/softmod.json +++ b/modules/ExpGamingCore/Sync/softmod.json @@ -19,8 +19,8 @@ "FactorioStdLib.Game": "^0.8.0", "FactorioStdLib.Table": "^0.8.0", "ExpGamingCore.Role": "?^4.0.0", - "ExpGamingCore.Gui": "^4.0.0", - "ExpGamingCore.Server": "^4.0.0" + "ExpGamingCore.Gui": "?^4.0.0", + "ExpGamingCore.Server": "?^4.0.0" }, "collection": "ExpGamingCore@4.0.0", "submodules": {} diff --git a/modules/ExpGamingInfo/Readme/softmod.json b/modules/ExpGamingInfo/Readme/softmod.json index 649c3a8b..d824408e 100644 --- a/modules/ExpGamingInfo/Readme/softmod.json +++ b/modules/ExpGamingInfo/Readme/softmod.json @@ -16,7 +16,7 @@ "dependencies": { "ExpGamingCore.Gui": "^4.0.0", "FactorioStdLib.Game": "^0.8.0", - "ExpGamingCore.Sync": "^4.0.0" + "ExpGamingCore.Sync": "?^4.0.0" }, "submodules": {}, "collection": "ExpGamingInfo@4.0.0" diff --git a/modules/ExpGamingPlayer/afkKick/softmod.json b/modules/ExpGamingPlayer/afkKick/softmod.json index 9b476f17..bace003d 100644 --- a/modules/ExpGamingPlayer/afkKick/softmod.json +++ b/modules/ExpGamingPlayer/afkKick/softmod.json @@ -13,9 +13,9 @@ "dependencies": { "FactorioStdLib.Game": "^0.8.0", "ExpGamingCore.Gui": "^4.0.0", - "ExpGamingCore.Role": "^4.0.0", - "ExpGamingCore.Sync": "^4.0.0", - "ExpGamingCore.Server": "^4.0.0" + "ExpGamingCore.Role": "?^4.0.0", + "ExpGamingCore.Sync": "?^4.0.0", + "ExpGamingCore.Server": "?^4.0.0" }, "collection": "ExpGamingPlayer@4.0.0", "submodules": {} diff --git a/modules/ExpGamingPlayer/inventorySearch/softmod.json b/modules/ExpGamingPlayer/inventorySearch/softmod.json index 29070dfe..cbf8e3cd 100644 --- a/modules/ExpGamingPlayer/inventorySearch/softmod.json +++ b/modules/ExpGamingPlayer/inventorySearch/softmod.json @@ -13,7 +13,7 @@ "ExpGamingLib": "^4.0.0", "ExpGamingAdmin.TempBan": "^4.0.0", "ExpGamingAdmin.Warnings": "^4.0.0", - "ExpGamingCore.Role": "^4.0.0", + "ExpGamingCore.Role": "?^4.0.0", "FactorioStdLib.Game": "^0.8.0", "ExpGamingAdmin.AdminLib": "^4.0.0" }, diff --git a/modules/ExpGamingPlayer/playerInfo/softmod.json b/modules/ExpGamingPlayer/playerInfo/softmod.json index 8581aa7a..2fda8414 100644 --- a/modules/ExpGamingPlayer/playerInfo/softmod.json +++ b/modules/ExpGamingPlayer/playerInfo/softmod.json @@ -13,8 +13,8 @@ "dependencies": { "FactorioStdLib.Game": "^0.8.0", "ExpGamingCore.Gui": "^4.0.0", - "ExpGamingCore.Role": "^4.0.0", - "ExpGamingCore.Group": "^4.0.0" + "ExpGamingCore.Role": "?^4.0.0", + "ExpGamingCore.Group": "?^4.0.0" }, "collection": "ExpGamingPlayer@4.0.0", "submodules": {} diff --git a/modules/ExpGamingPlayer/playerList/softmod.json b/modules/ExpGamingPlayer/playerList/softmod.json index e28eec08..c8c8f619 100644 --- a/modules/ExpGamingPlayer/playerList/softmod.json +++ b/modules/ExpGamingPlayer/playerList/softmod.json @@ -12,12 +12,12 @@ "dependencies": { "FactorioStdLib.Game": "^0.8.0", "ExpGamingCore.Gui": "^4.0.0", - "ExpGamingCore.Role": "^4.0.0", - "ExpGamingAdmin.AdminLib": "^4.0.0", + "ExpGamingCore.Role": "?^4.0.0", + "ExpGamingAdmin.AdminLib": "?^4.0.0", "ExpGamingAdmin.buttonFlow": "?^4.0.0", "ExpGamingAdmin.reports": "?^4.0.0", "ExpGamingPlayer.playerInfo": "?^4.0.0", - "ExpGamingAdmin.Gui": "^4.0.0" + "ExpGamingAdmin.Gui": "?^4.0.0" }, "collection": "ExpGamingPlayer@4.0.0", "submodules": {} diff --git a/modules/ExpGamingPlayer/polls/softmod.json b/modules/ExpGamingPlayer/polls/softmod.json index 1a7d857c..d5c416b6 100644 --- a/modules/ExpGamingPlayer/polls/softmod.json +++ b/modules/ExpGamingPlayer/polls/softmod.json @@ -12,7 +12,7 @@ "dependencies": { "ExpGamingCore.Gui": "^4.0.0", "ExpGamingCore.Server": "^4.0.0", - "ExpGamingCore.Role": "^4.0.0" + "ExpGamingCore.Role": "?^4.0.0" }, "collection": "ExpGamingPlayer@4.0.0", "submodules": {} diff --git a/modules/WarpPoints/softmod.json b/modules/WarpPoints/softmod.json index 79002a41..82df5531 100644 --- a/modules/WarpPoints/softmod.json +++ b/modules/WarpPoints/softmod.json @@ -14,8 +14,8 @@ "license": "https://github.com/explosivegaming/scenario/blob/master/LICENSE", "dependencies": { "FactorioStdLib.Game": "^0.8.0", - "ExpGamingCore.Role": "^4.0.0", - "ExpGamingCore.Command": "^4.0.0", + "ExpGamingCore.Role": "?^4.0.0", + "ExpGamingCore.Command": "?^4.0.0", "ExpGamingCore.Gui": "^4.0.0" }, "submodules": {} diff --git a/modules/index.lua b/modules/index.lua index b51a0315..363789ca 100644 --- a/modules/index.lua +++ b/modules/index.lua @@ -1,80 +1,68 @@ -- not_luadoc=true --- Used to index the files to be loaded return { - ['FactorioStdLib.String']='./modules/FactorioStdLib/String', - ['FactorioStdLib.String']='./modules/FactorioStdLib/String', - ['FactorioStdLib.Table']='./modules/FactorioStdLib/Table', - ['FactorioStdLib.Table']='./modules/FactorioStdLib/Table', - ['FactorioStdLib.Game']='./modules/FactorioStdLib/Game', - ['DeathMarkers']='./modules/DeathMarkers', - ['FactorioStdLib.Color']='./modules/FactorioStdLib/Color', - ['FactorioStdLib.Color']='./modules/FactorioStdLib/Color', - ['PlayerAutoColor']='./modules/PlayerAutoColor', - ['DamagePopup']='./modules/DamagePopup', - ['FactorioStdLib.Game']='./modules/FactorioStdLib/Game', - ['WornPaths']='./modules/WornPaths', - ['SpawnArea']='./modules/SpawnArea', - ['FactorioStdLib']='./modules/FactorioStdLib', - ['FactorioStdLib']='./modules/FactorioStdLib', - ['ExpGamingLib']='./modules/ExpGamingLib', - ['ExpGamingLib']='./modules/ExpGamingLib', - ['ExpGamingCore.Command']='./modules/ExpGamingCore/Command', - ['ExpGamingCore.Server']='./modules/ExpGamingCore/Server', - ['ExpGamingCore.Command']='./modules/ExpGamingCore/Command', - ['ExpGamingCommands.home']='./modules/ExpGamingCommands/home', - ['ExpGamingCommands.cheatMode']='./modules/ExpGamingCommands/cheatMode', - ['ExpGamingCore.Server']='./modules/ExpGamingCore/Server', - ['ExpGamingCore.Group']='./modules/ExpGamingCore/Group', - ['ExpGamingCore.Group']='./modules/ExpGamingCore/Group', - ['ExpGamingCore.Role']='./modules/ExpGamingCore/Role', - ['ExpGamingCore.Role']='./modules/ExpGamingCore/Role', - ['ExpGamingCommands.tags']='./modules/ExpGamingCommands/tags', - ['ExpGamingCommands.kill']='./modules/ExpGamingCommands/kill', - ['ExpGamingCommands.bonus']='./modules/ExpGamingCommands/bonus', - ['ExpGamingBot.autoChat']='./modules/ExpGamingBot/autoChat', - ['ExpGamingCore.Gui']='./modules/ExpGamingCore/Gui', - ['ExpGamingCore.Gui']='./modules/ExpGamingCore/Gui', - ['WarpPoints']='./modules/WarpPoints', - ['GuiAnnouncements']='./modules/GuiAnnouncements', - ['GameSettingsGui']='./modules/GameSettingsGui', - ['ExpGamingInfo.Tasklist']='./modules/ExpGamingInfo/Tasklist', - ['ExpGamingCore.Sync']='./modules/ExpGamingCore/Sync', - ['ExpGamingPlayer.polls']='./modules/ExpGamingPlayer/polls', - ['ExpGamingPlayer.playerInfo']='./modules/ExpGamingPlayer/playerInfo', - ['ExpGamingPlayer.afkKick']='./modules/ExpGamingPlayer/afkKick', - ['ExpGamingCore.Sync']='./modules/ExpGamingCore/Sync', - ['ExpGamingInfo.Science']='./modules/ExpGamingInfo/Science', - ['ExpGamingInfo.Rockets']='./modules/ExpGamingInfo/Rockets', - ['ExpGamingInfo.Readme']='./modules/ExpGamingInfo/Readme', - ['ExpGamingInfo']='./modules/ExpGamingInfo', - ['ExpGamingCore']='./modules/ExpGamingCore', - ['ExpGamingBot.discordAlerts']='./modules/ExpGamingBot/discordAlerts', - ['ExpGamingBot.autoMessage']='./modules/ExpGamingBot/autoMessage', - ['ExpGamingBot']='./modules/ExpGamingBot', - ['ExpGamingAdmin.AdminLib']='./modules/ExpGamingAdmin/AdminLib', - ['ExpGamingAdmin.AdminLib']='./modules/ExpGamingAdmin/AdminLib', - ['ExpGamingAdmin.TempBan']='./modules/ExpGamingAdmin/TempBan', - ['ExpGamingAdmin.ClearInventory']='./modules/ExpGamingAdmin/ClearInventory', - ['ExpGamingAdmin.TempBan']='./modules/ExpGamingAdmin/TempBan', - ['ExpGamingCommands.repair']='./modules/ExpGamingCommands/repair', - ['ExpGamingPlayer.playerList']='./modules/ExpGamingPlayer/playerList', - ['ExpGamingAdmin.Reports']='./modules/ExpGamingAdmin/Reports', - ['ExpGamingAdmin.Warnings']='./modules/ExpGamingAdmin/Warnings', - ['ExpGamingAdmin.Warnings']='./modules/ExpGamingAdmin/Warnings', - ['ExpGamingPlayer.inventorySearch']='./modules/ExpGamingPlayer/inventorySearch', - ['ExpGamingPlayer']='./modules/ExpGamingPlayer', - ['ExpGamingAdmin.Gui']='./modules/ExpGamingAdmin/Gui', - ['ExpGamingAdmin.Gui']='./modules/ExpGamingAdmin/Gui', - ['ExpGamingAdmin.Teleport']='./modules/ExpGamingAdmin/Teleport', - ['ExpGamingAdmin.Teleport']='./modules/ExpGamingAdmin/Teleport', - ['ExpGamingCommands.teleport']='./modules/ExpGamingCommands/teleport', - ['ExpGamingCommands']='./modules/ExpGamingCommands', - ['ExpGamingAdmin.Kick']='./modules/ExpGamingAdmin/Kick', - ['ExpGamingAdmin.Jail']='./modules/ExpGamingAdmin/Jail', - ['ExpGamingAdmin.Commands']='./modules/ExpGamingAdmin/Commands', - ['ExpGamingAdmin.Ban']='./modules/ExpGamingAdmin/Ban', - ['ExpGamingAdmin']='./modules/ExpGamingAdmin', - ['DeconControl']='./modules/DeconControl', - ['ChatPopup']='./modules/ChatPopup', - ['AdvancedStartingItems']='./modules/AdvancedStartingItems', + ['AdvancedStartingItems']={'./modules/AdvancedStartingItems',}, + ['ChatPopup']={'./modules/ChatPopup','FactorioStdLib.Game','FactorioStdLib.Color'}, + ['DamagePopup']={'./modules/DamagePopup','FactorioStdLib.Color'}, + ['DeathMarkers']={'./modules/DeathMarkers',}, + ['DeconControl']={'./modules/DeconControl','ExpGamingCore.Server','FactorioStdLib.Game','ExpGamingLib'}, + ['ExpGamingAdmin']={'./modules/ExpGamingAdmin',}, + ['ExpGamingBot']={'./modules/ExpGamingBot',}, + ['ExpGamingCommands']={'./modules/ExpGamingCommands',}, + ['ExpGamingCore']={'./modules/ExpGamingCore',}, + ['ExpGamingInfo']={'./modules/ExpGamingInfo',}, + ['ExpGamingLib']={'./modules/ExpGamingLib','FactorioStdLib.Game','FactorioStdLib.Color','FactorioStdLib.Table'}, + ['ExpGamingPlayer']={'./modules/ExpGamingPlayer',}, + ['FactorioStdLib']={'./modules/FactorioStdLib',}, + ['GameSettingsGui']={'./modules/GameSettingsGui','ExpGamingCore.Server','ExpGamingCore.Gui'}, + ['GuiAnnouncements']={'./modules/GuiAnnouncements','FactorioStdLib.Game','ExpGamingCore.Role','ExpGamingCore.Gui'}, + ['PlayerAutoColor']={'./modules/PlayerAutoColor','FactorioStdLib.Color'}, + ['SpawnArea']={'./modules/SpawnArea','FactorioStdLib.Game'}, + ['WarpPoints']={'./modules/WarpPoints','FactorioStdLib.Game','ExpGamingCore.Gui'}, + ['WornPaths']={'./modules/WornPaths','FactorioStdLib.Game'}, + ['ExpGamingAdmin.ClearInventory']={'./modules/ExpGamingAdmin/ClearInventory','ExpGamingAdmin.AdminLib','FactorioStdLib.Game'}, + ['ExpGamingAdmin.Jail']={'./modules/ExpGamingAdmin/Jail','ExpGamingAdmin.AdminLib','ExpGamingAdmin.Gui','ExpGamingCore.Server','ExpGamingCore.Role','FactorioStdLib.Game'}, + ['ExpGamingAdmin.AdminLib']={'./modules/ExpGamingAdmin/AdminLib','FactorioStdLib','FactorioStdLib.Game'}, + ['ExpGamingAdmin.Gui']={'./modules/ExpGamingAdmin/Gui','ExpGamingAdmin.AdminLib','ExpGamingCore.Gui','ExpGamingCore.Role','FactorioStdLib.Game','mod-gui'}, + ['ExpGamingAdmin.Ban']={'./modules/ExpGamingAdmin/Ban','ExpGamingAdmin.AdminLib','ExpGamingAdmin.Gui','ExpGamingCore.Server','FactorioStdLib.Game'}, + ['ExpGamingAdmin.Teleport']={'./modules/ExpGamingAdmin/Teleport','ExpGamingAdmin.AdminLib','ExpGamingAdmin.Gui','FactorioStdLib.Game'}, + ['ExpGamingAdmin.Warnings']={'./modules/ExpGamingAdmin/Warnings','ExpGamingAdmin.AdminLib','ExpGamingCore.Server','ExpGamingCore.Role','FactorioStdLib.Game'}, + ['ExpGamingAdmin.Kick']={'./modules/ExpGamingAdmin/Kick','ExpGamingAdmin.AdminLib','ExpGamingAdmin.Gui','ExpGamingCore.Server','FactorioStdLib.Game'}, + ['ExpGamingAdmin.Commands']={'./modules/ExpGamingAdmin/Commands','ExpGamingLib','ExpGamingCore.Command','ExpGamingAdmin.AdminLib'}, + ['ExpGamingAdmin.TempBan']={'./modules/ExpGamingAdmin/TempBan','ExpGamingAdmin.AdminLib','ExpGamingCore.Server','ExpGamingCore.Role','FactorioStdLib.Game'}, + ['ExpGamingAdmin.Reports']={'./modules/ExpGamingAdmin/Reports','ExpGamingAdmin.AdminLib','ExpGamingCore.Server','ExpGamingCore.Role','FactorioStdLib.Game','ExpGamingCore.Gui'}, + ['ExpGamingBot.autoChat']={'./modules/ExpGamingBot/autoChat','FactorioStdLib.Game','ExpGamingCore.Server'}, + ['ExpGamingBot.autoMessage']={'./modules/ExpGamingBot/autoMessage','ExpGamingCore.Server','FactorioStdLib.Game'}, + ['ExpGamingBot.discordAlerts']={'./modules/ExpGamingBot/discordAlerts','ExpGamingCore.Sync','FactorioStdLib.Color','FactorioStdLib.Game'}, + ['ExpGamingCommands.cheatMode']={'./modules/ExpGamingCommands/cheatMode','ExpGamingCore.Command'}, + ['ExpGamingCommands.home']={'./modules/ExpGamingCommands/home','FactorioStdLib.Game','ExpGamingCore.Command'}, + ['ExpGamingCommands.teleport']={'./modules/ExpGamingCommands/teleport','ExpGamingCore.Command','ExpGamingAdmin.Teleport','ExpGamingAdmin.AdminLib'}, + ['ExpGamingCore.Server']={'./modules/ExpGamingCore/Server','ExpGamingLib','FactorioStdLib.Table','FactorioStdLib.Color','FactorioStdLib.String','FactorioStdLib.Game'}, + ['ExpGamingCommands.bonus']={'./modules/ExpGamingCommands/bonus','FactorioStdLib.Game','ExpGamingLib','ExpGamingCore.Command','ExpGamingCore.Role'}, + ['ExpGamingCommands.repair']={'./modules/ExpGamingCommands/repair','ExpGamingLib','FactorioStdLib.Game','ExpGamingCore.Role'}, + ['ExpGamingCommands.kill']={'./modules/ExpGamingCommands/kill','ExpGamingCore.Command','ExpGamingCore.Role','FactorioStdLib.Game'}, + ['ExpGamingCommands.tags']={'./modules/ExpGamingCommands/tags','ExpGamingLib','ExpGamingCore.Command','FactorioStdLib.Game'}, + ['ExpGamingCore.Gui']={'./modules/ExpGamingCore/Gui','ExpGamingLib','FactorioStdLib.Table','FactorioStdLib.Color','FactorioStdLib.Game'}, + ['ExpGamingCore.Role']={'./modules/ExpGamingCore/Role','ExpGamingLib','FactorioStdLib.Table','FactorioStdLib.Game','ExpGamingCore.Group'}, + ['ExpGamingCore.Group']={'./modules/ExpGamingCore/Group','FactorioStdLib','ExpGamingLib','FactorioStdLib.Game'}, + ['ExpGamingCore.Sync']={'./modules/ExpGamingCore/Sync','ExpGamingLib','FactorioStdLib.Color','FactorioStdLib.Game','FactorioStdLib.Table'}, + ['ExpGamingPlayer.inventorySearch']={'./modules/ExpGamingPlayer/inventorySearch','ExpGamingLib','ExpGamingAdmin.TempBan','ExpGamingAdmin.Warnings','FactorioStdLib.Game','ExpGamingAdmin.AdminLib'}, + ['ExpGamingCore.Command']={'./modules/ExpGamingCore/Command','ExpGamingLib','FactorioStdLib.Table','FactorioStdLib.Color','FactorioStdLib.Game'}, + ['ExpGamingInfo.Readme']={'./modules/ExpGamingInfo/Readme','ExpGamingCore.Gui','FactorioStdLib.Game'}, + ['ExpGamingInfo.Rockets']={'./modules/ExpGamingInfo/Rockets','ExpGamingCore.Gui','FactorioStdLib.Game'}, + ['ExpGamingPlayer.afkKick']={'./modules/ExpGamingPlayer/afkKick','FactorioStdLib.Game','ExpGamingCore.Gui'}, + ['ExpGamingInfo.Science']={'./modules/ExpGamingInfo/Science','ExpGamingCore.Gui','FactorioStdLib.Game'}, + ['ExpGamingPlayer.playerList']={'./modules/ExpGamingPlayer/playerList','FactorioStdLib.Game','ExpGamingCore.Gui'}, + ['ExpGamingInfo.Tasklist']={'./modules/ExpGamingInfo/Tasklist','ExpGamingCore.Gui','ExpGamingCore.Role','FactorioStdLib.Game'}, + ['FactorioStdLib.String']={'./modules/FactorioStdLib/String',}, + ['FactorioStdLib.Game']={'./modules/FactorioStdLib/Game',}, + ['ExpGamingPlayer.polls']={'./modules/ExpGamingPlayer/polls','ExpGamingCore.Gui','ExpGamingCore.Server'}, + ['ExpGamingPlayer.playerInfo']={'./modules/ExpGamingPlayer/playerInfo','FactorioStdLib.Game','ExpGamingCore.Gui'}, + ['FactorioStdLib.Table']={'./modules/FactorioStdLib/Table',}, + ['FactorioStdLib.Color']={'./modules/FactorioStdLib/Color',}, + ['ExpGamingCore.Gui.center']={'./modules/ExpGamingCore/Gui/center','mod-gui','FactorioStdLib.Game','FactorioStdLib.Color','ExpGamingCore.Gui','ExpGamingCore.Gui.inputs'}, + ['ExpGamingCore.Gui.popup']={'./modules/ExpGamingCore/Gui/popup','mod-gui','FactorioStdLib.Game','ExpGamingCore.Gui','ExpGamingCore.Gui.inputs'}, + ['ExpGamingCore.Gui.inputs']={'./modules/ExpGamingCore/Gui/inputs','mod-gui','FactorioStdLib.Color','FactorioStdLib.Game','ExpGamingCore.Gui'}, + ['ExpGamingCore.Gui.left']={'./modules/ExpGamingCore/Gui/left','mod-gui','FactorioStdLib.Game','ExpGamingCore.Server','FactorioStdLib.Color','ExpGamingCore.Gui','ExpGamingCore.Gui.inputs'}, + ['ExpGamingCore.Gui.toolbar']={'./modules/ExpGamingCore/Gui/toolbar','mod-gui','FactorioStdLib.Game','ExpGamingCore.Gui','ExpGamingCore.Gui.inputs'}, } \ No newline at end of file diff --git a/softmod.json b/softmod.json deleted file mode 100644 index 3790c5d1..00000000 --- a/softmod.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "ExpGamingScenario", - "version": "0.16.51", - "type": "Scenario", - "description": "Explosive gaming's factorio secenario ran on every public server", - "modules": { - "ExpGamingCore": "^4.0.0", - "ExpGamingLib": "^4.0.0", - "FactorioStdLib.Color": "^0.8.0", - "FactorioStdLib.Game": "^0.8.0", - "FactorioStdLib.String": "^0.8.0", - "FactorioStdLib.Table": "^0.8.0", - "FactorioStdLib": "^0.8.0", - "ExpGamingCommands": "^4.0.0", - "ExpGamingPlayer": "^4.0.0", - "ExpGamingAdmin": "^4.0.0", - "ExpGamingBot": "^4.0.0", - "AdvancedStartingItems": "^4.0.0", - "ChatPopup": "^4.0.0", - "DamagePopup": "^4.0.0", - "DeathMarkers": "^4.0.0", - "DeconControl": "^4.0.0", - "ExpGamingInfo": "^4.0.0", - "GameSettingsGui": "^4.0.0", - "GuiAnnouncements": "^4.0.0", - "HealthIndicator": "^1.0.1", - "PlayerAutoColor": "^4.0.0", - "SpawnArea": "^4.0.0", - "WarpPoints": "^4.0.0", - "WornPaths": "^4.0.0" - } -} \ No newline at end of file