Developer Maxi Posted February 27, 2014 Developer Share Posted February 27, 2014 Dear community, In this release the accessors of the bot have been made public. The accessors have always been protected from access by developers because they would allow for unprotected access to RS username and password information if made public. I've revisited the thought on how to open up the accessors publicly without losing security and created a system that will open up the accessors but block any access to the password and username information. This is part of the promised security manager. Not only that has been done, OSBot 2 no longer allows using reflection. This together combines more freedom to the developers, as they can now freely access accessor methods without reflection, and more security as reflection can no longer be used. Opening up the accessors also allowed me to clean up the amount of deprecated methods in certain accessor wrappers, cleaning up the API significantly for developers. However this has made some changes to the API that developers should take a note of: client.getRegion() has been removed. It can now be found in Map.getRegion() and most of its features are now available in Map and no more in the Region class client.getEntitiesOnCursor() has been removed because it's available in mouse.getEntitiesOnCursor() client.getMapBaseX/Y() have been removed because it's available in map.getBaseX() and map.getBaseY() ; also note that map.getMapBaseX/Y() are refactored to getBaseX/Y() Region.getTiles() added Region.getObjects() added ; note that these are accessors of the client its objects, not the wrapped RS2Object instances Client.getPlane() has been removed because its functionality can be found in the Map api class Client.getMyPlayer() has been removed because its functionality is already provided in MethodProvider Client.getLocalPlayer() has been removed because its functionality is already provided in the Players api class Client.getLocalNPC() has been removed because its functionality is already provided in the Players api class Client.getLocalPlayers() has been removed because its functionality is already provided in the Players api class Client.getLocalNPCS() has been removed because its functionality is already provided in the NPCS api class Client.getClippingPlanes() has been removed because its functionality is now available in the Region class Client.getMenuX() has been removed because its functionality is now available in the menu api class Client.getMenuY() has been removed because its functionality is now available in the menu api class Client.getMenuWidth() has been removed because its functionality is now available in the menu api class Client.getMenuHeight() has been removed because its functionality is now available in the menu api class Client.getMenu() has been removed because its functionality is now available in the menu api class Client.getOnCursorCount() has been removed because its functionality is now available in the mouse api class Client.getMenuCount() has been removed because its functionality is now available in the menu api class Client.isMenuOpen() has been removed because its functionality is now available in the menu api class Client.getCameraYaw() has been removed because its functionality is now available by using the Client accessor instance Client.getCameraPitch() has been removed because its functionality is now available by using the Client accessor instance Client.getDestination() has been removed because its functionality is available in the map api class Client.getMinimapX() has been removed because its functionality is now available by using the Client accessor instance Client.getMinimapRotation() has been removed because its functionality is now available by using the Client accessor instance Client.getMinimapZoom() has been removed because its functionality is now available by using the Client accessor instance Client.isMinimapLocked() has been removed because its functionality is now available in the Map api class Client.getInterface() has been removed because its functionality is available in the Interface api class Client.getRawInterfaces() has been removed because its functionality is available by using the Client accessor instance Client.getValidInterfaces() has been removed because its functionality is available by using the Client accessor instance Client.getRunEnergy() has been removed because its functionality is available in the Settings api class Client.getLevelExperience() been removed because its functionality is available through the Client accessor instance Client.getLevelStat() been removed because its functionality is available through the Client accessor instnace Client.getCurrentLevelStat() has been removed because its functionality is available through the Client accessor instance Client.getVertexHeights() has been removed because its functionality is available through the Client accessor instance On top of the changes mentioned above the following update were made: Inventory.isItemSelected() - returns whether an item is selected Inventory.getSelectedItemName() - gets the name of the selected item Magic.isSpellSelected() - returns whether a spell is selected Magic.getSelectedSpellName() - gets the name of the selected spell Client.getCrossHairColor() - gets the state of the mouse cross hair / cursor (0 = not present, 1 = yellow, 2 = red) The anti ban roll with not happen if human input is enabled whilst running a script Bank.withdraw(X value) and bank.deposit(X value) will now use the last used X value if possible and have now detection for changed enter X value interfaces Character.isUnderAttack() is now fully functional (see the documentation) Character.isAttackable() method added, taking in to account multi and single combat zones Extended the ConditionalSleep class to support for custom sleeping times (see the documentation) Fixed the bug with the InteractionEvent for interacting with entities where it wouldn't do anything while having either a magic spell or inventory item selected. It now automatically accounts for selection, no different user input required Ported over a fix for interfaces from OSBot 1 Ported over dynamic prayer button identification from OSBot 1 The RandomSolver system uses id's again for now, this might be changed to enums later. This allowed for adding the random behaviour hook system back with some fixes Added back the WorldHopper class Your mouse will now exit the screen when pausing or stopping a script Settings.setRunning() now uses the orb to activate or deactivate running Prayers have been updated to use the new config Two freezing bugs that existed in OSBot 1 previously as well have been fixed Made certain interactions faster and fixed a bug in the walking event that caused delays sometimes The GUI for opening and closing tabs is now faster and more responsive as the majority of cpu intensive actions are not separated from the GUI threads Added coloring of the bot tab that is active and also all tabs now display your character's display name if logged in The Interfaces.containgSprite() methods have been fixed to account for sub sub interfaces (basically children on child interfaces) World selection and interface value debugging have been added back and can be found in the quick right click menu on the settings button I also did some work on the updater which had broken identifiers for a set of hooks which we would adjust manually for the past few revisions and I introduced a couple of new hooks: isItemSelected, selectedItemName, isSpellSelected, selectedSpellName and crossHairColor. But..... last and certainly not least: Security Manager. The Security Manager is in place in this release. It could cause issues as it has not been tested on a wider variety of systems, but we will be able to figure this out with your help. If it's the case that too many people run into problems, we will release a version without it in place and ask more experienced users to share the thrown security exceptions with us. In summary the Security Manager restricts the access of the OSBot 2 client in several places: Reflection to access hidden fields is no longer possible Execution of commands on the command line is no longer possible Access to most internet connections are now locked down. We will white list trusted IP's, but for now only imgur, our server and the RS servers are allowed to make a connection. For people who want to keep track of signature data, we will introduce an easy to use system that will forward any requested data to your server. The above doesn't summarize everything as there is more, but it should give you a general idea. The download to the jar can be found here: http://osbot.org/osbot2_beta/OSBot-packed-2.0.12.jar The javadocs can be found here: http://osbot.org/osbot2_api/ The javadocs zip file can be found here: http://osbot.org/osbot2_api/javadoc.zip Expect significant work on the random handlers this next week! Sincerely, The OSBot team 4 Link to comment
Idle Posted February 27, 2014 Share Posted February 27, 2014 Thank you! Amazing release! Link to comment
Jordan Posted February 27, 2014 Share Posted February 27, 2014 Looks good. Still figuring out the API Link to comment
Nick Posted February 27, 2014 Share Posted February 27, 2014 Keep up the great work guys! Link to comment
Jack Posted February 27, 2014 Share Posted February 27, 2014 [INFO][02/26 08:52:37 PM]: The #1 and most popular free bot for OldSchool RuneScape! [ERROR][02/26 08:52:38 PM]: Uncaught exception! java.lang.ExceptionInInitializerError at java.net.Socket.setImpl(Unknown Source) at java.net.Socket.<init>(Unknown Source) at org.osbot.pB.IiIIIiIiII(Unknown Source) at org.osbot.BotApplication.IiiiiiiIiI(Unknown Source) at org.osbot.BotApplication.main(Unknown Source) Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at org.osbot.Ob.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPropertiesAccess(Unknown Source) at java.lang.System.getProperties(Unknown Source) at java.net.PlainSocketImpl$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.PlainSocketImpl.<clinit>(Unknown Source) ... 5 more [ERROR][02/26 08:53:09 PM]: Failed to log in! errors... Dear community, Link to comment
Ghetto Posted February 27, 2014 Share Posted February 27, 2014 nice to see progress :] Link to comment
Developer Maxi Posted February 27, 2014 Author Developer Share Posted February 27, 2014 [INFO][02/26 08:52:37 PM]: The #1 and most popular free bot for OldSchool RuneScape! [ERROR][02/26 08:52:38 PM]: Uncaught exception! java.lang.ExceptionInInitializerError at java.net.Socket.setImpl(Unknown Source) at java.net.Socket.<init>(Unknown Source) at org.osbot.pB.IiIIIiIiII(Unknown Source) at org.osbot.BotApplication.IiiiiiiIiI(Unknown Source) at org.osbot.BotApplication.main(Unknown Source) Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at org.osbot.Ob.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPropertiesAccess(Unknown Source) at java.lang.System.getProperties(Unknown Source) at java.net.PlainSocketImpl$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.PlainSocketImpl.<clinit>(Unknown Source) ... 5 more [ERROR][02/26 08:53:09 PM]: Failed to log in! errors... I'm looking forward for more of these, we'll need them to hammer down the security manager. However it's odd that your system says it wants to have read and write access to ALL properties. Link to comment
Jack Posted February 27, 2014 Share Posted February 27, 2014 I'm looking forward for more of these, we'll need them to hammer down the security manager. However it's odd that your system says it wants to have read and write access to ALL properties. Got a quick fix? Link to comment
Developer Zach Posted February 27, 2014 Developer Share Posted February 27, 2014 Just a notice (for anyone that doesn't want to verify everything), all of the fixes made in OSBot 1.7.80-1.7.86 were merged with OSBot 2. 2 Link to comment
Empathyfaith Posted February 27, 2014 Share Posted February 27, 2014 [ERROR][02/26 10:16:20 PM]: Uncaught exception! java.lang.ExceptionInInitializerError at java.net.Socket.setImpl(Unknown Source) at java.net.Socket.<init>(Unknown Source) at org.osbot.pB.IiIIIiIiII(Unknown Source) at org.osbot.BotApplication.IiiiiiiIiI(Unknown Source) at org.osbot.BotApplication.main(Unknown Source) Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at org.osbot.Ob.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPropertiesAccess(Unknown Source) at java.lang.System.getProperties(Unknown Source) at java.net.PlainSocketImpl$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.PlainSocketImpl.<clinit>(Unknown Source) ... 5 more Hmm...That's odd. Same error as guy above. :3 Link to comment
NotoriousPP Posted February 27, 2014 Share Posted February 27, 2014 Not sure what's wrong, but I'm unable to even start the client. I tried booting through my IDE, and all it does, it pops up the initial frame asking if I want to stealth the injection and run in debug mode. I press "Launch" then nothing, and my console in my IDE says "Process finished with exit code 0", like it finished. Link to comment
Joseph Posted February 27, 2014 Share Posted February 27, 2014 (edited) Its nice to see the api cleaning up. Keep it up. Edit: i got the same error that "Jack" got, while not running in debug mode. Edit 2: But i also got this error, when i try to run it in debug mode Edited February 27, 2014 by josedpay Link to comment