Commit Graph

189 Commits

Author SHA1 Message Date
san7890
c1ef0ce461 Adds a quick way to view notes from ticket panel (#69988)
* Adds a quick way to view notes from ticket panel

One thing that I hear be thrown around administration channels a lot is "If I had checked the notes, I would have been more fair on their ban!". Well, have a fast way to keep checking those notes!
2022-09-22 03:52:16 -04:00
Mooshimi
a3121f15c4 [GBP No Update] Perish, individual logging runtime (#69024)
missed 2 or 3(lol it was more when I look back at the files), LOG_GAME tags on the log_message line, and did some cleaning up since i was looking through every log_message again

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2022-08-10 07:56:40 -07:00
Mooshimi
b09f3868f8 individual LOG_GAME (#68683)
About The Pull Request

    replaces a ton of log_game with user.log_message so the log is added to individual and global logs.
    adds a few logs for individual LOG_VICTIM, LOG_ATTACK etc logging.
    adds logging for bluespace launchpad's tele coords being changed.
    took the word "has" out of log_combat, as it's extra and just lengthens the log.

Why It's Good For The Admins

It's extremely laggy to open game.txt so an alternative is individual game logs
Changelog

cl
admin: A lot of game logs will now also be in individual game logs, for convenience in log diving.
admin: Added logging for bluespace launchpad x and y offset changes, which go to individual game logs.
admin: Attack logs will now be slightly shorter, one useless word was removed.
/cl
2022-08-05 09:32:02 +12:00
LemonInTheDark
59285861dd Refactors admin PMs to be hopefully more resilient (#68344)
* Begins refactoring admin pms, with a focus on runtime safety and ease of understanding

There's more I want to do here, mostly with spans and cleaning up sone
logic flow to be easier to understand

The primary thrust of it is making explicit any assumptions we make about values
This is important because this is sensitive code, and runtimes are not acceptable, since they both leak information and could lead to dropped ahelps, which is almost worse.

I'm also splitting the proc up into subsections, in an attempt to make it easier to reason about and work with
As a side effect of this, some operations need to be done more then once to avoid potential debugger escalation.

Related to this, I'm also no longer directly passing around client references through the procs. I instead pass the result of a pretty basic proc into each, to avoid issues with sleeping and such.

Oh, and I fixed a bug that made it impossible to reply to remote ahelp
responses. I hate this place.

* Converts all uses of the linkify span to a macro. One of these doesn't have a closing span, not sure if that's a bug or a feature

* Cleans up more logic embedded inside data, since this is critical code

Changes the backup for replying to someone who logs out, instead of
using the first person to send something to the ticket as our backup, we
use the recipient's ckey.

* some cleanup

* Converts a few more things over to the pattern

Reorganizes and deocuments sends_adminpm_message to be less hard to
track/read

* Cleans up a hanging proc that needed filtering

* Does a passthrough over tgs, makes stealthmin keys actually unique

* cleanup, screed at the top of the file

* cleanup, comments, etc

* Thanks trash, I can in fact not spell

* ok yeah I really can't spell

* updated comment to explain how code works

* messsage -> message spellcheck

* Nullchecking prevention

if for whatever reason someone in the future adds code that lummox says can sneakily allow for Logout() to execute between this and the last time client was checked, this could potentially runtime without nullchecking

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2022-08-01 20:58:15 -07:00
Seth Scherer
2baeb1b635 Ports the player ticket panel from skyrat (#66954)
* Ports the player ticket panel from skyrat
Adds a player side panel to view active admin tickets, this will make it
easier for players to find previous admin messages, remember what they
said previously etc. This is especially good for the cases that TGchat
drops messages
2022-05-20 15:15:32 -04:00
magatsuchi
6bddf82ad8 fixes admin ticket linking bad href (#66910)
Fixes a bad admin href in help tickets
2022-05-13 10:56:55 -04:00
Ryll Ryll
111cdf100e Adds linking tickets in asay, referencing mob datums in asay, improves asay ref code (#65634)
About The Pull Request

Continuing on the work started in #65154 and 61712, this PR expands what asay linking can be used for and improves the code for it. You can now link tickets in asay by saying #[ticket ID] like #1. This shows the ticket's status and who filed the ahelp. Might remove the ticket filer if it's not really useful.

This also fixes an oversight of mine with datum linking, with how mobs and certain other datums (armor datums, landmarks) don't follow the memory address format for their tag values. Datum linking now uses a @[tag] format, so you can link to a mob by saying @mob_702 and such.

dreamseeker_2022-03-22_21-51-41.png
Why It's Good For The Game

More robust admin tools
Changelog

cl Ryll/Shaps
admin: You can now link tickets in asay with #[ticket ID], like #1 and #5.
admin: asay datum linking now functions by saying '@[datum's tag value]`, whether it's a normal datum (@0x2001169) or a mob (@mob_702) or whatever else.

Discord_2022-03-16_23-38-09.png
(old pic)
2022-04-01 14:54:43 +13:00
Watermelon914
7e32bdfca1 Pingbus changes and improvements (#65625)
Adds new configs for non-urgent ahelps to be sent to a channel when no admins are on. This will include urgent ahelps too.
Adds a response message that is sent to discord when an ahelp is responded to in any way
Player counts are now sent in the embed.
2022-03-30 15:13:02 +01:00
Ryll Ryll
ac2c251a73 Adds linking datums in asay (#65154) 2022-02-26 18:57:14 -08:00
Watermelon914
2b11472f02 Changes what appears for urgent ahelps to supportmins. (#64748)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2022-02-14 16:11:52 -08:00
Aziz Chynaliev
22feb54230 Fix: LogAhelp invalid integer - use ticket ID (#64875) 2022-02-13 14:59:16 -05:00
Mothblocks
3c19a826b8 Verify that those clicking on admin statclicks are admins (#63226)
Also removes some unused statclick.

Statclicks need to get removed someday, they're a pain in the ass, but this is good enough for now.
2021-12-05 01:41:19 -08:00
Nick
2b411035c4 Adds additional DB logging for admin help interactions (#62994)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-11-22 14:53:08 -08:00
Watermelon914
fb8d95a2f5 Allows players to send more visible adminhelps when no admins are on, which'll definitely alert admins (#62711)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-11-20 03:06:50 -08:00
Ghom
b79dd74fd0 Replaces a portion of C-style for loops with the more commonplace for loops, which are faster. (#62624)
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2021-11-07 16:42:41 -08:00
Ryll Ryll
3ef17dd5ad Admins now get a little notice if they start responding to a ticket someone else is already responding to (#62025) 2021-10-18 16:40:01 -07:00
LemonInTheDark
e663308b0d Adds SHOULD_NOT_SLEEP to Destroy. Why didn't we do this before. (#61943) 2021-10-09 04:29:33 -07:00
Ryll Ryll
ee541f35df fixes multiple spaces breaking asay (#61939) 2021-10-05 22:39:08 -07:00
Ryll Ryll
cb65ddcff8 Adds pinging to asay (#61712)
I spend a lot of my time adminning the servers alt tabbed when not much is going on, tabbing back in every 5-10 minutes to see what's happening or when I hear a bwoink. Sometimes I miss out on other admins asking me questions or trying to get my attention, and I'll only realize way later when I'm scrolling back up through the chat logs, if at all.

This PR adds the ability to @ other admins in asay by their ckey, which underlines the pinged name, plays a bloop sound (the one when a vote starts) and flashes their window icon if they're not tabbed in.
2021-09-27 13:15:52 -04:00
Jordan Brown
ccb75a554f Changes a bunch of New()s to Initialize()s (#61626) 2021-09-26 00:15:49 -07:00
Fikou
ff48fac9f4 actually fixes the wrapping on ahelps (#61282) 2021-09-08 19:54:19 -07:00
Fikou
995296c742 makes rslve button in admin help panel not wrap around (#61239)
makes admin help panel wider so rslve doesnt wrap around to the bottom line
2021-09-05 11:06:05 -04:00
Mothblocks
e09dc8ba24 Reorder the POPUP button (#61174)
Hurts muscle memory in a way I didn't anticipate. New version puts it behind the REJT button.
2021-09-02 19:26:30 -04:00
Mothblocks
0990a8ddcf Give admins the ability to put a popup notice for players in tickets (#61010)
Admins can now give players a popup if they are not responding to tickets.
Popup is cleared when player replies or ticket is resolved/closed.
As more and more of the chat screen is made irrelevant, new players read it less and less.
This means that a lot of new players are ignoring ahelps, which is something I've encountered myself.
2021-08-29 21:11:38 -03:00
Wayland-Smithy
509677e51d Fixes new ticket ahelp message double sanitizing (#60826)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-08-14 11:54:09 -07:00
Bobbahbrown
71e2191f5f Add 'other tickets by user' to adminhelp ticket panel (#59882)
added a list of other tickets that have been opened by a user, when relevant, to the adminhelp ticket panel.
2021-06-30 13:40:22 -03:00
Watermelon914
375a20e49b Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
2021-06-14 13:03:53 -07:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
Ryll Ryll
e6cae4fac5 Improves friendly commendation code (#56453) 2021-02-05 01:42:34 -08:00
TiviPlus
0eaab0bc54 Grep for space indentation (#54850)
#54604 atomizing
Since a lot of the space indents are in lists ill atomize those later
2020-11-30 12:48:40 -05:00
Bobbahbrown
7b1bed7fc0 Adds Cross-Server Communication Network Option (PAID* CODE) (#54070) 2020-09-30 22:25:54 -07:00
Ryll Ryll
e9ee817cb4 Fixes admin tickets displaying as improper nouns (#53485)
Admin tickets were having "the" prepended to them when displayed in the status tab, because ahelps are treated as datums and BYOND likes to help out and treat them as nouns when printed. This resolves that.
2020-09-07 17:49:14 -03:00
TiviPlus
ca366c3ea1 Bools and returns super-pr (#53221)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-28 14:26:37 -07:00
Couls
e7f99e3b8b Browser Status Panel (#53112) 2020-08-27 15:28:03 -07:00
Aleksej Komarov
64dcf44cc6 tgchat: Hotfixes, Message Annotations (#52947)
This PR changes the message pipeline a little bit to support list-based messages, which can be annotated with custom data. Function signature of to_chat was slightly changed as well:

// Plain text message
to_chat(client,
  type = MESSAGE_TYPE_INFO,
  text = "foo")

// HTML message
to_chat(client,
  type = MESSAGE_TYPE_INFO,
  html = "<span class='notice'>foo</span>")

Old to_chat format is still supported, but handle_whitespace, trailing_newline and confidential flags have no effect. confidential flag could still be revived though, if there is enough merit in it, for example to filter out confidential messages when saving a chat log.

The reason for using /list and not /datum, is because lists are plain faster, and there are minimal data transformations - these lists are fed directly to json_encode and sent to tgchat.

Plain text messages do not need to be HTML-escaped, which makes them safer and more performant than HTML messages. Plain text messages can be made interactive (or formatted with CSS) by custom-handling them in javscript based on message type and annotations.

It would be impossible to annotate every single message in the game (at the moment of writing, there are 9447 to_chat calls in the code), but it could be done selectively, for only those messages that are hard to classify by span classes (and there are still A LOT of them).
Please annotate more messages. Thank you.

    Fixes #52943
    Fixes #52908
    Fixes #52816

Changelog

cl
add: tgchat: Unread message count is now smarter and won't increase on other tabs if you have already read the same message in the active tab.
add: tgchat: Admin PMs are now properly annotated and can be filtered into separate tabs.
fix: tgchat: Fix: Highlighted message overlay no longer blocks clicks. Clicking a highlighted (F) link should work as it should.
fix: tgui: Fixed NTOS bluescreen due to calling .includes() on a stylesheet href which could be null on certain browsers.
code: tgchat: Chat schema bumped to version 5. All chat-related settings were reset to avoid breakage.
/cl
2020-08-17 10:38:38 +12:00
Kyle Spier-Swenson
e8ba2038a1 adds pipelining to cross-server comm messages (#52447)
* adds pipelining to cross-server comm messages

One server blocking at the network level should not delay the other servers getting their message.

* Update adminhelp.dm

oh fun.

* try 3?

* Fuck it, string proc refs!

* Update adminhelp.dm

* Update adminhelp.dm
2020-07-26 13:38:16 -04:00
Ryll-Ryll
dca567b119 antaggy 2020-07-20 22:12:02 -04:00
skoglol
7ff34fc128 excessive 2020-07-16 16:08:01 +02:00
skoglol
7d3af73d12 Fixes some adminhelp issues 2020-07-16 11:57:40 +02:00
jdawg1290
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
Ryll Ryll
753af7bda5 Adds friendly commendations (#51217)
* with message

* remove message, neaten up
2020-05-25 01:49:12 +08:00
Jordan Brown
63e20801ed TGS chat usage cleanup
- Rename send2tgs to sent2adminchat.
- Move both chat procs to SSdiscord.dm.
- Fix bug when sending to TGS4 non-admin chats.
- Add DMdocs
- Improve notify command
  - Store mentions as strings
  - Disable command if config setting isn't enabled
2020-05-23 13:33:09 -04:00
Fikou
57a93ea76a [s] does the html admin thing in a better way probably (#51221) 2020-05-23 01:44:34 -07:00
Rob Bailey
c20a04543b Port of Replays from Yogstation (#48579)
* demos (ported from yogstation)

rustg update + write with no format

use external hook for logging

use proper log vars

fix + clarifying comment

don't start the log

release build of rust-g

fix something caught by the lint

Update code/__DEFINES/subsystems.dm

Co-Authored-By: Jordan Brown <Cyberboss@users.noreply.github.com>

Update code/controllers/subsystem/demo.dm

Co-Authored-By: JJRcop <jrubcop@gmail.com>

Update code/controllers/subsystem/demo.dm

Co-Authored-By: JJRcop <jrubcop@gmail.com>

moves hooks out of a dedicated file

len = 0 to Cut(), remove semicolons

untyped loop

* updated rust_g

* 513 updates
2020-04-06 13:15:48 -04:00
Kyle Spier-Swenson
d1f0c01959 Fix relayed admin helps getting truncated 2020-03-05 23:48:57 -08:00
skoglol
7abce6bfbe Multiline initial adminhelp (#49276)
* Multiline ahelps

* utf-8 compliant
2020-02-11 13:35:01 -05:00
AnturK
e40e22da6b Another runtime fixes batch. (#49209)
* Slime gland runtime fix.

* Logout ahelp logging runtime.

* Crafting non-items runtime.

* Turret building runtime.

* spacevine runtime.

* forcesay runtime fix.

* One less var
2020-02-10 10:50:36 -05:00
MrPerson
12eecfd181 Makes raw HTML and browser datum popups UTF-8 aware (#49066)
* Makes raw HTML and browser datum popups UTF-8 aware

Admin menus specifically really shouldn't break just because you named some guy "☺s the Clown"

* Fixed new_player.dm

* Fucking filing cabinets
2020-02-01 22:14:31 +01:00
AnturK
ac4f25e563 Cross server comms update. (#48850)
* Makes cross server config easier to manage and lets you send messages to specific stations.

* No need for fancy copy
2020-01-18 19:04:23 -05:00
MrPerson
f7eb2c905b Unicode awareness Part 2 -- copytext() (#48512)
* Unicode support Part 2 -- copytext()

This is the transition of all copytext() calls to be unicode aware and also some nearby calls in the same functions. Most things are just replacing copytext() with copytext_char() as a terrible character limiter but a few others were slightly more involved.

I replaced a ton of
````
var/something = sanitize(input())
something = copytext(something, 1, MAX_MESSAGE_LEN)
````

with a single stripped_input() call. stripped_input() already calls html_encode(), trim(), and some other sanitization so there shouldn't be any major issues there.

This is still VERY rough btw; DNA is a mess, the status displays are complete ass, there's a copytext() in code\datums\shuttles.dm that I'm not sure what to do with, and I didn't touch anything in the tools folder. I haven't tested this much at all yet, I only got it to compile earlier this morning. There's also likely to be weird bugs until I get around to fixing length(), findtext(), and the rest of the string procs.

* Makes the code functional

* Assume color hex strings are always # followed by ascii.
Properly encodes and decodes the stuff in mob_helpers.dm which fixes some issues there.

* Removes ninjaspeak since it's unused
2020-01-18 13:07:22 +13:00