- Joined
- Oct 12, 2015
- Messages
- 3,760
- Thread Author
- #1
Hey guys, it's been a while..! I got lazy with regards to change-logs which means we haven't had one since July... my apologies.
Obviously there's been a huge amount of work put into the client over the last few months to improve the experience of our users and developers - so much in fact that going into as much detail as is usual for change logs would mean I'd be sat here until 2020 typing it all up.
With that said, here's a summary of (almost) everything we've been up to since July...
Added:
Removed:
Fixed:
Improved:
Obviously there's been a huge amount of work put into the client over the last few months to improve the experience of our users and developers - so much in fact that going into as much detail as is usual for change logs would mean I'd be sat here until 2020 typing it all up.
With that said, here's a summary of (almost) everything we've been up to since July...
Added:
- [SpriteItem] Added stacks(boolean) to the QueryBuilder
- [GroundItem] Added stacks(boolean) to the QueryBuilder
- [Area] Added Area#getOverlappingCoordinates(Area)
- [Area] Added Area#overlaps(Area)
- [InterfaceCloser] Added DangerousPlaceWarning to the RS3 InterfaceCloser
- [InterfaceCloser] Added the Wilderness Warning to the OSRS InterfaceCloser
- [Bank] Added Bank.equip(SpriteItem) @RS3Only
- [AutoStart] Added ability to auto-start a bot from the bot store (argument: -autostart=OSRS|RS3|PID:ALIAS:INTERNAL_ID|PUBLISHED_BOT_NAME)
- [Prayer] Added OSRS Raids Prayers
- [OverheadIcon] Added #getType() to distinguish between Skull and Prayer icons
- [Keyboard] Added #getPressedKeyCodes(), #releaseAllKeys() and #isPressed(int), where #releaseAllKeys() is called on bot stop
- [Magic] Exposed the enabled/disabled Sprite IDs
- [GameEvents] GameEvents (and their children) can now be enabled/disabled individually so, for example, you can disable specific InterfaceClosers
- [RunePouch] Added an API for the OSRS RunePouch
- [Rune] New hybrid API for Runes, including detection of Rune replacements such as staves.
- [RuneScape] Aded RuneScape#getCurrentCycle()
- [Player] Added #getEquipment() for RS3 which is limited to visible equipmento on a Player
- [Projectile] Added #getDefinition()
- [Projectile] Added #animations() and #models() to the QueryBuilder
- [KourendHouseFavour] New OSRS API for getting Favour for the Kourend Houses of Zeah
- [OptionsTab] Added #areSidePanelsClosableByHotkeys() and #isAcceptAidEnabled
- [Client] Added ability to minimize to tray (via Tray Icon option)
- [House] Added #getLocation()
- [AchievementDiary] New OSRS API for detecting completion of Achievement Diaries
- [Local] When running a bot locally via SDK mode, reject Resources calls where the Resource has not been properly declared in the manifest to mimic bot store behavior
- [Screen] Added #isFixedMode()
- [Resource] Added overloads to the Resources methods to allow you to pass an instance of AbstractBot, meaning these calls don't have to be made on a BotThread any more
- [MakeAllInterface] New OSRS API to handle the skilling update on OSRS
- [ActionWindow] Added FAMILIAR
Removed:
- [Projectile] Deprecated #getId() and #getSource()
- [ItemDefinition] Deprecated #isTradeable() in favour or more appropriate naming #isTradeableOnMarket()
- [LegacyTab] Deprecated ADVENTURES but added QUEST_LIST
- [ClientUI] Can no longer pass a JavaFX color to #showAlert(), colors are now determined by BotLogger.Level to ensure that color schemes are consistent between bots
- [RWS] Sadly, it's goodbye to RWS. The project was fun to work on but has been plagued with performance issues since the beginning and is no longer viable to maintain.
Fixed:
- [ChatDialog] Fixed a bug where where ChatDialog wouldn't be detected properly on OSRS
- [ChatDialog] Fixed the detection of ChatDialog titles in some situations
- [Lodestone] Fixed Coordinate of Catherby lodestone
- [Powers] Fixed Sprite IDs of all Prayers and Curses in RS3
- [Area] Added an additional safety check to the constructor of Area.Circular
- [Quest] Fixed an NPE that could be thrown on #getStatus()
- [NPC] Fixed a scenario where Npc#isValid() would return false if it was removed from the game initially
- [SpotAnimations] Fixed an NPE when getting the color mappings from a spot animation definition
- [WorldSelect] Fixed WorldSelector on OSRS
- [Client] Fixed a bug where the client would resize awkwardly
- [Client] Fixed a bug where filtering bots would not remove them from the bot ComboBox
- [LoginHandler] Made failures get properly reported via the FailedLoginHandler
- [Summoning] Fixed getMinutesRemaining() (thanks @auxi and @RobinPC)
- [Magic] Fixed a bug where Arceuus Spellbook spells would not be detected
- [Camera] Fixed the notorious "enless spinning" camera bug
- [NPC] Fixed an issue where #getModel() could throw an NPE on RS3
Improved:
- [Bank] Improved behavior of Bank.withdraw(SpriteItem, int)
- [Quest] Added the Varp data for Dragon Slayer, Rune Mysteries, Knight's Sowrd, Fishing Contest and Witch's House
- [InterfaceComponent] If an InterfaceComponent being interacted with doesn't own the action & target specified, but an overlapping InterfaceComponent does, the MenuItem of the overlapping InterfaceComponent is now used
- [InterfaceComponent] Added a InterfaceComponent#hover() call when #interact() is called to ensure the InterfaceComponent is hovered first
- [Logging] Added some internal debug to better assist us in optimizations that can be made internally throughout the API
- [General] As a result of the above we have added optimizations to queries in Magic, Bank, Chat, ChatDialog, InterfaceContainer, Traversal, Powers, Wilderness, EnterAmountDialog, Equipment and ActionBar APIs, as well as the InterfaceCloser and LobbyHandler GameEvents.
- [Area] Area.Absolute now accepts a Collection<Coordinate> rather than just a List<Coordinate>
- [Traversal] WebPath's will now turn the camera to nearby ObjectVertices if the vertex isn't visible so that it can be interacted with
- [EventListeners] Heavily optimized the dispatching of events to game event handlers
- [AbstractBot] The time taken to execute the current loop is now subtracted from the loop delay
- [Region] Numerous improvements and optimizations to the way the Collision Grid is built
- [Model] Large improvements in optimization for #getInteractionPoint() and #contains()
- [Input Blocking] Input no longer blocked on start for development tool bots