Jump to content
IceKontroI

Reading TRiBot source code for certain methods

Recommended Posts

I've been trying to read the source code for various tribot functions such as Mouse.leaveGame() or Mouse.sendClickEvent() so I can create similar but more updated versions of them as part of a small API I'm creating ATM. The problem is that when I decompile TRiBot.jar and look at the source code for those methods it's very difficult to understand how everything ties together. I get that this is Java's way of reducing jar file size but I'm wondering if there is a more conventional way of doing this. It also seems like there's missing code but that could just be me misreading the data structures. If anyone knows of a better way of doing this I would greatly appreciate it as it would speed up my API generation by quite a large amount.

Share this post


Link to post
Share on other sites
3 minutes ago, halfway said:

smh if anyone can just "decompile" this bot 

you can decompile TRiBot.jar just like you can do with any .jar file. Other users have mentioned that they've viewed the source code so either they decompiled it themselves or had access to the real source.

Share this post


Link to post
Share on other sites
9 minutes ago, IceKontroI said:

you can decompile TRiBot.jar just like you can do with any .jar file. Other users have mentioned that they've viewed the source code so either they decompiled it themselves or had access to the real source.

public static void leaveGame(boolean lose_focus) {
        boolean var10000;
        Point a;
        if((a = getPos()) == null) {
            move(General.random(-50, 550), General.random(-15, -40));
            var10000 = lose_focus;
        } else {
            move(General.random(a.x - 100, a.x + 100), General.random(-15, -40));
            var10000 = lose_focus;
        }

        if(var10000) {
            General.sleep(1400, 4600);
            mm.DE().jH().iN().UH(true);
        }

    }

 

It randomizes your x position, and randomizes ur Y position outside of the screen. To duplicate a function like this and add in any side of the screen, you would modify that part along with adding the ability to leave any side of the screen, you also probably wouldn't be able to call mm.DE.W/E in your script so you may need to find out what that does to actually emulate it.

Edited by Deluxes

Share this post


Link to post
Share on other sites
1 minute ago, Deluxes said:
public static void leaveGame(boolean lose_focus) {
        boolean var10000;
        Point a;
        if((a = getPos()) == null) {
            move(General.random(-50, 550), General.random(-15, -40));
            var10000 = lose_focus;
        } else {
            move(General.random(a.x - 100, a.x + 100), General.random(-15, -40));
            var10000 = lose_focus;
        }

        if(var10000) {
            General.sleep(1400, 4600);
            mm.DE().jH().iN().UH(true);
        }

    }

 

It randomizes your x position, and randomizes ur Y position outside of the screen. To duplicate a function like this and add in any side of the screen, you would modify that part along with adding the ability to leave any side of the screen, you also probably wouldn't be able to call mm.DE.W/E in your script so you may need to find out what that does to actually emulate it.

That's the basics of it, yes, but there's more to it than just that which is what I'm getting at. This line of code

mm.DE().jH().iN.UH(true);

is likely the way it "loses focus" to the game screen which I'm unable to replicate on my own because it's obfuscated. I was going to create a method that expanded on this whole process by combining elements of Mouse.leaveGame() and Mouse.sendClickEvent() that would allow the mouse to re-enter the game screen through a different point than the one it left from. This would simulate a player tabbing out and re-entering the screen afterward much more realistically.

Also what decompiler are you using? Your code seems slightly clearer than mine.

Share this post


Link to post
Share on other sites
Just now, IceKontroI said:

That's the basics of it, yes, but there's more to it than just that which is what I'm getting at. This line of code

mm.DE().jH().iN.UH(true);

is likely the way it "loses focus" to the game screen which I'm unable to replicate on my own because it's obfuscated. I was going to create a method that expanded on this whole process by combining elements of Mouse.leaveGame() and Mouse.sendClickEvent() that would allow the mouse to re-enter the game screen through a different point than the one it left from. This would simulate a player tabbing out and re-entering the screen afterward much more realistically.

Also what decompiler are you using? Your code seems slightly clearer than mine.

Actually you can call 

mm.DE().jH().iN.UH(true)

As long as you do not upload the script to the repository. I use Bytecode Viewer 3.0.0.

Share this post


Link to post
Share on other sites
3 minutes ago, IceKontroI said:

