Commit graph

20 commits

Author SHA1 Message Date
Chord 82e8840176 Create PsAdmin framework
PsAdmin uses a dedicated TCP port to allow for remote queries and
command to be sent to the running World/Login server. Commands are a
single command followed by zero or more arguments.

Commands may require access to the ActorSystem, so they will get their
own dedicated actors to be able to handle the different messages
required that can be sent in response to a query. The return line is in
JSON to allow for easy parsing by applications, such as web servers.
An interactive client is easy as being able to parse json and buffer
command input.

Some basic commands are implemented for now:

* shutdown - kills the actor system
* list_players - gets a list of players on the interstellar cluster
* dump_config - get the running config
* thread_dump - dumps all thread backtraces (useful for prod debugging)

More advanced commands like kick/ban will require additional testing.
2020-05-11 04:18:29 +02:00
Fate-JH 53ecee566a
Persistence (#337)
* constructed service actor to handle persistence of player on server beyond the reaches of WSA from one login to the next; created in PSLogin, interfaced with and updated in WSA

* for what it's worth, players can be completely logged out of the world after 60s of inactivity, alive Infantry only right now;  some code was removed from WSA to make it accessible to other classes but it's incomparable to the new code; broke, fixed, compromised on the code that handles loadouts, server login time, etc.

* moved another common vehicle function into global space; persistence object for players in vehicles during log-out or relogging in a vehicle

* support for relogging when dead/released/unfound; silenced implant slot setup during character select screen

* tested and commented code for managing player avatar persistence

* clarificaion of WSA postStop

* test fixed

* postStop change to account for WSA being cut short during initialization

* clarification of SquadService logout

* player died during setup; probably a relog

* kill the doppelganger WSA; die when you are actually dead

* created manifest to assist with vehicle gating; vehicle gating now accomodates the persistence model much better

* fixed the test

* fixed initial vehicle seat access permissions; moved a subscription to AvatarService to support persistence

* bug fixes: safer GridInventory collision checks, plus specific exceptions; SessionRouter waits for the account intermediary before allowing itself to be started; WSA - match error colution, and MAX without arm now creates the arm it expects

* adjusted insertion and removal code to make inventory management less prone to partoial insertions of removals; inventory integrity checking code writen, but no plans on implementing it yet
2020-02-14 10:54:52 -05:00
pschord d08911d07c Account and Character Database and Config Improvements (#317)
* Create Account/DB abstraction

* Fix crash when removing boomers from deconstructed player

* Extend config to include database and worldserver info

* Improve ConfigParser tests

* Add database setup documentation

* Add xTriad to THANKS file

**

* Increase bcrypt rounds and fix readme link
2020-01-10 11:13:37 -05:00
Chord 83ac66a3bf Increase SessionReaper timeouts and add to config file
This should fix issues disconnecting at loading screens/zone changes as
no packets are being transmitted during this window. If the
WorldSessionsActor is also slightly overloaded, the session reaper can
drop the session mistakenly due to no outbound traffic.

Also fix-up WorldConfig.Get with better error messages along with more
tests.
2019-12-21 15:20:07 -05:00
Mazo 2048fa19cb Vehicle jacking (#264)
* Jacking changes

* GOAM documentation

* Don't disable a deployed router's internal telepad when cleaning up remote telepads (i.e. when router is hacked)

* Reduce some log spam
2019-08-21 10:39:44 -04:00
pschord 3c0b55a99e Update copyrights for 2017 (#109) 2017-03-06 19:30:45 -05:00
Chord ae6687c38f Create advance session management and reaping 2016-07-30 21:08:40 -04:00
Chord c1257cb1ec Fix MDC sessionId passing, annotate ping message 2016-07-30 17:01:43 -04:00
Chord d880a95aee Add trace logging for more packets 2016-07-26 02:55:05 -04:00
Chord 8b14015582 Add environment printing and fix comments 2016-07-19 02:20:36 -04:00
Chord c18ec5c6ba Work around scodec-akka bug and remove old UDP packet 2016-06-04 03:15:27 -04:00
Chord 9a0ef28723 Improve session router name for log output purposes 2016-05-19 03:14:38 -04:00
Chord d27bd7988c Made some hacks to get to 100% on the World login
Literally sending raw bytes instead of actual packets. No fks given
2016-05-17 20:34:21 -04:00
Chord 4d52d65b33 Add fault tolerance to SessionRouter and it's children 2016-05-13 23:31:27 -04:00
Chord f81d67f959 Fix missing MDC Actor tell on session creation 2016-05-02 22:28:11 -04:00
Chord e299abb03a Add SLF4J MDC session logging 2016-05-01 21:41:10 -04:00
Chord 1318ebd751 New SLF4J logger log4s. ANSI colors
Used jANSI for Windows console color support. Log4s for a Scala logging
facade (which uses SLF4J). Using logback as the logging driver.
2016-05-01 04:37:36 -04:00
Chord 53488613d6 New session pipeline and able to see server selection 2016-04-24 19:06:17 -04:00
Chord a3de62db90 Add copyrights to top of all files 2016-03-04 15:14:50 -05:00
Chord d96fce6299 Initial Commit 2016-02-05 03:19:13 -05:00