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
Moved all the achievement diary checks out into the achievement event receiver
Refactored `ResourceGatheredEvent` -> `ResourceProducedEvent` and added a new optional field, `original` for item processing
new Event Hook system that is now used to handle Jobs, Slayer tasks and Achievement Diary systems
Added sfx for slashing webs
Music Track ID 454 "Home Sweet Home" now correctly unlocks and plays inside PoH
Fixed Dragon axe special attack
Add back deleted Seercull special attack (got caught in cleanups somewhere and erroneously deleted?)
Added Darklight special attack (its boosted bonus against Demons not added)
Positional audio support for Jewellery/Mounted Jewellery teleports
New administrative command to test drops, ::rolldrops
fixed bot dialogue to use correct playername checking post-JSON changes
Added new commands ::ge bots and ::ge botsearch
Improved ::ge buying and ::ge selling
Fixed Vinesweeper (by fixing a general bug in NPC pathfinding that affects all NPCs)
Fixed NPC safespotting (by fixing a separate general bug in NPC pathfinding)
player can now deposit items with peer the seer after completing the Fremennik Easy, Medium, or Hard diary
added fishing trawler to ::to teleport locations for admins
Fixed NPE in RangeSwingHandler
Added mystic lava staff so you can alch with it as well
Changed deposit listener so it's not specifically for peer the seer, any npc can be added
Fixed fur trader dialogue/shop now that fremmy trials works
More Relekka Dialogues, added Fisherman's dialogues before/after Fremennik Trials is done
locked thieving Rellekka stalls behind fremmy trials quest
added fur stall thieving in rellekka
fixed chieftan brundt stuck dialogue
improved checking quest requirements on equipment before equipping
fixes and additions to other rellekkan NPC dialogues
Equip listeners which accept int arrays
Fixed bug in Brundt's dialogue
Can no longer spawn multiple Koscheis by spamclicking the ladder
Can no longer repeat Peer the Seer's task infinitely
Implemented Tutorial Island
Hans EXP Rate and Ironman Mode setting functionality has been moved inside Tutorial Island (at the end with the Wizard Tutor, he will ask to set your rate and mode instead)
Added more Kurask NPC IDs to Kurask Slayer Tasks
Added more Ogre and Ogress NPC IDs to Ogre Slayer Tasks
Implemented Tribal Totem Quest
Fixed memory leaks
Added Nature Runes and Cut Sapphire ground item spawns to the Rock Crab area north of Rellekka
Removed Rock Crabs negative bonuses allowing them to deal damage as intended