From 554d374b5b002a26f78fbdcbd92689c4a86548c4 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Sat, 12 Jan 2019 18:02:42 +0000 Subject: [PATCH 1/2] Fixed Thread Creation --- modules/ExpGamingCore/Server/control.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/ExpGamingCore/Server/control.lua b/modules/ExpGamingCore/Server/control.lua index 82f0ec68..7e5cccc6 100644 --- a/modules/ExpGamingCore/Server/control.lua +++ b/modules/ExpGamingCore/Server/control.lua @@ -81,7 +81,7 @@ Server.threads = setmetatable({},{ -- @usage Server.new_thread{name='foo',data={}} -- @tparam table obj the attributes to give to the thread -- @treturn Server._thread the new thread created -function Server.new_thread(obj) return Server._thread:create(obj) end +function Server.new_thread(obj) return Server._thread.create(obj) end --- Used to get a thread via uuid or name (if one is assigned) -- @usage Server.get_thread('decon') -- return thread @@ -281,7 +281,11 @@ function Server._thread.create(obj) obj._env._ENV = nil -- prevents infinite recursion -- removes any modules from the _env to save space in global (less time to serialize) obj._env._modules = {} - for name,value in pairs(obj._env) do if is_type(value,'table') and value._moduleName and loaded_modules[value._moduleName] == value then obj._env._modules[name] = value._moduleName obj._env[name] = nil end end + for name,value in pairs(obj._env) do + if is_type(value,'table') and value._moduleName and loaded_modules[value._moduleName] == value then + obj._env._modules[name] = value._moduleName obj._env[name] = nil + end + end setmetatable(obj._env,_env_metatable) local name = obj.name or 'Anon' verbose('Created new thread: '..name..' ('..obj.uuid..')') From 4d853ed91355dfcc4f5700149478a93d7f9f92a6 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Sat, 12 Jan 2019 18:05:58 +0000 Subject: [PATCH 2/2] Fixed Warp Point nil --- modules/WarpPoints/control.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/WarpPoints/control.lua b/modules/WarpPoints/control.lua index 42874bd4..e648b55e 100644 --- a/modules/WarpPoints/control.lua +++ b/modules/WarpPoints/control.lua @@ -129,12 +129,14 @@ local go_to_warp = Gui.inputs{ local player = Game.get_player(event) local cooldown = global.cooldowns[event.player_index] or 0 local warp = global.warps[event.element.parent.name] + if not warp then return end if cooldown > 0 then player_return({'WarpPoints.cooldown',cooldown},nil,event) return end if player.vehicle then player.vehicle.set_driver(nil) end if player.vehicle then player.vehicle.set_passenger(nil) end if player.vehicle then return end - player.teleport(game.surfaces[warp.surface].find_non_colliding_position('player',warp.position,32,1),game.surfaces[warp.surface]) - if not Role and not player.admin or Role and not Role.allowed(player,'always-warp') then + local surface = game.surfaces[warp.surface] + player.teleport(surface.find_non_colliding_position('player',warp.position,32,1),surface) + if not Role and not player.admin or Role and not Role.allowed(player,'always-warp') then event.element.parent.parent.parent.parent.style.visible = false global.cooldowns[event.player_index] = warp_limit end