digiholic 8e9cb1bc8f update osrs-archipelago to v2.0.0 (#6430)
* Create osrs-archipelago

Adds plugin link to OSRS Archipelago Plugin

* Update osrs-archipelago

* Updated plugin to fix gradle issue

* Update osrs-archipelago

* Update osrs-archipelago

Removes cached names from server, changes location IDs

* Update osrs-archipelago

Updates jar dependency in osrs-archipelago

* Update osrs-archipelago

- Adds interface when receiving an item
- Prevents equipping items that haven't been unlocked yet
- Fixes reconnect spam when hitting a loading zone

* Update osrs-archipelago to 0.4.1

Fixes an issue with equipment tiers. It checked for gear below the currently unlocked tier, instead of below or including, meaning bronze equipment could not be used until you had unlocked iron, and so on.

* Updates OSRS Archipelago to 1.0.0

Updates to plugin to release version of Archipelago

* Update osrs-archipelago

Removes ShadowJar from gradle build

* Adds Library code to project instead of external dependency

* OSRS-Archipelago v1.0.2

Reverts back to Jar-based library. Fixes UI refreshing and adds in anti-stuck mechanic to manually send all checks

* Removes Deprecated WidgetInfo reference

* Swaps Archipelago MultiClient Jar for one without dependencies

* Shrinks Panel Icon image to a reasonably sized PNG instead of full resolution

* Adds Libraries removed from MultiClient that aren't provided by RuneLite

* Fixes broken gradle imports in plugin and in client dependency

* Excludes junit bom from dependency

* Adds third-party dependency verification for apache httpclient

* Updated to upstream, resolved merge conflict

* Removes junit bom exclusion since it's now being verified anyway

* Adds duplicatesstrategy to build gradle

* Duplicate Strategy was unrecognized. Trying explicit enum use

* Switches gradle task from Copy to Jar for duplicate handling

* Removes junit-bom from apache import

* Changing third party verification to other apache library

* Adds TestImplementation for junit bom

* Attempting manually entered bom module

* Removes navigation button in shut down

* Updates OSRS Archipelago to V1.2

- Archipelago Client Plugin is now on Maven! No more direct vendoring of plugin code!
- Adds new checkbox for toggling AP messages going to OSRS chatbox
- AP Server Password is now an actual password field, using placeholders instead
- Replaces hard-coded tasks with data parsed from github, using version information from Archipelago slot data. This should allow for logic changes that don't require a whole new plugin version to use.
- Adds in a local DataPackage storage, which will store the Slot's connected player and last received item index. This will make reconnection smoother as well as allowing you to see popups for items received while offline.

* Updates OSRS Plugin commit hash

* Updates dependencies of Archipelago plugin

* Changes were not included somehow in previous commit. Trying again.

* Removes JUnit bom

* Sets httpcore to non-transitive

* Attempts to exclude junit from httpcore

* Adds junit bom to exclusion list

* Fixes syntax in manual junit bom verification

* I guess bom is on 5.9.3 now

* Removes httpclient5 from dependencies

* Moves junit bom verification to template file

* Removes modules that are no longer necessary from verification metadata

* Woops, too much! Reverse course!

* Looks like the websocket 1.5.7 is required after all

* Removes Java IO Serialization

* Injects GSON instead of creating new instance

* Replaces maven repository Archipelago plugin with embedded package, sans IO Serialization

* Removes Gson constructors from APClient

* Update osrs-archipelago to v2.0.0

Runelite Plugin Changes:
- Updates Archipelago Java Client version so items are no longer displayed as "Unknown Item" or "Unknown Location"
- Plugin now pulls data from [logic repository](https://github.com/digiholic/osrs-archipelago-logic) based on versions baked into AP Seed, allows for minor logic changes without requiring updates.
- AP slot data stored in Runelite directory, for more consistent detection of player login and more safeguards against connecting with the wrong OSRS account
- More consistent connectivity, no longer loses connection to AP server on world hops or loading, properly disconnects on logout
- "Tiered" items no longer mismatch between what is displayed and what is actually unlocked
- Adds new item categories for Duds, Care Packs, and Claimed Care Packs to item panel
- _Every_ task should now be consistently auto-detected by Runelite. New methods of detecting completion have been devised that should be lag-proof.
- Plugin now displays an overlay when you are in a locked region, regardless of whether region-locker is installed or enabled.
- Many new types of Tasks, to auto-detect completion of new task types.

* Removes java reflection

* Removes system out calls
2025-02-18 18:33:48 -05:00
2024-08-16 11:53:53 -06:00
2021-10-16 00:27:49 -06:00
2020-01-13 22:51:58 +01:00
2019-12-12 13:46:39 -07:00
2025-02-18 04:02:16 -07:00

plugin-hub Discord

This repository contains markers for RuneLite plugins that are not supported by the RuneLite Developers. The plugins are provided "as is"; we make no guarantees about any plugin in this repo.

Setting up the development environment

We recommend IntelliJ Idea Community Edition as well as Java 11. You can either have IntelliJ install Java (select Eclipse Temurin) or download it from https://adoptium.net/temurin/releases/. You must also have a GitHub account.

Contribute to existing plugins

We recommend contributing to existing plugins if the author(s) are accepting contributions, and the feature you want to add fits well into the plugin, to avoid fragmentation of plugin ecosystem. Reducing plugin fragmentation helps users discover features more easily, and helps us review changes in a more timely manner.

You may contribute to existing plugins by selecting the plugin from https://runelite.net/plugin-hub, navigating to the plugin's GitHub repository by following the "Report an issue" link, and then following the "Create new plugins" section below from step 3.

Creating new plugins

  1. Generate your own repository from the plugin template link (you must be signed into GitHub first). Alternatively, you may use the create_new_plugin.py script provided in this repository to generate a new plugin project.

  2. Name your repository something appropriate, in my case I will name it helmet-check with the description You should always wear a helmet. Make sure that your repository is set to public.

  3. In the top right, you will see a Clone or download-button. Click on it and copy the link.

  4. Open IntelliJ and choose Get from Version Control. Paste the link you just copied in the URL field and where you want to save it in the second field.

  5. In order to make sure everything works correctly, try to start the client with your external plugin enabled by running the provided test. If you don't have a run configuration yet for the test, attempt to run it by clicking Run test. This will create a run configuration and fail to run due to asserts being disabled. Add -ea to your VM options in the run configuration to enable assertions, which can be found under Run/Debug Configurations under Modify options, Add VM options, and then adding -ea into the input field which appears.

The client should now launch with your plugin enabled. If you have a Jagex account, you will be unable to login without first following this guide.

run-test

  1. Use the refactor tool to rename the package to what you want your plugin to be. Rightclick the package in the sidebar and choose Refactor > Rename. I choose to rename it to com.helmetcheck.

  2. Use the same tool, Refactor > Rename, to rename ExamplePlugin, ExampleConfig and ExamplePluginTest to HelmetCheckPlugin etc.

  3. Go to your plugin file and set its name in the PluginDescriptor, this can have spaces.

  4. Open the runelite-plugin.properties file and add info to each row.

displayName=Helmet check
author=dekvall
description=Alerts you when you have nothing equipped in your head slot
tags=hint,gear,head
plugins=com.helmetcheck.HelmetCheckPlugin

tags will make it easier to find your plugin when searching for related words. If you want to add multiple plugin files, the plugins field allows for comma separated values, but this is not usually needed.

  1. Optionally, you can add an icon to be displayed alongside with your plugin. Place a file with the name icon.png no larger than 48x72 px at the root of the repository.

  2. Write a nice README so your users can see the features of your plugin.

  3. When you have your plugin working. Commit your changes and push them to your repository.

Licensing your repository

  1. Go to your repository on GitHub and select Add file (next to the green Code button), and choose Create new file from the drop-down.
  2. In the file name field type LICENSE and click the Choose a license template button that will appear.
  3. Select BSD 2-Clause "Simplified" License from the list to the left. Fill in your details and press Review and submit.
  4. Commit your changes by clicking Commit changes at the bottom of the page. Make sure you check the button to directly commit to the master branch.

Submitting a plugin

  1. Fork the plugin-hub repository.
  2. Create a new branch for your plugin.
  3. Create a new file in the plugin-hub/plugins directory with the fields:
repository=
commit=
  1. To get the repository url, click the Clone or download-button choose Use HTTPS. Paste the url in in the repository= field.

  2. To get the commit hash, go to your plugin repository on GitHub and click on commits. Choose the latest one and copy the full 40-character hash. It can be seen in the top right after selecting a commit. Paste this into the commit= field of the file. Your file should now look something like this:

repository=https://github.com/dekvall/helmet-check.git
commit=9db374fc205c5aae1f99bd5fd127266076f40ec8
  1. This is the only change you need to make, so commit your changes and push them to your fork. Then go back to the plugin-hub and click New pull request in the upper left. Choose Compare across forks and select your fork and branch as head and compare.

  2. Write a short description of what your plugin does and then create your pull request.

  3. Check the result of your PR's CI workflow, next to .github/workflows/build.yml / build (pull_request) will be either a ✔️ or an . With a ✔️ all is good, however if it has an , click Details to check the build log for details of the failure. Along with the build workflow there also may be an next to RuneLite Plugin Hub Checks, you will only need to worry about this if it says View details for requested changes., in that case you should also read over those requested changes. Once you've read over the build error and requested changes, make the required changes, and push another commit to update the PR with the new commit= hash.
    Don't worry about how many times it takes you to resolve build errors; we prefer all changes be kept in a single pull request to avoid spamming notifications with further newly-opened PRs.

  4. Be patient and wait for your plugin to be reviewed and merged.

Updating a plugin

To update a plugin, simply update the manifest with the most recent commit hash.

It is recommended to open a pull request from a separate branch. You can run the following commands from your plugin-hub repository directory to set up a branch:

$ git remote add upstream https://github.com/runelite/plugin-hub.git  # Only necessary if you have not set it before
$ git fetch upstream && git checkout -B <your-plugin-name> upstream/master

Once your changes have been merged, you can delete the branch. The next time you would like to update your plugin, you can create the branch again.

Reviewing

We will review your plugin to ensure it isn't malicious, doesn't break Jagex's rules, or isn't one of our previously Rejected/Rolledback features.
If it is difficult for us to ensure the plugin isn't against the rules we will not merge it.

Plugin resources

Resources may be included with plugins, which are non-code and are bundled and distributed with the plugin, such as images and sounds. You may do this by placing them in src/main/resources. Plugins on the pluginhub are distributed in .jar form and the jars placed into the classpath. The plugin is not unpacked on disk, and you can not assume that it is. This means that using https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getResource-java.lang.String- will return a jar-URL when the plugin is deployed to the pluginhub, but in your IDE will be a file-URL. This almost certainly makes it behave differently from how you expect it to, and isn't what you want. Instead, prefer using https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getResourceAsStream-java.lang.String-.

Third party dependencies

We require any dependencies that are not a transitive dependency of runelite-client to be have their cryptographic hash verified during the build to prevent supply chain attacks and ensure build reproducability. To do this we rely on Gradle's dependency verification. To add a new dependency, add it to the thirdParty configuration in package/verification-template/build.gradle, then run ../gradlew --write-verification-metadata sha256 to update the metadata file. A maintainer must then verify the dependencies manually before your pull request will be merged.

My client version is outdated

If your client version is outdated or your plugin suddenly stopped working after RuneLite has been updated, make sure that your runeLiteVersion is set to 'latest.release' in build.gradle. If this is set correctly, refresh the Gradle dependencies by doing the following:

  1. Open the Gradle tool window.
  2. Right-click on the project's name. This will contain the Gradle icon (elephant).
  3. Choose Refresh Gradle Dependencies. If your issue is not resolved, try reloading all Gradle projects. This option is located in the toolbar in the Gradle tool window. Additionally, try invalidating caches.
Description
No description provided
Readme BSD-2-Clause 74 MiB
Languages
Java 95.1%
Python 4.9%