mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-30 20:41:41 +09:00
Added check for player offline in action bar
This commit is contained in:
@@ -33,7 +33,7 @@ local function auth_lower_role(player,action_player_name)
|
|||||||
end
|
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(player)
|
local function get_action_player_name(player)
|
||||||
local action_player_name = Store.get_child(action_player_store,player.name)
|
local action_player_name = Store.get_child(action_player_store,player.name)
|
||||||
local action_player = Game.get_player_from_any(action_player_name)
|
local action_player = Game.get_player_from_any(action_player_name)
|
||||||
local action_player_name_color = format_chat_player_name(action_player)
|
local action_player_name_color = format_chat_player_name(action_player)
|
||||||
@@ -57,7 +57,7 @@ Gui.new_button()
|
|||||||
:set_tooltip{'player-list.goto-player'}
|
:set_tooltip{'player-list.goto-player'}
|
||||||
:set_style('tool_button',tool_button_style)
|
:set_style('tool_button',tool_button_style)
|
||||||
:on_click(function(player,element)
|
:on_click(function(player,element)
|
||||||
local action_player_name = get_action_player(player)
|
local action_player_name = get_action_player_name(player)
|
||||||
local action_player = Game.get_player_from_any(action_player_name)
|
local action_player = Game.get_player_from_any(action_player_name)
|
||||||
if not player.character or not action_player.character then
|
if not player.character or not action_player.character then
|
||||||
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
|
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
|
||||||
@@ -73,7 +73,7 @@ Gui.new_button()
|
|||||||
:set_tooltip{'player-list.bring-player'}
|
:set_tooltip{'player-list.bring-player'}
|
||||||
:set_style('tool_button',tool_button_style)
|
:set_style('tool_button',tool_button_style)
|
||||||
:on_click(function(player,element)
|
:on_click(function(player,element)
|
||||||
local action_player_name = get_action_player(player)
|
local action_player_name = get_action_player_name(player)
|
||||||
local action_player = Game.get_player_from_any(action_player_name)
|
local action_player = Game.get_player_from_any(action_player_name)
|
||||||
if not player.character or not action_player.character then
|
if not player.character or not action_player.character then
|
||||||
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
|
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
|
||||||
@@ -89,7 +89,7 @@ Gui.new_button()
|
|||||||
:set_tooltip{'player-list.kill-player'}
|
:set_tooltip{'player-list.kill-player'}
|
||||||
:set_style('tool_button',tool_button_style)
|
:set_style('tool_button',tool_button_style)
|
||||||
:on_click(function(player,element)
|
:on_click(function(player,element)
|
||||||
local action_player_name = get_action_player(player)
|
local action_player_name = get_action_player_name(player)
|
||||||
local action_player = Game.get_player_from_any(action_player_name)
|
local action_player = Game.get_player_from_any(action_player_name)
|
||||||
if action_player.character then
|
if action_player.character then
|
||||||
action_player.character.die()
|
action_player.character.die()
|
||||||
@@ -105,8 +105,8 @@ Gui.new_button()
|
|||||||
:set_tooltip{'player-list.report-player'}
|
:set_tooltip{'player-list.report-player'}
|
||||||
:set_style('tool_button',tool_button_style)
|
:set_style('tool_button',tool_button_style)
|
||||||
:on_click(function(player,element)
|
:on_click(function(player,element)
|
||||||
local action_player = get_action_player(player)
|
local action_player_name = get_action_player_name(player)
|
||||||
if Reports.player_is_reported_by(action_player,player.name) then
|
if Reports.player_is_reported_by(action_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_child(action_name_store,player.name,'command/report')
|
Store.set_child(action_name_store,player.name,'command/report')
|
||||||
@@ -114,11 +114,11 @@ Gui.new_button()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local function report_player_callback(player,reason)
|
local function report_player_callback(player,reason)
|
||||||
local action_player,action_player_name_color = get_action_player(player)
|
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||||
local by_player_name_color = format_chat_player_name(player)
|
local by_player_name_color = format_chat_player_name(player)
|
||||||
game.print{'expcom-report.non-admin',action_player_name_color,reason}
|
game.print{'expcom-report.non-admin',action_player_name_color,reason}
|
||||||
Roles.print_to_roles_higher('Trainee',{'expcom-report.admin',action_player_name_color,by_player_name_color,reason})
|
Roles.print_to_roles_higher('Trainee',{'expcom-report.admin',action_player_name_color,by_player_name_color,reason})
|
||||||
Reports.report_player(action_player,reason,player.name)
|
Reports.report_player(action_player_name,reason,player.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- gives the action player a warning, requires a reason
|
-- gives the action player a warning, requires a reason
|
||||||
@@ -132,10 +132,10 @@ Gui.new_button()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local function warn_player_callback(player,reason)
|
local function warn_player_callback(player,reason)
|
||||||
local action_player,action_player_name_color = get_action_player(player)
|
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||||
local by_player_name_color = format_chat_player_name(player)
|
local by_player_name_color = format_chat_player_name(player)
|
||||||
game.print{'expcom-warnings.received',action_player_name_color,by_player_name_color,reason}
|
game.print{'expcom-warnings.received',action_player_name_color,by_player_name_color,reason}
|
||||||
Warnings.add_warnings(action_player,player.name)
|
Warnings.add_warnings(action_player_name,player.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- jails the action player, requires a reason
|
-- jails the action player, requires a reason
|
||||||
@@ -145,8 +145,8 @@ Gui.new_button()
|
|||||||
:set_tooltip{'player-list.jail-player'}
|
:set_tooltip{'player-list.jail-player'}
|
||||||
:set_style('tool_button',tool_button_style)
|
:set_style('tool_button',tool_button_style)
|
||||||
:on_click(function(player,element)
|
:on_click(function(player,element)
|
||||||
local action_player,action_player_name_color = get_action_player(player)
|
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||||
if Roles.player_has_role(action_player,'Jail') then
|
if Roles.player_has_role(action_player_name,'Jail') then
|
||||||
player.print({'expcom-jail.already-jailed',action_player_name_color},Colors.orange_red)
|
player.print({'expcom-jail.already-jailed',action_player_name_color},Colors.orange_red)
|
||||||
else
|
else
|
||||||
Store.set_child(action_name_store,player.name,'command/jail')
|
Store.set_child(action_name_store,player.name,'command/jail')
|
||||||
@@ -154,10 +154,10 @@ Gui.new_button()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local function jail_player_callback(player,reason)
|
local function jail_player_callback(player,reason)
|
||||||
local action_player,action_player_name_color = get_action_player(player)
|
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||||
local by_player_name_color = format_chat_player_name(player)
|
local by_player_name_color = format_chat_player_name(player)
|
||||||
game.print{'expcom-jail.give',action_player_name_color,by_player_name_color,reason}
|
game.print{'expcom-jail.give',action_player_name_color,by_player_name_color,reason}
|
||||||
Jail.jail_player(action_player,player.name)
|
Jail.jail_player(action_player_name,player.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- temp bans the action player, requires a reason
|
-- temp bans the action player, requires a reason
|
||||||
@@ -167,8 +167,8 @@ Gui.new_button()
|
|||||||
:set_tooltip{'player-list.temp-ban-player'}
|
:set_tooltip{'player-list.temp-ban-player'}
|
||||||
:set_style('tool_button',tool_button_style)
|
:set_style('tool_button',tool_button_style)
|
||||||
:on_click(function(player,element)
|
:on_click(function(player,element)
|
||||||
local action_player,action_player_name_color = get_action_player(player)
|
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||||
if Roles.player_has_role(action_player,'Jail') then
|
if Roles.player_has_role(action_player_name,'Jail') then
|
||||||
player.print({'expcom-jail.already-banned',action_player_name_color},Colors.orange_red)
|
player.print({'expcom-jail.already-banned',action_player_name_color},Colors.orange_red)
|
||||||
else
|
else
|
||||||
Store.set_child(action_name_store,player.name,'command/temp-ban')
|
Store.set_child(action_name_store,player.name,'command/temp-ban')
|
||||||
@@ -176,7 +176,7 @@ Gui.new_button()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local function temp_ban_player_callback(player,reason)
|
local function temp_ban_player_callback(player,reason)
|
||||||
local action_player,action_player_name_color = get_action_player(player)
|
local action_player,action_player_name_color = get_action_player_name(player)
|
||||||
local by_player_name_color = format_chat_player_name(player)
|
local by_player_name_color = format_chat_player_name(player)
|
||||||
game.print{'expcom-jail.temp-ban',action_player_name_color,by_player_name_color,reason}
|
game.print{'expcom-jail.temp-ban',action_player_name_color,by_player_name_color,reason}
|
||||||
Jail.temp_ban_player(action_player,player.name,reason)
|
Jail.temp_ban_player(action_player,player.name,reason)
|
||||||
@@ -193,7 +193,7 @@ Gui.new_button()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local function kick_player_callback(player,reason)
|
local function kick_player_callback(player,reason)
|
||||||
local action_player = get_action_player(player)
|
local action_player = get_action_player_name(player)
|
||||||
game.kick_player(action_player,reason)
|
game.kick_player(action_player,reason)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -208,32 +208,32 @@ Gui.new_button()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local function ban_player_callback(player,reason)
|
local function ban_player_callback(player,reason)
|
||||||
local action_player = get_action_player(player)
|
local action_player = get_action_player_name(player)
|
||||||
game.ban_player(action_player,reason)
|
game.ban_player(action_player,reason)
|
||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
['command/teleport'] = {
|
['command/teleport'] = {
|
||||||
auth=function(player,action_player_name)
|
auth=function(player,action_player)
|
||||||
return player.name ~= action_player_name
|
return player.name ~= action_player.name
|
||||||
end, -- cant teleport to your self
|
end, -- cant teleport to your self
|
||||||
goto_player,
|
goto_player,
|
||||||
bring_player
|
bring_player
|
||||||
},
|
},
|
||||||
['command/kill'] = {
|
['command/kill'] = {
|
||||||
auth=function(player,action_player_name)
|
auth=function(player,action_player)
|
||||||
if player.name == action_player_name then
|
if player.name == action_player.name then
|
||||||
return true
|
return true
|
||||||
elseif Roles.player_allowed(player,'command/kill/always') then
|
elseif Roles.player_allowed(player,'command/kill/always') then
|
||||||
return auth_lower_role(player,action_player_name)
|
return auth_lower_role(player,action_player)
|
||||||
end
|
end
|
||||||
end, -- player must be lower role, or your self
|
end, -- player must be lower role, or your self
|
||||||
kill_player
|
kill_player
|
||||||
},
|
},
|
||||||
['command/report'] = {
|
['command/report'] = {
|
||||||
auth=function(player,action_player_name)
|
auth=function(player,action_player)
|
||||||
if not Roles.player_allowed(player,'command/give-warning') then
|
if not Roles.player_allowed(player,'command/give-warning') then
|
||||||
return not Roles.player_has_flag(action_player_name,'report-immune')
|
return not Roles.player_has_flag(action_player,'report-immune')
|
||||||
end
|
end
|
||||||
end, -- can report any player that isnt immune and you arnt able to give warnings
|
end, -- can report any player that isnt immune and you arnt able to give warnings
|
||||||
reason_callback=report_player_callback,
|
reason_callback=report_player_callback,
|
||||||
|
|||||||
@@ -194,10 +194,15 @@ local player_list_name
|
|||||||
local function update_action_bar(player)
|
local function update_action_bar(player)
|
||||||
local frame = Gui.classes.left_frames.get_frame(player_list_name,player)
|
local frame = Gui.classes.left_frames.get_frame(player_list_name,player)
|
||||||
local element = frame.container.action_bar
|
local element = frame.container.action_bar
|
||||||
local action_player = Store.get_child(action_player_store,player.name)
|
local action_player_name = Store.get_child(action_player_store,player.name)
|
||||||
|
|
||||||
if not action_player then
|
if not action_player_name then
|
||||||
element.visible = false
|
element.visible = false
|
||||||
|
else
|
||||||
|
local action_player = Game.get_player_from_any(action_player_name)
|
||||||
|
if not action_player.connected then
|
||||||
|
element.visible = false
|
||||||
|
Store.set(action_player_store,player.name) -- clears store if player is offline
|
||||||
else
|
else
|
||||||
element.visible = true
|
element.visible = true
|
||||||
for action_name,buttons in pairs(config) do
|
for action_name,buttons in pairs(config) do
|
||||||
@@ -209,6 +214,7 @@ local function update_action_bar(player)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--- Adds a player to the player list
|
--- Adds a player to the player list
|
||||||
local function add_player(list_table,player,role_name)
|
local function add_player(list_table,player,role_name)
|
||||||
@@ -318,7 +324,16 @@ Store.register(action_name_store,function(value,category)
|
|||||||
local player = Game.get_player_from_any(category)
|
local player = Game.get_player_from_any(category)
|
||||||
local frame = Gui.classes.left_frames.get_frame(player_list_name,player)
|
local frame = Gui.classes.left_frames.get_frame(player_list_name,player)
|
||||||
local element = frame.container.reason_bar
|
local element = frame.container.reason_bar
|
||||||
element.visible = value ~= nil
|
if value then
|
||||||
|
local action_player = Game.get_player_from_any(value)
|
||||||
|
if action_player.connected then
|
||||||
|
element.visible = true
|
||||||
|
else
|
||||||
|
Store.set_child(action_name_store,category) -- clears store if player is offline
|
||||||
|
end
|
||||||
|
else
|
||||||
|
element.visible = false
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- Many events which trigger the gui to be re drawn, it will also update the times every 30 seconds
|
--- Many events which trigger the gui to be re drawn, it will also update the times every 30 seconds
|
||||||
|
|||||||
Reference in New Issue
Block a user