* c++ monstermos
fuck
Fixes the server hemorrhaging memory due to extools not decrementing ref counts
Increases defauilt tank pressure
make space cold or some shit
floor tile rips
Fixes code assuming that the heat capacity is nonzero
🤦
Fixes crash
fixes some bugs
fuck *facepalm*
the fastening
removes Del() in favor of an internal c++ hook
Fixes vent-pump math
* Fix the invisible gases bug
* Linux support
* fix the deploy.sh
* Uses newer BYOND 513 because older one is probably missing an important pattern (it segfaulted on pattern search)
* Updates windows dll to match linux version and cleans up unused BYOND code
* https://github.com/tgstation/tgstation/pull/46764
* tgui is shit
* next PR should be low-level stuff, to remove shim-console.js properly
* https://github.com/tgstation/tgstation/pull/47123
* mint scrapped
* lots of PRs
* more PRs finished
* lol at tg
* it just works
* well, now it works
* lol
* travis maybe?
* Update build_tgui.sh
* copies the tgui folder as well
* fixes tgui permissions
* removes mint properly
* lol
* more stuff
* lol
* fuck
* kiosk stuff apparently
* uplink
* turbine
* more stuffs
* removes plumbing
* lol
* Update machine_circuitboards.dm
* lol
* removes medical kiosk
* chem macros get out ree
* couple of extra PRs
* forgot the import
* nuke UI
* micro arcade
* last few PRs
* https://github.com/tgstation/tgstation/pull/47990
* forgot the .dm file
* Logging tweaks and fixes (#42817)
* Add a virus log, plus a log for facehuggers
Logs each infect event and contains detailed descriptions of the virus
I also added a log message for printing virus culture bottles including
who printed them
Finally i tacked on a change to adding a game log entry for facehuggers
because why not
* Further logging fixes and updates
Medbots now combat log
combat log no longer tries to run keyname on an object because that
doesn't make much sense
* Dead say no longer logs twice
* tabs to spaces
* Logging tweaks and fixes
* this is why tg shouldnt change spaces 4no raisin
Spiritual successor and extension to #17798, an almost entire rebuild of the SQL ban system backend and interface.
Bantypes are removed per #8584 and #6174. All bans are now 'role bans', server bans are when a ban's role is server. Admin bans are a column, meaning it's possible to ban admins from jobs.
Bans now have only an expiry datetime, duration is calculated from this when queried.
unbanned column is removed as it's superfluous, checking unban status is now done through checking unban_datetime. unban_round_id column added. Each ip and computerid columns rearranged so ip is always first, like in other tables. Bans now permit a null ckey, ip and computerid.
Ban checking is split into two procs now is_banned_from() does a check if a ckey is banned from one or more roles and returns true or false. This effectively replaces jobban_isbanned() used in simple if() statements. If connected a client's ban cache is checked rather than querying the DB. This makes it possible for a client connected to two or more servers to ignore any bans made on one server until their ban cache is rebuilt on the others. Could be avoided with cross-server calls to update ban caches or just the removal of the ban cache but as is I've done neither since I think it's enough of an edge case to not be worth it.
The second proc is is_banned_from_with_details(), this queries the DB for a role ban on a player's ckey, ip or CID and returns the details. This replaces direct queries in IsBanned.dm and the preferences menu.
The legacy ban system is removed.
The interfaces for banning, unbanning and editing bans have been remade to require less clicking and easier simultaneous operations. The banning and jobban panel are combined. They also store player connection details when opened so a client disconnecting no longer stops a ban being placed.
New banning panel:
Key, IP and CID can all be toggled to allow excluding them from a ban.
Checking Use IP and CID from last connection lets you enter only a ckey and have the DB fill these fields in for you, if possible.
Temporary bans have a drop-menu which lets you select between seconds, minutes, hours, days, weeks, months and years so you don't need to calculate how many minutes a long ban would be. The ban is still converted into minutes on the DB however.
Checking any of the head roles will check both of the boxes for you.
The red role box indicates there is already a ban on that role for this ckey. You can apply additional role bans to stack them.
New unbanning panel:
Unbanning panel is now separate from the banning panel but otherwise functionally the same.
Ban editing panel:
Actually just a modified banning panel, all the features from it work the same here.
You can now edit almost all parameters of a ban instead of just the reason.
You can't edit severity as it's not really part of the ban.
The panels have been tested but I've not been able to get my local server to be accessible so ban functionality isn't properly confirmed. Plenty of testing will be required as I'd rather not break bans.
cl
admin: Ban interface rework. The banning and unbanning panels have received a new design which is easier to use and allows multiple role bans to be made at once.
prefix: Ban search and unbanning moved to unbanning panel, which is now a separate panel to the old banning panel.
/cl
* Overhaul mecha logging
Removes user access to the log, not needed and that log can get large
removes all the internal log vars and passes all logging through to a
new log file, the mecha log
* somehow this makes it compile
* add it to the config too
* Moves TgsInitializationsComplete call to immediately after world/New()
* Subsystem PreInit data directory audit
* world/New data directory audit
* Needful here too
* Remove SS_NO_INIT from SStitle
* Don't create banlist.bdb for SQL banning
* Stop creating legacy notes file
* Moves iconCache from data to tmp
* Photography Update
* Pictures logged in their own /data/picture_logs folder rather than normal logs
* Pictures logged in their own /data/picture_logs folder rather than normal logs
* Photos broke, retrying
* Persistence stuff
* I'm almost done I promise!
* Persistence mostly working, compile, etc etc
* Persistence mostly working, compile, etc etc
* Remove something really not needed from the PR
* Prevents duplication
* default to off
* removes check tick
* increase slots in albums to 21
* Allows for singular loading
* Update camera_image_capturing.dm
* Addresses review
* Anturk
* Update camera.dm
* Update misc.dm
* Update datum.dm
* Update camera.dm
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()
By moving our logging to a DLL we see a drop in CPU/real time of 2-3 orders of magnitude. This is due to BYOND opening and closing file handles on every write, causing incredible amounts of unneeded overhead. The logging library also handles timestamps for us, further increasing performance gains.
This library will also allow for further offloading in the future, such as completely replacing file2text() and friends.
A pre-compiled DLL is bundled, but Linux users will have to compile manually. Directions can be found at the rust-g repo.
Log output is enhanced with millisecond time stamps:
[2018-04-01 15:56:23.522] blah blah blah
This includes runtimes as well, which benefit from the same timestamp improvements and no longer have hacky splitting code to add their own timestamps.
Log shutdown is handled in a dedicated proc called as late as possible, as rust-g integration expands this will be factored out into a generic native code shutdown proc.