Mentors can already see a list of all players by account age. This
includes antags with obvious names, like "Donk Co. Operative #1".
This PR changes the permissions on the playtime report (the one which
shows how much playtime everyone has) so mentors can see that, too.
The idea being that this enables mentors to distinguish between "X has
an old account" and "X has a lot of experience on paradise". Currently,
mentors cannot distinguish the two.
Also, consistency. If mentors can see players' account registration age,
they should also be able to see players' playtime experience.
This adds Message filters to Goonchat (only for mentors +
administrators).
There is a new option in the settings dropdown of Goonchat to access
these. They are temporary, non-destructive filters which will hide all
messages matching them that are already in your chat, as well as any new
messages matching them.
There are 5 filters currently:
- Admin; Filters out most admin logs.
- Combat; Filters out a limited subset of combat messages-
Specifically, any message with the 'combat' span class. Currently, this
has only been added to the central /attack and /attacked_by procs, so a
large considerable amount of hostile actions taken against a
player are still not going to be filtered out. We can work on adding
the identifier to more stuff later.
- Radios: Filters out all radio messages.
- Speech: Filters out all mob speech.
- OOC: Filters out OOC chat.
There is also an "All" option, which just turns off all messages that
are not internal to Goonchat.
Includes a refactor for gun turrets (merged into portable turrets), hostile simple_animal behaviour, spells (sounds have been added) and poi_list items.
- Replaced 'EXP' with "Playtime' in most admin-visible locations. The
system is still invisible to normal players.
- Changed the types of exp you can accumulate from 'all', 'eng', 'sup',
etc to more human-friendly names like 'Crew', 'Engineering', and
'Supply'.
- Eliminated some copy-paste.
- Added a new configuration option: use_exp_restrictions_heads_hours.
When enabled and set to a >0 value, it overrides all head/ai job
playtime requirements, instead substituting that number of hours.
- Hid XP info from mentors (Fox request)
- Commented the verb that lets normal players see their XP (Neca
request)
- Added logging for usage of admin XP verbs
- Deleted old commented code
- Formatted XP numbers in reports as "1h", "3h", "27h" etc rather than a
# of points/minutes.
Admins can toy around with converting a character to text, and
placing them back elsewhere, independent of the round.
It's got a kink, though: The text given to you directly needs to be
printed once to remove all the escapes - otherwise the thing will choke.
I'd like advice on resolving that
* Adds Error Handler
Adds a /world/Error proc to handle runtime errors. This proc replaces
the normal runtime logging behavior, providing the following
improvements:
- Adds timestamps to runtimes
- Pads or omits certain lines
- Continues logging runtimes after the 99th (with less info, as provided
by BYOND)
- Adds ckey and accurate xyz to usr info
- Continues including usr info after 19th runtime
- Silences spammy runtimes (by default, a runtime that occurs 10 times
in 10 minutes gets ignored for the next 10 minutes)
* Adds runtime viewer
Also fixes a minor mistake in the error handler
* Sanitizes HTML in Error Viewer
Also removes the stray return from the end of the error handler
* Prettifies Error Viewer
Now uses browser datum and some extra bits of formatting, inspired by
the changes made by @PJB3005
* Error Handling Improvements
- Skipped error counts now show up in the error viewer
- Proper runtimes caught by a process are now sent to the main error
handler
- The error handler and viewer can now handle a provided src, such as
one from a processing runtime
- Moved some info generation into helper procs