Commit graph

45 commits

Author SHA1 Message Date
Fate-JH 0b0b23d99c
PostgreSGL 10 Standards (#1127)
* attempting to resolve pg14->pg10 issues

* unidon't

* rev 1

* rev 2

* rev 3

* rev 4
2023-10-08 11:52:50 -04:00
Fate-JH 626366996b restored kamon; fixed deployment state MatchError due to unexpected states; attempt to resolve broken model state of vehicle 2023-05-21 00:45:35 -04:00
Jakob Gillich ea91251002
update sbt & dependencies
removed kamon because it is not being used
2023-04-14 14:12:50 +00:00
Renovate Bot f543f2ec41
Update dependency org.scoverage:sbt-scoverage to v1.9.1 2021-11-01 15:53:43 +00:00
Renovate Bot 0001ef6ce5 Update kamon 2021-10-05 09:22:05 +00:00
Renovate Bot 8cbae08170 Update dependency org.scoverage:sbt-scoverage to v1.9.0 2021-09-17 23:35:13 +00:00
Renovate Bot 2b6fc82f71 Update dependency ch.epfl.scala:sbt-scalafix to v0.9.31 2021-09-17 21:43:47 +00:00
Renovate Bot 27f2713330 Update dependency ch.epfl.scala:sbt-scalafix to v0.9.30 2021-08-16 15:09:37 +00:00
Fate-JH b558444947
Merge pull request #890 from psforever/renovate/org.scalameta-sbt-scalafmt-2.x
Update dependency org.scalameta:sbt-scalafmt to v2.4.3
2021-07-12 07:03:25 -04:00
Renovate Bot d6bb0920ea
Update dependency org.scalameta:sbt-scalafmt to v2.4.3 2021-07-08 23:05:19 +00:00
Renovate Bot 2dc2f06bdb
Update dependency org.xerial.sbt:sbt-pack to v0.14 2021-07-08 15:03:51 +00:00
Renovate Bot 107ec68d71 Update dependency ch.epfl.scala:sbt-scalafix to v0.9.29 2021-05-31 00:42:47 +00:00
Renovate Bot a0646a3679 Update dependency org.scoverage:sbt-scoverage to v1.8.2 2021-05-28 22:18:03 +00:00
Renovate Bot 63cad900f1 Update dependency ch.epfl.scala:sbt-scalafix to v0.9.28 2021-05-22 09:12:02 +00:00
Renovate Bot 1f9928d9d6
Update dependency org.scoverage:sbt-scoverage to v1.8.1 2021-05-19 21:22:02 +00:00
Renovate Bot e70dd2e2e1 Update dependency org.scoverage:sbt-scoverage to v1.8.0 2021-05-10 21:00:54 +00:00
Renovate Bot 0204dce17a Update dependency org.scoverage:sbt-scoverage to v1.7.3 2021-05-04 17:44:30 +00:00
Renovate Bot 3636dc2189 Update dependency org.scoverage:sbt-scoverage to v1.7.1 2021-05-02 11:14:26 +00:00
Renovate Bot beb0576cb5
Update dependency org.scoverage:sbt-scoverage to v1.7.0 2021-04-28 13:18:12 +00:00
Renovate Bot 6705431c83
Update dependency ch.epfl.scala:sbt-scalafix to v0.9.27 2021-04-02 16:20:54 +00:00
Renovate Bot 1c266751e1 Update dependency io.kamon:sbt-kanela-runner to v2.0.10 2021-03-08 17:15:14 +00:00
Renovate Bot 265768f2ba Update dependency ch.epfl.scala:sbt-scalafix to v0.9.26 2021-03-01 00:35:45 +00:00
Renovate Bot d1c3f38fd4 Update dependency io.kamon:sbt-kanela-runner to v2.0.9 2021-02-21 21:33:35 +00:00
Renovate Bot 55b4eda5cc Update dependency io.kamon:sbt-kanela-runner to v2.0.8 2021-02-12 16:18:01 +00:00
Renovate Bot bc6522f3a8 Update dependency ch.epfl.scala:sbt-scalafix to v0.9.25 2021-01-15 18:48:46 +00:00
Renovate Bot eb8c4e9668
Update dependency io.kamon:sbt-kanela-runner to v2.0.7 2021-01-12 14:52:40 +00:00
Jakob Gillich 4c1b9a64d3
Fix thread safety issues
* Synchronize RC5 cipher access
* Replace avatar using message to self in AvatarActor
2020-12-31 04:26:23 +01:00
Renovate Bot 32f419bc3c Update dependency com.eed3si9n:sbt-unidoc to v0.4.3 2020-12-27 16:03:51 +01:00
Renovate Bot fd27364636
Update dependency ch.epfl.scala:sbt-scalafix to v0.9.24 2020-11-27 17:48:21 +00:00
Renovate Bot 9289573ffc Update dependency ch.epfl.scala:sbt-scalafix to v0.9.23 2020-11-05 00:48:57 +00:00
Jakob Gillich 407429ee21 Networking
The game uses a UDP-based protocol. Unlike TCP, UDP does not guarantee that
packets arrive, or that they arrive in the correct order. For this reason,
the game protocol implements those features using the following:

* All packets have a sequence number that is utilized for reordering
* Important packets are wrapped in a SlottedMetaPacket with a subslot number
* RelatedA packets ae used to request lost packets using the subslot number
* RelatedB packets are used to confirm received SlottedMetaPackets

All of these go both ways, server <-> client. We used to only partially
implement these features: Outgoing packet bundles used SMPs and could be
resent, but not all packets were bundled and there was no logic for requesting
lost packets from the client and there was no packet reordering, which resulted
in dire consequences in the case of packet loss (zoning failures, crashes and many
other odd bugs). This patch addresses all of these issues.

* Packet bundling: Packets are now automatically bundled and sent as
  SlottedMetaPackets using a recurring timer. All manual bundling functionality
  was removed.

* Packet reordering: Incoming packets, if received out of order, are stashed and
  reordered. The maximum wait time for reordering is 20ms.

* Packet requesting: Missing SlottedMetaPackets are requested from the client.

* PacketCoding refactor: Dropped confusing packet container types. Fixes #5.

* Crypto rewrite: PSCrypto is based on a ancient buggy version of cryptopp.
  Updating to a current version was not possible because it removed the
  MD5-MAC algorithm. For more details, see Md5Mac.scala.
  This patch replaces PSCrypto with native Scala code.

* Added two new actors:
  * SocketActor: A simple typed UDP socket actor
  * MiddlewareActor: The old session pipeline greatly simplified into a
    typed actor that does most of the things mentioned above.

* Begun work on a headless client

* Fixed anniversary gun breaking stamina regen

* Resolved a few sentry errors
2020-09-26 23:58:09 +02:00
Renovate Bot 3e4ddbb1ae Update dependency ch.epfl.scala:sbt-scalafix to v0.9.21 2020-09-22 02:32:14 +02:00
Renovate Bot bde8c62b07 Update dependency org.xerial.sbt:sbt-pack to v0.13 2020-09-20 20:51:25 +02:00
Renovate Bot b573530b25 Update dependency ch.epfl.scala:sbt-scalafix to v0.9.20 2020-09-02 15:20:19 +00:00
Renovate Bot bb6b767981 Update dependency org.scalameta:sbt-scalafmt to v2.4.2 2020-09-02 08:08:08 +02:00
Jakob Gillich 3bdc681c9d Avatar Persistence
* Add AvatarActor: Responsible for managing the session's avatar object
* Convert Avatar object to case class
* Add persistence for BEP, CEP, implants, certs and cosmetics
* Add cosmetic chat commands and handle UI packet
* Add /setbr, /setcr, /certadd, /addbep, /addcep GM commands
* Convert zone maps to JSON
* Update to Scala 2.13.3 and fix warnings
* Fix MAX cooldowns not being applied when purchased manually
* Normalize database table names to singular
* Add docker image build
2020-08-22 16:19:13 +02:00
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
FateJH 7162aa9c17 reactivating sbt-unidocs plugin 2020-05-29 19:12:07 -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 b1be0ffdb3
Upgrade SBT to 1.3.6 (#322) 2020-01-13 17:59:24 -05:00
Fate-JH a5a85e6cc3
Upper Body Angle (#292)
* constrain angles on specialized yaw and pitch fields

* integrated new Angular Codec into OCM and OCDM of avatar; corrected tests; wrote shortcut for whether a unit is moving (under its own power)

* apply clamp

* Accessed containers while moving

Removed unintentional code duplication outside of conditional.
2019-11-29 11:14:25 -05:00
pschord 33e4f2b35e
SBT: add support for unified docs (#284)
Unified documentation can be generated with the sbt unidoc command.
2019-10-21 16:29:36 -04:00
Chord ce5461da66 Travis: enable code coverage 2016-07-26 22:31:54 -04:00
Chord 0d986bcb29 Migrate to sbt-pack vs assembly for faster packing 2016-04-22 23:02:47 -04:00
Chord d96fce6299 Initial Commit 2016-02-05 03:19:13 -05:00