Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
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:

      Add new internal framework for capturing exceptions


      Fix issue with not selecting the last column in world hopper (Thanks @Todd)


      Add a message about pin usage in Banking#openBank (Thanks @Todd)


      Disable the firewall by default (Thanks @Todd)


      Fix handling of the welcome screen after login (Thanks @Encoded)


      Fix wrong amount bank withdrawal (Thanks @Encoded)


      Fix Screen#isInViewport


      Fix Game#isInViewport (Thanks @Encoded)


      Call onBreakEnd for ListenerManager Breaking Listeners (Thanks @Encoded)


      Fix Prayer#getPrayerPoints NumberFormatException (Thanks @JoeDezzy1)



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

      Fix LG for both OSBuddy and RuneLite


      Fix issue where the resizable client isn't able to be made smaller (Thanks @JoeDezzy1)


      Fix detection of the logout game tab when resizable mode and side panels are enabled (Thanks @JoeDezzy1)


      Add initial support for Sentry to allow us to identify and easily debug exceptions happening with all TRiBot users


      Add methods to determine if the bank is actually loaded, and not just the overarching interface (Thanks @wastedbro)



      Upcoming updates:

      Improved CLI support


      Full Sentry support


      Much more
        • Like
      • 64 replies
    • This release will:

      Fix NPE in Camera API (Thanks @wastedbro)


      Update deposit box interface ids (Thanks @Encoded)


      Add various bank methods (Thanks @wastedbro)


      Banking#getWithdrawXQuantity


      Banking#getDefaultWithdrawQuantity


      Banking#arePlaceholdersOn




      Fix resizeable minimap bug (Thanks @wastedbro)


      Remove Java 8 requirement


      Please note: TRiBot is not yet fully compatible with Java 10+




      Fix the break handler issues by ensuring the break handler thread never gets paused


      Fix broken settings hooks



      Upcoming updates:

      Improved CLI support


      Much more



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

      Add support for using custom F key bindings to switch between game tabs (Thanks @erickho123)


      Fix tab opening for "Skills" and "Kourend Tasks" (Thanks @erickho123)



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

      Fix an issue where breaks would stop firing


      Fix Combat#getWildernessLevel, use dynamic search for text and cache ID for later calls


      Fix an NPE in the Combat API


      Fix Mouse#leaveGame bug where the mouse wouldn't actually leave the game screen
        • Like
      • 21 replies
  • Recently Browsing   0 members

    No registered users viewing this page.

×