I didn't realize that, thanks!

You can also do some useful stuff like this.

public static void setGraphics(boolean value) {
        if (!TRiBot.a.j.get("Disable Graphics").isSelected() && !value)
            TRiBot.a.j.get("Disable Graphics").doClick();
        else if (TRiBot.a.j.get("Disable Graphics").isSelected() && value)
            TRiBot.a.j.get("Disable Graphics").doClick();
    }

You can also change Disable Graphics to Block User Input and such to disable those automatically :)

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Our picks

    • This release will:

      Fix login bot after today's game update (Thanks @JoeDezzy1)


      Fix latest in-game world hopping issues (Thanks @erickho123)


      Compact Settings UI and set location relative to TRiBot (Thanks @JoeDezzy1)


      Fix an older implementation of GrandExchange#getWindowState (Thanks @JoeDezzy1)


      Improve the preformance of NPCChat by only searching in certain interface parents (Thanks @JoeDezzy1)



      Upcoming updates:

      Break handler bug fix


      Improved CLI support


      LG support for RuneLite


      Much more



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Thanks
        • Like
      • 13 replies
    • This release will:

      Fix bytecode manipulation in order to prevent the modification of parameters within the Filter and Condition classes themselves (thanks @wastedbro)


      Fix NPE caused by non-null value in GE API (thanks @erickho123)


      Add and fix equals methods for api2007.types (thanks @JoeDezzy1)


      Modify Mouse#leaveGame to make the mouse leave the game from top, left, right, or bottom (thanks @erickho123)


      Add Entrana area to Ships API (thanks @erickho123)


      Fix raid prayers index/settings in Prayer API (thanks @erickho123)



      Upcoming updates:

      Break handler bug fix


      Improved CLI support


      Much more



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Like
      • 29 replies
    • This update will:

      Implement better canvas locking/synchronization mechanism


      Fix small Login API bug


      Remove the requirement for xbooting Java classes


      Use ExecutorService to perform canvas work in parallel


      Add "Account Management" game tab to GameTab API (thanks @Encoded)


      Fix NPCChat#getMessage (thanks @Encoded )


      Fix NPCChat#selectOption (thanks @Encoded )


      Fix Banking API after today's update (thanks @Encoded )


      Fix in-game world hopper after today's update (thanks @Encoded )



      Upcoming updates:

      Break handler bug fix


      Improved CLI support


      Much more



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Thanks
        • Like
      • 38 replies
    • This release includes:

      Fix updater bug which was causing a bunch of issues


      TRiBot will no longer require manual hook fixes every time the RS client updates - the updater has been fully patched for objects


      Hooked login fields


      Improved the login bot


      Ability to recognize the banned/locked messages again


      Ability to read the current input for username and password fields


      If the username or password is already entered correctly, it won't be erased


      If only part of the username or password is already entered correctly, it won't be erased. The login bot will fill in what's missing.


      If there are a few invalid characters after a valid substring of your username/password, only (approximately) those invalid characters will be erased. The login bot will then proceed to fill in the missing characters.





      Coming soon:

      Skull icon fix


      Improve screen rate and responsiveness of the RS client (both regular client and LG)


      Much more
        • Thanks
        • Like
      • 33 replies
    • This release includes:

      Fix shift clicking option selecting


      Fix high paint delay settings saving


      Update prayer IDs for the quick select menu


      Remove RS3 support


      Fix hooks



      RS3 Support Removed

      The RS3 client hasn't been updated since our Old-School version of TRiBot was released, as many of you may have noticed. Keeping all of the RS3 code in the client made the client as a whole harder to maintain, larger, slower, and messier. As hardly anyone still uses the RS3 client, and since the RS3 API was hardly functioning, we made the decision to completely remove it from TRiBot.

      For the average user, this means that the client will be smaller, cleaner, and faster. Future updates will also take less work meaning there will be more frequent updates.

      If you were one of the few users still using the RS3 client, we apologize for the inconvenience. No future support for RS3 is planned. There are many other botting clients which has support for RS3, so we recommend finding an alternative if you wish to continue botting on RS3.
        • Thanks
        • Like
      • 25 replies
  • Recently Browsing   0 members

    No registered users viewing this page.

×