From 677d75a15eeb268359cc411fba167f94b27febfb Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Sat, 24 Apr 2021 22:00:41 +0100 Subject: [PATCH 1/6] Fixed jail not working with regular #192 --- expcore/roles.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/expcore/roles.lua b/expcore/roles.lua index edcc989e..2028cd23 100644 --- a/expcore/roles.lua +++ b/expcore/roles.lua @@ -1012,9 +1012,14 @@ local function auto_assign(event) local roles = Roles.config.players[player.name] or {} local lookup = {} - for _, role in ipairs(roles) do lookup[role] = true end + -- Create a lookup table for existing roles, and check for block auto assign + for _, role in ipairs(roles) do + if role.block_auto_assign then return end + lookup[role] = true + end local assigns, ctn = {}, 0 + -- Check roles with auto assign conditions and run the handler for role, condition in pairs(Roles.config.auto_assign) do if not lookup[role] then local success, rtn = pcall(condition, player) @@ -1027,6 +1032,7 @@ local function auto_assign(event) end end + -- Assign new roles if any were passed if ctn > 0 then Roles.assign_player(player, assigns) end end From 22f973ad845587426794f1651437afab2cefd607 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Mon, 26 Apr 2021 00:33:09 +0100 Subject: [PATCH 2/6] Fixed empty top bar flow --- expcore/gui/top_flow.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/expcore/gui/top_flow.lua b/expcore/gui/top_flow.lua index e2cb38c1..3fe60a24 100644 --- a/expcore/gui/top_flow.lua +++ b/expcore/gui/top_flow.lua @@ -91,13 +91,15 @@ Gui.toggle_top_flow(game.player, true) ]] function Gui.toggle_top_flow(player, state) - -- Get the top flow and hide button - local top_flow = Gui.get_top_flow(player) + -- Get the top flow, we need the parent as we want to toggle the outer frame + local top_flow = Gui.get_top_flow(player).parent if state == nil then state = not top_flow.visible end - -- Change the visiblty of the flow + -- Get the show button for the top flow local left_flow = Gui.get_left_flow(player) local show_button = left_flow.gui_core_buttons[show_top_flow] + + -- Change the visibility of the flow and show button show_button.visible = not state top_flow.visible = state From 6653e5904a02172362d87d90398c5bf2a985b1e7 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Thu, 29 Apr 2021 21:07:23 +0100 Subject: [PATCH 3/6] Corrected toggle element doc name --- modules/gui/player-list.lua | 2 +- modules/gui/rocket-info.lua | 2 +- modules/gui/science-info.lua | 2 +- modules/gui/task-list.lua | 2 +- modules/gui/warp-list.lua | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/gui/player-list.lua b/modules/gui/player-list.lua index 8d273a5f..06f614f6 100644 --- a/modules/gui/player-list.lua +++ b/modules/gui/player-list.lua @@ -258,7 +258,7 @@ end) :add_to_left_flow(true) --- Button on the top flow used to toggle the player list container --- @element toggle_left_element +-- @element toggle_player_list Gui.left_toolbar_button('entity/character', {'player-list.main-tooltip'}, player_list_container, function(player) return Roles.player_allowed(player, 'gui/player-list') end) diff --git a/modules/gui/rocket-info.lua b/modules/gui/rocket-info.lua index 87a6378c..a8cb673c 100644 --- a/modules/gui/rocket-info.lua +++ b/modules/gui/rocket-info.lua @@ -521,7 +521,7 @@ end) end) --- Button on the top flow used to toggle the container --- @element toggle_left_element +-- @element toggle_rocket_info Gui.left_toolbar_button('item/satellite', {'rocket-info.main-tooltip'}, rocket_list_container, function(player) return Roles.player_allowed(player, 'gui/rocket-info') end) diff --git a/modules/gui/science-info.lua b/modules/gui/science-info.lua index dad0e6c6..345ab04a 100644 --- a/modules/gui/science-info.lua +++ b/modules/gui/science-info.lua @@ -318,7 +318,7 @@ end) :add_to_left_flow() --- Button on the top flow used to toggle the task list container --- @element toggle_left_element +-- @element toggle_science_info Gui.left_toolbar_button('entity/lab', {'science-info.main-tooltip'}, science_info_container, function(player) return Roles.player_allowed(player, 'gui/science-info') end) diff --git a/modules/gui/task-list.lua b/modules/gui/task-list.lua index a83b3aa5..a87de53f 100644 --- a/modules/gui/task-list.lua +++ b/modules/gui/task-list.lua @@ -356,7 +356,7 @@ end) end) --- Button on the top flow used to toggle the task list container --- @element toggle_left_element +-- @element toggle_task_list Gui.left_toolbar_button('utility/not_enough_repair_packs_icon', {'task-list.main-tooltip'}, task_list_container, function(player) return Roles.player_allowed(player, 'gui/task-list') end) diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index 7f73bde5..69607dcb 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -687,7 +687,7 @@ end) :add_to_left_flow() --- Button on the top flow used to toggle the warp list container --- @element warp_list_toggle +-- @element toggle_warp_list Gui.left_toolbar_button(config.default_icon.type ..'/'..config.default_icon.name, {'warp-list.main-tooltip', config.standard_proximity_radius}, warp_list_container, function(player) return Roles.player_allowed(player, 'gui/warp-list') end) From 55cccdd5bef27aa5184daa6e0a2f7d8fa8be2525 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Thu, 29 Apr 2021 23:07:54 +0100 Subject: [PATCH 4/6] Fixed no error log from Datastore:update --- expcore/datastore.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/expcore/datastore.lua b/expcore/datastore.lua index 3fb93017..e5d72bb9 100644 --- a/expcore/datastore.lua +++ b/expcore/datastore.lua @@ -522,7 +522,7 @@ function Datastore:increment(key, delta) return self:set(key, value + (delta or 1)) end -local function update_error(err) error('An error ocurred in datastore update: '..trace(err), 2) end +local function update_error(err) log('An error ocurred in datastore update: '..trace(err)) end --[[-- Use a function to update the value locally, will trigger on_update then on_save, save_to_disk and auto_save is required for on_save @tparam any key The key that you want to apply the update to, must be a string unless a serializer is set @tparam function callback The function that will be used to update the value at this key @@ -539,7 +539,9 @@ function Datastore:update(key, callback) local value = self:raw_get(key) local old_value = copy(self:raw_get(key)) local success, new_value = xpcall(callback, update_error, key, value) - if success and new_value ~= nil then + if not success then + self:raw_set(key, old_value) + elseif new_value ~= nil then self:set(key, new_value) else self:raise_event('on_update', key, value, old_value) From b7d005fadc92b56b878f35806e69cb1ab1b12f2c Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Thu, 29 Apr 2021 23:53:35 +0100 Subject: [PATCH 5/6] Update expcore/datastore.lua Co-authored-by: mark9064 <30447455+mark9064@users.noreply.github.com> --- expcore/datastore.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expcore/datastore.lua b/expcore/datastore.lua index e5d72bb9..241699cd 100644 --- a/expcore/datastore.lua +++ b/expcore/datastore.lua @@ -522,7 +522,7 @@ function Datastore:increment(key, delta) return self:set(key, value + (delta or 1)) end -local function update_error(err) log('An error ocurred in datastore update: '..trace(err)) end +local function update_error(err) log('An error occurred in datastore update: '..trace(err)) end --[[-- Use a function to update the value locally, will trigger on_update then on_save, save_to_disk and auto_save is required for on_save @tparam any key The key that you want to apply the update to, must be a string unless a serializer is set @tparam function callback The function that will be used to update the value at this key From 2bd5df7eb3b2e69f2a0537e291972f93aa55d514 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Thu, 29 Apr 2021 23:53:43 +0100 Subject: [PATCH 6/6] Changed top flow comment --- expcore/gui/top_flow.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expcore/gui/top_flow.lua b/expcore/gui/top_flow.lua index 3fe60a24..39bfb99f 100644 --- a/expcore/gui/top_flow.lua +++ b/expcore/gui/top_flow.lua @@ -99,7 +99,7 @@ function Gui.toggle_top_flow(player, state) local left_flow = Gui.get_left_flow(player) local show_button = left_flow.gui_core_buttons[show_top_flow] - -- Change the visibility of the flow and show button + -- Change the visibility of the top flow and show top flow button show_button.visible = not state top_flow.visible = state