* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
It's currently possible to exploit server_hop to display splashes over player's displays on /tg/ and /tg/-derived servers.
I don't think hiding this behind the comm key will be a good idea, or actually be useful. Not entirely certain why we're showing a splash twice, as showing a splash is literally all this server_hop is doing as far as I can tell.
random fact: the original game banners from erro used a custom url decoder. It wasn't until a year or two in to me being host that i caught on and fixed this.
About The Pull Request
All mobs in GLOB.player_list have clients attached and there is in fact a fair amount of code that is working fine without checking client on things in player_list. This pr just removes a bunch of checks for client when iterating over player_list.
This is primarily a compatibility layer that enables both forward and backward compatibility for all past and future APIs based on the detected running TGS version. It also bundles all it's includes to make future upgrades not have to modify the dme, heck, could even use a submodule if it wanted (not happening). No other changes necessary.
There's an upcoming event system and new chat management functions. Check them out here: 303448457e/DMAPI/tgs.dm
Also added /datum/proc/CanProcCall()