From a652678568dd4822f5c419354876671fd84da487 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 10 Feb 2025 02:44:23 +0900 Subject: [PATCH] Allow "see" button without vlayer/edit perm (#376) * Update vlayer.lua * Update vlayer.lua --- exp_legacy/module/modules/gui/vlayer.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 559d2fd7..21d34c1f 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -443,6 +443,7 @@ local vlayer_gui_control_remove = Gui.element("vlayer_gui_control_remove") -- @element vlayer_control_set local vlayer_control_set = Gui.element("vlayer_control_set") :draw(function(_, parent, name) + local player = Gui.get_player(parent) local vlayer_set = parent.add{ type = "flow", direction = "vertical", name = name } local disp = Gui.elements.scroll_table(vlayer_set, 400, 2, "disp") @@ -450,8 +451,11 @@ local vlayer_control_set = Gui.element("vlayer_control_set") vlayer_gui_control_list(disp) vlayer_gui_control_refresh(disp) vlayer_gui_control_see(disp) - vlayer_gui_control_build(disp) - vlayer_gui_control_remove(disp) + local b = vlayer_gui_control_build(disp) + local r = vlayer_gui_control_remove(disp) + local v = Roles.player_allowed(player, "gui/vlayer-edit") + b.visible = v + r.visible = v return vlayer_set end) @@ -460,12 +464,10 @@ local vlayer_control_set = Gui.element("vlayer_control_set") -- @element vlayer_container vlayer_container = Gui.element("vlayer_container") :draw(function(definition, parent) - local player = Gui.get_player(parent) local container = Gui.elements.container(parent, 400) vlayer_display_set(container, "vlayer_st_1") - local control_set = vlayer_control_set(container, "vlayer_st_2") - control_set.visible = Roles.player_allowed(player, "gui/vlayer-edit") + vlayer_control_set(container, "vlayer_st_2") return container.parent end) @@ -487,8 +489,10 @@ local function role_update_event(event) local player = game.players[event.player_index] local visible = Roles.player_allowed(player, "gui/vlayer-edit") local container = Gui.get_left_element(vlayer_container, player) - container.frame["vlayer_st_2"].visible = visible -end + local disp = container.frame["vlayer_st_2"].disp.table + disp[vlayer_gui_control_build.name].visible = visible + disp[vlayer_gui_control_remove.name].visible = visible +end Event.add(Roles.events.on_role_assigned, role_update_event) Event.add(Roles.events.on_role_unassigned, role_update_event)