e23c6a0c46d28a63ebbb28993f56e0a7b44a8b52
Enables the pf4j [development mode](https://pf4j.org/doc/development-mode.html) to support loading external plugins from sources, which enables java's hotswap functionality. To use this feature set the `plugin.development.path` property or `PLUGIN_DEVELOPMENT_PATH` environment variable to the directories containing your plugins, e.g. `../plugins;../my-custom-plugins` Once set the `ExternalPluginManager` will ignore the configured repositories and externalmanager directory, and instead load all the built plugins from the specified directories. Utilizing this feature does require some additional configuration of the build of the plugins `build.gradle.kts`. Within the `subprojects` section add: ``` tasks.register<Copy>("copyDeps") { into("./build/deps/") from(configurations["runtimeClasspath"]) } ``` See https://github.com/open-osrs/plugins/pull/260 for the `openosrs/plugins` change This enables the following workflow: 0. Optional tip: Set the `external.system.substitute.library.dependencies` registry value to `true` to force classpath resolution within the project 1. Open the `runelite-client` project in IntelliJ 2. Add the `plugins` repository as a module (Gradle -> Plus symbol -> `plugins/build.gradle.kts`) 3. Gradle build the client with: `build publishToMavenLocal :runelite-client:publishToMavenLocal :runelite-api:publishToMavenLocal :http-api:publishToMavenLocal` 4. Gradle build the plugins with: `build copyDeps` 5. Add the `PLUGIN_DEVELOPMENT_PATH` environment variable to the run configuration Once the above is done the edit -> reload -> edit cycle can begin: 1. Start the client in debug mode using the run goal 2. Edit the external plugin 3. Perform Build > Build Module 4. Observe hotswapping in action! 5. If hotswapping failed, or your change requires a plugin restart, click the hotswap button in the plugin list to instantly restart it
OpenOSRS
OpenOSRS is a fully open-source client with no restrictions. We are not affiliated with Jagex or RuneLite.
Discord
Project Layout
- cache - Libraries used for reading/writing cache files, as well as the data in it
- deobfuscator - Can decompile and cleanup gamepacks as well as map updates to newer revs
- http-api - API for runelite and OpenOSRS
- injector-plugin - Tool for implementing our modifications to the gamepack
- runelite-api - RuneLite API, interfaces for accessing the client
- runelite-mixins - Classes containing the Objects to be injected using the injector-plugin
- runescape-api - Mappings correspond to these interfaces, runelite-api is a subset of this
- runelite-client - Game client with plugins
- wiki-scraper - Scrapes the runescape wiki https://oldschool.runescape.wiki for the latest npc data
Building
We have migrated the project to Gradle. Information on how to setup and build the project can be found at https://github.com/open-osrs/runelite/wiki/Building-with-IntelliJ-IDEA
Install from Pre-built Binaries
Installers for Windows, Mac and Linux can be found at https://github.com/open-osrs/launcher/releases
License
OpenOSRS is licensed under the BSD 2-clause license. See the license header in the respective file to be sure.
Contribute and Develop
We've set up a separate document for our contribution guidelines.
Supported By
OpenOSRS uses profiling tools provided by YourKit
Thanks JetBrains for providing our developers with IntelliJ IDEA Ultimate Edition.
Wiki
Check out the OpenOSRS wiki to learn more
Description
Languages
Java
98.9%
GLSL
0.7%
C
0.3%
