Commit Graph

107 Commits

Author SHA1 Message Date
Ceikry e429b15911 Fixed exception thrown when invalid fairy ring codes are entered
Fixed unhandled hairdresser button that lead to OOB exception
Fixed oversight in ::loc that causes exceptions to be thrown in headless environments
2022-06-27 14:21:50 +00:00
vddcore ee5bc78b62 Refactored item note/unnote on bank booth handling
QoL - only applies to bank booth, not banker NPCs
Added server config world.bank_booth_note_enabled (enabled by default) to toggle the QoL globally
Added server config world.bank_booth_note_uim (enabled by default) to toggle the QoL on ultimate ironmen only
2022-06-27 14:06:47 +00:00
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 419533e6c8 Added support for many common variations of the jagex coordinate format for admin command ::tele, including:
regionX_regionY
plane_regionX_regionY
regionX_regionY_localX_localY
plane_regionX_regionY_localX_localY
2022-06-23 23:27:36 +00:00
vddcore 385a04a5b9 ::rolldrops admin/testing command now clears container between invocations 2022-06-23 23:11:10 +00:00
vddcore b094fe5b0c Rewrote entire banking system (aside from dialogue), converted to listener system 2022-06-23 13:31:17 +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
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
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 185496e561 Add maven 2022-05-31 02:51:22 +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 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
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
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
Ceikry a5f9c64dbb New dynamic region abstraction, consumed in construction 2022-05-03 23:18:11 +00:00
enosich a5f3f93048 Make ::setvarbit take the first and second args instead of first and third 2022-05-02 04:00:00 +00:00
ceikry d4082c60f7 Add npc configs entry for ignoring tolerance 2022-04-18 13:38:03 +00:00
Ceikry e958b8d255 Completely rewrote the shop system.
Shop restocking now works properly, with per-item-in-shop granularity as well. (Thanos tool update released that allows defining this)
Shops properly restrict ironmen from buying from player stock/overstocked items
Fully functioning individualized player stock support (need to set a server config variable to enable, disabled by default. Specifically, set personalized_shops = true in the world section of the config.)
The shop pricing formula now scales up/down with the authentic ratios based on stock quantity.
Buying or selling, for example, 1000 of an item, now does the proper calculation for each individual item in the purchase/sale rather than exchanging the full 1000 for the initial price at the time. (For example, in the old shops, feather price at full stock was, say, 6gp. You could buy 1000 feathers at once for 6000gp. Authentically, the pricing for each feather should scale as the stock goes down. Now 1000 feathers at once costs a bit over 7k gp, despite the initial price remaining 6gp.)
General store player stock is now shared between all general stores
2022-04-12 08:46:21 +00:00
Ceikry d7e7ee348d Better cache parsing, reading more data from cache instead of code/config defined values 2022-04-09 02:25:16 +00:00
Ceikry c4e41f4ab7 Added region specific teleport commands for admins 2022-04-08 10:21:54 +00:00
Ceikry 1f68dbaed0 Rewrote Pyramid Plunder Minigame, features improved authenticity amongst other improvements 2022-04-05 03:12:28 +00:00
Ceikry 24b28d84fd Converted some content to the new event hooks and listeners systems in order to clean up code a bit
Added interfaces for standardizing the saving/loading process for data, and allowing it to be declared independently of an entry in PlayerSaver/PlayerSaveParser
2022-04-04 07:12:54 +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
Logg abdcc34702 Added a practice mode on Jad, so that Noobs can practice Jad without being in the cave for an hour. Costs 8000 TokKul + supplies. 8000 TokKul is given back if the Noob is successful at defeating Jad. Video of dialogue/functionality: https://www.youtube.com/watch?v=ZESnT0278gI 2022-03-30 23:03:34 +00:00
Ceikry 7739d49d4a Added ingame rules confirmation screen 2022-03-28 13:47:57 +00:00
Ceikry 7709c3bb04 Implemented a brand new cutscene system
Converted Lost Tribe's cutscene to the new system
2022-03-27 05:14:16 +00:00
Regenleif 3c839937eb Added config parameter for the offerer of adventure bot GE announcements 2022-03-25 09:07:43 +00:00
skelsoft 0b9d540d45 Redwings Drop III: Ceikry GE, Job, Slayer, Achievement Diary rewrites 2022-03-18 23:35:19 +00:00
ceikry 8617da1961 Quick maintenance 2022-03-09 19:49:59 -06:00
ceikry e90e4ad49b Revert "Quick maintenance"
This reverts commit 0ab5e1d6e6.
2022-03-09 19:48:24 -06:00
ceikry 4a85094c9d Merge remote-tracking branch 'origin/master' 2022-03-09 19:47:16 -06:00
ceikry 0ab5e1d6e6 Quick maintenance 2022-03-09 19:47:10 -06:00
skelsoft 7968367e14 The Fremmenik Trials quest has been completed, now accesible in-game
Barrows prayer drain timer standardized to 18 seconds

