Commit Graph

52 Commits

Author SHA1 Message Date
Jordie
a28de54405 Ban system and interface update (#41176)
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
2018-12-04 20:48:17 +01:00
Jordan Brown
0f4dbdc879 Removes BDE from the account ID message (#41273) 2018-11-03 14:13:17 +01:00
Jordan Brown
45904b25fd Merge pull request #40904 from AnturK/dumblizardname
Fixes backup human names
2018-10-15 20:47:44 +01:00
AnturK
043210ddbb Fixes borgs radio help message (#40569)
* Fixes borgs radio help message

* Changed wording a bit.

* grammer
2018-10-02 22:09:24 +01:00
Iamgoofball
428a033e39 [READY][PAID CODE] economy PR (#40312)
With the power of CAPITALISM AND ECONOMY, you too could be This Guy.
2018-09-23 10:45:14 +01:00
Jordan Brown
64a2bf39f6 Moves TgsInitializationsComplete call to immediately after world/New() (#39771)
* 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
2018-09-15 21:57:57 +01:00
Francesco
e3cdaf90a4 Make a lot of subsystems' Initialize return ..() (#39955)
Subsystem Initialize has a return value, this makes all the subsystems actually
return it, too.
2018-09-01 03:01:15 +01:00
Tad Hardesty
4c846aa4aa Give multiple copies of shuttles their own area instances (#39890) 2018-08-27 11:04:58 +01:00
kevinz000
9e9995846d Felinid/catpeople are now their own human subspecies (#39513)
* Catpeople are nyow a species

* Fixes a runtime

* Fixes the issues with being forced ears when you chose none

* Neko --> Felinid

* P2

* Update

* Working this time I promise
2018-08-08 18:56:25 +01:00
morrowwolf
d68965b7df Fixes all the things 2018-07-13 16:39:38 -06:00
AnturK
c4e488aab8 Gamemode setup failure restets antag rep changes. (#38786) 2018-06-28 23:54:24 +01:00
Nich
88383e1afc Update job.dm 2018-06-27 13:46:47 +02:00
AnturK
89adca24ed Moves divide occupations debugging information to a file log. (#38721)
* Moves divide occupations debugging information to a file log.

* Copypaste failure.
2018-06-27 09:58:09 +01:00
Jordan Brown
ed6261a120 Merge pull request #38722 from AnturK/proofthatnoonereadthatcode
Fixes be assistant
2018-06-25 15:02:57 +01:00
CitrusGender
ca1bb0c3e6 Fixed cyborgs not getting their names at round start (#38675)
* fixed cyborgs not getting their names at round start
fixed cyborgs and A.Is being able to get around appearance bans

* Update job.dm

* Update silicon.dm

* goodbye unneeded config otpion

* Update game_options.txt
2018-06-24 19:55:48 +01:00
Jordan Brown
b746c00852 Merge pull request #38586 from AnturK/jobsquash
DivideOccupations cleanup
2018-06-21 19:48:09 +01:00
Jordan Brown
1f0b362b18 Qdels queries, adds sleep safety checks, DBcore checks for leaks (#38363)
* Qdels all queries, adds sleep handling

* DB Core messages admins about undeleted queries

* Compile fixes. Adds missing set waitfor

* Remove world/New shennanigans. Add DBQuery/BlockingExecute()

* Less spammy notifications to admins about undeleted queries

* Increase dbcore fire time to 1 minute

* Upgrade undeleted query warning

* Better place of death

* Fix build

* Remove BlockingExecute, see BSQL PR for why

* Yep, missed that one.

* Psyche, that's the WRONG QUERY!!
2018-06-18 20:49:09 +01:00
Jordan Brown
f0294ba0e4 Antag reputation rewards are now configurable (#38077)
* Antag reputation rewards are now configurable

* Use keyed_number_list for antag rep
2018-06-03 00:48:09 +01:00
KorPhaeron
629b863ce3 Finishes overflow roles (#37053) 2018-04-09 15:20:22 +02:00
Nich
1499fd0e90 Latejoin Silicons (#36560) 2018-04-05 21:20:30 +02:00
AsV9
d338cac150 Merge remote-tracking branch 'tgstation/master'
Not sure if this worked. Used a wonky special snowflake strat to merge.
2018-03-24 08:57:13 +01:00
Ling
16807242f4 Ports donor features 2018-03-17 15:23:07 +01:00
Sirenfal
937ad3afc7 Antagonist reputation system (#35485)
* Implement antagonist reputation system

* Cleanup

* Quadruple point values, maybe a bit underwhelming before

* Simple feedback changes. Waiting on input on a couple questions for the other requests.

* * Comment out unnecessary variable

* Half of the requested changes (testing in game pending, standby)

* Last set of changes. This should be finished now.

* Remove line causing a warning to fix Travis build
2018-03-02 13:38:49 +13:00
Jordan Brown
015258d01c Config dir again except this time it works (#34606)
* Revert "Revert "Fix config_dir usage (#34469)""

* Make config exist before world/New but not load it until then
2018-01-21 19:32:12 +01:00
oranges
48575ccf70 Revert "Fix config_dir usage (#34469)"
This reverts commit 7be3d32290.
2018-01-19 01:26:40 +00:00
Jordan Brown
7be3d32290 Fix config_dir usage (#34469)
* Makes things use GLOB.config_dir

* GLOB.config_dir => global.config.directory

* Fix /datum/configuration
2018-01-19 11:55:09 +13:00
kevinz000
02abdb7ba0 Fixes latejoins (#33096)
length() is 0 on null lists.

Update job.dm
2017-11-26 12:11:21 +01:00
AnturK
d86c3b47f2 Cyberboss stuff 2017-11-24 22:32:11 +01:00
AnturK
271cbaee71 Adds spawn override system 2017-11-24 22:18:50 +01:00
Jordie
8b19b490d1 JSON feedback (#32188)
* wip

* wip2

* makes code actually compile on 511 + fixes

* versioning

* s

* adds python conversion script, schema change and removes 'force ' from item_used_for_combat

* fix to compile

* forgot to actually commit this
2017-11-17 02:43:12 -05:00
vuonojenmustaturska
39375d5cc2 Replaces a bunch of mob loops with hopefully better ones (#32786)
* Free codebase churn

* fixes dviewmob

* a commit

* Partial revert "Free codebase churn"

This reverts commit 9dd41b3860c331637bbc85e694dd32dc59768ad5.

* better fix to dviewmob

* renames living_mob_list to alive_mob_list, adds mob_living_list and carbon_list

* make some use out of the shiny carbon list

* make some use out of the shiny new living list

* more things, also make the mobs subsystem (Life) use living list

* bonus

* domo arigato mr. roboto

* compile fixes, also made the drone code less dumb

* better?

* make admin message prettier

* honk

* fixes blobs

* rev fixes

* one small thing
2017-11-16 23:08:40 +01:00
KorPhaeron
a0cb8660e7 Changes to protect human authority 2017-10-26 14:39:38 -05:00
KorPhaeron
dcddc79e11 Allows species to be blocked from ever being roundstart, can now choose your Halloween species (#31877)
* Hardlocked species, halloween now lets you choose your spooky race

* Code standards, moving procs around
2017-10-20 11:10:54 -04:00
AnturK
bfc5a2cca8 Datum rev & related upgrades to base datum antag (#31630)
* Datum rev & related upgrades to base datum antag

* Actually starts objective tracking

* Grammer & clumsy removal things

* unifies file names

* Fixes heads displaying in every mode

* This is why i ask for reviews

* KILL ME

* proper antag detection

* Fixes admin de-revving

* Sanity

* Fix conflicts

* Fixes instant roundend

* Fixes flashes

* Waits until setup is done to declare roundend.
2017-10-18 20:25:42 +13:00
Jordan Brown
4178c209f1 Configuration datum refactor (#30763)
* Configuration datum refactor

* More WIP

* New easier on the eyes format

* More WIP

* Finished config.txt

* Fucktons more WIP

* The end of conversion draws near...

* Add all this shit

* Done converting entries finally

* Hunting down compile errors

* More WIP

* MORE CONVERSIONS

* More WIP

* More WIP

* Oh shit only 90 errors this time!

* IT COMPILES!!!

* Fixes world start runtimes
2017-09-29 15:36:51 +13:00
Shadowlight213
e458845453 Adds tracking amount of time spent playing departments 2: The fall of the Assistants. (#29105)
* Ports Paradise Job exp system

* changed to use json_decode and json_encode as recommended by oranges

* updates changelog

* Reee cyberboss

* Changes to use a seperate table

* Updates database changelog
Changes to use mediumint

* Back to wip we go.
Changes sql stuff to how mso suggested
Attempts the changes requested in the other pr.

* work on stuff.

* work on stuff.

* Renamed proc for time remaining.
Fixed updating time amounts.
Added delay to fix firing at roundstart

* exp is now stored in a global list, and only updated to the db at round end.

* some stuff

* Added button to toggle exempt status on a player.
Still need to make it update the db

* REEE Jordie.
Undoes delaying exp updating to round end.
Adds the updating filtering to the update_exp_client proc which is used again

* Lowers a bunch of the times needed.

* Makes tracking per job instead of per department.
Department time is now calculated from job time.

* Whoops forgot to update master first. Lemme save this

Reverb should play cheeki breeki to people

* I think I did this right.
Too tired to test atm.
Busy rewatching twintails ni narimasu

* Removes var from proc arguments
Fixes database stuff

* Does some requested changes.
Makes special_role be tracked instead of bundled under special.

* Done, but need to refactor how it handles ghost roles.

* Less false data wew

* Changes

* Updates db version
More changes

* More changes

* More changes

* revision fix

* OOPS

* fix schemas

* Makes SQL error logging handled by Execute
Gang role tracking now strips out the gang name and is generic.
2017-08-20 23:01:08 +12:00
Jordan Brown
6175ab77d5 Removes all checks for subsystem existence 2017-08-01 10:16:37 -04:00
oranges
c866a77147 Players cannot observe before PREGAME is reached
Ready | Not Ready | Observe is now a three way toggle

The player ready status has been refactored into an ENUM of the three
states, READY, NOT_READY and OBSERVING

if the tickerstate is at least PREGAME they will spawn as observers,
before then you can only register your interest in observing.

All the observer code has been centralised into a single
make_me_an_observer proc on new_player mobs
2017-06-12 20:58:15 +00:00
Jordan Brown
93e3fa18a2 Revert "Players cannot observe before PREGAME is reached" 2017-06-08 13:04:58 -04:00
oranges
507ee7f223 Players cannot observe before PREGAME is reached
Ready | Not Ready | Observe is now a three way toggle

The player ready status has been refatored into an ENUM of the three
states, READY, NOT_READY and OBSERVING

if the tickerstate is at least PREGAME they will spawn as observers,
before then you can only register your interest
2017-06-08 06:46:38 +00:00
QualityVan
306b19ac1f Fixes roundstart spawning (#28090) 2017-06-05 11:03:43 +02:00
Jordan Brown
d7ebd649ba Refactors the latejoin list (#26647) 2017-06-04 17:07:46 -03:00
Leo
b6ccc30e66 Reverts favoring empty positions (#27298) 2017-05-15 11:36:13 -04:00
Crexfu
c67a880c77 Job assign at roundstart now favors empty positions first (#27197) 2017-05-14 09:34:02 -03:00
Cyberboss
729010bbb2 Unorphans the blackbox (#26129)
Moved sql_poll_population from server_maint to this new SS. Moved few remaining server_maint tasks to SSping and deleted it.
2017-04-27 10:04:57 +12:00
Cyberboss
a050b0db6e >We still let old code in the codebase (#26506) 2017-04-24 22:21:55 -04:00
Jack Edge
a76d4374c1 Moves init_order to defines, moves SSevents above ticker. 2017-04-22 22:08:31 +01:00
Cyberboss
9e1ef0ffe2 Global variable wrappers (#25325)
* Add the system for managed global variables

* Travis ban old globals

* So you CAN inline proccall, that's neat

* Fix that

* master.dm

* Remove the hack procs

* Move InitGlobals to the proper spot

* configuration.dm

* Fix the missing pre-slash

* clockcult.dm

* This is probably for the best

* Doy

* Fix shit

* Rest of the DEFINES tree

* Fix

* Use global. for access

* Update find_references_in_globals

Always hated that proc

Whoever made it must've bee a r e a l idiot...

* __HELPERS tree

* Move global initialization to master.

Fix the declaration

* database.dm

* Dat newline

* I said DECLARATIVE order!

* Here's something you can chew on @Iamgoofball

* game_modes.dm

* Fix this

* genetics.dm

* flavor_misc.dm

* More stuff

* Do it mso's way. Keep the controllers as global

* Make master actually see it

* Fix

* Finish _globalvars/lists

* Finish the rest of the _globalvars tree

* This is weird

* Migrate the controllers

* SLOTH -> GLOB

* Lighting globals

* round_start_time -> ticker

* PAI card list -> pai SS

* record_id_num -> static

* Diseases list -> SSdisease

* More disease globals to the SS

* More disease stuff

* Emote list

* Better and better

* Bluh

* So much stuff

* Ahh

* Wires

* dview

* station_areas

* Teleportlocs

* blood_splatter_icons

* Stuff and such

* More stuff

* RAD IO

* More stuff and such

* Blob shit

* Changeling stuff

* Add "Balance" to changelogs

* Balance for changelog compiler + Auto Tagging

* Update the PR template

* hivemind_bank

* Bip

* sacrificed

* Good shit

* Better define

* More cult shit

* Devil shit

* Gang shit

* > borers

Fix shit

* Rename the define

* Nuke

* Objectives

* Sandbox

* Multiverse sword

* Announce systems

* Stuff and such

* TC con

* Airlock

* doppllllerrrrrr

* holopads

* Shut up byond you inconsistent fuck

* Sneaky fuck

* Burp

* Bip

* Fixnshit

* Port without regard

* askdlfjs;

* asdfjasoidojfi

* Protected globals and more

* SO MANY

* ajsimkvahsaoisd

* akfdsiaopwimfeoiwafaw

* gsdfigjosidjfgiosdg

* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!

* facerolll

* ASDFASDFASDF

* Removes the unused parts of dmm_suite

* WIP

* Fix quote

* asdfjauwfnkjs

* afwlunhskjfda

* asfjlaiwuefhaf

* SO CLOSE

* wwwweeeeeewwwww

* agdgmoewranwg

* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?

* Fix syntax errors

* 100 errors

* Another 100

* So many...

* Ugh

* More shit

* kilme

* Stuuuuuufffff

* ajrgmrlshio;djfa;sdkl

* jkbhkhjbmjvjmh

* soi soi soi

* butt

* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING

* lllllllllllllllllllllllllllllllllllllllllll

* afsdijfiawhnflnjhnwsdfs

* yugykihlugk,kj

* time to go

* STUFFF!!!

* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!

* ngoaijdjlfkamsdlkf

* Break time

* aufjsdklfalsjfi

* CONTROL KAY AND PRAY

* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

* Goteem

* Fix testing mode

* This does not belong in this PR

* Convert it to a controller

* Eh, fuck this option

* Revert controllerization Ill do it some other time

* Fix

* Working controllerization

* FOR THE LOVE OF CHRIST PROTECT THE LOGS

* Protect admins and deadmins

* Use the inbuilt proc
2017-04-06 23:26:13 -06:00
Lzimann
4ae03a8fb2 Merge branch 'master' of https://github.com/tgstation/-tg-station into jobcodereee 2017-04-03 18:28:53 -03:00
Cyberboss
fb596bcdb3 _DEF 2017-03-22 14:52:21 -04:00