* Groundwork for nanocom boosters
* The item use handler now has a switch for multiple item types (currently gumballs, and a stub for boosters)
* All item types are now checked for expiration, not just vehicles
* implement nanocom booster helpers, save and expiry
* implement authentic taro and fm modfication
* magic number and code refactor
* make sure only close by group members are counted
* add safe taro fm handling, rate command, race and mission booster logic
* add config option to disable authentic group scaling
* rename for consistency
* make rates percentages, fix chat message, add config options
* add config option to the ini file
* add index guard for hasBoost functions
* reorder config ini options
* add bank item expiry option
* fix trade oversight
---------
Co-authored-by: CakeLancelot <CakeLancelot@users.noreply.github.com>
This PR enables auth cookies to be used simultaneously with plaintext paasswords sent in the cookie authID field.
* Hoist a bunch of checks from the login packet handler into helper functions.
* Rename the LoginType enum to AuthMethod and distinguish it from the iLoginType packet field (see comment in code for why these should be decoupled).
* If the provided token does not pass the cookie check and password auth is enabled, treat it as a plaintext password and authenticate if it is correct.
This is to prevent accidental exposure of the monitor port to the public
internet if a server admin enables the monitor port without it being
properly firewalled. There is now a config option that lets you override
the address to bind to, so that it can still be made available to other
machines over private networks such as Wireguard.
* Support disabling Landlock at compile time or runtime if unsupported,
without disabling seccomp
* Support older Landlock ABI versions
* Support an extra arbitrary RW path, inteded for the coredump dir
* Support database locations other than the working directory
Additionally:
* Add EXPOSE hints to Dockerfile
* as -> AS in Dockerfile to resolve warning
* Point docker-compose to our docker hub image
* Remove version property in docker-compose.yml as it was deprecated
* Auth cookie support
* Add config option for auth cookie support
* Safe handling of TEGid/auth_id strings
* Fix bad size calculation due to pointer cast
* Expiration timestamp instead of valid bit
* Change setting to "allowed auth methods"
This allows plaintext password auth to be disabled altogether
* PR feedback
* Client synchronization improvements
* Remove bad comment
* Remove guard on PC_TICK
* Fix delayed loading of nano skill icons
We actually don't need to wait for post-load to do the second nano book send.
That adds unnecessary delay. Moving it to right after `P_FE2CL_REP_PC_ENTER_SUCC`
does the trick and gives the client plenty of time to fetch the icons before
loading in-game.
* Don't send unnecessary nano book subsets pre-enter
* Fix comment