mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-31 04:51:40 +09:00
Updated Player List
This commit is contained in:
@@ -7,7 +7,6 @@
|
|||||||
|
|
||||||
local Gui = require 'expcore.gui' --- @dep expcore.gui
|
local Gui = require 'expcore.gui' --- @dep expcore.gui
|
||||||
local Roles = require 'expcore.roles' --- @dep expcore.roles
|
local Roles = require 'expcore.roles' --- @dep expcore.roles
|
||||||
local Store = require 'expcore.store' --- @dep expcore.store
|
|
||||||
local Game = require 'utils.game' --- @dep utils.game
|
local Game = require 'utils.game' --- @dep utils.game
|
||||||
local Reports = require 'modules.control.reports' --- @dep modules.control.reports
|
local Reports = require 'modules.control.reports' --- @dep modules.control.reports
|
||||||
local Warnings = require 'modules.control.warnings' --- @dep modules.control.warnings
|
local Warnings = require 'modules.control.warnings' --- @dep modules.control.warnings
|
||||||
@@ -15,11 +14,9 @@ local Jail = require 'modules.control.jail' --- @dep modules.control.jail
|
|||||||
local Colors = require 'utils.color_presets' --- @dep utils.color_presets
|
local Colors = require 'utils.color_presets' --- @dep utils.color_presets
|
||||||
local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common
|
local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common
|
||||||
|
|
||||||
local selected_player_store = ''
|
local SelectedPlayer, SelectedAction
|
||||||
local selected_action_store = ''
|
local function set_datastores(player, action)
|
||||||
local function set_store_uids(player,action)
|
SelectedPlayer, SelectedAction = player, action
|
||||||
selected_player_store = player
|
|
||||||
selected_action_store = action
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- auth that will only allow when on player's of lower roles
|
-- auth that will only allow when on player's of lower roles
|
||||||
@@ -33,13 +30,13 @@ end
|
|||||||
|
|
||||||
-- gets the action player and a coloured name for the action to be used on
|
-- gets the action player and a coloured name for the action to be used on
|
||||||
local function get_action_player_name(player)
|
local function get_action_player_name(player)
|
||||||
local selected_player_name = Store.get(selected_player_store,player)
|
local selected_player_name = SelectedPlayer:get(player)
|
||||||
local selected_player = Game.get_player_from_any(selected_player_name)
|
local selected_player = Game.get_player_from_any(selected_player_name)
|
||||||
local selected_player_color = format_chat_player_name(selected_player)
|
local selected_player_color = format_chat_player_name(selected_player)
|
||||||
return selected_player_name, selected_player_color
|
return selected_player_name, selected_player_color
|
||||||
end
|
end
|
||||||
|
|
||||||
-- telports one player to another
|
-- teleports one player to another
|
||||||
local function teleport(from_player,to_player)
|
local function teleport(from_player,to_player)
|
||||||
local surface = to_player.surface
|
local surface = to_player.surface
|
||||||
local position = surface.find_non_colliding_position('character',to_player.position,32,1)
|
local position = surface.find_non_colliding_position('character',to_player.position,32,1)
|
||||||
@@ -109,7 +106,7 @@ local report_player = new_button('utility/spawn_flag',{'player-list.report-playe
|
|||||||
if Reports.is_reported(selected_player_name,player.name) then
|
if Reports.is_reported(selected_player_name,player.name) then
|
||||||
player.print({'expcom-report.already-reported'},Colors.orange_red)
|
player.print({'expcom-report.already-reported'},Colors.orange_red)
|
||||||
else
|
else
|
||||||
Store.set(selected_action_store,player,'command/report')
|
SelectedAction:set(player, 'command/report')
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -125,7 +122,7 @@ end
|
|||||||
-- @element warn_player
|
-- @element warn_player
|
||||||
local warn_player = new_button('utility/spawn_flag',{'player-list.warn-player'})
|
local warn_player = new_button('utility/spawn_flag',{'player-list.warn-player'})
|
||||||
:on_click(function(player)
|
:on_click(function(player)
|
||||||
Store.set(selected_action_store,player,'command/give-warning')
|
SelectedAction:set(player, 'command/give-warning')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local function warn_player_callback(player,reason)
|
local function warn_player_callback(player,reason)
|
||||||
@@ -143,7 +140,7 @@ local jail_player = new_button('utility/multiplayer_waiting_icon',{'player-list.
|
|||||||
if Jail.is_jailed(selected_player_name) then
|
if Jail.is_jailed(selected_player_name) then
|
||||||
player.print({'expcom-jail.already-jailed', selected_player_color},Colors.orange_red)
|
player.print({'expcom-jail.already-jailed', selected_player_color},Colors.orange_red)
|
||||||
else
|
else
|
||||||
Store.set(selected_action_store,player,'command/jail')
|
SelectedAction:set(player, 'command/jail')
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -162,7 +159,7 @@ local temp_ban_player = new_button('utility/warning_white',{'player-list.temp-ba
|
|||||||
if Jail.is_jailed(selected_player_name) then
|
if Jail.is_jailed(selected_player_name) then
|
||||||
player.print({'expcom-jail.already-banned', selected_player_color},Colors.orange_red)
|
player.print({'expcom-jail.already-banned', selected_player_color},Colors.orange_red)
|
||||||
else
|
else
|
||||||
Store.set(selected_action_store,player,'command/temp-ban')
|
SelectedAction:set(player, 'command/temp-ban')
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -177,7 +174,7 @@ end
|
|||||||
-- @element kick_player
|
-- @element kick_player
|
||||||
local kick_player = new_button('utility/warning_icon',{'player-list.kick-player'})
|
local kick_player = new_button('utility/warning_icon',{'player-list.kick-player'})
|
||||||
:on_click(function(player)
|
:on_click(function(player)
|
||||||
Store.set(selected_action_store,player,'command/kick')
|
SelectedAction:set(player, 'command/kick')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local function kick_player_callback(player,reason)
|
local function kick_player_callback(player,reason)
|
||||||
@@ -189,7 +186,7 @@ end
|
|||||||
-- @element ban_player
|
-- @element ban_player
|
||||||
local ban_player = new_button('utility/danger_icon',{'player-list.ban-player'})
|
local ban_player = new_button('utility/danger_icon',{'player-list.ban-player'})
|
||||||
:on_click(function(player)
|
:on_click(function(player)
|
||||||
Store.set(selected_action_store,player,'command/ban')
|
SelectedAction:set(player, 'command/ban')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local function ban_player_callback(player,reason)
|
local function ban_player_callback(player,reason)
|
||||||
@@ -198,7 +195,7 @@ local function ban_player_callback(player,reason)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
set_store_uids = set_store_uids,
|
set_datastores = set_datastores,
|
||||||
buttons = {
|
buttons = {
|
||||||
['command/teleport'] = {
|
['command/teleport'] = {
|
||||||
auth=function(player,selected_player)
|
auth=function(player,selected_player)
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ local interface_modules = {
|
|||||||
['output']=Common.player_return,
|
['output']=Common.player_return,
|
||||||
['Group']='expcore.permission_groups',
|
['Group']='expcore.permission_groups',
|
||||||
['Roles']='expcore.roles',
|
['Roles']='expcore.roles',
|
||||||
['Store']='expcore.store',
|
|
||||||
['Gui']='expcore.gui',
|
['Gui']='expcore.gui',
|
||||||
['Async']='expcore.async',
|
['Async']='expcore.async',
|
||||||
['Datastore']='expcore.datastore'
|
['Datastore']='expcore.datastore'
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
local Gui = require 'utils.gui' --- @dep utils.gui
|
|
||||||
local Store = require 'expcore.store' --- @dep utils.global
|
|
||||||
local Color = require 'utils.color_presets' --- @dep utils.color_presets
|
|
||||||
local Model = require 'modules.gui.debug.model' --- @dep modules.gui.debug.model
|
|
||||||
|
|
||||||
local dump = Model.dump
|
|
||||||
local dump_text = Model.dump_text
|
|
||||||
local concat = table.concat
|
|
||||||
|
|
||||||
local Public = {}
|
|
||||||
|
|
||||||
local header_name = Gui.uid_name()
|
|
||||||
local left_panel_name = Gui.uid_name()
|
|
||||||
local right_panel_name = Gui.uid_name()
|
|
||||||
local input_text_box_name = Gui.uid_name()
|
|
||||||
local refresh_name = Gui.uid_name()
|
|
||||||
|
|
||||||
Public.name = 'Store'
|
|
||||||
|
|
||||||
function Public.show(container)
|
|
||||||
local main_flow = container.add {type = 'flow', direction = 'horizontal'}
|
|
||||||
|
|
||||||
local left_panel = main_flow.add {type = 'scroll-pane', name = left_panel_name}
|
|
||||||
local left_panel_style = left_panel.style
|
|
||||||
left_panel_style.width = 300
|
|
||||||
|
|
||||||
for store_id, file_path in pairs(Store.file_paths) do
|
|
||||||
local header = left_panel.add({type = 'flow'}).add {type = 'label', name = header_name, caption = store_id..' - '..file_path}
|
|
||||||
Gui.set_data(header, store_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
local right_flow = main_flow.add {type = 'flow', direction = 'vertical'}
|
|
||||||
|
|
||||||
local right_top_flow = right_flow.add {type = 'flow', direction = 'horizontal'}
|
|
||||||
|
|
||||||
local input_text_box = right_top_flow.add {type = 'text-box', name = input_text_box_name}
|
|
||||||
local input_text_box_style = input_text_box.style
|
|
||||||
input_text_box_style.horizontally_stretchable = true
|
|
||||||
input_text_box_style.height = 32
|
|
||||||
input_text_box_style.maximal_width = 1000
|
|
||||||
|
|
||||||
local refresh_button =
|
|
||||||
right_top_flow.add {type = 'sprite-button', name = refresh_name, sprite = 'utility/reset', tooltip = 'refresh'}
|
|
||||||
local refresh_button_style = refresh_button.style
|
|
||||||
refresh_button_style.width = 32
|
|
||||||
refresh_button_style.height = 32
|
|
||||||
|
|
||||||
local right_panel = right_flow.add {type = 'text-box', name = right_panel_name}
|
|
||||||
right_panel.read_only = true
|
|
||||||
right_panel.selectable = true
|
|
||||||
|
|
||||||
local right_panel_style = right_panel.style
|
|
||||||
right_panel_style.vertically_stretchable = true
|
|
||||||
right_panel_style.horizontally_stretchable = true
|
|
||||||
right_panel_style.maximal_width = 1000
|
|
||||||
right_panel_style.maximal_height = 1000
|
|
||||||
|
|
||||||
local data = {
|
|
||||||
right_panel = right_panel,
|
|
||||||
input_text_box = input_text_box,
|
|
||||||
selected_header = nil
|
|
||||||
}
|
|
||||||
|
|
||||||
Gui.set_data(input_text_box, data)
|
|
||||||
Gui.set_data(left_panel, data)
|
|
||||||
Gui.set_data(refresh_button, data)
|
|
||||||
end
|
|
||||||
|
|
||||||
Gui.on_click(
|
|
||||||
header_name,
|
|
||||||
function(event)
|
|
||||||
local element = event.element
|
|
||||||
local store_id = Gui.get_data(element)
|
|
||||||
|
|
||||||
local left_panel = element.parent.parent
|
|
||||||
local data = Gui.get_data(left_panel)
|
|
||||||
local right_panel = data.right_panel
|
|
||||||
local selected_header = data.selected_header
|
|
||||||
local input_text_box = data.input_text_box
|
|
||||||
|
|
||||||
if selected_header then
|
|
||||||
selected_header.style.font_color = Color.white
|
|
||||||
end
|
|
||||||
|
|
||||||
element.style.font_color = Color.orange
|
|
||||||
data.selected_header = element
|
|
||||||
|
|
||||||
input_text_box.text = concat {'global.data_store[', store_id, ']'}
|
|
||||||
input_text_box.style.font_color = Color.black
|
|
||||||
|
|
||||||
local content = dump(Store.get(store_id)) or 'nil'
|
|
||||||
right_panel.text = content
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
local function update_dump(text_input, data, player)
|
|
||||||
local suc, ouput = dump_text(text_input.text, player)
|
|
||||||
if not suc then
|
|
||||||
text_input.style.font_color = Color.red
|
|
||||||
else
|
|
||||||
text_input.style.font_color = Color.black
|
|
||||||
data.right_panel.text = ouput
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Gui.on_text_changed(
|
|
||||||
input_text_box_name,
|
|
||||||
function(event)
|
|
||||||
local element = event.element
|
|
||||||
local data = Gui.get_data(element)
|
|
||||||
|
|
||||||
update_dump(element, data, event.player)
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
Gui.on_click(
|
|
||||||
refresh_name,
|
|
||||||
function(event)
|
|
||||||
local element = event.element
|
|
||||||
local data = Gui.get_data(element)
|
|
||||||
|
|
||||||
local input_text_box = data.input_text_box
|
|
||||||
|
|
||||||
update_dump(input_text_box, data, event.player)
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
return Public
|
|
||||||
@@ -6,7 +6,6 @@ local Public = {}
|
|||||||
local pages = {
|
local pages = {
|
||||||
require 'modules.gui.debug.redmew_global_view',
|
require 'modules.gui.debug.redmew_global_view',
|
||||||
require 'modules.gui.debug.expcore_datastore_view',
|
require 'modules.gui.debug.expcore_datastore_view',
|
||||||
require 'modules.gui.debug.expcore_store_view',
|
|
||||||
require 'modules.gui.debug.expcore_gui_view',
|
require 'modules.gui.debug.expcore_gui_view',
|
||||||
require 'modules.gui.debug.global_view',
|
require 'modules.gui.debug.global_view',
|
||||||
require 'modules.gui.debug.package_view',
|
require 'modules.gui.debug.package_view',
|
||||||
|
|||||||
@@ -7,25 +7,21 @@
|
|||||||
-- luacheck:ignore 211/Colors
|
-- luacheck:ignore 211/Colors
|
||||||
local Gui = require 'expcore.gui' --- @dep expcore.gui
|
local Gui = require 'expcore.gui' --- @dep expcore.gui
|
||||||
local Roles = require 'expcore.roles' --- @dep expcore.roles
|
local Roles = require 'expcore.roles' --- @dep expcore.roles
|
||||||
local Store = require 'expcore.store' --- @dep expcore.store
|
local Datastore = require 'expcore.datastore' --- @dep expcore.datastore
|
||||||
local Game = require 'utils.game' --- @dep utils.game
|
local Game = require 'utils.game' --- @dep utils.game
|
||||||
local Event = require 'utils.event' --- @dep utils.event
|
local Event = require 'utils.event' --- @dep utils.event
|
||||||
local config = require 'config.gui.player_list_actions' --- @dep config.gui.player_list_actions
|
local config = require 'config.gui.player_list_actions' --- @dep config.gui.player_list_actions
|
||||||
local Colors = require 'utils.color_presets' --- @dep utils.color_presets
|
local Colors = require 'utils.color_presets' --- @dep utils.color_presets
|
||||||
local format_time = _C.format_time --- @dep expcore.common
|
local format_time = _C.format_time --- @dep expcore.common
|
||||||
|
|
||||||
-- Stores the name of the player a player has selected
|
--- Stores all data for the warp gui
|
||||||
local selected_player_store = Store.register(function(player)
|
local PlayerListData = Datastore.connect('PlayerListData')
|
||||||
return player.name
|
PlayerListData:set_serializer(Datastore.name_serializer)
|
||||||
end)
|
local SelectedPlayer = PlayerListData:combine('SelectedPlayer')
|
||||||
|
local SelectedAction = PlayerListData:combine('SelectedAction')
|
||||||
-- Stores the current action that a player wants to do
|
|
||||||
local selected_action_store = Store.register(function(player)
|
|
||||||
return player.name
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- Set the config to use these stores
|
-- Set the config to use these stores
|
||||||
config.set_store_uids(selected_player_store, selected_action_store)
|
config.set_datastores(SelectedPlayer, SelectedAction)
|
||||||
|
|
||||||
--- Button used to open the action bar
|
--- Button used to open the action bar
|
||||||
-- @element open_action_bar
|
-- @element open_action_bar
|
||||||
@@ -43,11 +39,11 @@ Gui.element{
|
|||||||
}
|
}
|
||||||
:on_click(function(player, element, _)
|
:on_click(function(player, element, _)
|
||||||
local selected_player_name = element.parent.name
|
local selected_player_name = element.parent.name
|
||||||
local old_selected_player_name = Store.get(selected_player_store, player)
|
local old_selected_player_name = SelectedPlayer:get(player)
|
||||||
if selected_player_name == old_selected_player_name then
|
if selected_player_name == old_selected_player_name then
|
||||||
Store.clear(selected_player_store, player)
|
SelectedPlayer:remove(player)
|
||||||
else
|
else
|
||||||
Store.set(selected_player_store, player, selected_player_name)
|
SelectedPlayer:set(player, selected_player_name)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -62,8 +58,8 @@ Gui.element{
|
|||||||
}
|
}
|
||||||
:style(Gui.sprite_style(30, -1, { top_margin = -1, right_margin = -1 }))
|
:style(Gui.sprite_style(30, -1, { top_margin = -1, right_margin = -1 }))
|
||||||
:on_click(function(player, _)
|
:on_click(function(player, _)
|
||||||
Store.clear(selected_player_store, player)
|
SelectedPlayer:remove(player)
|
||||||
Store.clear(selected_action_store, player)
|
SelectedAction:remove(player)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- Button used to confirm a reason
|
--- Button used to confirm a reason
|
||||||
@@ -78,11 +74,11 @@ Gui.element{
|
|||||||
:style(Gui.sprite_style(30, -1, { left_margin = -2, right_margin = -1 }))
|
:style(Gui.sprite_style(30, -1, { left_margin = -2, right_margin = -1 }))
|
||||||
:on_click(function(player, element)
|
:on_click(function(player, element)
|
||||||
local reason = element.parent.entry.text or 'Non Given'
|
local reason = element.parent.entry.text or 'Non Given'
|
||||||
local action_name = Store.get(selected_action_store, player)
|
local action_name = SelectedAction:get(player)
|
||||||
local reason_callback = config.buttons[action_name].reason_callback
|
local reason_callback = config.buttons[action_name].reason_callback
|
||||||
reason_callback(player, reason)
|
reason_callback(player, reason)
|
||||||
Store.clear(selected_player_store, player)
|
SelectedPlayer:remove(player)
|
||||||
Store.clear(selected_action_store, player)
|
SelectedAction:remove(player)
|
||||||
element.parent.entry.text = ''
|
element.parent.entry.text = ''
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -126,12 +122,12 @@ end)
|
|||||||
event.player.zoom_to_world(position, 1.75)
|
event.player.zoom_to_world(position, 1.75)
|
||||||
else
|
else
|
||||||
-- RMB will toggle the settings
|
-- RMB will toggle the settings
|
||||||
local old_selected_player_name = Store.get(selected_player_store, player)
|
local old_selected_player_name = SelectedPlayer:get(player)
|
||||||
if selected_player_name == old_selected_player_name then
|
if selected_player_name == old_selected_player_name then
|
||||||
Store.clear(selected_player_store, player)
|
SelectedPlayer:remove(player)
|
||||||
Store.clear(selected_action_store, player)
|
SelectedAction:remove(player)
|
||||||
else
|
else
|
||||||
Store.set(selected_player_store, player, selected_player_name)
|
SelectedPlayer:set(player, selected_player_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@@ -174,7 +170,7 @@ end)
|
|||||||
--- Updates the visible state of the action bar buttons
|
--- Updates the visible state of the action bar buttons
|
||||||
local function update_action_bar(element)
|
local function update_action_bar(element)
|
||||||
local player = Gui.get_player_from_element(element)
|
local player = Gui.get_player_from_element(element)
|
||||||
local selected_player_name = Store.get(selected_player_store, player)
|
local selected_player_name = SelectedPlayer:get(player)
|
||||||
|
|
||||||
if not selected_player_name then
|
if not selected_player_name then
|
||||||
-- Hide the action bar when no player is selected
|
-- Hide the action bar when no player is selected
|
||||||
@@ -185,8 +181,8 @@ local function update_action_bar(element)
|
|||||||
if not selected_player.connected then
|
if not selected_player.connected then
|
||||||
-- If the player is offline then reest stores
|
-- If the player is offline then reest stores
|
||||||
element.visible = false
|
element.visible = false
|
||||||
Store.clear(selected_player_store, player)
|
SelectedPlayer:remove(player)
|
||||||
Store.clear(selected_action_store, player)
|
SelectedAction:remove(player)
|
||||||
|
|
||||||
else
|
else
|
||||||
-- Otherwise check what actions the player is allowed to use
|
-- Otherwise check what actions the player is allowed to use
|
||||||
@@ -367,10 +363,10 @@ Event.add(defines.events.on_player_left_game, function(event)
|
|||||||
local scroll_table = frame.container.scroll.table
|
local scroll_table = frame.container.scroll.table
|
||||||
remove_player_base(scroll_table, remove_player)
|
remove_player_base(scroll_table, remove_player)
|
||||||
|
|
||||||
local selected_player_name = Store.get(selected_player_store, player)
|
local selected_player_name = SelectedPlayer:get(player)
|
||||||
if selected_player_name == remove_player.name then
|
if selected_player_name == remove_player.name then
|
||||||
Store.clear(selected_player_store, player)
|
SelectedPlayer:remove(player)
|
||||||
Store.clear(selected_action_store, player)
|
SelectedAction:remove(player)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@@ -393,7 +389,7 @@ Event.add(Roles.events.on_role_assigned, redraw_player_list)
|
|||||||
Event.add(Roles.events.on_role_unassigned, redraw_player_list)
|
Event.add(Roles.events.on_role_unassigned, redraw_player_list)
|
||||||
|
|
||||||
--- When the action player is changed the action bar will update
|
--- When the action player is changed the action bar will update
|
||||||
Store.watch(selected_player_store, function(value, player_name)
|
SelectedPlayer:on_update(function(player_name, selected_player)
|
||||||
local player = Game.get_player_from_any(player_name)
|
local player = Game.get_player_from_any(player_name)
|
||||||
local frame = Gui.get_left_element(player, player_list_container)
|
local frame = Gui.get_left_element(player, player_list_container)
|
||||||
local scroll_table = frame.container.scroll.table
|
local scroll_table = frame.container.scroll.table
|
||||||
@@ -401,7 +397,7 @@ Store.watch(selected_player_store, function(value, player_name)
|
|||||||
for _, next_player in pairs(game.connected_players) do
|
for _, next_player in pairs(game.connected_players) do
|
||||||
local element = scroll_table[next_player.name][open_action_bar.name]
|
local element = scroll_table[next_player.name][open_action_bar.name]
|
||||||
local style = 'frame_button'
|
local style = 'frame_button'
|
||||||
if next_player.name == value then
|
if next_player.name == selected_player then
|
||||||
style = 'tool_button'
|
style = 'tool_button'
|
||||||
end
|
end
|
||||||
element.style = style
|
element.style = style
|
||||||
@@ -413,20 +409,20 @@ Store.watch(selected_player_store, function(value, player_name)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
--- When the action name is changed the reason input will update
|
--- When the action name is changed the reason input will update
|
||||||
Store.watch(selected_action_store, function(value, player_name)
|
SelectedAction:on_update(function(player_name, selected_action)
|
||||||
local player = Game.get_player_from_any(player_name)
|
local player = Game.get_player_from_any(player_name)
|
||||||
local frame = Gui.get_left_element(player, player_list_container)
|
local frame = Gui.get_left_element(player, player_list_container)
|
||||||
local element = frame.container.reason_bar
|
local element = frame.container.reason_bar
|
||||||
if value then
|
if selected_action then
|
||||||
-- if there is a new value then check the player is still online
|
-- if there is a new value then check the player is still online
|
||||||
local selected_player_name = Store.get(selected_player_store, player_name)
|
local selected_player_name = SelectedPlayer:get(player_name)
|
||||||
local selected_player = Game.get_player_from_any(selected_player_name)
|
local selected_player = Game.get_player_from_any(selected_player_name)
|
||||||
if selected_player.connected then
|
if selected_player.connected then
|
||||||
element.visible = true
|
element.visible = true
|
||||||
else
|
else
|
||||||
-- Clear if the player is offline
|
-- Clear if the player is offline
|
||||||
Store.clear(selected_player_store, player_name)
|
SelectedPlayer:remove(player)
|
||||||
Store.clear(selected_action_store, player_name)
|
SelectedAction:remove(player)
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user