CID defaults to always checked.
Use IP and CID from last connection now defaults to enabled unless all the default checked values are provided.
Use IP and CID from last connection now only fills in checked values, rather then forcing both IP and CID.
Use IP and CID from last connection no longer triggers an error if the user can not be found, instead asking the banning admin if the want to continue (same behavior as when this happens without that option checked).
The main reason behind this is that your avg 1 to 2 day ban shouldn't impact everybody on the same network, especially when it comes to colleges and shared internet. The old system worked such that ip bans were only possible on perma server bans, this still gives full flexibility.
There is now a bitflag that controls all the ways a species can be
selected from the different methods of changing species, xeno spawn,
pride mirror, magic mirror etc.
The soviet and capitalist golems are no longer selectable from the pride
or magic mirrors (just the badmin one)
interesting thing I found, androids and synths (including military
synth) are acheivable via xeno extracts!
* Refactors NODROP flag into TRAIT_NODROP
🆑 coiax
fix: Anti-drop implants can no longer be used to drop objects that they
were not responsible for sticking to a person's hand.
fix: Backfiring with a Barnyard spellbook will now play a spooky horse sound.
refactor: Refactors the way that "NODROP" items work to a new system,
there should be no change in functionality.
/🆑
Various items in the codebase were doing weird hoop jumps in order to
preserve the nodrop flag's state when it also wanted to change it, so I
moved it to a trait system.
I may have gone overboard with the type of unique trait sources, but
those can be changed later. My long term plan is make a general "CURSED"
nodrop origin, which means you can unlock cursed items by being hit with
a bolt of door opening or something. But that's for another PR, this has
no functionality changes, apart from some slightly modified descriptions
on cursed masks.
- Removed a bunch of redundant voice changing code for all the voice
changing animal masks, used two new clothing flags for this purpose.
- Also refactored a bit the animal masks, making new cursed subtypes that play
the sound when created.
* Drop location
Thanks to PJB3005
cl
experimental: SDQL2 has been refactored to a datum!
rscadd: A new SDQL2 panel has been added to admin tabs, for tracking, VVing, and halting SDQL2 queries.
rscadd: SDQL2 documentation is now available in SDQL_2.dm
rscadd: SDQL2 now has MAP added. MAP will cause the query to execute on whatever is specified in MAP, whether it's a variable or a procedure call (which will grab the return results), etc etc.
rscadd: SDQL2 now has a superuser mode, for uses outside of admin button pressing. This causes it to operate without admin protection wrapping.
rscadd: SDQL2 now supports options, including ignoring nulls in select or forcing it to operate in high priority mode, which lets it use 95% of the tick instead of obeying the Master Controller's tick limit. USE WITH CAUTION. Also includes a mode for blocking proccalls
rscadd: SDQL2 now supports TRUE/FALSE.
rscadd: To use options, append OPTIONS to the query. Available are "PRIORITY" = HIGH/NORMAL, "SELECT" = FORCE_NULLS/DISABLE or 0/FALSE, "PROCCALL" = ASYNC/BLOCKING.
/cl
Also displaytimetext is refactored.
cl YoYoBatty
add: Added a ghost verb that lets you t-ray view underfloor objects
admin: Checking plumbing verb checks every atmospheric component instead of just pipes
code: Check plumbing verb is less snowflakey
/cl
cl
add: Entertainment telescreens in the bar indicate when they will show something interesting.
tweak: Entertainment telescreens can be viewed from a distance.
/cl
Bargoers are now informed both visually and in chat when clicking on the thunderdome telescreens is likely to actually show something interesting. Additionally, thunderdome telescreens can be watched without being directly adjacent (think sports bar TVs).
* Scope locate calls which are immediately checked against a list
* Remove silly use of locate from bible Topic
* Scope various locate calls (needs testing)
* More WIP
* Buff up lightswitches while we're here
* Tidy record browsing code
* Scope a few more locates
These have caused problems in the past (#41917, #39303). Continues #29349.
Also cleans up lightswitch code while I was already touching it.
I recommend a testmerge.
* Podspawn admin verb, like spawn, but more IC
🆑 coiax
admin: New 'Podspawn' verb, which functions like 'Spawn', except
any atoms movable spawned will be dropped in via a no-damage, no-explosion
Centcom supply pod.
/🆑
Essentially, sometimes you want to spawn stuff in, quickly, in an adhoc manner.
Use of the full Centcom launchbay is fine if you're doing a full blown drop or event
or want some customisation, but sometimes you want a quick supply pod.
The admin smite "Supply Pod (Quick)" has been used for this purpose, but it has a side
effect of setting people on fire and damaging them, which isn't what you want
if it's just for spawning stuff in.
* Adds option to Game Panel->Create Object
* Code review I
Fixes#42146
Fixes ban created notes being double escaped.
Fixes admin tickets not being resolved for a disconnected client when banned.
Re-adds ban reason to admin log for a ban as requested
* The admin Investigate verb hides investigate types that are empty
🆑 coiax
admin: The Admin->Investigate verb will now hide investigate
topics that have had no messages logged this round.
/🆑
Investigate logs are good. Being shy to add new categories because
we're worried about clogging the list is bad.
Hiding unused ones is good.
* Now the branch name is wrong
* Ignore if cancelled
* Combines checks, and removes unused investigate cat.
* Remove defines
* Also remove that define too
* Christmas code changes
🆑 coiax
add: Santa can now examine presents to see what's inside.
del: Santa no longer has a mass summon presents spell, because of his
new regenerating bag!
add: Santa's bag regenerates presents as long as Santa is holding it.
balance: You can only find one gift under a christmas tree per round, no
matter how many trees you search.
balance: Santa's teleport does not announce where he's going.
fix: Fixed Santa not having a full head and beard of white hair.
fix: Fixed Santa not being genetically white-haired.
fix: Fixed Concentrated Barber's Aid not growing extreme amounts of
hair.
/🆑
The `box` var has been moved down from `/datum/outfit/job` to
`/datum/outfit`.
Added unlimited christmas tree with presents, for testing.
Santa's restriction against opening presents is now done by
TRAIT_CANNOT_OPEN_PRESENTS. Santa's ability to see inside presents is
done by the TRAIT_PRESENT_VISION, which also determines if Santa's Bag
will regenerate presents every 30 to 60 seconds.
Santa no longer starts with a breath mask and O2 tank, but instead has
an internals box. Santa no longer has a no-access gold ID, he can
teleport from room to room!
Gifts determine what type is inside them on initialization, rather than
when unwrapped.
- Reasoning -
Unlike last year, there are various possible methods of accessing
christmas trees spawners, allowing for an unlimited number of anything
presents. Cutting down the presents to one per round regardless of tree
count will avoid this.
Santa should be able to see what he's giving, because then he can reward
the naughty and nice children with different gifts.
* Missed a merge
* Adds present investigate logs, and visible messages
* Use the body+mind checking of mob.has_trait
* Less globals, more static vars on types; also event renaming
variable allows for proc calls and technically the call option just uses variable to parse out it's function (even if you provide something that makes no sense)
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
cl Qustinnus / Floyd / Ethereal sprites by Space, is that it? / Alerts and food sprites by MrDroppodBringer
add: Adds Ethereal; a race which lives off of electricity and shines bright. If they are healthy they shine a bright green light, and the more damaged they are, the less they shine and the greyer they become. Their punches do burn damage and they are weak to blunt attacks!
They dont need to eat normal food and dont have nutrition, Instead they gain charge by going into borg rechargers, eating ethereal food or doign specific interactions.
refactor: all nutrition changes now go through a proc so we can override behavior
/cl
Adds Ethereal. A race which is essentialy inspired by Zoltan but then with different mechanics to make it fit with SS13 more. I'm trying to stay away from making them actually provide power but the change from nutrition to electricity seemed kind of fun.
They have the following specifications:
They are walking lights; and shine bright and green if healthy, and get greyer and darker the more damaged they are. When dead they are just a grey unlit corpse.
They do burn punch damage instead of blunt.
They are weaker to blunt; especially when low on charge
They have charge instead of nutrition. Charge is gained by some interactions or by going into a borg charger. or eating new ethereal food.
They are slightly stronger to shock damage, and gain charge from it a bit; however, it is still deadly to them and thus they aren't free insulated gloves.
fixes#41106 since it'll have it's own fucking location.
cl ShizCalev
add: Admins can now personalize their asay message color on servers with the feature enabled.
tweak: Moved some admin only preference verbs out of the Preferences tab and to a new admin preferences tab to help unclutter it / prevent accidental toggling of fun things.
/cl
Note that the start of the admin message will still use the default formatting just so it can be quickly recognized as an admin message and not an OOC one.