Giant Mole's Burrow mechanic corrected in functionality. Burrow: When the mole's health is between 5-50%, there is a 25% chance for any incoming attack to cause it to burrow away into another location. There is also a chance that the dirt she digs while burrowing to escape can extinguish the player's light source (shown with dirt splatters on the player's screen), though covered light sources will be unaffected by this.

Mole Lair's unique music track now correctly plays across the entirety of the Mole Lair region

Giant Mole droptable corrected. Egregious RSPS noted secondary drops removed. G. Mole can now correctly drop random Hard Clues, and the 100 Iron Ore (noted) drop has been added.

Hostile Random Events return! Tree Spirit, River Troll, Rock Golem, Shade, and Zombie Hostile Random Events rejoin the Evil Chicken in their AFK-anihilation onslaught! Beware!

Mounted Glories now have full right-click Teleport options

You can now build an Obelisk inside your POH at 41 Construction, as the centrepiece spot inside a standard Garden room

Can now trade in Long and Curved bones to Barlak in the Dorgeshuun Mine (temporary location for now) for Construction EXP (after completion of The Lost Tribe)

Ridiculous amounts of funky fresh new NPC dialogues by Q in the following areas: LLetya, Isafdar, Ardougne, Witchaven, Ape Atoll, Miscellania, Dorgeshuun, Zanaris and many many many more!

Potion decanting note bug should now be fixed and not eat up all your notes when attempting to decant

Weapon Poison addition and removal fixes

All currently functional Summoning familiars with invisible skills boosts are now correctly added to the game! Pyrelord, Forge Regent, Arctic Bear, Lava Titan, Magpie, Spirit Graahk, Spirit Larupia, Spirit Kyatt, Void Ravager and Wolpertinger now boost skills alongside their other helpful abilities.

The Mining Guild can now be entered under 60 Mining via the use of skill boosts

The Lady of the Lake will now finally enhance Excalibur for you if you have the prerequisite Seers Hard Diary and Merlin's Crystal completed, and the headband and sword equipped when talking to her.

Can now fish slimy eels

Restored the removed/regressed/whatever Bot Dialogues!

All Ancient Warriors' Equipment (Vesta, Zuriel etc) is now correctly tradeable and droppable in its un-degraded form

Some hat clipping fixes

Fixed blanket Wilderness aggression forcing even non-aggressive monsters to be aggressive

Fremennik helmets (eg: archers, warriors, etc) now locked behind Fremennik Trials Quest

