Commit Graph

55 Commits

Author SHA1 Message Date
Simon 29029d2586
Add ability for admins to change certain cvars via command. (#35105)
* Add ability for admins to change certain cvars via command.

* Cleanup

* More cleanup.

* Even more cleanup.

* WAITER! WAITER! ONE MORE COMMIT PLEASE!

* Remove requirement for Admin AdminFlag

Not needed as the command checks for the perms.

* Add search function to CVars and help text

* Move to controller instead.

* Add another cvar for testing

* Remove unused comment

* Move to Post Server Initialize

LoC does not work at the earlier stages of server initalization

* Remove unneeded comment

We clear out list so its no longer needed
2025-02-16 10:06:13 +01:00
beck-thompson bc1d6420af
After getting banned, you now have to re-read the rules! (#33270)
* first commit

* opps

* Reset cooldown instead

* Added ccvar

* Not replicated!
2025-01-30 13:09:31 +01:00
Pieter-Jan Briers 71c9dfc9ea
Add system to kick people if they connect to multiple servers at once. (#34563) 2025-01-22 00:23:47 +01:00
Palladinium 87779250ee
Add Discord webhook on watchlist connection (#33483) 2025-01-15 01:32:24 +01:00
Pieter-Jan Briers c2e050ced0
Persist deadmin to database, add admin suspension system (#34048) 2025-01-15 00:46:45 +01:00
Pieter-Jan Briers 285e9349b6
Fix race condition causing disconnected admins to appear in adminwho (#34033) 2024-12-24 11:18:31 +11:00
Pieter-Jan Briers 4f3db43696
Integrate Modern HWID into content
This should be the primary changes for the future-proof "Modern HWID" system implemented into Robust and the auth server.

HWIDs in the database have been given an additional column representing their version, legacy or modern. This is implemented via an EF Core owned entity. By manually setting the column name of the main value column, we can keep DB compatibility and the migration is just adding some type columns.

This new HWID type has to be plumbed through everywhere, resulting in some breaking changes for the DB layer and such.

New bans and player records are placed with the new modern HWID. Old bans are still checked against legacy HWIDs.

Modern HWIDs are presented with a "V2-" prefix to admins, to allow distinguishing them. This is also integrated into the parsing logic for placing new bans.

There's also some code cleanup to reduce copy pasting around the place from my changes.

Requires latest engine to support ImmutableArray<byte> in NetSerializer.
2024-11-12 01:51:54 +01:00
Pieter-Jan Briers 4a5178a538
Fix role ban loading bugs (#32725)
This code was a mess. Now it's less of a mess and user UserDbDataManager now.

Fixes the following bugs:

* If you connect to a server, restart your client, connect again in the same round, you role bans would not be visible in the client.
* If you role ban somebody who is not connected to the server, then they connect within the round, they will only have the recently-applied ban.

Likely fixes #24781, #27282
2024-10-14 14:30:31 +11:00
Winkarst 88dcc831c1
Remove calls to FormattedMessage obsolete methods (#31706)
* Remove FormattedMessage obsolete methods

* Oops
2024-09-01 13:00:53 +02:00
Julian Giebel df95be1ce5
Kick on ban for entire server group (#28649)
* Start work on PostgresNotificationManager
Implement initial version of init and listening code

* Finish implementing PostgresNotificationManager
Implement ban insert trigger

* Implement ignoring notifications if the ban was from the same server

* Address reviews

* Fixes and refactorings

Fix typo in migration SQL

Pull new code in BanManager out into its own partial file.

Unify logic to kick somebody with that when a new ban is placed directly on the server.

New bans are now checked against all parameters (IP, HWID) instead of just user ID.

Extracted SQLite ban matching code into a new class so that it can mostly be re-used by the ban notification code. No copy-paste here.

Database notifications are now not implicitly sent to the main thread, this means basic checks will happen in the thread pool beforehand.

Bans without user ID are now sent to servers. Bans are rate limited to avoid undue work from mass ban imports, beyond the rate limit they are dropped.

Improved error handling and logging for the whole system.

Matching bans against connected players requires knowing their ban exemption flags. These are now cached when the player connects.

ServerBanDef now has exemption flags, again to allow matching full ban details for ban notifications.

Made database notifications a proper struct type to reduce copy pasting a tuple.

Remove copy pasted connection string building code by just... passing the string into the constructor.

Add lock around _notificationHandlers just in case.

Fixed postgres connection wait not being called in a loop and therefore spamming LISTEN commands for every received notification.

Added more error handling and logging to notification listener.

Removed some copy pasting from SQLite database layer too while I was at it because god forbid we expect anybody else to do all the work in this project.

Sorry Julian

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2024-08-20 23:31:33 +02:00
to4no_fix 64273cb914
Display the administrator's title in ahelp and ahelp relay (#30075)
* Adding the admin prefix to the ahelp

* Updating the admin prefix

* The second update of the admin prefix

* Configuration correction
2024-08-02 22:59:20 -05:00
AJCM-git 63e0ee08cb
Fixes client having authority over rules popup cvars (#28655)
* Fixes client having authority over rules popup cvars

* Delete duplicate migration

* Pre-update

* Post-update
2024-06-07 21:53:20 +02:00
Nemanja 1333b48747
Convert rules to use guidebook parsing (#28647) 2024-06-06 03:11:26 -04:00
DrSmugleaf 19be94c9ea
Add job whitelist system (#28085)
* Add job whitelist system

* Address reviews

* Fix name

* Apply suggestions from code review

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* cancinium

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2024-06-01 05:08:31 -07:00
nikthechampiongr df631ff8a0
Fix Incorrect stealth messages appearing on readmin. (#26511)
Fix major skill issue/Incorrect stealth messages appearing on readmin.
2024-03-28 20:19:53 +01:00
nikthechampiongr dca0c6694b
Add stealthmins (#26263)
* Add stealthmin command.

* Update Content.Server/Administration/Commands/AdminWhoCommand.cs

As suggested by CE.

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* Add admin notifications for admins toggling stealthmin.

* Localize stealthmin command

---------

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
2024-03-24 10:39:53 -05:00
Pieter-Jan Briers a1817a12db
Add Prometheus stats for admin count (#26284)
* Add Prometheus stats for admin count

Fixes #20828

Reports time series for admin count. Counts are separated by state (active, AFK, or deadminned) and admin rank.

* Use static constructor instead of static readonly for the metric

Docs recommend this due to inconsistent execution of C# static constructors.

* Remove static usage, use IoC IMeterFactory.

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-03-24 14:48:04 +11:00
LordCarve 05a2e6b3a2
Obsolete refactor - ConnectedClient to Channel (#24409) 2024-01-23 09:14:13 +11:00
Leon Friedrich e685cb626b
Un-revert IPlayerManager refactor (#21244) 2023-10-28 09:59:53 +11:00
metalgearsloth a2bbda43cc
Revert "Update submodule to 172.0.0 (#21222)" (#21225) 2023-10-24 21:55:20 +11:00
Leon Friedrich 7ba0ea2926
IPlayerManager refactor (#21215) 2023-10-24 20:19:08 +11:00
DrSmugleaf f985e7dc5c
Fix role unbans not applying in real time (#20547) 2023-09-28 16:46:39 -07:00
Moony 3d3c9e3348
Toolshed part 2 (#18997)
* fixe

* Save work.

* Rune-aware parser.

* oogh

* pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests pass tests

* Publicizes a lot of common generic commands, so custom toolshed envs can include them.

* i think i might implode

* Tests.

* a

* b

* awa

---------

Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
2023-08-23 16:03:41 -05:00
Leon Friedrich 4d845caa07
Allow zoom command to ignore zoom limits (#19419) 2023-08-22 19:27:41 +10:00
Moony e2b22a4cd8
Toolshed (#17895)
* ogh

* i should save my work

* ogh

* hhcdfhjbghshbxdfhghshc
- lots of bugs in parsing still
- invocation is a stub

* expr parsing works

* awawa

* Saving work

* Improve APIs a bit all around, add shortcuts.

* awa

* awa

* AAAAAA

* save work

* Move shit to engine

* lord

* bql is kill

* forgot the fucking bike rack

* bql is kill for real

* pjb will kill me

* aughfhbdj

* adgddf

* gdsgvfvxshngfgh

* b

* hfsjhghj

* a

* tf you mean i have to document it

* follow C# standards

* Assorted cleanup and documentation pass, minor bugfix in ValueRefParser.

* Start porting old commands, remove that pesky prefix in favor of integrating with the shell.

* bw

* Fix valueref up a bit, improve autocomplete for it.

* awa

* fix tests

* git shut up

* Arithmetic commands.

* parse improvements

* Update engine.

---------

Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
2023-08-02 16:09:08 -05:00
Vasilis 55f935e3fe
Adds a cvar to hide PII information in ban message (#18428)
* my macbook hates running 2 clients

* yes
2023-07-29 20:14:56 +03:00
Pieter-Jan Briers b4b0fe41db
Admin notes bugfixes (#18189) 2023-07-21 15:43:47 +02:00
Riggle 579913b617
Better notes and bans (#14228)
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
2023-07-21 13:38:52 +02:00
Pieter-Jan Briers 4c8965ac32
CVar to promotehost automatically. (#17643) 2023-06-26 13:01:30 +10:00
metalgearsloth be14380520
Role ban UI updates (#16736) 2023-05-27 14:22:22 +10:00
metalgearsloth ae01618874
Revert "Revert "Replace `ResourcePath` with `ResPath` (#15308)" (#155… (#15566) 2023-04-20 20:16:01 +10:00
metalgearsloth acf79a8209
Revert "Replace `ResourcePath` with `ResPath` (#15308)" (#15551) 2023-04-20 11:43:54 +10:00
Ygg01 71f358a027
Replace `ResourcePath` with `ResPath` (#15308) 2023-04-19 23:39:17 +10:00
Leon Friedrich b148bebd60
Equipment verbs & admin inventory access. (#14315) 2023-03-06 04:12:08 +11:00
Leon Friedrich 2351bbb607
Add power debug verbs (#14212) 2023-02-26 04:14:35 +11:00
Leon Friedrich 69b5562718
Rename IConsoleHost.RegisteredCommands (#14041) 2023-02-12 16:51:56 +00:00
Visne c6d3e4f3bd
Fix warnings and code cleanup/fixes (#13570) 2023-01-19 13:56:45 +11:00
Visne e1782ec22b
Disable re-adminning infinitely (#11174) 2022-09-10 06:07:35 -07:00
metalgearsloth 72bc05e3ac
Add department bans (#11085)
* Add department bans

Also localised some stuff while I was there.

* loc
2022-09-08 17:06:21 -05:00
Pieter-Jan Briers 221c23000e
Client command perms cleanup. (#9599) 2022-07-10 15:43:44 +02:00
wrexbe bc68ac96dd
Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
Pieter-Jan Briers b3e7c7af1f
Remove usage of CreateNetMessage. (#7563) 2022-04-15 11:55:49 -07:00
Moony 5c26555144
Fix a bug in rolebans. (#7029) 2022-03-07 22:28:47 -06:00
ShadowCommander 4825142210
Role bans (#6703) 2022-02-21 23:11:39 +01:00
Vera Aguilera Puerto c4bf0a9479
AdminManager can now load permissions for registered callback commands. (#6025) 2022-01-12 11:05:39 +01:00
Vera Aguilera Puerto 666be08d86
Fix client-only command permissions. (#5899) 2021-12-25 19:53:21 +01:00
Vera Aguilera Puerto a46c2e6c9d
Added some missing engine command permissions. (#5782)
If you want to bikeshed this further, open an issue.
2021-12-18 14:16:34 +01:00
Paul 58fc8ee35f includes deadmined admins in adminsystem playerlist updates 2021-11-10 18:09:22 +01:00
Paul Ritter e74301a856
refactors adminmenu a timid amount (#5095)
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-11-10 23:26:25 +11:00
Paul Ritter 6fdb364497
Admin overlay (#4728)
* adds admin overlay

* fixes things
2021-10-03 13:34:36 +02:00