From 9f0b4cf825db016c8cffe303bdebe2c50c2f345a Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Sat, 14 Aug 2021 14:06:13 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20GUI=20showing=20item?= =?UTF-8?q?s=20when=20it=20shouldn't?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- expcore/gui/top_flow.lua | 3 ++- expcore/roles.lua | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/expcore/gui/top_flow.lua b/expcore/gui/top_flow.lua index e2cb38c1..6320dca5 100644 --- a/expcore/gui/top_flow.lua +++ b/expcore/gui/top_flow.lua @@ -73,7 +73,8 @@ function Gui.update_top_flow(player) end -- Set the visible state - local allowed = type(authenticator) == 'function' and authenticator(player) or authenticator + local allowed = authenticator + if type(allowed) == 'function' then allowed = allowed(player) end element.visible = is_visible and allowed or false end end diff --git a/expcore/roles.lua b/expcore/roles.lua index edcc989e..530f0a4f 100644 --- a/expcore/roles.lua +++ b/expcore/roles.lua @@ -114,6 +114,7 @@ local Event = require 'utils.event' --- @dep utils.event local Groups = require 'expcore.permission_groups' --- @dep expcore.permission_groups local Async = require 'expcore.async' --- @dep expcore.async local Colours = require 'utils.color_presets' --- @dep utils.color_presets +local Gui = require 'expcore.gui' --- @dep expcore.gui local write_json = _C.write_json --- @dep expcore.common local Roles = { @@ -378,6 +379,7 @@ function Roles.assign_player(player, roles, by_player_name, skip_checks, silent) end if valid_player then emit_player_roles_updated(valid_player, 'assign', roles, by_player_name, silent) + Gui.update_top_flow(valid_player) end end @@ -410,6 +412,7 @@ function Roles.unassign_player(player, roles, by_player_name, skip_checks, silen end if valid_player then emit_player_roles_updated(valid_player, 'unassign', roles, by_player_name, silent) + Gui.update_top_flow(valid_player) end end From a494391680a548dd3cae8f1c76f2a7e2e6d4074e Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Sat, 14 Aug 2021 14:33:47 +0000 Subject: [PATCH 2/2] :wrench: Made Gui not required for Roles --- expcore/gui/_require.lua | 13 +++++++++++++ expcore/roles.lua | 3 --- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/expcore/gui/_require.lua b/expcore/gui/_require.lua index 51fc0a14..78aac647 100644 --- a/expcore/gui/_require.lua +++ b/expcore/gui/_require.lua @@ -128,4 +128,17 @@ require 'expcore.gui.left_flow' require 'expcore.gui.helper_functions' require 'expcore.gui.defines' +local Roles = _C.opt_require('expcore.roles') +local Event = _C.opt_require('utils.event') + +if Roles and Event then + Event.add(Roles.events.on_role_assigned, function(e) + Gui.update_top_flow(game.get_player(e.player_index)) + end) + Event.add(Roles.events.on_role_unassigned, function(e) + Gui.update_top_flow(game.get_player(e.player_index)) + end) +end + + return Gui \ No newline at end of file diff --git a/expcore/roles.lua b/expcore/roles.lua index 530f0a4f..edcc989e 100644 --- a/expcore/roles.lua +++ b/expcore/roles.lua @@ -114,7 +114,6 @@ local Event = require 'utils.event' --- @dep utils.event local Groups = require 'expcore.permission_groups' --- @dep expcore.permission_groups local Async = require 'expcore.async' --- @dep expcore.async local Colours = require 'utils.color_presets' --- @dep utils.color_presets -local Gui = require 'expcore.gui' --- @dep expcore.gui local write_json = _C.write_json --- @dep expcore.common local Roles = { @@ -379,7 +378,6 @@ function Roles.assign_player(player, roles, by_player_name, skip_checks, silent) end if valid_player then emit_player_roles_updated(valid_player, 'assign', roles, by_player_name, silent) - Gui.update_top_flow(valid_player) end end @@ -412,7 +410,6 @@ function Roles.unassign_player(player, roles, by_player_name, skip_checks, silen end if valid_player then emit_player_roles_updated(valid_player, 'unassign', roles, by_player_name, silent) - Gui.update_top_flow(valid_player) end end