Files
Bubberstation/code/__DEFINES/client.dm
san7890 9a3e74f30c Feeds OOC messages back to client if blocked in validate_client() (#81769)
## About The Pull Request

Basically, if your long and well-thought-out OOC message gets eaten due
to your client not being fully initialized, the server will feed back
the message to you so you can copy-paste and try again.

In order to facilitate this, I turned `validate_client` into a proc.
This didn't have the ubiquitous usage that we were hoping for (where it
could be dropped and placed anywhere) and I don't think I liked the
"always exit out of proc" stuff anyhow. Also adds some code niceties.

There's probably a way cooler way to do this with tgui_say and whatever
but I don't use tgui_say (byond command bar my beloved) so we'll cope
with this.
## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/34697715/a96f7168-aad3-4772-9abe-7a6aa2b8779a)

Let me know if I should revert the `span_big()` stuff, I just added it
because I wanted it to be obvious to the player instead of look like a
generic error message.
## Changelog
🆑
qol: If your OOC message gets eaten due to some weird circumstance in
how your message is handled, it will feed the applicable message back to
you so you can copy-paste and try to send it again.
/🆑
2024-03-06 23:13:04 +00:00

7 lines
475 B
Plaintext

/// Checks if the given target is either a client or a mock client
#define IS_CLIENT_OR_MOCK(target) (istype(target, /client) || istype(target, /datum/client_interface))
/// Checks to see if a /client has fully gone through New() as a safeguard against certain operations.
/// Should return the boolean value of the fully_created var, which should be TRUE if New() has finished running. FALSE otherwise.
#define VALIDATE_CLIENT_INITIALIZATION(target) (target.fully_created)