Added the following SFX:
giant mole combat sfx
water elemental combat sfx
fire elemental combat sfx
earth elemental combat sfx
air elemental combat sfx
baby blue dragon combat sfx
baby red dragon combat sfx + examine
baby black dragon combat sfx
black demon combat sfx
dark beast combat sfx
dust devil combat sfx
gargoyle combat sfx
fire giant combat sfx
moss giant combat sfx
hill giant combat sfx
nechryael combat sfx
turoth combat sfx
kurask combat sfx
wallasalki combat sfx
yak combat sfx
abyssal demon combat sfx
bloodveld combat sfx
cave crawler combat sfx
Digging with spade SFX added
abyssal leech combat sfx
abyssal walker combat sfx
void brawler combat sfx (pest control)
chaos elemental standard combat sfx (NOT spells)
cockatrice combat sfx
crawling hand combat sfx
crocodile combat sfx
void defiler combat sfx (pest control)
lesser demon champion combat sfx
elf warrior combat sfx
ghoul combat sfx
ghoul champion combat sfx
jelly combat sfx
pyrefiend combat sfx
void ravager combat sfx (pest control)
rock lobster combat sfx
rockslug combat sfx
void shifter combat sfx (pest control)
void spinner combat sfx (pest control)
void splatter combat sfx (pest control)
void torcher combat sfx (pest control)
starlight combat sfx (GWD: Saradomin Melee Minion)
growler combat sfx (GWD: Saradomin Mage Minion)
Picking herb/harvesting crop SFX added
Planting a seed with seed dibber SFX added
Digging up patch with a Spade SFX added
Raking a patch SFX added
Watering a farming patch with a Watering can SFX added
Using a Plant Cure on a diseased patch SFX added
Pouring Compost/Supercompost on a farming patch SFX added
Filling Compost Bin SFX added
Opening and closing the Compost Bin SFX added
Filling buckets with Compost from the Compost Bin SFX added
Chaos Elemental's three unique spells (Discord, Madness, and Confusion) now have correct impact sfx when hitting the player

Standard Seed Bird's Nest loot pool corrections

Ring Bird's Nest loot pool corrected

Wyson Bird's Nest loot pool corrected

Wyson Bird's Nest loot quantities corrected

Fixed tick delay on Fletching bows and crossbows

Chaos Elemental Drop Table Overhaul

Chaos Elemental's Main drop table has been overhauled to correct items, amounts, and (close-enough) weights

Chaos Elemental's Minor drop table added, using Item ID 799 as an item container

Chaos Elemental now correctly rolls 1 minor drop and 1 major drop from its minor/major loot tables when it is killed.

Restrict Dwarven Multicannon use inside Fremennik Slayer Cave
2022-03-09 19:12:11 +11:00
Ceikry 4ca143129a Added support to the ActivityPlugin system to set a safe respawn location
Fixed pest control deaths sometimes respawning in Lumbridge
Admins can now kill themselves with ::killme
2022-03-08 02:24:34 +00:00
Avi Weinstock 22c5417403 Fixed bug where quest progress could revert 2022-02-23 13:22:51 +00:00
ryannathans f8b9d7bd6a command list is now sorted in alphabetical order 2022-01-29 20:42:42 +00:00
ryannathans 8e66fad298 remove debug clipboard access 2022-01-19 20:23:35 +11:00
ryannathans 004d4c9432 fix GE regression
path was resolving as "null<filename>"
2022-01-12 21:27:15 +11:00
ryannathans 662efb07af remove server monitor surprise 2022-01-11 21:14:58 +11:00
Ryan 47bc652eed Fix stability issues and a various assortment of other bugs 2022-01-11 09:36:57 +00: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 1178f4b402 Config corrections 2021-12-20 20:42:00 -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 cd7470ff66 Change server config language from JSON to TOML 2021-12-19 03:53:30 +00:00
Avi Weinstock 2bd3154611 Refactorings and improvements backported from the stealing-creation branch. 2021-12-19 03:28:20 +00:00
Ceikry 6af8b79126 Server Performance Monitor, Plethora of Performance Improvements 2021-12-19 03:06:17 +00:00
Avi Weinstock f2e26234ae Fishing and fishing trawler now use closer-to-empirical formulae. 2021-12-17 00:39:45 +00:00
Avi Weinstock 6e3902198b Make broad bolts tradeable and fix their ranged strength. 2021-11-21 15:10:44 -05:00