mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-09-22 17:24:01 +00:00
Remove the warning system
Warnings were a moderator tool layered on top of reports and had no callers left outside their own command and the player list button. The legacy module, its config and locale, the exp_scenario command and its permissions, the discord alert block and the player list button are all removed. Reporting from the player list no longer depends on whether the player could give warnings, anyone can report a player who is not immune.
This commit is contained in:
@@ -1,96 +0,0 @@
|
||||
--[[-- Commands - Warnings
|
||||
Adds a commands that allow admins to warn other players
|
||||
]]
|
||||
|
||||
local Commands = require("modules/exp_commands")
|
||||
local format_player_name = Commands.format_player_name_locale
|
||||
|
||||
local Warnings = require("modules.exp_legacy.modules.control.warnings") --- @dep modules.control.warnings
|
||||
local config = require("modules.exp_legacy.config.warnings") --- @dep config.warnings
|
||||
|
||||
--- Gives a warning to a player; may lead to automatic script action.
|
||||
Commands.new("create-warning", { "exp-commands_warnings.description-create" })
|
||||
:argument("player", { "exp-commands_warnings.arg-player-create" }, Commands.types.lower_role_player)
|
||||
:argument("reason", { "exp-commands_warnings.arg-reason" }, Commands.types.string)
|
||||
:enable_auto_concatenation()
|
||||
:add_aliases{ "warn" }
|
||||
:add_flags{ "admin_only" }
|
||||
:register(function(player, other_player, reason)
|
||||
--- @cast other_player LuaPlayer
|
||||
--- @cast reason string
|
||||
Warnings.add_warning(other_player, player.name, reason)
|
||||
local player_name = format_player_name(player)
|
||||
local other_player_name = format_player_name(other_player)
|
||||
game.print{ "exp-commands_warnings.create", other_player_name, player_name, reason }
|
||||
end)
|
||||
|
||||
--- Gets a list of all warnings that a player has on them. If no player then lists all players and the number of warnings on them.
|
||||
Commands.new("get-warnings", { "exp-commands_warnings.description-get" })
|
||||
:optional("player", { "exp-commands_warnings.arg-player-get" }, Commands.types.player)
|
||||
:add_aliases{ "warnings" }
|
||||
:add_flags{ "admin_only" }
|
||||
:register(function(player, other_player)
|
||||
--- @cast other_player LuaPlayer?
|
||||
if other_player then
|
||||
local warnings = Warnings.get_warnings(player)
|
||||
local script_warnings = Warnings.get_script_warnings(player)
|
||||
local other_player_name = format_player_name(other_player)
|
||||
Commands.print{ "exp-commands_warnings.player-title", other_player_name, #warnings, #script_warnings, config.script_warning_limit }
|
||||
for _, warning in pairs(warnings) do
|
||||
local by_player_name_formatted = format_player_name(warning.by_player_name)
|
||||
Commands.print{ "exp-commands_warnings.list-element-player", by_player_name_formatted, warning.reason }
|
||||
end
|
||||
else
|
||||
local warnings = Warnings.user_warnings:get_all()
|
||||
local script_warnings = Warnings.user_script_warnings
|
||||
Commands.print{ "exp-commands_warnings.warnings-title" }
|
||||
for player_name, player_warnings in pairs(warnings) do
|
||||
local player_name_formatted = format_player_name(player_name)
|
||||
local script_warning_count = script_warnings[player_name] and #script_warnings[player_name] or 0
|
||||
Commands.print{ "exp-commands_warnings.list-element", player_name_formatted, #player_warnings, script_warning_count, config.script_warning_limit }
|
||||
end
|
||||
for player_name, player_warnings in pairs(script_warnings) do
|
||||
if not warnings[player_name] then
|
||||
local player_name_formatted = format_player_name(player_name)
|
||||
Commands.print{ "exp-commands_warnings.list-element", player_name_formatted, 0, #player_warnings, config.script_warning_limit }
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--- Clears all warnings from a player
|
||||
Commands.new("clear-warnings", { "exp-commands_warnings.description-clear" })
|
||||
:argument("player", { "exp-commands_warnings.arg-player-clear" }, Commands.types.player)
|
||||
:add_flags{ "admin_only" }
|
||||
:register(function(player, other_player)
|
||||
--- @cast other_player LuaPlayer
|
||||
Warnings.clear_warnings(other_player, player.name)
|
||||
Warnings.clear_script_warnings(other_player)
|
||||
local player_name = format_player_name(player)
|
||||
local other_player_name = format_player_name(other_player)
|
||||
game.print{ "exp-commands_warnings.cleared", other_player_name, player_name }
|
||||
end)
|
||||
|
||||
--- Clears all script warnings from a player
|
||||
Commands.new("clear-script-warnings", { "exp-commands_warnings.description-clear-script" })
|
||||
:argument("player", { "exp-commands_warnings.arg-player-clear" }, Commands.types.player)
|
||||
:add_flags{ "admin_only" }
|
||||
:register(function(player, other_player)
|
||||
--- @cast other_player LuaPlayer
|
||||
Warnings.clear_script_warnings(other_player)
|
||||
local player_name = format_player_name(player)
|
||||
local other_player_name = format_player_name(other_player)
|
||||
game.print{ "exp-commands_warnings.cleared-script", other_player_name, player_name }
|
||||
end)
|
||||
|
||||
--- Clears the last warning that was given to a player
|
||||
Commands.new("clear-last-warnings", { "exp-commands_warnings.description-clear-last" })
|
||||
:argument("player", { "exp-commands_warnings.arg-player-clear" }, Commands.types.player)
|
||||
:add_flags{ "admin_only" }
|
||||
:register(function(player, other_player)
|
||||
--- @cast other_player LuaPlayer
|
||||
Warnings.remove_warning(other_player, player.name)
|
||||
local player_name = format_player_name(player)
|
||||
local other_player_name = format_player_name(other_player)
|
||||
game.print{ "exp-commands_warnings.cleared-last", other_player_name, player_name }
|
||||
end)
|
||||
Reference in New Issue
Block a user