Commit Graph

872 Commits

Author SHA1 Message Date
bushtail c3a37d5cbf Add slayer task content API functions in preparation for coming work 2022-06-23 14:06:58 +00:00
vddcore b094fe5b0c Rewrote entire banking system (aside from dialogue), converted to listener system 2022-06-23 13:31:17 +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 f503d710ab Reduced revenant spawn burst size to stop them getting stuck
Fixed unit test NPE
New admin command clearrevs to clear revenants
2022-06-18 16:22:25 +00:00
Ceikry b2ad6d9712 GE offer notification system now supports opt-in privacy to remove username from messages
Opt-in to GE privacy with new in-game command ::geprivacy on
Removed discord GE offer update notifications (only new buy/sell offers shown)
Limited in-game GE notifications to player offers only
2022-06-18 14:04:50 +00:00
Ceikry 6d12982b76 Discord GE offer notifications via webhook
This is disabled by default unless server config server.discord_webhook is set to a discord webhook URL
2022-06-18 02:36:59 +00:00
downthecrop 8d98fbfd57 Intentionally burning seaweed->soda ash will now stop at specified Make-X 2022-06-16 23:20:07 +00:00
bushtail c5d0173282 Converted some Al-Kharidian NPCs to listeners:
Ali the Leaflet Dropper
A'abla
Fadli
Surgeon General Tafani
Sabreen
Jaraah
2022-06-16 10:29:02 +00:00
Ceikry 0e74cf0495 Revenants have been reworked to feel much more present, more alive and more dangerous - Beware!
Revenant spawns, patrols and areas of exploration are now based on era-authentic maps
New revenant command for admins ::setrevcap to set max number of revenants
New server config world option revenant_population
2022-06-13 12:47:15 +00:00
vddcore 053edc3f34 Fixed character misgendering themselves during secondary bank account opening dialogue 2022-06-13 07:26:10 +00:00
skelsoft 49f3d3cff3 Overhauled and analysed the shooting star locations to match authentic data from the era
East of Dark Wizards' Tower location added
Jatiszo mine location added
Lunar Isle mine location added
Miscellania coal mine location added
Neitiznot runite mine location added
Ardougne mining site (Legends Guild) location added
Kandarin Coal Trucks location added
Port Khazard mine location added
Kharidian desert clay mine location added
Granite and sandstone quarry location added
Burgh de Rott bank location added
Mos Le'Harmless bank location added
Lletya bank location added (requires Roving Elves to be completed)
Piscatoris mining site location added
Wilderness Volcano bank location added
Wilderness hobgoblin mine location added
2022-06-13 06:01:54 +00:00
Coaltong c54abe696c Implemented Falador farm sheepdog interactions, can now be fed bones and meat 2022-06-13 05:02:23 +00:00
Coaltong 09056402e4 Dough making rewrite
Making dough no longer consumes buckets/pots/etc
Locks various dough types behind appropriate cooking levels
2022-06-12 07:32:18 +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
Coaltong 1c560dd4c6 No longer get stuck in the cutscene at the end of The Lost Tribe 2022-06-10 13:06:35 +00:00
Coaltong 27e7699f7d NPC Woman ID 3227 is now pickpocketable 2022-06-10 12:22:29 +00:00
skelsoft 2e80fbc669 Defender drop rate now correctly 1/50 2022-06-10 12:01:57 +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 28d9a58a6e Fixed river troll random event failing to spawn for skillers and other low combat levels 2022-06-05 23:43:54 +00:00
Ceikry 67339cfd7e Fixed bank interface item rearrangement for authentic game client 2022-06-05 07:55:59 +00:00
skelsoft b6ddc3a427 Added Fist of Guthix Teleport to Ring of Duelling 2022-05-31 13:23:55 +00:00
skelsoft b1aa9ea39a Jad practice mode in fight caves now correctly skips to Jad fight 2022-05-31 13:15:51 +00:00
Ceikry 185496e561 Add maven 2022-05-31 02:51:22 +00:00
Coaltong 0b0fc5271d Added missing sound effects and animations for lunar spells
Stat restore spell now includes a wider range of potions
2022-05-30 11:26:06 +00:00
vk b3f17b249d DFH drop rate from chewed bones corrected to 1/250 instead of 1/500 2022-05-29 04:24:54 +00:00
Coaltong 0a1316bb53 Ogres (NPC ID 115) now count towards orge slayer task 2022-05-27 11:50:01 +00:00
Coaltong e46151afb1 Giant Frog Legs now consumable and heal 6 HP 2022-05-27 11:37:23 +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
Ryan 40d227d430 Reverted alchemy changes, turns out the item value data in the game cache is so unreliable it's essentially unusable 2022-05-21 17:01:27 +00:00
Ceikry bba7c51bb2 Rollback uid changes, back to using username hash for uid. Fixes GE offers going missing after update 2022-05-21 14:04:15 +00:00
Ryan 09ce411a0c Removed all alchemy values from config (inauthentic values, seem to have been copied from RS3) - we will probably need to add new overrides as they are discovered, none known at time of writing
Defined low alchemy value as item value * 0.4 unless override exists in config (authentic)
Defined high alchemy value as item value * 0.6 unless override exists in config (authentic)
2022-05-20 12:02:03 +00:00
Ceikry 334bc77d06 Improved the GE database access to use a basic reference counter for the connection that automatically closes the connection when no one is using it anymore
Grand Exchange now uses the GE sqlite database's price index table to track price changes
Removed the old price index (confusingly called GrandExchangeDatabase.java)
Grand Exchange prices are now dynamic and influenced by trades (weighted stepping average price)
Fixed GE interfaces not loading on login
2022-05-20 11:23:30 +00:00
Ryan 01a4292123 simplified ring of the star sprite teleport dialogue, now tells you if star has been mined 2022-05-19 23:11:47 +00:00
Ceikry 907838bb5f Addendum to login/auth improvements to make sure communication info gets parsed
Only update db fields if they have changed
2022-05-18 13:59:51 +00:00
ceikry 7faa0a2c7c Make sure we don't call exitProcess() if the system is already terminating 2022-05-16 12:41:58 +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 07065c7e79 Random Events should now spawn correctly
Fixed an issue that was causing tick event hooks to not fire
2022-05-16 12:22:29 +00:00
Ceikry 8835799230 Refactored equipment.add, fixes bug #420 (blaze it) 2022-05-16 11:54:23 +00:00
Ceikry 9ab9885eef Introduced modular components for authentication, including the storage backend
Servers in dev mode now have a no-auth equivalent that allows any user/pass combo without registration
Added a ban command
Added a mute command
Hooked up the mute functionality of the report screen (for pmods+)
Cleaned up all the now-unused classes for player SQL stuff
Player SQL stuff now uses entirely prepared statements
No longer storing PC name, MAC address, serial number as these are inauthentic components of the protocol Packet to be corrected in the future to allow closer compatibility with authentic clients
Used less threading for the SQL queries/updates as these were causing issues both with the old system and the new
Updated ::resetpassword and ::setpasswordother commands to use the new server authentication pipeline (to ensure things are always correctly set)
Refactored the login read event, now handles more exceptions and edge cases
2022-05-16 11:51:42 +00:00
Gavin Alvesteffer dd1eed7e39 man (ID 3224) is now pickpocket-able 2022-05-16 06:27:58 +00:00
Ceikry 966a5e1c55 Fixed the load order of configs with plugins - many configs are now loaded after plugins so that npc/item/object handlers in the old plugin system are set properly 2022-05-15 23:22:30 +00:00
Ceikry 24cea604fc Class scanning now distinguishes side effectful plugins from our pure content interfaces
Server store is now loaded and parsed ***before*** side effectful plugins
2022-05-15 11:20:27 +00:00
Ryan ebc540c7c7 selling items for tokkul now returns the correct amount of tokkul (10x less) 2022-05-14 13:23:27 +00:00
Ryan efbe754654 fixed Family Crest bug where Dimintheis would not replace gauntlets if you lost them (fixes #312)
fixed Family Crest bug where Dimintheis would give you infinite gauntlets (fixes #257)
fixed Family Crest bug where Dimintheis didn't check equipped gloves or second bank
fixed Family Crest bug where Dimintheis didn't remember which gauntlets you had
changing gauntlet enchantment now authentically costs 25k GP (and free the first time)
added content API function for checking if a player possesses any particular items anywhere
added content API functions for starting and finishing quests
2022-05-14 10:48:35 +00:00
Ryan d5bb44230c implemented seaweed nets at fishing colony, but also locked it behind the appropriate quest (which isn't implemented yet, so no real change for players yet)
fixed NPE in quest getStage code when getting stage of quests that haven't been implemented yet
2022-05-14 10:42:00 +00:00
Ceikry 90060fde21 Item sets now appear and can be unpacked at the GE
Added a proper mock session that gets used for mock players in unit tests. Allows verifying that certain packets made it to the IoSession (the stage right before sending it to the client)
2022-05-14 10:24:47 +00:00
Ceikry 7478f68d40 fixed a bug that allowed purchasing 0-stock items (you would only lose gold without getting an item) 2022-05-14 06:24:47 +00:00
bushtail fee3b02e3d Improved handling of buying Dragon Scimitars from Daga in dialogue and declining the Fremennik Trials quest from Brundt 2022-05-14 06:14:07 +00:00
bushtail 13088762d1 Implemented turning kebabs into super kebabs with red hot sauce 2022-05-14 06:07:23 +00:00
downthecrop a5a0e9c9b4 Beer item ID Council Workman interaction changed from normal beer to the beer from Fremennik longhall
Koschei boss fight sessions are now World Pulses instead of player pulses
Refactor TFTInteractionListener to use ContentAPI
Allow Neitiznot items to be equiped after Frem trials
2022-05-14 05:31:26 +00:00