Commit Graph

30 Commits

Author SHA1 Message Date
Ceikry ebf2ed4ab4 New server config option to preload the world map on boot, removes lag caused by lazy loading (server.preload_map = true)
Cached region clipping flags for faster lookups
Minor optimizations to setAttribute codepath which avoids unnecessary checks
Fixed a bug that would allow entities to attack through walls
Fixed two separate bugs that would cause odd behavior attacking large entities from certain angles
Removed unnecessary schema from global.sql
Ensured that all but the `members` and `worlds` tables could be safely dropped out of the DB
Better automatic handling for creating the default server account and creating the default server clan
Fixed bugs related to interfaces flagged as uncloseable that would cause stack overflows
Fixed premature home teleport while in tutorial
Fixed getting stuck by going back up ladder in tutorial
Fixed bug that prevented bots from taking damage
Fixed a bug where players would not be in the default clan after completion of the tutorial
Green Dragon bots reintroduced, no longer buy any items (these bots sell loot from green dragons in the wilderness on the GE)
2022-06-24 14:40:26 +00:00
Ceikry 40dd58d610 Fixed many issues with login
Reconnecting to an existing session can no longer cause an account wipe
Player saves can no longer be saved unless they've already been parsed
Sessions now have their most recent ping properly set
Sessions can now recover from a hypothetical scenario where the session's player reference becomes null but the player is still in-game
Players now disconnected properly if no packets have been received from the client in the last 20 seconds
2022-06-19 23:20:01 +00:00
Ceikry 5c28375c3b Pathfinder now correctly paths to the closest accessible tile of an object, not the closest tile numerically. This should fix instances where you end up running around an object before interacting with it. 2022-06-11 12:35:16 +00:00
Ceikry 2045143378 Removed independent management server
World server now handles its own management-server-related functionality, a new management server will be written in the future to facilitate cross-world event syncing
World server now runs standalone, this requires the client to be configured to connect the world server port for the world list (world list was previously supplied by the management server on port 5555, which should be swapped to the world server port that is generally 43595 for world 1) work is in progress to update client launchers to make this as seamless as possible
This should resolve issues where players sometimes get a login error claiming they are already logged in
2022-06-09 10:09:57 +00:00
Ceikry a40dbfbc1c Improved server shutdown order
Improved GE threading, introduced locks fixing server lags and GE offers not executing
Moved player login hooks to the major update worker (from management server thread)
Fixed random events in rare circumstances causing noted item loss
2022-05-24 11:02:05 +00:00
Ceikry 77320289b5 No longer running ticks in a coroutine, should address apparent lag after server has been running a while 2022-05-16 12:27:45 +00:00
Ceikry a5f9c64dbb New dynamic region abstraction, consumed in construction 2022-05-03 23:18:11 +00:00
Ceikry 1f68dbaed0 Rewrote Pyramid Plunder Minigame, features improved authenticity amongst other improvements 2022-04-05 03:12:28 +00:00
Ceikry db7b9d06b2 Add LogoutListener interface - allows a class to call some code on player logout - improved version of logout listeners.
Add StartupListener interface - allows a class to call some code on server startup without adding messy code elsewhere
Add ShutdownListener interface - allows a class to call some code on server shutdown without adding messy code elsewhere
Add TickListener interface - allows a class to call some code on each tick without adding messy code elsewhere
Converted all applicable content over to using these new interfaces
2022-03-31 13:52:19 +00:00
Ceikry 728d221d27 Fixed another RW drop regression where server would not start on headless environments 2022-03-20 08:33:40 +00:00
skelsoft a4ca46d262 Redwings Drop III.5: Tutorial Island, Tribal Totem 2022-03-19 22:54:15 +00:00
ryannathans 662efb07af remove server monitor surprise 2022-01-11 21:14:58 +11:00
ryannathans 8dbab51dfc hotfix for headless environments (again) 2022-01-11 21:06:25 +11:00
Ryan 47bc652eed Fix stability issues and a various assortment of other bugs 2022-01-11 09:36:57 +00:00
ceikry 1e6ca6b379 Reintroduce watchdog 2022-01-01 02:12:23 -06:00
ceikry daf050230c Disable server monitor for now (note to self: Kotlin objects instantiate no matter what, even if not being called to.) 2021-12-31 22:46:59 -06:00
ceikry 777e9b7f04 Hotfix for headless environments 2021-12-31 22:44:28 -06:00
Ceikry d7fd988f50 API overhaul, convert Toy Plugins to Listeners 2021-12-19 08:59:35 +00:00
Ceikry 10219652b0 Massive refactor of several different components including networking fixes 2021-12-19 05:40:17 +00:00
Ceikry 6af8b79126 Server Performance Monitor, Plethora of Performance Improvements 2021-12-19 03:06:17 +00:00
ceikry be194f6e5e Slight code cleanup 2021-08-08 23:28:27 -05:00
ceikry 7e30a30192 Change update worker to dedicated thread 2021-08-08 23:27:49 -05:00
ceikry b656da6d5d Made weekly things like penguins reset on Monday 2021-07-27 08:24:05 -05:00
ceikry 838edacba5 Made the various signposts like cow and church sign authentic and persistent 2021-07-26 19:36:36 -05:00
Ceikry 033830c29b Add Server Storage and More! 2021-07-25 06:11:08 +00:00
ceikry f683c76a7b Corrected tick timing 2021-07-21 18:52:31 -05:00
ceikry 7f0b45241b Packet writeouts are now queued excluding dynamic packets 2021-07-07 17:32:48 -05:00
ceikry a56635c52e Fixed weird bug with daily restart code 2021-07-03 19:19:17 -05:00
ceikry a42ae7d025 Add daily restart functionality 2021-07-01 18:16:23 -05:00
Ceikry 7569a62c21 Kotlin/Java split 2021-03-12 00:16:27 -06:00