Commit graph

15 commits

Author SHA1 Message Date
Jakob Gillich e0defe8240
Persistence #1 featuring quill (#508)
* Add .scalafmt.conf

* Adopt quill for database access

* Removed postgresql-async
* Refactored all instances of database access
* Creating duplicate characters of the same account is no longer possible
* Rewrote large parts of LoginSessionActor

* Implement migrations

* Move overrides into subdirectory

* Make usernames case insensitive

* Use LOWER(?) comparison instead of storing lowercased username

* import scala.util.{Success, Failure}

* Add config and joda-time dependencies

* Add sbt-scalafmt

* Use defaultWithAlign scalafmt preset

* Format all

* Add scalafix

* Remove unused imports

* Don't lowercase username when inserting

* Update readme

* Listen on worldserver.Hostname address

* Remove database test on startup

It could fail when the global thread pool is busy loading zone
maps. Migrations run on the main thread and also serve the
purpose of verifying the database configuration so it's fine to
remove the test altogether.

* Refactor chat message handlers, zones

What started as a small change to how zones are stored turned
into a pretty big effort of refactoring the chat message handler.
The !hack command was removed, the /capturebase commandwas added.

* Expose db ports in docker-compose.yml

* Silence property override log

* Rework configuration

* Unify configuration using the typesafe.config library
* Add configuration option for public address
* Configuration is now loaded from application.conf rather than worldserver.ini
* Refactor PsLogin and remove unnecessary logging
* Move pslogin into net.psforever.pslogin namespace

* Fix coverage
2020-07-13 23:54:05 -04:00
Mazo 11a01b038f
Add some logging for suspicious HitMessages (#459)
* Add some logging for suspicious HitMessages

* Add HitPositionDiscrepancyThreshold config settings

* Add hit position discrepancy check to LashMessage & SplashHitMessage

* Whitespace
2020-05-26 16:17:19 -04:00
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
Mazo 61360d97e0
Kamon tweaks (#401)
* Move application.conf to src/main/resources

* Change ClassLoaderLayeringStrategy for Kanela / Kamon to intiialize properly

* Attempt at reducing PTSv3 log spam

* Silence some more logspam

* Disable oshi logging entirely
2020-05-04 00:27:41 -04:00
Mazo eabb952683
Add kamon.io metrics reporting (#395)
* Add kamon.io metrics reporting

* Line length + whitespace
2020-04-29 14:59:12 -04:00
pschord 1492309bfb
Improve worldserver documentation on DB setup 2020-01-12 11:33:04 -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
pschord 53d677dc5d Config: add developer.Netsim.* (#285)
Break out configuration of the UDPNetworkSimulator to worldserver.ini
2019-10-30 22:40:00 -04:00
pschord c3d19b5377
Create PSForever config framework (#283)
We can now parse arbitrary INI configuration entries. This will allow
server customization and testing without recompiling the server.
2019-10-21 14:12:26 -04:00
Chord d9411ee03d Increase logback scan interval 2016-08-19 03:16:45 -04:00
Chord ccad92a555 Increase client keep alive interval, add dynamic log files 2016-08-05 18:12:51 -04:00
Chord c1257cb1ec Fix MDC sessionId passing, annotate ping message 2016-07-30 17:01:43 -04:00
Chord 6c86ac92a7 Fix logback debug file and bump version 2016-07-29 03:02:58 -04:00
Chord 1168022db9 Add resource directories and config/ 2016-07-26 21:48:58 -04:00