Jump to content
Maxi

OSBot v2.0.11-12 BETA

Recommended Posts

  • Developer

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

 

71fKOrM.png

 

Expect significant work on the random handlers this next week!

 

Sincerely,
 
The OSBot team

  • Like 4
Link to comment

[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
  • Developer
[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
[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

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
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...