mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-09-21 17:04:00 +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)
|
||||
@@ -38,7 +38,6 @@ require("modules/exp_scenario/commands/surface")
|
||||
require("modules/exp_scenario/commands/teleport")
|
||||
require("modules/exp_scenario/commands/trains")
|
||||
require("modules/exp_scenario/commands/vlayer")
|
||||
require("modules/exp_scenario/commands/warnings")
|
||||
require("modules/exp_scenario/commands/waterfill")
|
||||
|
||||
--- Control
|
||||
|
||||
@@ -131,40 +131,6 @@ if config.player_reports then
|
||||
end
|
||||
end
|
||||
|
||||
--- Warnings added and removed
|
||||
if config.player_warnings then
|
||||
local Warnings = require("modules.exp_legacy.modules.control.warnings")
|
||||
events[Warnings.events.on_warning_added] = function(event)
|
||||
local player_name, by_player_name = get_player_name(event)
|
||||
local player = assert(game.get_player(player_name))
|
||||
emit_event{
|
||||
title = "Warning",
|
||||
description = "A player has been given a warning",
|
||||
color = Colors.yellow,
|
||||
fields = {
|
||||
{ name = "Player", inline = true, value = append_playtime(player_name) },
|
||||
{ name = "By", inline = true, value = append_playtime(by_player_name) },
|
||||
{ name = "Report Count", inline = true, value = Warnings.count_warnings(player) },
|
||||
{ name = "Reason", value = event.reason },
|
||||
},
|
||||
}
|
||||
end
|
||||
events[Warnings.events.on_warning_removed] = function(event)
|
||||
if event.batch ~= 1 then return end
|
||||
local player_name = get_player_name(event)
|
||||
emit_event{
|
||||
title = "Warnings Removed",
|
||||
description = "A player has a warning removed",
|
||||
color = Colors.green,
|
||||
fields = {
|
||||
{ name = "Player", inline = true, value = append_playtime(player_name) },
|
||||
{ name = "By", inline = true, value = append_playtime(event.removed_by_name) },
|
||||
{ name = "Report Count", inline = true, value = tostring(event.batch_count) },
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
--- When a player is jailed or unjailed
|
||||
if config.player_jail then
|
||||
local Jail = require("modules.exp_legacy.modules.control.jail")
|
||||
|
||||
@@ -249,25 +249,6 @@ description=Print all vlayer information.
|
||||
title=VLayer Information:
|
||||
result=__1__: __2__
|
||||
|
||||
[exp-commands_warnings]
|
||||
description-create=Gives a warning to a player; may lead to automatic script action.
|
||||
description-get=Gets the number of warnings a player has. If no player then lists all players and the number of warnings they have.
|
||||
description-clear=Clears all warnings (and script warnings) from a player.
|
||||
description-clear-script=Clears all script warnings from a player.
|
||||
description-clear-last=Clears the last warning from a player.
|
||||
arg-player-create=Player to give the warning to.
|
||||
arg-player-get=Player to get the warning of, if not given all players are returned.
|
||||
arg-player-clear=Player to clear the warnings of.
|
||||
arg-reason=Reason the user is receiving a warning.
|
||||
create=__1__ received a warning from __2__ for __3__.
|
||||
player-title=__1__ has __2__ warnings and __3__/__4__ script warnings.
|
||||
list-element-player=__1__: __2__
|
||||
warnings-title=The following players have warnings aginst them (and script warnings):
|
||||
list-element=__1__: __2__ (__3__/__4__)
|
||||
cleared=__1__ had all their warnings cleared by __2__.
|
||||
cleared-script=__1__ had all their script warnings cleared by __2__.
|
||||
cleared-last=__1__ had their last warning cleared by __2__.
|
||||
|
||||
[exp-commands_waterfill]
|
||||
description=Replace tiles with shallow water.
|
||||
requires-explosives=__ITEM__cliff-explosives__ are required to create water.
|
||||
@@ -326,7 +307,6 @@ reason-entry=Enter Reason
|
||||
goto-player=Goto player
|
||||
bring-player=Bring player
|
||||
report-player=Report player
|
||||
warn-player=Warn player
|
||||
jail-player=Jail player
|
||||
kick-player=Kick player
|
||||
ban-player=Ban player
|
||||
|
||||
@@ -246,25 +246,6 @@ description=vlayer 資訊
|
||||
title=vlayer 資訊:
|
||||
result=__1__: __2__
|
||||
|
||||
[exp-commands_warnings]
|
||||
description-create=給用戶一個警告; 可能會導致系統的自動行動。
|
||||
description-get=取得用戶收到的警告次數。如果沒有用戶,則列出所有用戶以及他們受到警告的次數。
|
||||
description-clear=清除用戶的所有警告(和系統警告)。
|
||||
description-clear-script=清除用戶的系統警告。
|
||||
description-clear-last=清除用戶的最後警告。
|
||||
arg-player-create=要警告的用戶。
|
||||
arg-player-get=要取得的用戶, 若沒有則返回所有用戶。
|
||||
arg-player-clear=要清除的用戶。
|
||||
arg-reason=原因。
|
||||
create=__1__ 被 __2__ 因 __3__ 作出警告。
|
||||
player-title=__1__ 有 __2__ 個警告和 __3__/__4__ 的系統警告。
|
||||
list-element-player=__1__: __2__
|
||||
warnings-title=該用戶警告如下:
|
||||
list-element=__1__: __2__ (__3__/__4__)
|
||||
cleared=__1__ 的警告己被 __2__ 清除。
|
||||
cleared-script=__1__ 的系統警告己被 __2__ 清除。
|
||||
cleared-last=__1__ 的最後警告己被 __2__ 清除。
|
||||
|
||||
[exp-commands_waterfill]
|
||||
description=把地換為淺水。
|
||||
requires-explosives=沒有足夠的 __ITEM__cliff-explosives__ 。
|
||||
|
||||
@@ -246,25 +246,6 @@ description=vlayer 資訊
|
||||
title=vlayer 資訊:
|
||||
result=__1__: __2__
|
||||
|
||||
[exp-commands_warnings]
|
||||
description-create=給用戶一個警告; 可能會導致系統的自動行動。
|
||||
description-get=取得用戶收到的警告次數。如果沒有用戶,則列出所有用戶以及他們受到警告的次數。
|
||||
description-clear=清除用戶的所有警告(和系統警告)。
|
||||
description-clear-script=清除用戶的系統警告。
|
||||
description-clear-last=清除用戶的最後警告。
|
||||
arg-player-create=要警告的用戶。
|
||||
arg-player-get=要取得的用戶, 若沒有則返回所有用戶。
|
||||
arg-player-clear=要清除的用戶。
|
||||
arg-reason=原因。
|
||||
create=__1__ 被 __2__ 因 __3__ 作出警告。
|
||||
player-title=__1__ 有 __2__ 個警告和 __3__/__4__ 的系統警告。
|
||||
list-element-player=__1__: __2__
|
||||
warnings-title=該用戶警告如下:
|
||||
list-element=__1__: __2__ (__3__/__4__)
|
||||
cleared=__1__ 的警告己被 __2__ 清除。
|
||||
cleared-script=__1__ 的系統警告己被 __2__ 清除。
|
||||
cleared-last=__1__ 的最後警告己被 __2__ 清除。
|
||||
|
||||
[exp-commands_waterfill]
|
||||
description=把地換為淺水。
|
||||
requires-explosives=沒有足夠的 __ITEM__cliff-explosives__ 。
|
||||
|
||||
@@ -26,25 +26,20 @@ const definitions: Definition[] = [
|
||||
["exp_scenario.command.clear_blueprints_surface", "/clear-blueprints-surface", "Clear all blueprints on the current surface."],
|
||||
["exp_scenario.command.clear_ground_items", "/clear-ground-items", "Clear all items on the ground."],
|
||||
["exp_scenario.command.clear_inventory", "/clear-inventory", "Clear a player's inventory, moving all items to spawn."],
|
||||
["exp_scenario.command.clear_last_warnings", "/clear-last-warnings", "Clears the last warning from a player."],
|
||||
["exp_scenario.command.clear_pollution", "/clear-pollution", "Clear pollution from your current surface, or another surface."],
|
||||
["exp_scenario.command.clear_reports", "/clear-reports", "Clears all reports from a player or just the report from one player."],
|
||||
["exp_scenario.command.clear_script_warnings", "/clear-script-warnings", "Clears all script warnings from a player."],
|
||||
["exp_scenario.command.clear_warnings", "/clear-warnings", "Clears all warnings (and script warnings) from a player."],
|
||||
["exp_scenario.command.collectdata", "/collectdata", "Collect data for RCON usage."],
|
||||
["exp_scenario.command.commands", "/commands", "List and search all commands for a keyword.", true],
|
||||
["exp_scenario.command.connect", "/connect", "Connect to another server.", true],
|
||||
["exp_scenario.command.connect_all", "/connect-all", "Connect all players to another server."],
|
||||
["exp_scenario.command.connect_player", "/connect-player", "Connect a player to a different server."],
|
||||
["exp_scenario.command.create_report", "/create-report", "Reports a player and notifies moderators.", true],
|
||||
["exp_scenario.command.create_warning", "/create-warning", "Gives a warning to a player; may lead to automatic script action."],
|
||||
["exp_scenario.command.data_preference", "/data-preference", "Allows you to set/get your data saving preference.", true],
|
||||
["exp_scenario.command.debug", "/debug", "Opens the debug gui."],
|
||||
["exp_scenario.command.follow", "/follow", "Start following a player in spectator."],
|
||||
["exp_scenario.command.get_home", "/get-home", "Returns your current home location."],
|
||||
["exp_scenario.command.get_reports", "/get-reports", "List the reports against a player, or against every player."],
|
||||
["exp_scenario.command.get_roles", "/get-roles", "Get all roles that a player has, if no player provided it lists all roles.", true],
|
||||
["exp_scenario.command.get_warnings", "/get-warnings", "List the warnings against a player, or against every player."],
|
||||
["exp_scenario.command.goto", "/goto", "Teleports you to a player."],
|
||||
["exp_scenario.command.home", "/home", "Teleports you to your home location."],
|
||||
["exp_scenario.command.jail", "/jail", "Puts a player into jail, which suppresses all of their other roles."],
|
||||
|
||||
Reference in New Issue
Block a user