mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 03:25:23 +09:00
Updated for FSM 1.2.5
This commit is contained in:
@@ -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='<server>',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='<server>',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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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": {}
|
||||
}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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": {}
|
||||
|
||||
@@ -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'},
|
||||
}
|
||||
32
softmod.json
32
softmod.json
@@ -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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user