mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-29 20:16:38 +09:00
Updated player list
This commit is contained in:
@@ -15,8 +15,12 @@ local Jail = require 'modules.control.jail' --- @dep modules.control.jail
|
||||
local Colors = require 'resources.color_presets' --- @dep resources.color_presets
|
||||
local format_chat_player_name = ext_require('expcore.common','format_chat_player_name') --- @dep expcore.common
|
||||
|
||||
local action_player_store = 'gui.left.player-list.action-player'
|
||||
local action_name_store = 'gui.left.player-list.action-name'
|
||||
local selected_player_store = ''
|
||||
local selected_action_store = ''
|
||||
local function set_store_uids(player,action)
|
||||
selected_player_store = player
|
||||
selected_action_store = action
|
||||
end
|
||||
|
||||
-- common style used by all action buttons
|
||||
local function tool_button_style(style)
|
||||
@@ -26,9 +30,9 @@ local function tool_button_style(style)
|
||||
end
|
||||
|
||||
-- auth that will only allow when on player's of lower roles
|
||||
local function auth_lower_role(player,action_player_name)
|
||||
local function auth_lower_role(player,selected_player_name)
|
||||
local player_highest = Roles.get_player_highest_role(player)
|
||||
local action_player_highest = Roles.get_player_highest_role(action_player_name)
|
||||
local action_player_highest = Roles.get_player_highest_role(selected_player_name)
|
||||
if player_highest.index < action_player_highest.index then
|
||||
return true
|
||||
end
|
||||
@@ -36,10 +40,10 @@ end
|
||||
|
||||
-- gets the action player and a coloured name for the action to be used on
|
||||
local function get_action_player_name(player)
|
||||
local action_player_name = Store.get(action_player_store,player.name)
|
||||
local action_player = Game.get_player_from_any(action_player_name)
|
||||
local action_player_name_color = format_chat_player_name(action_player)
|
||||
return action_player,action_player_name_color
|
||||
local selected_player_name = Store.get(selected_player_store,player)
|
||||
local selected_player = Game.get_player_from_any(selected_player_name)
|
||||
local selected_player_color = format_chat_player_name(selected_player)
|
||||
return selected_player_name, selected_player_color
|
||||
end
|
||||
|
||||
-- telports one player to another
|
||||
@@ -60,12 +64,12 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.goto-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
local action_player_name = get_action_player_name(player)
|
||||
local action_player = Game.get_player_from_any(action_player_name)
|
||||
if not player.character or not action_player.character then
|
||||
local selected_player_name = get_action_player_name(player)
|
||||
local selected_player = Game.get_player_from_any(selected_player_name)
|
||||
if not player.character or not selected_player.character then
|
||||
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
|
||||
else
|
||||
teleport(player,action_player)
|
||||
teleport(player,selected_player)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -77,12 +81,12 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.bring-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
local action_player_name = get_action_player_name(player)
|
||||
local action_player = Game.get_player_from_any(action_player_name)
|
||||
if not player.character or not action_player.character then
|
||||
local selected_player_name = get_action_player_name(player)
|
||||
local selected_player = Game.get_player_from_any(selected_player_name)
|
||||
if not player.character or not selected_player.character then
|
||||
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
|
||||
else
|
||||
teleport(action_player,player)
|
||||
teleport(selected_player,player)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -94,10 +98,10 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.kill-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
local action_player_name = get_action_player_name(player)
|
||||
local action_player = Game.get_player_from_any(action_player_name)
|
||||
if action_player.character then
|
||||
action_player.character.die()
|
||||
local selected_player_name = get_action_player_name(player)
|
||||
local selected_player = Game.get_player_from_any(selected_player_name)
|
||||
if selected_player.character then
|
||||
selected_player.character.die()
|
||||
else
|
||||
player.print({'expcom-kill.already-dead'},Colors.orange_red)
|
||||
end
|
||||
@@ -111,20 +115,20 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.report-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
local action_player_name = get_action_player_name(player)
|
||||
if Reports.is_reported(action_player_name,player.name) then
|
||||
local selected_player_name = get_action_player_name(player)
|
||||
if Reports.is_reported(selected_player_name,player.name) then
|
||||
player.print({'expcom-report.already-reported'},Colors.orange_red)
|
||||
else
|
||||
Store.set(action_name_store,player.name,'command/report')
|
||||
Store.set(selected_action_store,player,'command/report')
|
||||
end
|
||||
end)
|
||||
|
||||
local function report_player_callback(player,reason)
|
||||
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||
local selected_player_name, selected_player_color = get_action_player_name(player)
|
||||
local by_player_name_color = format_chat_player_name(player)
|
||||
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})
|
||||
Reports.report_player(action_player_name,player.name,reason)
|
||||
game.print{'expcom-report.non-admin', selected_player_color,reason}
|
||||
Roles.print_to_roles_higher('Trainee',{'expcom-report.admin', selected_player_color,by_player_name_color,reason})
|
||||
Reports.report_player(selected_player_name,player.name,reason)
|
||||
end
|
||||
|
||||
--- Gives the action player a warning, requires a reason
|
||||
@@ -135,14 +139,14 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.warn-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
Store.set(action_name_store,player.name,'command/give-warning')
|
||||
Store.set(selected_action_store,player,'command/give-warning')
|
||||
end)
|
||||
|
||||
local function warn_player_callback(player,reason)
|
||||
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||
local selected_player_name, selected_player_color = get_action_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}
|
||||
Warnings.add_warning(action_player_name,player.name,reason)
|
||||
game.print{'expcom-warnings.received', selected_player_color,by_player_name_color,reason}
|
||||
Warnings.add_warning(selected_player_name,player.name,reason)
|
||||
end
|
||||
|
||||
--- Jails the action player, requires a reason
|
||||
@@ -153,19 +157,19 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.jail-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||
if Jail.is_jailed(action_player_name) then
|
||||
player.print({'expcom-jail.already-jailed',action_player_name_color},Colors.orange_red)
|
||||
local selected_player_name, selected_player_color = get_action_player_name(player)
|
||||
if Jail.is_jailed(selected_player_name) then
|
||||
player.print({'expcom-jail.already-jailed', selected_player_color},Colors.orange_red)
|
||||
else
|
||||
Store.set(action_name_store,player.name,'command/jail')
|
||||
Store.set(selected_action_store,player,'command/jail')
|
||||
end
|
||||
end)
|
||||
|
||||
local function jail_player_callback(player,reason)
|
||||
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||
local selected_player_name, selected_player_color = get_action_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}
|
||||
Jail.jail_player(action_player_name,player.name,reason)
|
||||
game.print{'expcom-jail.give', selected_player_color,by_player_name_color,reason}
|
||||
Jail.jail_player(selected_player_name,player.name,reason)
|
||||
end
|
||||
|
||||
--- Temp bans the action player, requires a reason
|
||||
@@ -176,19 +180,19 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.temp-ban-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
local action_player_name,action_player_name_color = get_action_player_name(player)
|
||||
if Jail.is_jailed(action_player_name) then
|
||||
player.print({'expcom-jail.already-banned',action_player_name_color},Colors.orange_red)
|
||||
local selected_player_name, selected_player_color = get_action_player_name(player)
|
||||
if Jail.is_jailed(selected_player_name) then
|
||||
player.print({'expcom-jail.already-banned', selected_player_color},Colors.orange_red)
|
||||
else
|
||||
Store.set(action_name_store,player.name,'command/temp-ban')
|
||||
Store.set(selected_action_store,player,'command/temp-ban')
|
||||
end
|
||||
end)
|
||||
|
||||
local function temp_ban_player_callback(player,reason)
|
||||
local action_player,action_player_name_color = get_action_player_name(player)
|
||||
local selected_player, selected_player_color = get_action_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}
|
||||
Jail.temp_ban_player(action_player,player.name,reason)
|
||||
game.print{'expcom-jail.temp-ban', selected_player_color,by_player_name_color,reason}
|
||||
Jail.temp_ban_player(selected_player,player.name,reason)
|
||||
end
|
||||
|
||||
--- Kicks the action player, requires a reason
|
||||
@@ -199,12 +203,12 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.kick-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
Store.set(action_name_store,player.name,'command/kick')
|
||||
Store.set(selected_action_store,player,'command/kick')
|
||||
end)
|
||||
|
||||
local function kick_player_callback(player,reason)
|
||||
local action_player = get_action_player_name(player)
|
||||
game.kick_player(action_player,reason)
|
||||
local selected_player = get_action_player_name(player)
|
||||
game.kick_player(selected_player,reason)
|
||||
end
|
||||
|
||||
--- Bans the action player, requires a reason
|
||||
@@ -215,64 +219,67 @@ Gui.new_button()
|
||||
:set_tooltip{'player-list.ban-player'}
|
||||
:set_style('tool_button',tool_button_style)
|
||||
:on_click(function(player,element)
|
||||
Store.set(action_name_store,player.name,'command/ban')
|
||||
Store.set(selected_action_store,player,'command/ban')
|
||||
end)
|
||||
|
||||
local function ban_player_callback(player,reason)
|
||||
local action_player = get_action_player_name(player)
|
||||
game.ban_player(action_player,reason)
|
||||
local selected_player = get_action_player_name(player)
|
||||
game.ban_player(selected_player,reason)
|
||||
end
|
||||
|
||||
return {
|
||||
['command/teleport'] = {
|
||||
auth=function(player,action_player)
|
||||
return player.name ~= action_player.name
|
||||
end, -- cant teleport to your self
|
||||
goto_player,
|
||||
bring_player
|
||||
},
|
||||
['command/kill'] = {
|
||||
auth=function(player,action_player)
|
||||
if player.name == action_player.name then
|
||||
return true
|
||||
elseif Roles.player_allowed(player,'command/kill/always') then
|
||||
return auth_lower_role(player,action_player)
|
||||
end
|
||||
end, -- player must be lower role, or your self
|
||||
kill_player
|
||||
},
|
||||
['command/report'] = {
|
||||
auth=function(player,action_player)
|
||||
if not Roles.player_allowed(player,'command/give-warning') then
|
||||
return not Roles.player_has_flag(action_player,'report-immune')
|
||||
end
|
||||
end, -- can report any player that isn't immune and you aren't able to give warnings
|
||||
reason_callback=report_player_callback,
|
||||
report_player
|
||||
},
|
||||
['command/give-warning'] = {
|
||||
auth=auth_lower_role, -- warn a lower user, replaces report
|
||||
reason_callback=warn_player_callback,
|
||||
warn_player
|
||||
},
|
||||
['command/jail'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=jail_player_callback,
|
||||
jail_player
|
||||
},
|
||||
['command/temp-ban'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=temp_ban_player_callback,
|
||||
temp_ban_player
|
||||
},
|
||||
['command/kick'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=kick_player_callback,
|
||||
kick_player
|
||||
},
|
||||
['command/ban'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=ban_player_callback,
|
||||
ban_player
|
||||
set_store_uids = set_store_uids,
|
||||
buttons = {
|
||||
['command/teleport'] = {
|
||||
auth=function(player,selected_player)
|
||||
return player.name ~= selected_player.name
|
||||
end, -- cant teleport to your self
|
||||
goto_player,
|
||||
bring_player
|
||||
},
|
||||
['command/kill'] = {
|
||||
auth=function(player,selected_player)
|
||||
if player.name == selected_player.name then
|
||||
return true
|
||||
elseif Roles.player_allowed(player,'command/kill/always') then
|
||||
return auth_lower_role(player,selected_player)
|
||||
end
|
||||
end, -- player must be lower role, or your self
|
||||
kill_player
|
||||
},
|
||||
['command/report'] = {
|
||||
auth=function(player,selected_player)
|
||||
if not Roles.player_allowed(player,'command/give-warning') then
|
||||
return not Roles.player_has_flag(selected_player,'report-immune')
|
||||
end
|
||||
end, -- can report any player that isn't immune and you aren't able to give warnings
|
||||
reason_callback=report_player_callback,
|
||||
report_player
|
||||
},
|
||||
['command/give-warning'] = {
|
||||
auth=auth_lower_role, -- warn a lower user, replaces report
|
||||
reason_callback=warn_player_callback,
|
||||
warn_player
|
||||
},
|
||||
['command/jail'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=jail_player_callback,
|
||||
jail_player
|
||||
},
|
||||
['command/temp-ban'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=temp_ban_player_callback,
|
||||
temp_ban_player
|
||||
},
|
||||
['command/kick'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=kick_player_callback,
|
||||
kick_player
|
||||
},
|
||||
['command/ban'] = {
|
||||
auth=auth_lower_role,
|
||||
reason_callback=ban_player_callback,
|
||||
ban_player
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user