Commit Graph

21 Commits

Author SHA1 Message Date
Stalen
0468c0f6bb Fix playtime formatting (#32974) 2024-10-28 19:00:37 +01:00
metalgearsloth
71c9894903 Jobreq format (#32806)
* Format job requirements as hours and minutes

* Use TimeSpan.ToString for playtime instead of custom method

* wehflicts

---------

Co-authored-by: jmcb <joelsgp@protonmail.com>
2024-10-14 14:54:31 +11: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
nikthechampiongr
d1a60fafe7 Implement a playerpanel (#30238)
* Basic structure for the player panel ui

* Ensure basic functionality

Player panel now receives and displays basic info

* Make whitelistcommands accept user ids

* Make PlayerPanel use GUIDs where possible

* Add functionality to most playerpanel buttons

* Implement remaining playerpanel features

* Localize everything

* Finish up

* Put command arguments in quotes

I am not sure if it's even possible to have something like a space in
them considering they are guids and usernames but sure why not

* Make playerpanel a verb

* Add Logs button to player panel

* Change Notesbutton text and make whitelistbutton a confirmtion button

* Add freeze button that does not mute the player

* Add sharedconnections counter to playerpanel

* Make the playetime format clearer

* Allow for copying of the a player's username

* Do minor cleanup

* Rearrange buttons

* Fix unfreeze button not updating

* Fix wrong localisation text

* "Fix" the same role ban counting multiple times

The way rolebans are stored is horrible.
As such if you ban someone from a departmenrt or something
role bans are individually placed for every role.
The only way I found to distinguish them is the bantime.
This is horrible but I do not want to rewrite how all the bans are
stored right now.

* Add Delete and Rejuvenate buttons to player panel

By popular demand

* Marginally improve ui

* Add logs

* review update

* Fix verb

* Fix double notes

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-08-09 15:33:25 +10:00
Nemanja
1333b48747 Convert rules to use guidebook parsing (#28647) 2024-06-06 03:11:26 -04:00
metalgearsloth
841de41a64 Ban loc fix (#25424)
At least I'm pretty sure this is cooked
2024-02-21 15:38:10 +11:00
Repo
e0f3bf0a06 User accessible playtime (#21242)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2023-10-28 12:01:11 +00:00
DrSmugleaf
5be0df32ad Add admin Erase verb, add checkbox to erase from the ban panel (#20985) 2023-10-14 02:02:56 -07: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
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
c8e90e561b Server ban exemption system (#15076) 2023-04-03 10:24:55 +10:00
Leon Friedrich
303506fc38 fix ban command help string (#14820) 2023-03-24 14:49:13 +11:00
AJCM-git
7a6fddce4f Moves guidebook UI logic to a UI Controller, some tweaks (#14601) 2023-03-22 23:41:43 -04:00
Chief-Engineer
64fcfd553e Add times to ban commands (#13804) 2023-01-31 12:43:44 +11:00
metalgearsloth
bc49409a93 Add command to list someone's bans (#12927)
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2022-12-20 11:40:13 +01:00
Pieter-Jan Briers
a6045e4538 Launcher info links. (#12781) 2022-12-02 17:23:43 -08:00
Kara
1eb4dfb13f Rules header cvar + RP server rules header (#10450) 2022-08-08 16:20:01 -07:00
Vera Aguilera Puerto
4a1949d7f0 Add simple wiki button to lobby (#6230) 2022-01-23 10:47:10 -07:00
ShadowCommander
be6cb75122 Add a wait time for the rules popup (#5823)
* Create new rules popup

* Implement accept and quit buttons

* Add rules accept timer

Forces the player to read the rules by making them wait.

Speed reading the rules took me just under 45 seconds which means it'll take longer than that if someone's reading this for the first time.

* Fix info rules header

* Change _rulesPopup to local variable
2021-12-24 17:32:33 -08:00
Vera Aguilera Puerto
54a2b5dee0 Adds rule button to lobby and character creation. Add IC naming warning. (#4760) 2021-10-03 21:48:29 +00:00
Galactic Chimp
392b820796 Removed old Loc.GetString() use instances (#4155)
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-06-21 02:13:54 +02:00