Commit graph

1023 commits

Author SHA1 Message Date
Jakob Gillich e51e970e51
Update to Scala 2.13 & Akka 2.6.5 (#461)
* update scala to 2.13 & update dependencies

* fix test

* import scodec-akka

* scala 2.13 fixes

* Work around futures not completing when awaited within object constructor

Co-authored-by: Mazo <mazo2@hotmail.com>
2020-05-26 16:16:22 -04:00
Mazo 270485fa4d
Merge pull request #447 from Mazo/vehicle-actor-safeguard
Safeguard against trying to send messages to a vehicle actor that no longer exists
2020-05-19 15:01:17 +01:00
Mazo d806e2448d Another Actor ref safeguard 2020-05-17 22:08:24 +01:00
Mazo 1092e76348 Safeguard against trying to send messages to a vehicle actor that no longer exists 2020-05-17 22:04:26 +01:00
Mazo 0ada64fd44
Merge pull request #444 from Mazo/revert-move-item
Revert "Let's Move Item, Together (#429)"
2020-05-16 19:28:10 +01:00
Mazo 896fa7bf07 Revert "Let's Move Item, Together (#429)"
This reverts commit 3f2240947b.
2020-05-16 19:10:06 +01:00
Mazo 4fa2be151b
Merge pull request #443 from Fate-JH/turret-kick2
Kick Occupants From Amenities When Facility Is Hacked (properly)
2020-05-16 18:56:49 +01:00
FateJH c439701cca seat number (despite it not really mattering right now) 2020-05-16 12:57:44 -04:00
FateJH 73965d13b6 properly kick mountable occupants from amenities when the base is hacked 2020-05-16 12:48:35 -04:00
Mazo f008b6c79d
Merge pull request #442 from Mazo/event-property-overrides
Temporary property overrides for event
2020-05-16 17:36:57 +01:00
Mazo 49fc029c51
Replace mutable HashMap with concurrent TrieMap to hopefully improve thread safety for inventory item operations (#441) 2020-05-16 12:18:31 -04:00
Fate-JH 3f2240947b
Let's Move Item, Together (#429)
* mix-in code for akka messaging move item, currently testing on infantry only

* adjusted structure of COntainable so callbacks are separate from message-producing functions, are separate from message-sending functionality; massaged LockerContainer until it could support control agency and created a wrapper for its Equipment interfacing; the control structure starts and stops when PlayerControl starts and stops, and it converts whenever necessary

* added failsafe conditions to Containable, such as blocking certain messages while completing a MoveItem call, or blocking all messages to reset disruptive MoveItem calls; depiction message callbacks for Player, Locker, and Vehicle, to properly depict the manipulation of items; eliminated the old code from WSA

* added useful comments to Containable; moved functionality for deployables, and for container'ing, and dropping logic out from WSA and distributed it appropriately

* handling terminal operations - buying an exosuit and selecting an infantry loadout; starting work on support for more persistent equipment timers local to the avatar (that were removed in this update; see wsa changes)

* linked terminal page/message with routing policy

* tuning vehicle loadout management and display

* separated use time from purchase time and applied a system that limits either if that same event would recur too soon; tuning exosuit and loadout changes

* some ask timeout handling and comments

* normalizing item on ground interactions

* rearranging the project structure

* merged with master; commas removed

* fixing tests

* added description strings to Tasks; adjusted the completion conditions for some Tasks

* a failed purchase will not block future purchases; increased timeout on move-item tasks

* corpses, even one's own, should have properly moveable inventories

* for better persistence, until GlobalDefinitions is renovated, moved the object id->name map onto the avatar object, for the purpose of timers; replaced a use of values in GridInventory for a map conversion

* max loadouts and max exosuit switch use same cooldown now; hopefully better clarifcation regarding held arm position
2020-05-16 12:18:08 -04:00
Mazo 05b87e77d3 Temporary property overrides for event 2020-05-16 15:53:16 +01:00
Mazo fdb4836fdf
Merge pull request #433 from Fate-JH/unowned-vehicles
Unowned Vehicle Decay
2020-05-15 19:37:36 +01:00
Mazo 377b6aaef7
Merge pull request #436 from Mazo/hold-the-door
Doors should no longer close if any alive player is still within range
2020-05-15 19:37:24 +01:00
Mazo 3b624ffdf4 Doors should no longer close if any alive player is still within range 2020-05-14 20:53:24 +01:00
FateJH d3c45a2ae1 clarification that the player has actually sat down 2020-05-14 12:16:09 -04:00
FateJH 8f339801cf max exo-suits did not look like one another; revert to Standard upon final clean-up 2020-05-13 22:59:01 -04:00
FateJH 6ef6d6834f vehicle ownership change on zone change and on logout 2020-05-13 21:53:55 -04:00
FateJH 2b8e879c2e restored vehicle decay upon a vehicle becoming unowned; PlayerSource should be much more simple 2020-05-13 21:24:46 -04:00
Mazo 42a2512aa0
Merge pull request #418 from Mazo/tower-painbox-fix
Ensure tower pain fields start up correctly
2020-05-12 20:43:04 +01:00
Mazo d36b3e2a95
Merge pull request #428 from Mazo/gitignore
Gitignore pslogin/src/main/resources/user.conf
2020-05-12 10:53:56 +01:00
Mazo 2400afb24b
Merge pull request #423 from pschord/username-validation
Validate usernames on account creation like PSFPortal
2020-05-12 10:49:56 +01:00
Mazo a4b0c84e0c Gitignore pslogin/src/main/resources/user.conf 2020-05-12 10:43:04 +01:00
Mazo a43109b661
Merge pull request #427 from pschord/akka-dispatchers
Map performance critical actors to dedicated dispatchers
2020-05-12 09:34:30 +01:00
Chord a80e869fb9 Map performance critical actors to dedicated dispatchers
Using built-in akka configs, we are able to map Actors to dispatchers in
a fine-grained way. Now each session router, network listener, and zone
have a dedicated set of threads. Currently all WorldSessions are sharing
a single worker pool, which means that the server could still crash if
all worker threads are exhausted. To prevent conditions like these, the
amount of time spent on single actors based on time and number of
messages can be tuned.Threads when not receiving work exit to save
resources.

Also all .conf files are now included in the resource packing process.
Users should create user.conf to override these .conf files to avoid
losing edits when updating the server version.
2020-05-12 07:41:46 +02:00
Mazo fbca774a37
Merge pull request #425 from pschord/remote-admin
Create PsAdmin framework
2020-05-11 14:45:57 +01:00
Chord c5528ac6a4 Revert missing class loader strategy 2020-05-11 15:24:10 +02: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 b80ca309f1
Merge pull request #424 from Fate-JH/fte1
First Time Events
2020-05-10 19:49:19 +01:00
FateJH bcf1d28f0c grouped first time event strings; gave Avatar and Player data structure supporting fte's; loaded basic fte's to suppress bangs 2020-05-09 17:41:57 -04:00
Chord 52de77a735 Validate usernames on account creation like PSFPortal 2020-05-09 20:13:26 +02:00
Mazo ceb58ed39a
No more pew pew in sanctuaries (#422) 2020-05-08 19:49:57 -04:00
Mazo 223236877f
Add some extra checks to ensure velocity is set to zero for deployed or undriven vehicles, to allow repairing/jacking when deployed on a slope as the client reports the last known velocity before deployment in VehicleStateMessage (#420) 2020-05-08 19:49:02 -04:00
Mazo de3188e5ef
Merge pull request #419 from Mazo/ptsv3-merge
Merge some parts of PTSv3
2020-05-07 22:06:22 +01:00
Mazo 58e64fd789 Merge some parts of PTSv3 2020-05-05 22:25:37 +01:00
Mazo 01a8ecd39e Ensure tower pain fields start up correctly 2020-05-04 13:23:10 +01: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 a7cfcd3af7
Painbox v2 (#417)
* Add rotation to building constructor and map files

* Change non-radius based painfields to use a bounding box check based on nearby amenities (disabled in caves)

* Reduce pain field damage to 5
2020-05-04 00:26:26 -04:00
Mazo f9ba930007
Change aircraft deconstruction on bail to go through vehicle's actor instead of directly to VehicleEvents actor (#416) 2020-05-03 23:46:33 -04:00
Mazo 8046fbe0ba
Fix implant stamina draining permanently when the client tries to activate an already active implant (#415) 2020-05-03 23:45:45 -04:00
Mazo 70e59effec
Tweaks to !hack admin command to reduce the message storm it causes (#405) 2020-05-03 23:44:50 -04:00
Mazo 4c249bb358
Fix hacking speed returning an integer, not a float (#402) 2020-05-03 23:43:32 -04:00
Mazo 8301dbe855
Merge pull request #396 from Mazo/turret-spam-reduction
Vanu turret actor message spam reduction
2020-04-29 23:50:59 +01:00
Mazo 19fe779a4e Remove unneeded log spam when a splash weapon hits the world 2020-04-29 22:31:23 +01:00
Mazo 31440d341b Reduce the amount of actor message spam from vanu turrets recharging their ammo constantly 2020-04-29 22:31:07 +01: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
Fate-JH 4e5bb3a252
Spawn Pad Fix (#394)
* reset pad order queueing system if the player forces a system fix; blocking dismounting of vehicle in certain situations, such as the vehicle just being spawned

* test fixes
2020-04-27 21:31:53 -04:00
Fate-JH 9f12cfa625
Vehicles Must Be Destroyed (#390)
* internalized the actions of the VehicleRemover into the vehicle control agency; this required modifications to vehicle deconstruction messaging, but also had implications for the vehicle spawn pad

* fixed tests; created a with-context ActorTest environment; hacked away the unnecessary aspects of VehicleRemover

* changes to tests; simplifications to terminated cargoing abilities

* removing unnecessary indirection from cargo handling at the end of a vehicle's life
2020-04-27 21:22:59 -04:00
Mazo 58134e02fa
Merge pull request #392 from pschord/jvmopts
Increase default SBT memory limit for build OOMs
2020-04-23 08:37:46 +01:00