Git Product home page Git Product logo

runelitehijack's Introduction

Random project I made to run my own custom or modified external plugins on the original RuneLite files. Not a detected 3rd party client. Does not expand on RuneLites api like some RuneLite forks use to do.

Installation

  • Download latest RuneLiteHijack from the releases section.
  • Find RuneLite install directory.
  • Place RuneLiteHijack.jar in the same folder as config.json
  • Open config.json
  • Add a comma after "RuneLite.jar"
  • Add "RuneLiteHijack.jar" after classPath entry "RuneLite.jar"
  • Change mainClass to ca.arnah.runelite.LauncherHijack
  • Run RuneLite normally.

example

If properly done, you should see "RuneLiteHijack Plugin Hub" in plugin configuration

example

Adding additional Plugin Hubs

The default plugin hub is a GitHub repository viewable here. You can use this as a template to create your own plugin hub, while also using the provided plugin to customize additional plugin hubs by using a comma separated list.

For GitHub repositories, you need to make sure the url is a "raw githubusercontent" link like https://raw.githubusercontent. com/Arnuh/RuneLiteHijack-PluginHub/master/.

Structure of Plugin Hubs

Every Plugin Hub must have a plugins.json file at the root, which will list all available plugins. The "provider" value will be a subfolder which will contain the internalName.jar file.

Description of each property for each plugin in plugins.json:

  • "internalName" is the name of the plugin jar file, not including the extension.
  • "hash" is the SHA-256 hash of the plugin jar file.
  • "size" is the size of the plugin jar file in bytes.
  • "plugins" is a list of main plugin classes
  • "displayName" is the name of the plugin when displayed in the plugin hub.
  • "provider" is the name of the subfolder containing the plugin jar file.

Example viewable here.

How it works

Since RuneLite lets you add to the classpath and modify the main class, this project is able to proceed normally, while loading alongside RuneLite.

  1. LauncherHijack launches the normal RuneLite Launcher and waits for the Client to start while scanning for the Client ClassLoader.
  2. When the ClassLoader is found, LauncherHijack adds the RuneLiteHijack jar into the ClassLoader and creates ClientHijack.
  3. ClientHijacks waits for the RuneLite Injector to be initialized and adds HijackedClient into the injector.
  4. With HijackedClient being created in RuneLites classloader and being started via the Injector, RuneLiteHijack has full access to the same functionality as RuneLite.
  5. With the access given, RuneLiteHijack initializes its Plugin Manager and adds the button to the original plugin ui.

Limitations are being restricted to what can be modified at runtime in java.

runelitehijack's People

Contributors

arnuh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.