From c4f019aff0b4f7ca5caf136309acccf80ef4144a Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sat, 24 Oct 2020 17:18:00 +0200 Subject: [PATCH 01/41] Switch to GitHub actions Signed-off-by: Tomas Slusny --- .github/workflows/CI.yml | 32 ++++++++++++++++++++++++++++++++ .travis.yml | 19 ------------------- README.md | 2 +- ci/build.sh | 18 ++++++++++++++++++ {travis => ci}/settings.xml | 0 travis/build.sh | 9 --------- 6 files changed, 51 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/CI.yml delete mode 100644 .travis.yml create mode 100755 ci/build.sh rename {travis => ci}/settings.xml (100%) delete mode 100755 travis/build.sh diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000000..5cdd4871c2 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,32 @@ +name: CI + +on: [ push, pull_request ] + +jobs: + build: + runs-on: ubuntu-20.04 + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Cache + uses: actions/cache@v2 + with: + path: | + ~/.m2/repository + ~/.cache/runelite + key: ${{ runner.os }}-cache-${{ hashFiles('**/pom.xml', '**/build.sh') }} + restore-keys: | + ${{ runner.os }}-cache- + + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Build + run: ./ci/build.sh + + - name: Remove build artifacts + run: rm -rf ~/.m2/repository/net/runelite diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0382d59f37..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: java -os: linux -dist: xenial -cache: - directories: - - $HOME/.m2 -env: - global: - - JAVA_TOOL_OPTIONS=-Dhttps.protocols=TLSv1.2 -jdk: -- openjdk8 -- openjdk11 -install: true -script: ./travis/build.sh -notifications: - irc: - channels: - # "irc.rizon.net#runelite" - - secure: "mWQqHYRviyGWM5qQmQ3wtfUg2kFPNwC3ISbqsZhQiHiMLBxZoONMQVHIFgc09h1EqnM1mOLDAh6TSxsxNW1FR7j70pWc3hPOu8Lk1iu1vzLs/RN4dgKH8eQ0u1CpB5oaqHqC3X2CFGrytd92M7GUzHencY0twsze8m0592XRyK/3cuQwCRHFKN0uI7KNqF6n0M3/335sivB8gfy/zy5nKQmgL+r7Z2p4VrrUrSvdM3hKGhbixHijNB+5LONJpRpc/Z2Hgb5H5zmEcHBPRkHakmn5XtPYaC6eFqENi4lh99HYsN9q+ifarV0uQBdXNtJt0BFPFk0CnsnHD9QHRYOiRxROI7axISXmzA+3uoYuIMkwEcHivMkWXbgRLZaMvkjuIBKaKypTvVm+zWEPAdsNfCrWrqBuAwac6L/D++cri4f+00dKMXSE4TYSUV5mQj2WFBZ3se37UJGns4NHhcDe8SHoy6vnmIwaqGoylMmeTO80EVfFzkZxjH/YrRdwsuyCeQG9Tgv0FIDkhxwpsY/ek/TE/SHgO5U5gtKpFfB0cFc5RWfXxKat7PI31Ln5r5XahizScUi0FcdVD1cbGWug5/2vG0AEkyrgyFRJZuSxjCVidrX6vLitCNLGVvMC+BpZBSiDVZvyeQJ10SIwZnKDF+SlgSNv2+aEWnhunZ6GBb8=" diff --git a/README.md b/README.md index 2c0c749e1f..d6352d432d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://runelite.net/img/logo.png) -# runelite [![Travis](https://img.shields.io/travis/runelite/runelite.svg)](https://travis-ci.org/runelite/runelite) [![Discord](https://img.shields.io/discord/301497432909414422.svg)](https://discord.gg/mePCs8U) +# runelite ![CI](https://github.com/runelite/runelite/workflows/CI/badge.svg) [![Discord](https://img.shields.io/discord/301497432909414422.svg)](https://discord.gg/mePCs8U) RuneLite is a free, open source OldSchool RuneScape client. diff --git a/ci/build.sh b/ci/build.sh new file mode 100755 index 0000000000..15282adc6f --- /dev/null +++ b/ci/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e -x + +CACHEDIR="$HOME/.cache/runelite" +mkdir -p "${CACHEDIR}" +GLSLANG_ARCHIVE="${CACHEDIR}/glslang.zip" +GLSLANG_DIR="${CACHEDIR}/glslang" +GLSLANG_RELEASE='https://github.com/KhronosGroup/glslang/releases/download/8.13.3559/glslang-master-linux-Release.zip' +GLSLANG_CHECKSUM='9adcfdef5b52275e61068aafbb62747936c6c18ab6dc32a6ef707cfc7b0df423' + +if [ ! -f "${GLSLANG_ARCHIVE}" ] || [ ! -d "${GLSLANG_DIR}" ] || ! echo "${GLSLANG_CHECKSUM} ${GLSLANG_ARCHIVE}" | sha256sum -c -; then + wget -O "${GLSLANG_ARCHIVE}" "${GLSLANG_RELEASE}" + echo "${GLSLANG_CHECKSUM} ${GLSLANG_ARCHIVE}" | sha256sum -c + unzip -o -q "${GLSLANG_ARCHIVE}" -d "${GLSLANG_DIR}" +fi + +mvn clean install --settings ci/settings.xml -Dglslang.path="${GLSLANG_DIR}/bin/glslangValidator" diff --git a/travis/settings.xml b/ci/settings.xml similarity index 100% rename from travis/settings.xml rename to ci/settings.xml diff --git a/travis/build.sh b/travis/build.sh deleted file mode 100755 index d86e56f113..0000000000 --- a/travis/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e -x - -wget -O/tmp/glslang.zip 'https://github.com/KhronosGroup/glslang/releases/download/8.13.3559/glslang-master-linux-Release.zip' -echo '9adcfdef5b52275e61068aafbb62747936c6c18ab6dc32a6ef707cfc7b0df423 /tmp/glslang.zip' | sha256sum -c -unzip -q /tmp/glslang.zip -d /tmp/glslang - -mvn clean install --settings travis/settings.xml -Dglslang.path=/tmp/glslang/bin/glslangValidator From d3c0713969cfd0aaf538bde9c1f7e2b3a41baf97 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 28 Oct 2020 16:05:48 -0400 Subject: [PATCH 02/41] key remapping: don't remap space in options dialog The options dialog never accepts space, so remapping a key to it doesn't make sense, and it is possible the original key was one of the keys actually being listened for --- .../keyremapping/KeyRemappingListener.java | 4 +++- .../keyremapping/KeyRemappingPlugin.java | 5 +++++ .../keyremapping/KeyRemappingListenerTest.java | 18 ++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java index 25c0da9576..181c4abf8c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java @@ -155,7 +155,9 @@ class KeyRemappingListener implements KeyListener } } - if (plugin.isDialogOpen() && config.space().matches(e)) + // Do not remap to space key when the options dialog is open, since the options dialog never + // listens for space, and the remapped key may be one of keys it listens for. + if (plugin.isDialogOpen() && !plugin.isOptionsDialogOpen() && config.space().matches(e)) { mappedKeyCode = KeyEvent.VK_SPACE; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java index d0bcbf6d4f..a1b1034b26 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java @@ -144,6 +144,11 @@ public class KeyRemappingPlugin extends Plugin || !isHidden(WidgetInfo.BANK_PIN_CONTAINER); } + boolean isOptionsDialogOpen() + { + return client.getWidget(WidgetInfo.DIALOG_OPTION) != null; + } + private boolean isHidden(WidgetInfo widgetInfo) { Widget w = client.getWidget(widgetInfo); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java index 4d3b3b3005..d7da96133d 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java @@ -105,4 +105,22 @@ public class KeyRemappingListenerTest verify(event).setKeyCode(KeyEvent.VK_RIGHT); verify(event).setKeyChar(KeyEvent.CHAR_UNDEFINED); } + + @Test + public void testSpaceRemap() + { + when(keyRemappingConfig.space()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_NUMPAD1, 0)); + + when(keyRemappingPlugin.chatboxFocused()).thenReturn(true); + when(keyRemappingPlugin.isDialogOpen()).thenReturn(true); + + KeyEvent event = mock(KeyEvent.class); + when(event.getKeyChar()).thenReturn('1'); + when(event.getKeyCode()).thenReturn(KeyEvent.VK_NUMPAD1); + when(event.getExtendedKeyCode()).thenReturn(KeyEvent.VK_NUMPAD1); // for keybind matches() + + keyRemappingListener.keyPressed(event); + + verify(event).setKeyCode(KeyEvent.VK_SPACE); + } } From fc9f9faff0a60f60c2c04007fe7c7d5bb0950e39 Mon Sep 17 00:00:00 2001 From: SirGirion Date: Thu, 29 Oct 2020 08:42:17 -0400 Subject: [PATCH 03/41] chatcommands: handle league accounts properly --- .../src/main/java/net/runelite/api/IconID.java | 3 ++- .../plugins/chatcommands/ChatCommandsPlugin.java | 14 +++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/IconID.java b/runelite-api/src/main/java/net/runelite/api/IconID.java index cbc896ca4b..dccf3bbc07 100644 --- a/runelite-api/src/main/java/net/runelite/api/IconID.java +++ b/runelite-api/src/main/java/net/runelite/api/IconID.java @@ -47,7 +47,8 @@ public enum IconID HARDCORE_IRONMAN(10), NO_ENTRY(11), CHAIN_LINK(12), - BOUNTY_HUNTER_EMBLEM(20); + BOUNTY_HUNTER_EMBLEM(20), + LEAGUE(22); private final int index; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 0f262f724b..7574803fb1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -1457,7 +1457,7 @@ public class ChatCommandsPlugin extends Plugin } } - // Get ironman status from their icon in chat + // Get ironman status from their icon in chat, this handles leagues too HiscoreEndpoint endpoint = getHiscoreEndpointByName(chatMessage.getName()); return new HiscoreLookup(player, endpoint); } @@ -1517,19 +1517,23 @@ public class ChatCommandsPlugin extends Plugin { if (name.contains(IconID.IRONMAN.toString())) { - return toEndPoint(AccountType.IRONMAN); + return HiscoreEndpoint.IRONMAN; } else if (name.contains(IconID.ULTIMATE_IRONMAN.toString())) { - return toEndPoint(AccountType.ULTIMATE_IRONMAN); + return HiscoreEndpoint.ULTIMATE_IRONMAN; } else if (name.contains(IconID.HARDCORE_IRONMAN.toString())) { - return toEndPoint(AccountType.HARDCORE_IRONMAN); + return HiscoreEndpoint.HARDCORE_IRONMAN; + } + else if (name.contains(IconID.LEAGUE.toString())) + { + return HiscoreEndpoint.LEAGUE; } else { - return toEndPoint(AccountType.NORMAL); + return HiscoreEndpoint.NORMAL; } } From 7f902f30c541a8a2dfe0b24a4fe16d709fca46fc Mon Sep 17 00:00:00 2001 From: Dasgust <63425247+d-as@users.noreply.github.com> Date: Fri, 30 Oct 2020 23:24:59 +0200 Subject: [PATCH 04/41] xp tracker: add goal time formatting option --- .../plugins/xptracker/XpGoalTimeType.java | 32 ++++++++ .../client/plugins/xptracker/XpInfoBox.java | 7 +- .../plugins/xptracker/XpProgressBarLabel.java | 1 + .../plugins/xptracker/XpSnapshotSingle.java | 1 + .../plugins/xptracker/XpStateSingle.java | 74 +++++++++---------- .../plugins/xptracker/XpTrackerConfig.java | 11 +++ 6 files changed, 85 insertions(+), 41 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpGoalTimeType.java diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpGoalTimeType.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpGoalTimeType.java new file mode 100644 index 0000000000..b340d9b6b4 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpGoalTimeType.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2020, Dasgust + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.xptracker; + +public enum XpGoalTimeType +{ + DAYS, + HOURS, + SHORT +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java index 4dc0af0f88..343765bb79 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java @@ -75,7 +75,7 @@ class XpInfoBox extends JPanel private static final String HTML_TOOL_TIP_TEMPLATE = "%s %s done
" + "%s %s/hr
" - + "%s till goal lvl"; + + "%s %s"; private static final String HTML_LABEL_TEMPLATE = "%s%s"; @@ -287,13 +287,16 @@ class XpInfoBox extends JPanel progressBar.setPositions(Collections.emptyList()); } + XpProgressBarLabel tooltipLabel = xpTrackerConfig.progressBarTooltipLabel(); + progressBar.setToolTipText(String.format( HTML_TOOL_TIP_TEMPLATE, xpSnapshotSingle.getActionsInSession(), xpSnapshotSingle.getActionType().getLabel(), xpSnapshotSingle.getActionsPerHour(), xpSnapshotSingle.getActionType().getLabel(), - xpSnapshotSingle.getTimeTillGoal())); + tooltipLabel.getValueFunc().apply(xpSnapshotSingle), + tooltipLabel == XpProgressBarLabel.PERCENTAGE ? "of goal" : "till goal lvl")); progressBar.setDimmed(skillPaused); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpProgressBarLabel.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpProgressBarLabel.java index bdcbb91fc3..35d19a63db 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpProgressBarLabel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpProgressBarLabel.java @@ -37,6 +37,7 @@ public enum XpProgressBarLabel { PERCENTAGE((snap) -> TWO_DECIMAL_FORMAT.format(snap.getSkillProgressToGoal()) + "%"), TIME_TO_LEVEL(XpSnapshotSingle::getTimeTillGoal), + HOURS_TO_LEVEL(XpSnapshotSingle::getTimeTillGoalHours) ; private final Function valueFunc; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java index 6767ab6066..912b5b6b12 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java @@ -44,5 +44,6 @@ class XpSnapshotSingle private int actionsRemainingToGoal; private int actionsPerHour; private String timeTillGoal; + private String timeTillGoalHours; private String timeTillGoalShort; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java index 82182ae54c..e10684e322 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java @@ -147,7 +147,7 @@ class XpStateSingle return (getXpRemaining() * seconds) / xpGained; } - private String getTimeTillLevel() + private String getTimeTillLevel(XpGoalTimeType goalTimeType) { long remainingSeconds = getSecondsTillLevel(); if (remainingSeconds < 0) @@ -157,49 +157,44 @@ class XpStateSingle long durationDays = remainingSeconds / (24 * 60 * 60); long durationHours = (remainingSeconds % (24 * 60 * 60)) / (60 * 60); + long durationHoursTotal = remainingSeconds / (60 * 60); long durationMinutes = (remainingSeconds % (60 * 60)) / 60; long durationSeconds = remainingSeconds % 60; - if (durationDays > 1) + switch (goalTimeType) { - return String.format("%d days %02d:%02d:%02d", durationDays, durationHours, durationMinutes, durationSeconds); - } - else if (durationDays == 1) - { - return String.format("1 day %02d:%02d:%02d", durationHours, durationMinutes, durationSeconds); - } + case DAYS: + if (durationDays > 1) + { + return String.format("%d days %02d:%02d:%02d", durationDays, durationHours, durationMinutes, durationSeconds); + } + else if (durationDays == 1) + { + return String.format("1 day %02d:%02d:%02d", durationHours, durationMinutes, durationSeconds); + } + case HOURS: + if (durationHoursTotal > 1) + { + return String.format("%d hours %02d:%02d", durationHoursTotal, durationMinutes, durationSeconds); + } + else if (durationHoursTotal == 1) + { + return String.format("1 hour %02d:%02d", durationMinutes, durationSeconds); + } + case SHORT: + default: + // durationDays = 0 or durationHoursTotal = 0 or goalTimeType = SHORT if we got here. + // return time remaining in hh:mm:ss or mm:ss format where hh can be > 24 + if (durationHoursTotal > 0) + { + return String.format("%02d:%02d:%02d", durationHoursTotal, durationMinutes, durationSeconds); + } - // durationDays = 0 if we got here. - // return time remaining in hh:mm:ss or mm:ss format - return getTimeTillLevelShort(); + // Minutes and seconds will always be present + return String.format("%02d:%02d", durationMinutes, durationSeconds); + } } - /** - * Get time to level in `hh:mm:ss` or `mm:ss` format, - * where `hh` can be > 24. - * @return - */ - private String getTimeTillLevelShort() - { - long remainingSeconds = getSecondsTillLevel(); - if (remainingSeconds < 0) - { - return "\u221e"; - } - - long durationHours = remainingSeconds / (60 * 60); - long durationMinutes = (remainingSeconds % (60 * 60)) / 60; - long durationSeconds = remainingSeconds % 60; - if (durationHours > 0) - { - return String.format("%02d:%02d:%02d", durationHours, durationMinutes, durationSeconds); - } - - // Minutes and seconds will always be present - return String.format("%02d:%02d", durationMinutes, durationSeconds); - } - - int getXpHr() { return toHourly(xpGained); @@ -298,8 +293,9 @@ class XpStateSingle .actionsInSession(getXpAction(actionType).getActions()) .actionsRemainingToGoal(getActionsRemaining()) .actionsPerHour(getActionsHr()) - .timeTillGoal(getTimeTillLevel()) - .timeTillGoalShort(getTimeTillLevelShort()) + .timeTillGoal(getTimeTillLevel(XpGoalTimeType.DAYS)) + .timeTillGoalHours(getTimeTillLevel(XpGoalTimeType.HOURS)) + .timeTillGoalShort(getTimeTillLevel(XpGoalTimeType.SHORT)) .startGoalXp(startLevelExp) .endGoalXp(endLevelExp) .build(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerConfig.java index 3bedf3548d..f14c643f02 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerConfig.java @@ -180,6 +180,17 @@ public interface XpTrackerConfig extends Config @ConfigItem( position = 12, + keyName = "progressBarTooltipLabel", + name = "Tooltip label", + description = "Configures the info box progress bar tooltip to show Time to goal or percentage complete" + ) + default XpProgressBarLabel progressBarTooltipLabel() + { + return XpProgressBarLabel.TIME_TO_LEVEL; + } + + @ConfigItem( + position = 13, keyName = "prioritizeRecentXpSkills", name = "Move recently trained skills to top", description = "Configures whether skills should be organized by most recently gained xp" From e02341fd7cc45a21ceaad541859279fffd0baa1c Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sat, 31 Oct 2020 16:27:00 +0100 Subject: [PATCH 05/41] Link to CI workflow from CI badge Instead of linking to image link to actual workflow Signed-off-by: Tomas Slusny --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d6352d432d..fa74cfbdce 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://runelite.net/img/logo.png) -# runelite ![CI](https://github.com/runelite/runelite/workflows/CI/badge.svg) [![Discord](https://img.shields.io/discord/301497432909414422.svg)](https://discord.gg/mePCs8U) +# runelite [![CI](https://github.com/runelite/runelite/workflows/CI/badge.svg)](https://github.com/runelite/runelite/actions?query=workflow%3ACI+branch%3Amaster) [![Discord](https://img.shields.io/discord/301497432909414422.svg)](https://discord.gg/mePCs8U) RuneLite is a free, open source OldSchool RuneScape client. From 20dec72416f984dcc2bc8c8bfcf2cf5c961b99aa Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 31 Oct 2020 15:18:29 -0400 Subject: [PATCH 06/41] spriteid: remove duplicated run icon --- runelite-api/src/main/java/net/runelite/api/SpriteID.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/SpriteID.java index 995715076c..f102b5ec76 100644 --- a/runelite-api/src/main/java/net/runelite/api/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/SpriteID.java @@ -1044,7 +1044,6 @@ public final class SpriteID public static final int MINIMAP_ORB_PRAYER_ICON = 1068; public static final int MINIMAP_ORB_WALK_ICON = 1069; public static final int MINIMAP_ORB_RUN_ICON = 1070; - public static final int MINIMAP_ORB_RUN_ICON_ACTIVATED = 1070; public static final int MINIMAP_ORB_FRAME = 1071; public static final int MINIMAP_ORB_FRAME_HOVERED = 1072; public static final int OPTIONS_CAMERA = 1073; From f52eeaf4d3a1838b8de91f45709228d60048958a Mon Sep 17 00:00:00 2001 From: Max Weber Date: Thu, 1 Oct 2020 00:54:51 -0600 Subject: [PATCH 07/41] wiki: remove remainder of quest/diary lookup code 2b077f4364b2f45a774a12778bbdd5fc26aab006 --- .../client/plugins/wiki/WikiPlugin.java | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java index f1646c3503..82b119e36f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java @@ -69,20 +69,11 @@ import okhttp3.HttpUrl; ) public class WikiPlugin extends Plugin { - private static final int[] QUESTLIST_WIDGET_IDS = new int[] - { - WidgetInfo.QUESTLIST_FREE_CONTAINER.getId(), - WidgetInfo.QUESTLIST_MEMBERS_CONTAINER.getId(), - WidgetInfo.QUESTLIST_MINIQUEST_CONTAINER.getId(), - }; - static final HttpUrl WIKI_BASE = HttpUrl.parse("https://oldschool.runescape.wiki"); static final HttpUrl WIKI_API = WIKI_BASE.newBuilder().addPathSegments("api.php").build(); static final String UTM_SORUCE_KEY = "utm_source"; static final String UTM_SORUCE_VALUE = "runelite"; - private static final String MENUOP_GUIDE = "Guide"; - private static final String MENUOP_QUICKGUIDE = "Quick Guide"; private static final String MENUOP_WIKI = "Wiki"; @Inject @@ -340,25 +331,8 @@ public class WikiPlugin extends Plugin if (ev.getMenuAction() == MenuAction.RUNELITE) { - boolean quickguide = false; switch (ev.getMenuOption()) { - case MENUOP_QUICKGUIDE: - quickguide = true; - //fallthrough; - case MENUOP_GUIDE: - ev.consume(); - String quest = Text.removeTags(ev.getMenuTarget()); - HttpUrl.Builder ub = WIKI_BASE.newBuilder() - .addPathSegment("w") - .addPathSegment(quest) - .addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE); - if (quickguide) - { - ub.addPathSegment("Quick_guide"); - } - LinkBrowser.browse(ub.build().toString()); - break; case MENUOP_WIKI: LinkBrowser.browse(WIKI_BASE.newBuilder() .addPathSegment("w") From de8afadac914ac47f282ec9147c72a61534d79eb Mon Sep 17 00:00:00 2001 From: Max Weber Date: Thu, 1 Oct 2020 01:21:24 -0600 Subject: [PATCH 08/41] wiki: don't throw when trying to optarget skills --- .../main/java/net/runelite/client/plugins/wiki/WikiPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java index 82b119e36f..c9ffc48211 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java @@ -390,7 +390,7 @@ public class WikiPlugin extends Plugin if (WidgetInfo.TO_GROUP(widgetID) == WidgetInfo.SKILLS_CONTAINER.getGroupId()) { Widget w = getWidget(widgetID, widgetIndex); - if (w.getParentId() != WidgetInfo.SKILLS_CONTAINER.getId()) + if (w.getActions() == null || w.getParentId() != WidgetInfo.SKILLS_CONTAINER.getId()) { return; } From bbd06b84b916b009f0d28003e58cf818df339113 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Thu, 1 Oct 2020 01:16:50 -0600 Subject: [PATCH 09/41] wiki: Always include item names in widget optarget lookups Normally the client includes Widget::name in the target param, but for widgets that don't normally have menu entries this is often empty so the lookup string would just be `Lookup ` --- .../client/game/chatbox/ChatboxItemSearch.java | 3 ++- .../client/plugins/wiki/WikiPlugin.java | 18 +++++++++++++++++- .../wiki/WikiSearchChatboxTextInput.java | 3 ++- .../net/runelite/client/ui/JagexColors.java | 3 ++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java index 2599e55dc7..646ba7e6af 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java @@ -47,6 +47,7 @@ import net.runelite.api.widgets.WidgetTextAlignment; import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; import net.runelite.client.game.ItemManager; +import net.runelite.client.ui.JagexColors; @Singleton public class ChatboxItemSearch extends ChatboxTextInput @@ -141,7 +142,7 @@ public class ChatboxItemSearch extends ChatboxTextInput item.setOriginalY(y + FONT_SIZE * 2); item.setOriginalHeight(ICON_HEIGHT); item.setOriginalWidth(ICON_WIDTH); - item.setName("" + itemComposition.getName()); + item.setName(JagexColors.MENU_TARGET_TAG + itemComposition.getName()); item.setItemId(itemComposition.getId()); item.setItemQuantity(10000); item.setItemQuantityMode(ItemQuantityMode.NEVER); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java index c9ffc48211..f24ff6b7d2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java @@ -58,6 +58,7 @@ import net.runelite.client.game.SpriteManager; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.ui.JagexColors; import net.runelite.client.util.LinkBrowser; import net.runelite.client.util.Text; import okhttp3.HttpUrl; @@ -370,7 +371,22 @@ public class WikiPlugin extends Plugin if (wikiSelected && event.getType() == MenuAction.SPELL_CAST_ON_WIDGET.getId()) { Widget w = getWidget(widgetID, widgetIndex); - if (!(w.getType() == WidgetType.GRAPHIC && w.getItemId() != -1)) + if (w.getType() == WidgetType.GRAPHIC && w.getItemId() != -1) + { + for (int ourEntry = menuEntries.length - 1;ourEntry >= 0; ourEntry--) + { + MenuEntry entry = menuEntries[ourEntry]; + if (entry.getType() == MenuAction.SPELL_CAST_ON_WIDGET.getId()) + { + int id = itemManager.canonicalize(w.getItemId()); + String name = itemManager.getItemComposition(id).getName(); + entry.setTarget(JagexColors.MENU_TARGET_TAG + name); + break; + } + } + client.setMenuEntries(menuEntries); + } + else { // we don't support this widget // remove the last SPELL_CAST_ON_WIDGET; we can't blindly remove the top action because some other diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java index 17607d6149..c796ceda32 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java @@ -48,6 +48,7 @@ import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxTextInput; +import net.runelite.client.ui.JagexColors; import net.runelite.client.util.LinkBrowser; import okhttp3.Call; import okhttp3.Callback; @@ -221,7 +222,7 @@ public class WikiSearchChatboxTextInput extends ChatboxTextInput bg.setOriginalWidth(16); bg.setWidthMode(WidgetSizeMode.MINUS); bg.revalidate(); - bg.setName("" + pred); + bg.setName(JagexColors.MENU_TARGET_TAG + pred); bg.setAction(0, "Open"); bg.setHasListener(true); bg.setOnOpListener((JavaScriptCallback) ev -> search(pred)); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java b/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java index f236c431aa..aaab638696 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java @@ -54,7 +54,8 @@ public class JagexColors /* * Colors relating to right-click menus. */ - public static final Color MENU_TARGET = new Color(255, 144, 64); + public static final Color MENU_TARGET = new Color(0xFF9040); + public static final String MENU_TARGET_TAG = ""; /* * Colors relating to tooltips. From c8400a184ad25147b4a36f1df36374f707389d39 Mon Sep 17 00:00:00 2001 From: Hydrox6 Date: Thu, 16 Apr 2020 18:57:42 +0100 Subject: [PATCH 10/41] chat timestamps: add timestamps for all message types --- runelite-client/src/main/scripts/ChatBuilder.rs2asm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/runelite-client/src/main/scripts/ChatBuilder.rs2asm b/runelite-client/src/main/scripts/ChatBuilder.rs2asm index 32df586628..30e4da40d4 100644 --- a/runelite-client/src/main/scripts/ChatBuilder.rs2asm +++ b/runelite-client/src/main/scripts/ChatBuilder.rs2asm @@ -533,7 +533,13 @@ LABEL416: LABEL430: jump LABEL445 LABEL431: + iload 9 ; The id of the messageNode of the message being built + sconst "" + sconst "addTimestamp" + runelite_callback + pop_int ; pop message id sload 11 + join_string 2 iload 7 iload 8 iconst 10616891 From 7ceb3c9e020aa8316ddc5809a2d409d5d2efb697 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 1 Nov 2020 11:54:54 -0500 Subject: [PATCH 11/41] client: add PMD source code analyzer This catches common bugs, dead code, etc., and also performs some more advanced code style checks compared to checkstyle. Co-authored-by: pilino1234 --- ci/settings.xml | 1 + runelite-client/pmd-ruleset.xml | 96 +++++++++++++++++++ runelite-client/pom.xml | 34 +++++++ .../client/callback/ClientThread.java | 4 +- .../client/chat/ChatMessageManager.java | 2 +- .../client/config/ModifierlessKeybind.java | 1 + .../net/runelite/client/game/ItemManager.java | 7 +- .../client/game/SkillIconManager.java | 3 +- .../game/chatbox/ChatboxItemSearch.java | 2 +- .../runelite/client/menus/MenuManager.java | 18 ---- .../client/plugins/PluginManager.java | 4 - .../CombatLevelRequirement.java | 3 +- .../achievementdiary/FavourRequirement.java | 1 + .../achievementdiary/OrRequirement.java | 1 + .../QuestPointRequirement.java | 1 + .../achievementdiary/QuestRequirement.java | 1 + .../achievementdiary/SkillRequirement.java | 1 + .../client/plugins/agility/AgilityPlugin.java | 3 +- .../attackstyles/AttackStylesPlugin.java | 4 +- .../plugins/banktags/BankTagsPlugin.java | 8 -- .../plugins/banktags/tabs/TabInterface.java | 3 +- .../plugins/barrows/BarrowsOverlay.java | 2 - .../client/plugins/bosstimer/Boss.java | 2 +- .../plugins/cluescrolls/clues/CipherClue.java | 1 + .../cluescrolls/clues/HotColdClue.java | 1 + .../plugins/cluescrolls/clues/MapClue.java | 1 + .../clues/item/AnyRequirementCollection.java | 4 +- .../clues/item/MultipleOfItemRequirement.java | 4 +- .../clues/item/RangeItemRequirement.java | 6 +- .../clues/item/SingleItemRequirement.java | 2 +- .../clues/item/SlotLimitationRequirement.java | 4 +- .../client/plugins/config/UnitFormatter.java | 2 +- .../plugins/cooking/CookingOverlay.java | 4 +- .../client/plugins/corp/CorpPlugin.java | 3 - .../defaultworld/DefaultWorldConfig.java | 2 +- .../plugins/devtools/InventoryDeltaPanel.java | 1 + .../plugins/devtools/InventoryInspector.java | 4 +- .../plugins/devtools/ScriptInspector.java | 6 +- .../client/plugins/devtools/VarInspector.java | 2 +- .../plugins/devtools/WidgetInspector.java | 2 +- .../client/plugins/discord/DiscordPlugin.java | 2 +- .../plugins/experiencedrop/XpDropPlugin.java | 2 +- .../plugins/fairyring/FairyRingPlugin.java | 6 +- .../client/plugins/feed/FeedPlugin.java | 3 - .../friendschat/FriendsChatPlugin.java | 4 +- .../client/plugins/gpu/GpuPlugin.java | 18 ++-- .../runelite/client/plugins/gpu/Shader.java | 4 - .../client/plugins/gpu/template/Template.java | 4 - .../grandexchange/GrandExchangeOfferSlot.java | 9 +- .../grounditems/GroundItemsPlugin.java | 2 +- .../groundmarkers/GroundMarkerPlugin.java | 4 - .../client/plugins/hiscore/HiscorePanel.java | 4 +- .../client/plugins/hiscore/HiscorePlugin.java | 4 - .../idlenotifier/IdleNotifierPlugin.java | 3 +- .../instancemap/InstanceMapPlugin.java | 3 +- .../itemstats/potions/SaradominBrew.java | 3 +- .../itemstats/potions/SuperRestore.java | 3 +- .../plugins/kourendlibrary/BookPanel.java | 2 +- .../plugins/kourendlibrary/Library.java | 2 +- .../plugins/loottracker/LootTrackerBox.java | 4 +- .../MenuEntrySwapperPlugin.java | 6 +- .../client/plugins/mining/MiningPlugin.java | 1 - .../client/plugins/mta/MTAPlugin.java | 4 - .../npchighlight/NpcIndicatorsPlugin.java | 4 - .../npchighlight/NpcMinimapOverlay.java | 5 +- .../ObjectIndicatorsPlugin.java | 4 - .../opponentinfo/OpponentInfoOverlay.java | 4 - .../opponentinfo/PlayerComparisonOverlay.java | 4 +- .../client/plugins/party/PartyPlugin.java | 4 - .../plugins/party/PartyWorldMapPoint.java | 2 +- .../pestcontrol/PestControlPlugin.java | 4 - .../client/plugins/poh/PohOverlay.java | 3 +- .../puzzlesolver/solver/PuzzleSolver.java | 4 +- .../solver/pathfinding/IDAStarMM.java | 6 +- .../solver/pathfinding/Pathfinder.java | 2 +- .../client/plugins/raids/RaidsOverlay.java | 15 ++- .../client/plugins/raids/RaidsPlugin.java | 8 +- .../plugins/regenmeter/RegenMeterOverlay.java | 6 +- .../plugins/roguesden/RoguesDenPlugin.java | 4 - .../ScreenMarkerCreationOverlay.java | 4 +- .../plugins/screenshot/ScreenshotPlugin.java | 4 - .../skillcalculator/CacheSkillData.java | 15 ++- .../client/plugins/skybox/Skybox.java | 5 +- .../client/plugins/slayer/SlayerPlugin.java | 2 +- .../specialcounter/SpecialCounter.java | 4 +- .../specialcounter/SpecialCounterPlugin.java | 1 - .../plugins/statusbars/StatusBarsConfig.java | 2 +- .../plugins/statusbars/StatusBarsOverlay.java | 2 +- .../{Config => config}/BarMode.java | 2 +- .../tearsofguthix/TearsOfGuthixPlugin.java | 4 +- .../plugins/timetracking/TabContentPanel.java | 7 -- .../client/plugins/wiki/WikiPlugin.java | 8 -- .../wiki/WikiSearchChatboxTextInput.java | 4 +- .../worldhopper/WorldHopperPlugin.java | 4 - .../worldhopper/WorldSwitcherPanel.java | 4 +- .../plugins/worldhopper/WorldTableRow.java | 4 +- .../plugins/worldmap/WorldMapPlugin.java | 6 +- .../plugins/xpglobes/XpGlobesPlugin.java | 4 - .../client/rs/ClientConfigLoader.java | 2 +- .../runelite/client/rs/TeeInputStream.java | 2 +- .../java/net/runelite/client/ui/ClientUI.java | 2 - .../ui/components/colorpicker/ColorPanel.java | 2 +- .../colorpicker/ColorValuePanel.java | 4 +- .../components/materialtabs/MaterialTab.java | 4 - .../net/runelite/client/util/ReflectUtil.java | 2 +- .../client/plugins/PluginManagerTest.java | 6 +- 106 files changed, 271 insertions(+), 266 deletions(-) create mode 100644 runelite-client/pmd-ruleset.xml rename runelite-client/src/main/java/net/runelite/client/plugins/statusbars/{Config => config}/BarMode.java (96%) diff --git a/ci/settings.xml b/ci/settings.xml index 30d386d764..d6caa8f543 100644 --- a/ci/settings.xml +++ b/ci/settings.xml @@ -259,6 +259,7 @@ under the License. false false + false diff --git a/runelite-client/pmd-ruleset.xml b/runelite-client/pmd-ruleset.xml new file mode 100644 index 0000000000..3cdece031e --- /dev/null +++ b/runelite-client/pmd-ruleset.xml @@ -0,0 +1,96 @@ + + + + + + RuneLite PMD ruleset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index 6c1b5934d0..5462a2a3a2 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -40,6 +40,7 @@ 2.4.0-rc-20200429 true + true @@ -415,6 +416,39 @@ + + org.apache.maven.plugins + maven-pmd-plugin + 3.13.0 + + + net.sourceforge.pmd + pmd-core + 6.29.0 + + + net.sourceforge.pmd + pmd-java + 6.29.0 + + + + true + true + + ${basedir}/pmd-ruleset.xml + + false + true + + + + + check + + + + diff --git a/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java b/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java index ff4e0fa07c..2470b55056 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java @@ -36,7 +36,7 @@ import net.runelite.api.Client; @Slf4j public class ClientThread { - private ConcurrentLinkedQueue invokes = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue invokes = new ConcurrentLinkedQueue<>(); @Inject private Client client; @@ -90,7 +90,7 @@ public class ClientThread { assert client.isClientThread(); Iterator ir = invokes.iterator(); - for (; ir.hasNext(); ) + while (ir.hasNext()) { BooleanSupplier r = ir.next(); boolean remove = true; diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index 4640c90c99..7faa7ac564 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -115,7 +115,7 @@ public class ChatMessageManager boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1; Color usernameColor = null; - Color senderColor = null; + Color senderColor; switch (chatMessageType) { diff --git a/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java b/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java index 6e7a53a43e..28a312b337 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java @@ -49,6 +49,7 @@ public class ModifierlessKeybind extends Keybind * KeyReleased event this returns if the event is this hotkey being * released */ + @Override public boolean matches(KeyEvent e) { return matches(e, true); diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index 7650d6acc5..21769f98a1 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -50,7 +50,6 @@ import net.runelite.api.Constants; import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM; import net.runelite.api.GameState; import net.runelite.api.ItemComposition; -import net.runelite.api.ItemID; import static net.runelite.api.ItemID.*; import net.runelite.api.SpritePixels; import net.runelite.api.events.GameStateChanged; @@ -296,11 +295,11 @@ public class ItemManager */ public int getItemPrice(int itemID, boolean ignoreUntradeableMap) { - if (itemID == ItemID.COINS_995) + if (itemID == COINS_995) { return 1; } - if (itemID == ItemID.PLATINUM_TOKEN) + if (itemID == PLATINUM_TOKEN) { return 1000; } @@ -490,7 +489,7 @@ public class ItemManager */ private BufferedImage loadItemOutline(final int itemId, final int itemQuantity, final Color outlineColor) { - final SpritePixels itemSprite = client.createItemSprite(itemId, itemQuantity, 1, 0, 0, false, Constants.CLIENT_DEFAULT_ZOOM); + final SpritePixels itemSprite = client.createItemSprite(itemId, itemQuantity, 1, 0, 0, false, CLIENT_DEFAULT_ZOOM); return itemSprite.toBufferedOutline(outlineColor); } diff --git a/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java b/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java index 03c78617b1..6a7311bea1 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java @@ -40,7 +40,6 @@ public class SkillIconManager public BufferedImage getSkillImage(Skill skill, boolean small) { int skillIdx = skill.ordinal() + (small ? Skill.values().length : 0); - BufferedImage skillImage = null; if (imgCache[skillIdx] != null) { @@ -50,7 +49,7 @@ public class SkillIconManager String skillIconPath = (small ? "/skill_icons_small/" : "/skill_icons/") + skill.getName().toLowerCase() + ".png"; log.debug("Loading skill icon from {}", skillIconPath); - skillImage = ImageUtil.getResourceStreamFromClass(getClass(), skillIconPath); + BufferedImage skillImage = ImageUtil.getResourceStreamFromClass(getClass(), skillIconPath); imgCache[skillIdx] = skillImage; return skillImage; diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java index 646ba7e6af..52fcf92cd8 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java @@ -63,7 +63,7 @@ public class ChatboxItemSearch extends ChatboxTextInput private final ItemManager itemManager; private final Client client; - private Map results = new LinkedHashMap<>(); + private final Map results = new LinkedHashMap<>(); private String tooltipText; private int index = -1; diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java index 51b20e0da9..67129b0ba5 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java @@ -232,24 +232,6 @@ public class MenuManager actions[unused] = npcOption; } - private void removeNpcOption(NPCComposition composition, String npcOption) - { - String[] actions = composition.getActions(); - - if (composition.getActions() == null) - { - return; - } - - for (int i = 0; i < actions.length; ++i) - { - if (actions[i] != null && actions[i].equals(npcOption)) - { - actions[i] = null; - } - } - } - @Subscribe public void onMenuOptionClicked(MenuOptionClicked event) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 4aeb37b213..5b77ac6c12 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -52,7 +52,6 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ScheduledExecutorService; import java.util.function.BiConsumer; import java.util.stream.Collectors; import javax.inject.Inject; @@ -92,7 +91,6 @@ public class PluginManager private final EventBus eventBus; private final Scheduler scheduler; private final ConfigManager configManager; - private final ScheduledExecutorService executor; private final Provider sceneTileManager; private final List plugins = new CopyOnWriteArrayList<>(); private final List activePlugins = new CopyOnWriteArrayList<>(); @@ -108,7 +106,6 @@ public class PluginManager final EventBus eventBus, final Scheduler scheduler, final ConfigManager configManager, - final ScheduledExecutorService executor, final Provider sceneTileManager) { this.developerMode = developerMode; @@ -116,7 +113,6 @@ public class PluginManager this.eventBus = eventBus; this.scheduler = scheduler; this.configManager = configManager; - this.executor = executor; this.sceneTileManager = sceneTileManager; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/CombatLevelRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/CombatLevelRequirement.java index 302822e534..0b79715498 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/CombatLevelRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/CombatLevelRequirement.java @@ -40,8 +40,9 @@ public class CombatLevelRequirement implements Requirement return level + " " + "Combat"; } + @Override public boolean satisfiesRequirement(Client client) { - return client.getLocalPlayer() == null ? false : client.getLocalPlayer().getCombatLevel() >= level; + return client.getLocalPlayer() != null && client.getLocalPlayer().getCombatLevel() >= level; } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java index 916033f206..a39953492c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java @@ -42,6 +42,7 @@ public class FavourRequirement implements Requirement return percent + "% " + house.getName() + " favour"; } + @Override public boolean satisfiesRequirement(Client client) { int realFavour = client.getVar(house.getVarbit()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/OrRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/OrRequirement.java index 44f9ebb0d5..ac31fb6c45 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/OrRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/OrRequirement.java @@ -46,6 +46,7 @@ public class OrRequirement implements Requirement return Joiner.on(" or ").join(requirements); } + @Override public boolean satisfiesRequirement(Client client) { for (Requirement r : getRequirements()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestPointRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestPointRequirement.java index 0813e6bed0..d126222544 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestPointRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestPointRequirement.java @@ -41,6 +41,7 @@ public class QuestPointRequirement implements Requirement return qp + " " + "Quest points"; } + @Override public boolean satisfiesRequirement(Client client) { return client.getVar(VarPlayer.QUEST_POINTS) >= qp; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestRequirement.java index ca02ee682d..9b8a1c2e1b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/QuestRequirement.java @@ -53,6 +53,7 @@ public class QuestRequirement implements Requirement return quest.getName(); } + @Override public boolean satisfiesRequirement(Client client) { QuestState questState = quest.getState(client); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/SkillRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/SkillRequirement.java index ded0a3c84d..8469e7f0c4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/SkillRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/SkillRequirement.java @@ -42,6 +42,7 @@ public class SkillRequirement implements Requirement return level + " " + skill.getName(); } + @Override public boolean satisfiesRequirement(Client client) { return client.getRealSkillLevel(skill) >= level; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java index a13d9b3689..a3abe20df1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java @@ -44,7 +44,6 @@ import net.runelite.api.MenuAction; import net.runelite.api.NPC; import net.runelite.api.NullNpcID; import net.runelite.api.Player; -import net.runelite.api.Skill; import static net.runelite.api.Skill.AGILITY; import net.runelite.api.Tile; import net.runelite.api.TileItem; @@ -159,7 +158,7 @@ public class AgilityPlugin extends Plugin { overlayManager.add(agilityOverlay); overlayManager.add(lapCounterOverlay); - agilityLevel = client.getBoostedSkillLevel(Skill.AGILITY); + agilityLevel = client.getBoostedSkillLevel(AGILITY); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java index 7583d7639b..eecaa99843 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java @@ -278,7 +278,7 @@ public class AttackStylesPlugin extends Plugin if (warnedSkills.contains(skill)) { if (weaponSwitch) - { + { // NOPMD EmptyIfStmt // TODO : chat message to warn players that their weapon switch also caused an unwanted attack style change } warnedSkillSelected = true; @@ -319,7 +319,7 @@ public class AttackStylesPlugin extends Plugin } // Magic staves defensive casting mode - if (attackStyle == AttackStyle.DEFENSIVE_CASTING || !enabled) + if (attackStyle == DEFENSIVE_CASTING || !enabled) { widgetsToHide.put(equippedWeaponType, WidgetInfo.COMBAT_DEFENSIVE_SPELL_BOX, enabled && warnedSkill); widgetsToHide.put(equippedWeaponType, WidgetInfo.COMBAT_DEFENSIVE_SPELL_ICON, enabled && warnedSkill); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java index 186ca422e9..d1e491e19e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java @@ -72,13 +72,11 @@ import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemVariationMapping; import net.runelite.client.game.SpriteManager; import net.runelite.client.game.chatbox.ChatboxPanelManager; -import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseManager; import net.runelite.client.input.MouseWheelListener; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.plugins.banktags.tabs.BankSearch; import net.runelite.client.plugins.banktags.tabs.TabInterface; import static net.runelite.client.plugins.banktags.tabs.TabInterface.FILTERED_CHARS; import net.runelite.client.plugins.banktags.tabs.TabSprites; @@ -138,12 +136,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener @Inject private TabInterface tabInterface; - @Inject - private BankSearch bankSearch; - - @Inject - private KeyManager keyManager; - @Inject private SpriteManager spriteManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java index 1799b4f9f2..3b3a7037d6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java @@ -113,7 +113,6 @@ public class TabInterface private static final String TAG_GEAR = "Tag-equipment"; private static final String TAG_INVENTORY = "Tag-inventory"; private static final String TAB_MENU_KEY = "tagtabs"; - private static final String TAB_MENU = TAG_SEARCH + TAB_MENU_KEY; private static final String OPEN_TAB_MENU = "View tag tabs"; private static final String SHOW_WORN = "Show worn items"; private static final String SHOW_SETTINGS = "Show menu"; @@ -142,10 +141,10 @@ public class TabInterface private final BankTagsConfig config; private final Notifier notifier; private final BankSearch bankSearch; + private final ChatboxItemSearch searchProvider; private final Rectangle bounds = new Rectangle(); private final Rectangle canvasBounds = new Rectangle(); - private ChatboxItemSearch searchProvider; @Getter private TagTab activeTab; @Getter diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java index d430ef0c01..686cecbf2a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java @@ -39,8 +39,6 @@ import net.runelite.client.ui.overlay.OverlayPosition; class BarrowsOverlay extends Overlay { - private static final int MAX_DISTANCE = 2350; - private final Client client; private final BarrowsPlugin plugin; private final BarrowsConfig config; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java index f76348a7b7..078463bfb3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java @@ -79,7 +79,7 @@ enum Boss bosses = builder.build(); } - private Boss(int id, long period, ChronoUnit unit, int itemSpriteId) + Boss(int id, long period, ChronoUnit unit, int itemSpriteId) { this.id = id; this.spawnTime = Duration.of(period, unit); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java index 6e8eb1bd4d..ded2628348 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java @@ -141,6 +141,7 @@ public class CipherClue extends ClueScroll implements TextClueScroll, NpcClueScr return null; } + @Override public String[] getNpcs() { return new String[] {npc}; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java index dfcd13828d..24ab3264bf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java @@ -369,6 +369,7 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat this.location = wp; } + @Override public String[] getNpcs() { return new String[] {npc}; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java index 0439c6bb34..2800580294 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java @@ -208,6 +208,7 @@ public class MapClue extends ClueScroll implements ObjectClueScroll return null; } + @Override public int[] getObjectIds() { return new int[] {objectId}; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/AnyRequirementCollection.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/AnyRequirementCollection.java index 886cf13f0c..ae223285c5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/AnyRequirementCollection.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/AnyRequirementCollection.java @@ -29,8 +29,8 @@ import net.runelite.api.Item; public class AnyRequirementCollection implements ItemRequirement { - private String name; - private ItemRequirement[] requirements; + private final String name; + private final ItemRequirement[] requirements; public AnyRequirementCollection(String name, ItemRequirement... requirements) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/MultipleOfItemRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/MultipleOfItemRequirement.java index 064d92eddc..88432a4ca3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/MultipleOfItemRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/MultipleOfItemRequirement.java @@ -30,8 +30,8 @@ import net.runelite.api.ItemComposition; public class MultipleOfItemRequirement implements ItemRequirement { - private int itemId; - private int quantity; + private final int itemId; + private final int quantity; public MultipleOfItemRequirement(int itemId, int quantity) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/RangeItemRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/RangeItemRequirement.java index 51a0d34f8b..ef81ced371 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/RangeItemRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/RangeItemRequirement.java @@ -29,9 +29,9 @@ import net.runelite.api.Item; public class RangeItemRequirement implements ItemRequirement { - private String name; - private int startItemId; - private int endItemId; + private final String name; + private final int startItemId; + private final int endItemId; public RangeItemRequirement(String name, int startItemId, int endItemId) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SingleItemRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SingleItemRequirement.java index 698fa9cfec..1571e004af 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SingleItemRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SingleItemRequirement.java @@ -30,7 +30,7 @@ import net.runelite.api.ItemComposition; public class SingleItemRequirement implements ItemRequirement { - private int itemId; + private final int itemId; public SingleItemRequirement(int itemId) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SlotLimitationRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SlotLimitationRequirement.java index 604355c4f1..f52f0ee19d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SlotLimitationRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/item/SlotLimitationRequirement.java @@ -30,8 +30,8 @@ import net.runelite.api.Item; public class SlotLimitationRequirement implements ItemRequirement { - private String description; - private EquipmentInventorySlot[] slots; + private final String description; + private final EquipmentInventorySlot[] slots; public SlotLimitationRequirement(String description, EquipmentInventorySlot... slots) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/UnitFormatter.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/UnitFormatter.java index 4945a4a65e..efe2181d9b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/UnitFormatter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/UnitFormatter.java @@ -61,7 +61,7 @@ final class UnitFormatter extends JFormattedTextField.AbstractFormatter } catch (NumberFormatException e) { - throw new ParseException(trimmedText + " is not an integer.", 0); + throw new ParseException(trimmedText + " is not an integer.", 0); // NOPMD: PreserveStackTrace } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java index c3f922eab7..6998e96eef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java @@ -54,17 +54,15 @@ class CookingOverlay extends OverlayPanel private final Client client; private final CookingPlugin plugin; - private final CookingConfig config; private final XpTrackerService xpTrackerService; @Inject - private CookingOverlay(Client client, CookingPlugin plugin, CookingConfig config, XpTrackerService xpTrackerService) + private CookingOverlay(Client client, CookingPlugin plugin, XpTrackerService xpTrackerService) { super(plugin); setPosition(OverlayPosition.TOP_LEFT); this.client = client; this.plugin = plugin; - this.config = config; this.xpTrackerService = xpTrackerService; getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Cooking overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, COOKING_RESET, "Cooking overlay")); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java index 9ad661094c..284e8caea9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java @@ -90,9 +90,6 @@ public class CorpPlugin extends Plugin @Inject private CoreOverlay coreOverlay; - @Inject - private CorpConfig config; - @Provides CorpConfig getConfig(ConfigManager configManager) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldConfig.java index 3a750f2e42..d53ede7a7b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldConfig.java @@ -31,7 +31,7 @@ import net.runelite.client.config.ConfigItem; @ConfigGroup(DefaultWorldConfig.GROUP) public interface DefaultWorldConfig extends Config { - final String GROUP = "defaultworld"; + String GROUP = "defaultworld"; @ConfigItem( keyName = "defaultWorld", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryDeltaPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryDeltaPanel.java index 665a1fa674..72c22af6f1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryDeltaPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryDeltaPanel.java @@ -76,6 +76,7 @@ class InventoryDeltaPanel extends JPanel implements Scrollable // Listen for resize events addComponentListener(new ComponentAdapter() { + @Override public void componentResized(final ComponentEvent componentEvent) { // Account for container and slot padding diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryInspector.java index 60afafd2f1..44b7f141dd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/InventoryInspector.java @@ -206,7 +206,7 @@ class InventoryInspector extends JFrame node.add(new InventoryLogNode(invLog)); // Cull very old stuff - for (; node.getChildCount() > MAX_LOG_ENTRIES; ) + while (node.getChildCount() > MAX_LOG_ENTRIES) { node.remove(0); } @@ -317,7 +317,7 @@ class InventoryInspector extends JFrame final int qty = e.getValue(); final ItemComposition c = itemManager.getItemComposition(e.getKey()); - InventoryItem[] items = new InventoryItem[]{ + InventoryItem[] items = { new InventoryItem(-1, new Item(id, qty), c.getName(), c.isStackable()) }; if (!c.isStackable() && (qty > 1 || qty < -1)) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/ScriptInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/ScriptInspector.java index 1cc8582c9a..5956baed72 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/ScriptInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/ScriptInspector.java @@ -90,8 +90,8 @@ public class ScriptInspector extends JFrame private int lastTick; private Set blacklist; private Set highlights; - private JList jList; - private DefaultListModel listModel; + private final JList jList; + private final DefaultListModel listModel; private ListState state = ListState.BLACKLIST; private enum ListState @@ -401,7 +401,7 @@ public class ScriptInspector extends JFrame tracker.add(tree); // Cull very old stuff - for (; tracker.getComponentCount() > MAX_LOG_ENTRIES; ) + while (tracker.getComponentCount() > MAX_LOG_ENTRIES) { tracker.remove(0); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java index e39a0bcba2..089a7461d0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java @@ -209,7 +209,7 @@ class VarInspector extends JFrame tracker.add(new JLabel(String.format("%s %s changed: %s -> %s", type.getName(), name, old, neew))); // Cull very old stuff - for (; tracker.getComponentCount() > MAX_LOG_ENTRIES; ) + while (tracker.getComponentCount() > MAX_LOG_ENTRIES) { tracker.remove(0); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index 7c8673a2ec..7407711d58 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -345,7 +345,7 @@ class WidgetInspector extends JFrame DefaultMutableTreeNode node = root; deeper: - for (; !treePath.empty(); ) + while (!treePath.empty()) { Widget w = treePath.pop(); for (Enumeration it = node.children(); it.hasMoreElements(); ) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java index e2b0cb157b..f4cdaa34a5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java @@ -291,7 +291,7 @@ public class DiscordPlugin extends Plugin @Override public void onResponse(Call call, Response response) throws IOException { - try + try // NOPMD: UseTryWithResources { if (!response.isSuccessful()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java index 0f7d008131..0c2497cf3b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java @@ -68,7 +68,7 @@ public class XpDropPlugin extends Plugin private boolean hasDropped = false; private boolean correctPrayer; private Skill lastSkill = null; - private Map previousSkillExpTable = new EnumMap<>(Skill.class); + private final Map previousSkillExpTable = new EnumMap<>(Skill.class); @Provides XpDropConfig provideConfig(ConfigManager configManager) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java index 9f57996a27..28e480ba34 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java @@ -68,9 +68,9 @@ import net.runelite.client.util.Text; ) public class FairyRingPlugin extends Plugin { - private static final String[] leftDial = new String[]{"A", "D", "C", "B"}; - private static final String[] middleDial = new String[]{"I", "L", "K", "J"}; - private static final String[] rightDial = new String[]{"P", "S", "R", "Q"}; + private static final String[] leftDial = {"A", "D", "C", "B"}; + private static final String[] middleDial = {"I", "L", "K", "J"}; + private static final String[] rightDial = {"P", "S", "R", "Q"}; private static final int ENTRY_PADDING = 3; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java index 5da8e4b4c5..5cc4ea0bd9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java @@ -61,9 +61,6 @@ public class FeedPlugin extends Plugin @Inject private ClientToolbar clientToolbar; - @Inject - private FeedConfig config; - @Inject private ScheduledExecutorService executorService; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/friendschat/FriendsChatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/friendschat/FriendsChatPlugin.java index 87cb324c8d..8413c225e6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/friendschat/FriendsChatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/friendschat/FriendsChatPlugin.java @@ -120,13 +120,13 @@ public class FriendsChatPlugin extends Plugin private ChatboxPanelManager chatboxPanelManager; private List chats = new ArrayList<>(); - private List members = new ArrayList<>(); + private final List members = new ArrayList<>(); private MembersIndicator membersIndicator; /** * queue of temporary messages added to the client */ private final Deque joinMessages = new ArrayDeque<>(); - private Map activityBuffer = new HashMap<>(); + private final Map activityBuffer = new HashMap<>(); private int joinedTick; private boolean kickConfirmed = false; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index 3bd04c4132..5f458f1762 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -441,7 +441,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks if (uniformBufferId != -1) { - GLUtil.glDeleteBuffer(gl, uniformBufferId); + glDeleteBuffer(gl, uniformBufferId); uniformBufferId = -1; } @@ -796,9 +796,9 @@ public class GpuPlugin extends Plugin implements DrawCallbacks } else if (paint.getBufferLen() > 0) { - x = tileX * Perspective.LOCAL_TILE_SIZE; - y = 0; - z = tileY * Perspective.LOCAL_TILE_SIZE; + final int localX = tileX * Perspective.LOCAL_TILE_SIZE; + final int localY = 0; + final int localZ = tileY * Perspective.LOCAL_TILE_SIZE; GpuIntBuffer b = modelBufferUnordered; ++unorderedModels; @@ -810,7 +810,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks buffer.put(2); buffer.put(targetBufferOffset); buffer.put(FLAG_SCENE_BUFFER); - buffer.put(x).put(y).put(z); + buffer.put(localX).put(localY).put(localZ); targetBufferOffset += 2 * 3; } @@ -830,9 +830,9 @@ public class GpuPlugin extends Plugin implements DrawCallbacks } else if (model.getBufferLen() > 0) { - x = tileX * Perspective.LOCAL_TILE_SIZE; - y = 0; - z = tileY * Perspective.LOCAL_TILE_SIZE; + final int localX = tileX * Perspective.LOCAL_TILE_SIZE; + final int localY = 0; + final int localZ = tileY * Perspective.LOCAL_TILE_SIZE; GpuIntBuffer b = modelBufferUnordered; ++unorderedModels; @@ -844,7 +844,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks buffer.put(model.getBufferLen() / 3); buffer.put(targetBufferOffset); buffer.put(FLAG_SCENE_BUFFER); - buffer.put(x).put(y).put(z); + buffer.put(localX).put(localY).put(localZ); targetBufferOffset += model.getBufferLen(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/Shader.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/Shader.java index 759db67cb6..bba1827245 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/Shader.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/Shader.java @@ -49,10 +49,6 @@ public class Shader private final String filename; } - public Shader() - { - } - public Shader add(int type, String name) { units.add(new Unit(type, name)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/template/Template.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/template/Template.java index c2d366a7b8..67ed68ca7f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/template/Template.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/template/Template.java @@ -37,10 +37,6 @@ public class Template { private final List> resourceLoaders = new ArrayList<>(); - public Template() - { - } - public String process(String str) { StringBuilder sb = new StringBuilder(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java index b4495ad90a..13405426b9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java @@ -45,7 +45,8 @@ import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; import javax.swing.border.EmptyBorder; import net.runelite.api.GrandExchangeOffer; -import net.runelite.api.GrandExchangeOfferState; +import static net.runelite.api.GrandExchangeOfferState.BOUGHT; +import static net.runelite.api.GrandExchangeOfferState.BUYING; import static net.runelite.api.GrandExchangeOfferState.CANCELLED_BUY; import static net.runelite.api.GrandExchangeOfferState.CANCELLED_SELL; import static net.runelite.api.GrandExchangeOfferState.EMPTY; @@ -209,9 +210,9 @@ public class GrandExchangeOfferSlot extends JPanel itemName.setText(offerItem.getName()); itemIcon.setIcon(new ImageIcon(itemImage)); - boolean buying = newOffer.getState() == GrandExchangeOfferState.BOUGHT - || newOffer.getState() == GrandExchangeOfferState.BUYING - || newOffer.getState() == GrandExchangeOfferState.CANCELLED_BUY; + boolean buying = newOffer.getState() == BOUGHT + || newOffer.getState() == BUYING + || newOffer.getState() == CANCELLED_BUY; String offerState = (buying ? "Bought " : "Sold ") + QuantityFormatter.quantityToRSDecimalStack(newOffer.getQuantitySold()) + " / " diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java index 5c1b8553cf..4bedc5c28e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java @@ -640,7 +640,7 @@ public class GroundItemsPlugin extends Plugin final Player local = client.getLocalPlayer(); final StringBuilder notificationStringBuilder = new StringBuilder() - .append("[") + .append('[') .append(local.getName()) .append("] received a ") .append(dropType) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java index f4b17c6358..73e93f86ad 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java @@ -53,7 +53,6 @@ import net.runelite.api.events.MenuOptionClicked; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.chatbox.ChatboxPanelManager; -import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -96,9 +95,6 @@ public class GroundMarkerPlugin extends Plugin @Inject private GroundMarkerMinimapOverlay minimapOverlay; - @Inject - private KeyManager keyManager; - @Inject private ChatboxPanelManager chatboxPanelManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java index 373184744e..7876289da6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java @@ -114,7 +114,7 @@ public class HiscorePanel extends PluginPanel ZALCANO, ZULRAH ); - private static final HiscoreEndpoint[] ENDPOINTS = new HiscoreEndpoint[] { + private static final HiscoreEndpoint[] ENDPOINTS = { HiscoreEndpoint.NORMAL, HiscoreEndpoint.IRONMAN, HiscoreEndpoint.HARDCORE_IRONMAN, HiscoreEndpoint.ULTIMATE_IRONMAN, HiscoreEndpoint.DEADMAN, HiscoreEndpoint.LEAGUE }; @@ -347,7 +347,7 @@ public class HiscorePanel extends PluginPanel label.setIcon(new ImageIcon(ImageUtil.getResourceStreamFromClass(getClass(), skillIcon))); - boolean totalLabel = skill == HiscoreSkill.OVERALL || skill == null; //overall or combat + boolean totalLabel = skill == OVERALL || skill == null; //overall or combat label.setIconTextGap(totalLabel ? 10 : 4); JPanel skillPanel = new JPanel(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java index 28073677b0..75e41f6018 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java @@ -28,7 +28,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ObjectArrays; import com.google.inject.Provides; import java.awt.image.BufferedImage; -import java.util.concurrent.ScheduledExecutorService; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.annotation.Nullable; @@ -78,9 +77,6 @@ public class HiscorePlugin extends Plugin @Inject private ClientToolbar clientToolbar; - @Inject - private ScheduledExecutorService executor; - @Inject private HiscoreConfig config; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java index 1b7c8a2419..7fd0b6aeaf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java @@ -32,7 +32,6 @@ import java.util.Arrays; import java.util.List; import javax.inject.Inject; import net.runelite.api.Actor; -import net.runelite.api.AnimationID; import static net.runelite.api.AnimationID.*; import net.runelite.api.Client; import net.runelite.api.Constants; @@ -86,7 +85,7 @@ public class IdleNotifierPlugin extends Plugin private IdleNotifierConfig config; private Instant lastAnimating; - private int lastAnimation = AnimationID.IDLE; + private int lastAnimation = IDLE; private Instant lastInteracting; private Actor lastInteract; private Instant lastMoving; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java index 38803e3c1b..003a5bbc2e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java @@ -28,7 +28,6 @@ import com.google.inject.Binder; import javax.inject.Inject; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.WidgetMenuOptionClicked; -import net.runelite.api.widgets.WidgetInfo; import static net.runelite.api.widgets.WidgetInfo.WORLD_MAP_OPTION; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.input.KeyManager; @@ -45,7 +44,7 @@ import net.runelite.client.ui.overlay.OverlayManager; ) public class InstanceMapPlugin extends Plugin { - private final WidgetMenuOption openMapOption = new WidgetMenuOption("Show", "Instance Map", WidgetInfo.WORLD_MAP_OPTION); + private final WidgetMenuOption openMapOption = new WidgetMenuOption("Show", "Instance Map", WORLD_MAP_OPTION); @Inject private InstanceMapInputListener inputListener; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java index 74a13531f2..3a0f73d9be 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java @@ -40,8 +40,7 @@ import net.runelite.client.plugins.itemstats.StatsChanges; @RequiredArgsConstructor public class SaradominBrew implements Effect { - private static final Stat[] saradominBrewStats = new Stat[] - { + private static final Stat[] saradominBrewStats = { ATTACK, STRENGTH, RANGED, MAGIC }; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java index 38493055d7..d5747bd1b8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java @@ -40,8 +40,7 @@ import net.runelite.client.plugins.itemstats.StatsChanges; @RequiredArgsConstructor public class SuperRestore implements Effect { - private static final Stat[] superRestoreStats = new Stat[] - { + private static final Stat[] superRestoreStats = { ATTACK, DEFENCE, STRENGTH, RANGED, MAGIC, COOKING, WOODCUTTING, FLETCHING, FISHING, FIREMAKING, CRAFTING, SMITHING, MINING, HERBLORE, AGILITY, THIEVING, SLAYER, FARMING, RUNECRAFT, HUNTER, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java index 6842b34e7d..df50006369 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java @@ -34,7 +34,7 @@ import net.runelite.client.ui.FontManager; class BookPanel extends JPanel { - private JLabel location = new JLabel(); + private final JLabel location = new JLabel(); BookPanel(Book b) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Library.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Library.java index 69b1a5deec..a77473853b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Library.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Library.java @@ -274,7 +274,7 @@ class Library assert bookSequence >= 0; bookcaseIndex -= step * bookSequence; - for (; bookcaseIndex < 0; ) + while (bookcaseIndex < 0) { bookcaseIndex += byIndex.size(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java index 927b222dc7..f0248b19be 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java @@ -80,8 +80,8 @@ class LootTrackerBox extends JPanel private final List items = new ArrayList<>(); private long totalPrice; - private boolean hideIgnoredItems; - private BiConsumer onItemToggle; + private final boolean hideIgnoredItems; + private final BiConsumer onItemToggle; LootTrackerBox( final ItemManager itemManager, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index c8ad0fb91e..23caa3ea3f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -64,7 +64,6 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemVariationMapping; -import net.runelite.client.input.KeyManager; import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; @@ -134,9 +133,6 @@ public class MenuEntrySwapperPlugin extends Plugin @Inject private ConfigManager configManager; - @Inject - private KeyManager keyManager; - @Inject private MenuManager menuManager; @@ -812,7 +808,7 @@ public class MenuEntrySwapperPlugin extends Plugin sortedInsert(list2, index1); } - private static > void sortedInsert(List list, T value) + private static > void sortedInsert(List list, T value) // NOPMD: UnusedPrivateMethod: false positive { int idx = Collections.binarySearch(list, value); list.add(idx < 0 ? -idx - 1 : idx, value); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java index d8a3b8e2aa..adecd59fa9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java @@ -78,7 +78,6 @@ import net.runelite.client.ui.overlay.OverlayMenuEntry; @PluginDependency(XpTrackerPlugin.class) public class MiningPlugin extends Plugin { - private static final int ROCK_DISTANCE = 14; private static final Pattern MINING_PATERN = Pattern.compile( "You " + "(?:manage to|just)" + diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java index 5b7d6bffa1..3ed1da90dc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java @@ -28,7 +28,6 @@ import com.google.inject.Provides; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; -import net.runelite.api.Client; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; @@ -46,9 +45,6 @@ import net.runelite.client.ui.overlay.OverlayManager; ) public class MTAPlugin extends Plugin { - @Inject - private Client client; - @Inject private OverlayManager overlayManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 24e5bbf9a5..d8fa6e81de 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -63,7 +63,6 @@ import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; -import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -107,9 +106,6 @@ public class NpcIndicatorsPlugin extends Plugin @Inject private NpcMinimapOverlay npcMinimapOverlay; - @Inject - private KeyManager keyManager; - @Inject private ClientThread clientThread; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcMinimapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcMinimapOverlay.java index 01af41f6ad..9582288ea1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcMinimapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcMinimapOverlay.java @@ -29,7 +29,6 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import javax.inject.Inject; -import net.runelite.api.Client; import net.runelite.api.NPC; import net.runelite.api.NPCComposition; import net.runelite.api.Point; @@ -40,14 +39,12 @@ import net.runelite.client.ui.overlay.OverlayUtil; public class NpcMinimapOverlay extends Overlay { - private final Client client; private final NpcIndicatorsConfig config; private final NpcIndicatorsPlugin plugin; @Inject - NpcMinimapOverlay(Client client, NpcIndicatorsConfig config, NpcIndicatorsPlugin plugin) + NpcMinimapOverlay(NpcIndicatorsConfig config, NpcIndicatorsPlugin plugin) { - this.client = client; this.config = config; this.plugin = plugin; setPosition(OverlayPosition.DYNAMIC); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java index dc028cb0c0..29a39edf98 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java @@ -71,7 +71,6 @@ import net.runelite.api.events.WallObjectDespawned; import net.runelite.api.events.WallObjectSpawned; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; -import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -106,9 +105,6 @@ public class ObjectIndicatorsPlugin extends Plugin @Inject private ObjectIndicatorsOverlay overlay; - @Inject - private KeyManager keyManager; - @Inject private ObjectIndicatorsConfig config; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java index 5dc68a3bf1..dc9cb8c1c2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java @@ -33,7 +33,6 @@ import java.awt.Point; import java.awt.Rectangle; import javax.inject.Inject; import net.runelite.api.Actor; -import net.runelite.api.Client; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.NPC; import net.runelite.api.Player; @@ -55,7 +54,6 @@ class OpponentInfoOverlay extends OverlayPanel private static final Color HP_GREEN = new Color(0, 146, 54, 230); private static final Color HP_RED = new Color(102, 15, 16, 230); - private final Client client; private final OpponentInfoPlugin opponentInfoPlugin; private final OpponentInfoConfig opponentInfoConfig; private final HiscoreManager hiscoreManager; @@ -68,14 +66,12 @@ class OpponentInfoOverlay extends OverlayPanel @Inject private OpponentInfoOverlay( - Client client, OpponentInfoPlugin opponentInfoPlugin, OpponentInfoConfig opponentInfoConfig, HiscoreManager hiscoreManager, NPCManager npcManager) { super(opponentInfoPlugin); - this.client = client; this.opponentInfoPlugin = opponentInfoPlugin; this.opponentInfoConfig = opponentInfoConfig; this.hiscoreManager = hiscoreManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java index 7517e4e3bf..840e4cae0e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java @@ -54,7 +54,7 @@ class PlayerComparisonOverlay extends Overlay private static final Color NEUTRAL_TEXT_COLOR = Color.WHITE; private static final Color HIGHLIGHT_COLOR = new Color(255, 200, 0, 255); - private static final Skill[] COMBAT_SKILLS = new Skill[]{ + private static final Skill[] COMBAT_SKILLS = { Skill.ATTACK, Skill.STRENGTH, Skill.DEFENCE, @@ -64,7 +64,7 @@ class PlayerComparisonOverlay extends Overlay Skill.PRAYER }; - private static final HiscoreSkill[] HISCORE_COMBAT_SKILLS = new HiscoreSkill[]{ + private static final HiscoreSkill[] HISCORE_COMBAT_SKILLS = { HiscoreSkill.ATTACK, HiscoreSkill.STRENGTH, HiscoreSkill.DEFENCE, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java index 80b97dd61c..d6c008d40d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java @@ -60,7 +60,6 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.PartyChanged; -import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.party.data.PartyData; @@ -104,9 +103,6 @@ public class PartyPlugin extends Plugin @Inject private PartyPingOverlay partyPingOverlay; - @Inject - private KeyManager keyManager; - @Inject private WSClient wsClient; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyWorldMapPoint.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyWorldMapPoint.java index a2ae27835b..79608ac725 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyWorldMapPoint.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyWorldMapPoint.java @@ -37,7 +37,7 @@ class PartyWorldMapPoint extends WorldMapPoint private static final BufferedImage ARROW = ImageUtil.getResourceStreamFromClass(PartyWorldMapPoint.class, "/util/clue_arrow.png"); private BufferedImage partyImage; - private PartyMember member; + private final PartyMember member; PartyWorldMapPoint(WorldPoint worldPoint, PartyMember member) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java index 960b589737..69a636e7ca 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java @@ -34,7 +34,6 @@ import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.ChatMessageType; -import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.NpcID; @@ -70,9 +69,6 @@ public class PestControlPlugin extends Plugin @Inject private OverlayManager overlayManager; - @Inject - private Client client; - @Inject private PestControlOverlay overlay; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java index 717071b866..2eb39344b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java @@ -40,8 +40,7 @@ import net.runelite.client.ui.overlay.OverlayPosition; public class PohOverlay extends Overlay { - private static final PohIcons[] PORTALS = new PohIcons[] - { + private static final PohIcons[] PORTALS = { PohIcons.LUMBRIDGE, PohIcons.FALADOR, PohIcons.VARROCK, PohIcons.CAMELOT, PohIcons.ARDOUGNE, PohIcons.YANILLE, PohIcons.LUNARISLE, PohIcons.WATERBIRTH, PohIcons.FISHINGGUILD, PohIcons.SENNTISTEN, PohIcons.KHARYLL, PohIcons.ANNAKARL, PohIcons.KOUREND, PohIcons.MARIM, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java index 6e156a62ce..5270bcd452 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java @@ -37,8 +37,8 @@ public class PuzzleSolver implements Runnable private static final Duration MAX_WAIT_DURATION = Duration.ofMillis(1500); - private Pathfinder pathfinder; - private PuzzleState startState; + private final Pathfinder pathfinder; + private final PuzzleState startState; private List solution; private int position; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/IDAStarMM.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/IDAStarMM.java index a869ee13c4..bfd8788a0f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/IDAStarMM.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/IDAStarMM.java @@ -38,9 +38,9 @@ import net.runelite.client.plugins.puzzlesolver.solver.heuristics.Heuristic; public class IDAStarMM extends IDAStar { private PuzzleState currentState; - private List stateList = new ArrayList<>(); - private List> validRowNumbers = new ArrayList<>(); - private List> validColumnNumbers = new ArrayList<>(); + private final List stateList = new ArrayList<>(); + private final List> validRowNumbers = new ArrayList<>(); + private final List> validColumnNumbers = new ArrayList<>(); public IDAStarMM(Heuristic heuristic) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/Pathfinder.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/Pathfinder.java index c8715253f9..d742f327cb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/Pathfinder.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/pathfinding/Pathfinder.java @@ -31,7 +31,7 @@ import net.runelite.client.plugins.puzzlesolver.solver.heuristics.Heuristic; public abstract class Pathfinder { - private Heuristic heuristic; + private final Heuristic heuristic; Pathfinder(Heuristic heuristic) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java index ea7fc0ea3c..7b750f1c63 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java @@ -49,24 +49,22 @@ import net.runelite.http.api.worlds.World; import net.runelite.http.api.worlds.WorldRegion; import net.runelite.http.api.worlds.WorldResult; -public class RaidsOverlay extends OverlayPanel +class RaidsOverlay extends OverlayPanel { private static final int OLM_PLANE = 0; static final String BROADCAST_ACTION = "Broadcast layout"; static final String SCREENSHOT_ACTION = "Screenshot"; - private Client client; - private RaidsPlugin plugin; - private RaidsConfig config; + private final Client client; + private final RaidsPlugin plugin; + private final RaidsConfig config; + private final WorldService worldService; @Getter private boolean scoutOverlayShown = false; @Inject - private WorldService worldService; - - @Inject - private RaidsOverlay(Client client, RaidsPlugin plugin, RaidsConfig config) + private RaidsOverlay(Client client, RaidsPlugin plugin, RaidsConfig config, WorldService worldService) { super(plugin); setPosition(OverlayPosition.TOP_LEFT); @@ -74,6 +72,7 @@ public class RaidsOverlay extends OverlayPanel this.client = client; this.plugin = plugin; this.config = config; + this.worldService = worldService; getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Raids overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, BROADCAST_ACTION, "Raids overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, SCREENSHOT_ACTION, "Raids overlay")); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index 853063c88b..f42b1c82f0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -177,16 +177,16 @@ public class RaidsPlugin extends Plugin private EventBus eventBus; @Getter - private final Set roomWhitelist = new HashSet(); + private final Set roomWhitelist = new HashSet<>(); @Getter - private final Set roomBlacklist = new HashSet(); + private final Set roomBlacklist = new HashSet<>(); @Getter - private final Set rotationWhitelist = new HashSet(); + private final Set rotationWhitelist = new HashSet<>(); @Getter - private final Set layoutWhitelist = new HashSet(); + private final Set layoutWhitelist = new HashSet<>(); @Setter(AccessLevel.PACKAGE) // for the test @Getter diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterOverlay.java index 3843370e87..4a2d8a7dd1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterOverlay.java @@ -41,7 +41,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; -public class RegenMeterOverlay extends Overlay +class RegenMeterOverlay extends Overlay { private static final Color HITPOINTS_COLOR = brighter(0x9B0703); private static final Color SPECIAL_COLOR = brighter(0x1E95B0); @@ -50,8 +50,8 @@ public class RegenMeterOverlay extends Overlay private static final int OFFSET = 27; private final Client client; - private RegenMeterPlugin plugin; - private RegenMeterConfig config; + private final RegenMeterPlugin plugin; + private final RegenMeterConfig config; private static Color brighter(int color) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java index 1a1d415d06..2d52329d1c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java @@ -28,7 +28,6 @@ import java.util.HashMap; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; -import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.InventoryID; import net.runelite.api.ItemContainer; @@ -64,9 +63,6 @@ public class RoguesDenPlugin extends Plugin @Getter(AccessLevel.PACKAGE) private boolean hasGem; - @Inject - private Client client; - @Inject private OverlayManager overlayManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java index f1e0c60bde..ed60dd119a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java @@ -34,9 +34,9 @@ import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; -public class ScreenMarkerCreationOverlay extends Overlay +class ScreenMarkerCreationOverlay extends Overlay { - private ScreenMarkerPlugin plugin; + private final ScreenMarkerPlugin plugin; @Inject private ScreenMarkerCreationOverlay(final ScreenMarkerPlugin plugin) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index e6f17c1572..7ecc64af50 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -65,7 +65,6 @@ import static net.runelite.api.widgets.WidgetID.LEVEL_UP_GROUP_ID; import static net.runelite.api.widgets.WidgetID.QUEST_COMPLETED_GROUP_ID; import static net.runelite.api.widgets.WidgetID.THEATRE_OF_BLOOD_REWARD_GROUP_ID; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.Notifier; import static net.runelite.client.RuneLite.SCREENSHOT_DIR; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; @@ -134,9 +133,6 @@ public class ScreenshotPlugin extends Plugin @Inject private ScreenshotOverlay screenshotOverlay; - @Inject - private Notifier notifier; - @Inject private Client client; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java index 969ac792f5..4959390271 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java @@ -25,6 +25,7 @@ package net.runelite.client.plugins.skillcalculator; import com.google.gson.Gson; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; @@ -43,10 +44,16 @@ class CacheSkillData return cache.get(dataFile); } - InputStream skillDataFile = SkillCalculatorPlugin.class.getResourceAsStream(dataFile); - SkillData skillData = new Gson().fromJson(new InputStreamReader(skillDataFile, StandardCharsets.UTF_8), SkillData.class); + try (InputStream skillDataFile = SkillCalculatorPlugin.class.getResourceAsStream(dataFile)) + { + SkillData skillData = new Gson().fromJson(new InputStreamReader(skillDataFile, StandardCharsets.UTF_8), SkillData.class); - cache.put(dataFile, skillData); - return skillData; + cache.put(dataFile, skillData); + return skillData; + } + catch (IOException e) + { + throw new RuntimeException(e); + } } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skybox/Skybox.java b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/Skybox.java index ffc6ddd871..91f9fada23 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skybox/Skybox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/Skybox.java @@ -110,7 +110,7 @@ class Skybox { m.reset(line); int end = 0; - for (; end < line.length(); ) + while (end < line.length()) { m.region(end, line.length()); if (!m.find()) @@ -378,9 +378,6 @@ class Skybox x /= 8.d; y /= 8.d; - int cx = (int) x; - int cy = (int) y; - int centerChunkData = chunkData(px / 8, py / 8, plane, chunkMapper); if (centerChunkData == -1) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 1ed8afbea0..72ad3524ee 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -213,7 +213,7 @@ public class SlayerPlugin extends Plugin private int cachedXp = -1; private Instant infoTimer; private boolean loginFlag; - private List targetNames = new ArrayList<>(); + private final List targetNames = new ArrayList<>(); @Override protected void startUp() throws Exception diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounter.java b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounter.java index 482fb45089..eaeb0a0cda 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounter.java @@ -33,15 +33,13 @@ import net.runelite.client.ui.overlay.infobox.Counter; class SpecialCounter extends Counter { - private final SpecialCounterPlugin plugin; - private SpecialWeapon weapon; + private final SpecialWeapon weapon; @Getter(AccessLevel.PACKAGE) private final Map partySpecs = new HashMap<>(); SpecialCounter(BufferedImage image, SpecialCounterPlugin plugin, int hitValue, SpecialWeapon weapon) { super(image, plugin, hitValue); - this.plugin = plugin; this.weapon = weapon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java index af4f5ec5b9..dbe313272c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java @@ -166,7 +166,6 @@ public class SpecialCounterPlugin extends Plugin { Actor target = hitsplatApplied.getActor(); Hitsplat hitsplat = hitsplatApplied.getHitsplat(); - Hitsplat.HitsplatType hitsplatType = hitsplat.getHitsplatType(); // Ignore all hitsplats other than mine if (!hitsplat.isMine() || target == client.getLocalPlayer()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsConfig.java index 9f9e136d06..b6883037b7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsConfig.java @@ -27,7 +27,7 @@ package net.runelite.client.plugins.statusbars; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; -import net.runelite.client.plugins.statusbars.Config.BarMode; +import net.runelite.client.plugins.statusbars.config.BarMode; @ConfigGroup("statusbars") public interface StatusBarsConfig extends Config diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsOverlay.java index b61a057f98..2d76c59b41 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsOverlay.java @@ -49,7 +49,7 @@ import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.itemstats.Effect; import net.runelite.client.plugins.itemstats.ItemStatChangesService; import net.runelite.client.plugins.itemstats.StatChange; -import net.runelite.client.plugins.statusbars.Config.BarMode; +import net.runelite.client.plugins.statusbars.config.BarMode; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/Config/BarMode.java b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/config/BarMode.java similarity index 96% rename from runelite-client/src/main/java/net/runelite/client/plugins/statusbars/Config/BarMode.java rename to runelite-client/src/main/java/net/runelite/client/plugins/statusbars/config/BarMode.java index 9cf32e0b47..53ee959127 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/Config/BarMode.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/config/BarMode.java @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.statusbars.Config; +package net.runelite.client.plugins.statusbars.config; public enum BarMode { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java index 0af69e7863..d75eb0bb6a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java @@ -91,8 +91,8 @@ public class TearsOfGuthixPlugin extends Plugin { DecorativeObject object = event.getDecorativeObject(); - if (event.getDecorativeObject().getId() == ObjectID.BLUE_TEARS || - event.getDecorativeObject().getId() == ObjectID.BLUE_TEARS_6665) + if (object.getId() == ObjectID.BLUE_TEARS || + object.getId() == ObjectID.BLUE_TEARS_6665) { if (client.getLocalPlayer().getWorldLocation().getRegionID() == TOG_REGION) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TabContentPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TabContentPanel.java index 243b5a4511..dd3a2bba5b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TabContentPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TabContentPanel.java @@ -24,7 +24,6 @@ */ package net.runelite.client.plugins.timetracking; -import java.awt.Dimension; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.TextStyle; @@ -46,12 +45,6 @@ public abstract class TabContentPanel extends JPanel public abstract void update(); - @Override - public Dimension getPreferredSize() - { - return super.getPreferredSize(); - } - public static String getFormattedEstimate(long remainingSeconds, TimeFormatMode mode) { DateTimeFormatter formatter = getDateTimeFormatter(mode); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java index f24ff6b7d2..dce174eeee 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java @@ -54,8 +54,6 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; import net.runelite.client.game.ItemManager; -import net.runelite.client.game.SpriteManager; -import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.JagexColors; @@ -77,9 +75,6 @@ public class WikiPlugin extends Plugin private static final String MENUOP_WIKI = "Wiki"; - @Inject - private SpriteManager spriteManager; - @Inject private WikiConfig config; @@ -89,9 +84,6 @@ public class WikiPlugin extends Plugin @Inject private Client client; - @Inject - private ChatboxPanelManager chatboxPanelManager; - @Inject private ItemManager itemManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java index c796ceda32..8552d90eef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSearchChatboxTextInput.java @@ -67,7 +67,6 @@ public class WikiSearchChatboxTextInput extends ChatboxTextInput private static final int PREDICTION_DEBOUNCE_DELAY_MS = 200; private final ChatboxPanelManager chatboxPanelManager; - private final OkHttpClient okHttpClient; private final Gson gson = new Gson(); private Future runningRequest = null; @@ -83,7 +82,6 @@ public class WikiSearchChatboxTextInput extends ChatboxTextInput { super(chatboxPanelManager, clientThread); this.chatboxPanelManager = chatboxPanelManager; - this.okHttpClient = okHttpClient; lines(1); prompt("OSRS Wiki Search"); @@ -138,7 +136,7 @@ public class WikiSearchChatboxTextInput extends ChatboxTextInput public void onResponse(Call call, Response response) throws IOException { String body = response.body().string(); - try + try // NOPMD: UseTryWithResources { JsonArray jar = new JsonParser().parse(body).getAsJsonArray(); List apredictions = gson.fromJson(jar.get(1), new TypeToken>() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java index f91e490f3e..8f9b9060b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java @@ -65,7 +65,6 @@ import net.runelite.api.events.PlayerMenuOptionClicked; import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.WorldListLoad; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.callback.ClientThread; import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; @@ -112,9 +111,6 @@ public class WorldHopperPlugin extends Plugin @Inject private Client client; - @Inject - private ClientThread clientThread; - @Inject private ConfigManager configManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldSwitcherPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldSwitcherPanel.java index 7d3102127b..486d88f373 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldSwitcherPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldSwitcherPanel.java @@ -63,8 +63,8 @@ class WorldSwitcherPanel extends PluginPanel private WorldOrder orderIndex = WorldOrder.WORLD; private boolean ascendingOrder = true; - private ArrayList rows = new ArrayList<>(); - private WorldHopperPlugin plugin; + private final ArrayList rows = new ArrayList<>(); + private final WorldHopperPlugin plugin; @Setter(AccessLevel.PACKAGE) private SubscriptionFilterMode filterMode; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java index 3abf40fa2f..d67d5b6bb4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java @@ -78,7 +78,7 @@ class WorldTableRow extends JPanel private JLabel playerCountField; private JLabel activityField; private JLabel pingField; - private BiConsumer onFavorite; + private final BiConsumer onFavorite; @Getter private final World world; @@ -89,11 +89,9 @@ class WorldTableRow extends JPanel private int ping; private Color lastBackground; - private boolean current; WorldTableRow(World world, boolean current, boolean favorite, Integer ping, Consumer onSelect, BiConsumer onFavorite) { - this.current = current; this.world = world; this.onFavorite = onFavorite; this.updatedPlayerCount = world.getPlayers(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java index fb79e63b12..dc0d25a722 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java @@ -424,11 +424,11 @@ public class WorldMapPlugin extends Plugin // Get first uncompleted quest. Else, return the last quest. Quest quest = null; - for (int i = 0; i < quests.length; i++) + for (Quest q : quests) { - if (quests[i].getState(client) != QuestState.FINISHED) + if (q.getState(client) != QuestState.FINISHED) { - quest = quests[i]; + quest = q; break; } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java index b692bda0b3..46b514151e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java @@ -33,7 +33,6 @@ import java.util.Comparator; import java.util.List; import javax.inject.Inject; import lombok.Getter; -import net.runelite.api.Client; import net.runelite.api.Experience; import net.runelite.api.MenuAction; import net.runelite.api.Skill; @@ -65,9 +64,6 @@ public class XpGlobesPlugin extends Plugin @Getter private final List xpGlobes = new ArrayList<>(); - @Inject - private Client client; - @Inject private XpGlobesConfig config; diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java index 2f9be1db5c..ba9d3ebe2e 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java @@ -48,7 +48,7 @@ class ClientConfigLoader final RSConfig config = new RSConfig(); - try (final Response response = okHttpClient.newCall(request).execute()) + try (Response response = okHttpClient.newCall(request).execute()) { if (!response.isSuccessful()) { diff --git a/runelite-client/src/main/java/net/runelite/client/rs/TeeInputStream.java b/runelite-client/src/main/java/net/runelite/client/rs/TeeInputStream.java index 6b9b08910d..143f50740e 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/TeeInputStream.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/TeeInputStream.java @@ -71,7 +71,7 @@ class TeeInputStream extends FilterInputStream { byte[] buf = new byte[(int) Math.min(n, 0x4000)]; long total = 0; - for (; n > 0; ) + while (n > 0) { int read = (int) Math.min(n, buf.length); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 99a5baf689..a25b194d56 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -109,8 +109,6 @@ public class ClientUI private static final String CONFIG_CLIENT_BOUNDS = "clientBounds"; private static final String CONFIG_CLIENT_MAXIMIZED = "clientMaximized"; private static final String CONFIG_CLIENT_SIDEBAR_CLOSED = "clientSidebarClosed"; - private static final int CLIENT_WELL_HIDDEN_MARGIN = 160; - private static final int CLIENT_WELL_HIDDEN_MARGIN_TOP = 10; public static final BufferedImage ICON = ImageUtil.getResourceStreamFromClass(ClientUI.class, "/runelite.png"); @Getter diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorPanel.java b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorPanel.java index 210de8f799..8394093fe7 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorPanel.java @@ -46,7 +46,7 @@ public class ColorPanel extends JPanel private final int size; - private BufferedImage image; + private final BufferedImage image; private Point targetPosition; private int selectedY; private boolean forceRedraw; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorValuePanel.java b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorValuePanel.java index 08110b01b6..9dddff5bb7 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorValuePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/ColorValuePanel.java @@ -47,8 +47,8 @@ public class ColorValuePanel extends JPanel { private static final int DEFAULT_VALUE = ColorUtil.MAX_RGB_VALUE; - private ColorValueSlider slider = new ColorValueSlider(); - private JTextField input = new JTextField(); + private final ColorValueSlider slider = new ColorValueSlider(); + private final JTextField input = new JTextField(); private Consumer onValueChanged; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java b/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java index 365206340c..9ba4fe0463 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java @@ -57,9 +57,6 @@ public class MaterialTab extends JLabel private static final Border UNSELECTED_BORDER = BorderFactory .createEmptyBorder(5, 10, 5, 10); - /* The tab's containing group */ - private final MaterialTabGroup group; - /* The tab's associated content display */ @Getter private final JComponent content; @@ -75,7 +72,6 @@ public class MaterialTab extends JLabel { super(string); - this.group = group; this.content = content; if (selected) diff --git a/runelite-client/src/main/java/net/runelite/client/util/ReflectUtil.java b/runelite-client/src/main/java/net/runelite/client/util/ReflectUtil.java index 76530b6ab6..60b3b305f1 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/ReflectUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/util/ReflectUtil.java @@ -65,7 +65,7 @@ public class ReflectUtil } catch (ReflectiveOperationException ex) { - throw new RuntimeException(ex); + throw new RuntimeException(ex); // NOPMD: PreserveStackTrace: ignore e } } } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java index 2ca7409b8d..02b679e496 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java @@ -123,7 +123,7 @@ public class PluginManagerTest @Test public void testLoadPlugins() throws Exception { - PluginManager pluginManager = new PluginManager(false, false, null, null, null, null, null); + PluginManager pluginManager = new PluginManager(false, false, null, null, null, null); pluginManager.setOutdated(true); pluginManager.loadCorePlugins(); Collection plugins = pluginManager.getPlugins(); @@ -134,7 +134,7 @@ public class PluginManagerTest .count(); assertEquals(expected, plugins.size()); - pluginManager = new PluginManager(false, false, null, null, null, null, null); + pluginManager = new PluginManager(false, false, null, null, null, null); pluginManager.loadCorePlugins(); plugins = pluginManager.getPlugins(); @@ -159,7 +159,7 @@ public class PluginManagerTest RuneLite.DEFAULT_SESSION_FILE, RuneLite.DEFAULT_CONFIG_FILE)); - PluginManager pluginManager = new PluginManager(true, false, null, null, null, null, null); + PluginManager pluginManager = new PluginManager(true, false, null, null, null, null); pluginManager.loadCorePlugins(); modules.addAll(pluginManager.getPlugins()); From 43bf4d60eb8359c84b3235a473b5ea8a34a65903 Mon Sep 17 00:00:00 2001 From: Matthew Zegar Date: Sat, 31 Oct 2020 12:06:33 -0700 Subject: [PATCH 12/41] key remapping: add control remap Co-authored-by: Adam --- .../plugins/keyremapping/KeyRemappingConfig.java | 12 ++++++++++++ .../keyremapping/KeyRemappingListener.java | 5 +++++ .../keyremapping/KeyRemappingListenerTest.java | 16 ++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java index 70bc8bae19..1dbe1eaff6 100755 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingConfig.java @@ -24,6 +24,7 @@ */ package net.runelite.client.plugins.keyremapping; +import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; @@ -286,4 +287,15 @@ public interface KeyRemappingConfig extends Config { return new ModifierlessKeybind(KeyEvent.VK_SPACE, 0); } + + @ConfigItem( + position = 21, + keyName = "control", + name = "Control", + description = "The key which will replace {Control}." + ) + default ModifierlessKeybind control() + { + return new ModifierlessKeybind(KeyEvent.VK_UNDEFINED, InputEvent.CTRL_DOWN_MASK); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java index 181c4abf8c..72fdf8e2e8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingListener.java @@ -162,6 +162,11 @@ class KeyRemappingListener implements KeyListener mappedKeyCode = KeyEvent.VK_SPACE; } + if (config.control().matches(e)) + { + mappedKeyCode = KeyEvent.VK_CONTROL; + } + if (mappedKeyCode != KeyEvent.VK_UNDEFINED && mappedKeyCode != e.getKeyCode()) { final char keyChar = e.getKeyChar(); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java index d7da96133d..7779391817 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/keyremapping/KeyRemappingListenerTest.java @@ -27,6 +27,7 @@ package net.runelite.client.plugins.keyremapping; import com.google.inject.Guice; import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; +import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import javax.inject.Inject; import net.runelite.api.Client; @@ -63,6 +64,7 @@ public class KeyRemappingListenerTest public void setUp() { Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this); + when(keyRemappingConfig.control()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_UNDEFINED, InputEvent.CTRL_DOWN_MASK)); } @Test @@ -123,4 +125,18 @@ public class KeyRemappingListenerTest verify(event).setKeyCode(KeyEvent.VK_SPACE); } + + @Test + public void testControlRemap() + { + when(keyRemappingConfig.control()).thenReturn(new ModifierlessKeybind(KeyEvent.VK_NUMPAD1, 0)); + when(keyRemappingPlugin.chatboxFocused()).thenReturn(true); + + KeyEvent event = mock(KeyEvent.class); + when(event.getExtendedKeyCode()).thenReturn(KeyEvent.VK_NUMPAD1); // for keybind matches() + + keyRemappingListener.keyPressed(event); + + verify(event).setKeyCode(KeyEvent.VK_CONTROL); + } } From f17a08ff9d61ec5489f10e2ffa6ace5a4e33bed3 Mon Sep 17 00:00:00 2001 From: Unmoon Date: Thu, 1 Oct 2020 16:04:06 +0300 Subject: [PATCH 13/41] item charges: add Chronicle --- .../plugins/itemcharges/ItemChargeConfig.java | 19 ++++++ .../itemcharges/ItemChargeOverlay.java | 10 +++ .../plugins/itemcharges/ItemChargePlugin.java | 57 ++++++++++++++-- .../plugins/itemcharges/ItemChargeType.java | 2 + .../plugins/itemcharges/ItemWithSlot.java | 2 + .../itemcharges/ItemChargePluginTest.java | 66 +++++++++++++++++++ 6 files changed, 149 insertions(+), 7 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeConfig.java index 5bc0e9e167..0e8a4569fe 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeConfig.java @@ -1,6 +1,7 @@ /* * Copyright (c) 2017, Devin French * Copyright (c) 2019, Aleios + * Copyright (c) 2020, Unmoon * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -450,4 +451,22 @@ public interface ItemChargeConfig extends Config { return false; } + + @ConfigItem( + keyName = "chronicle", + name = "", + description = "", + hidden = true + ) + default int chronicle() + { + return -1; + } + + @ConfigItem( + keyName = "chronicle", + name = "", + description = "" + ) + void chronicle(int chronicle); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java index d6f99539d3..fc91487230 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java @@ -1,6 +1,7 @@ /* * Copyright (c) 2017, Seth * Copyright (c) 2019, Aleios + * Copyright (c) 2020, Unmoon * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -115,6 +116,15 @@ class ItemChargeOverlay extends WidgetItemOverlay charges = config.amuletOfBounty(); } + else if (itemId == ItemID.CHRONICLE) + { + if (!config.showTeleportCharges()) + { + return; + } + + charges = config.chronicle(); + } else { ItemWithCharge chargeItem = ItemWithCharge.findItem(itemId); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java index 651cc1185e..bc4ef469ef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java @@ -2,6 +2,7 @@ * Copyright (c) 2017, Seth * Copyright (c) 2018, Hydrox6 * Copyright (c) 2019, Aleios + * Copyright (c) 2020, Unmoon * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -60,6 +61,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; +import net.runelite.client.util.Text; @PluginDescriptor( name = "Item Charges", @@ -75,7 +77,7 @@ public class ItemChargePlugin extends Plugin "Your dodgy necklace protects you\\..*It has (\\d+) charges? left\\."); private static final Pattern DODGY_BREAK_PATTERN = Pattern.compile( "Your dodgy necklace protects you\\..*It then crumbles to dust\\."); - private static final String RING_OF_RECOIL_BREAK_MESSAGE = "Your Ring of Recoil has shattered."; + private static final String RING_OF_RECOIL_BREAK_MESSAGE = "Your Ring of Recoil has shattered."; private static final Pattern BINDING_CHECK_PATTERN = Pattern.compile( "You have ([0-9]+|one) charges? left before your Binding necklace disintegrates\\."); private static final Pattern BINDING_USED_PATTERN = Pattern.compile( @@ -84,23 +86,33 @@ public class ItemChargePlugin extends Plugin private static final Pattern RING_OF_FORGING_CHECK_PATTERN = Pattern.compile( "You can smelt ([0-9]+|one) more pieces? of iron ore before a ring melts\\."); private static final String RING_OF_FORGING_USED_TEXT = "You retrieve a bar of iron."; - private static final String RING_OF_FORGING_BREAK_TEXT = "Your Ring of Forging has melted."; + private static final String RING_OF_FORGING_BREAK_TEXT = "Your Ring of Forging has melted."; private static final Pattern AMULET_OF_CHEMISTRY_CHECK_PATTERN = Pattern.compile( "Your amulet of chemistry has (\\d) charges? left\\." ); private static final Pattern AMULET_OF_CHEMISTRY_USED_PATTERN = Pattern.compile( - "Your amulet of chemistry helps you create a \\d-dose potion\\. (?:)?It has (\\d|one) charges? left\\." + "Your amulet of chemistry helps you create a \\d-dose potion\\. It has (\\d|one) charges? left\\." ); private static final Pattern AMULET_OF_CHEMISTRY_BREAK_PATTERN = Pattern.compile( - "Your amulet of chemistry helps you create a \\d-dose potion\\. (?:)?It then crumbles to dust\\." + "Your amulet of chemistry helps you create a \\d-dose potion\\. It then crumbles to dust\\." ); private static final Pattern AMULET_OF_BOUNTY_CHECK_PATTERN = Pattern.compile( "Your amulet of bounty has (\\d+) charges? left\\." ); private static final Pattern AMULET_OF_BOUNTY_USED_PATTERN = Pattern.compile( - "Your amulet of bounty saves some seeds for you\\. (?:)?It has (\\d) charges? left\\." + "Your amulet of bounty saves some seeds for you\\. It has (\\d) charges? left\\." ); - private static final String AMULET_OF_BOUNTY_BREAK_TEXT = "Your amulet of bounty saves some seeds for you. It then crumbles to dust."; + private static final String AMULET_OF_BOUNTY_BREAK_TEXT = "Your amulet of bounty saves some seeds for you. It then crumbles to dust."; + private static final Pattern CHRONICLE_ADD_PATTERN = Pattern.compile( + "You add (?:\\d+|a single) charges? to your book\\. It now has (\\d+|one) charges?\\." + ); + private static final Pattern CHRONICLE_USE_AND_CHECK_PATTERN = Pattern.compile( + "Your book has (\\d+) charges left\\." + ); + private static final String CHRONICLE_FULL_TEXT = "Your book is fully charged! It has 1,000 charges already."; + private static final String CHRONICLE_ONE_CHARGE_TEXT = "You have one charge left in your book."; + private static final String CHRONICLE_EMPTY_TEXT = "Your book has run out of charges."; + private static final String CHRONICLE_NO_CHARGES_TEXT = "Your book does not have any charges. Purchase some Teleport Cards from Diango."; private static final int MAX_DODGY_CHARGES = 10; private static final int MAX_BINDING_CHARGES = 16; @@ -218,7 +230,7 @@ public class ItemChargePlugin extends Plugin { if (event.getType() == ChatMessageType.GAMEMESSAGE || event.getType() == ChatMessageType.SPAM) { - String message = event.getMessage(); + String message = Text.removeTags(event.getMessage()); Matcher dodgyCheckMatcher = DODGY_CHECK_PATTERN.matcher(message); Matcher dodgyProtectMatcher = DODGY_PROTECT_PATTERN.matcher(message); Matcher dodgyBreakMatcher = DODGY_BREAK_PATTERN.matcher(message); @@ -230,6 +242,8 @@ public class ItemChargePlugin extends Plugin Matcher amuletOfChemistryBreakMatcher = AMULET_OF_CHEMISTRY_BREAK_PATTERN.matcher(message); Matcher amuletOfBountyCheckMatcher = AMULET_OF_BOUNTY_CHECK_PATTERN.matcher(message); Matcher amuletOfBountyUsedMatcher = AMULET_OF_BOUNTY_USED_PATTERN.matcher(message); + Matcher chronicleAddMatcher = CHRONICLE_ADD_PATTERN.matcher(message); + Matcher chronicleUseAndCheckMatcher = CHRONICLE_USE_AND_CHECK_PATTERN.matcher(message); if (config.recoilNotification() && message.contains(RING_OF_RECOIL_BREAK_MESSAGE)) { @@ -346,6 +360,35 @@ public class ItemChargePlugin extends Plugin updateRingOfForgingCharges(MAX_RING_OF_FORGING_CHARGES); } + else if (chronicleAddMatcher.find()) + { + final String match = chronicleAddMatcher.group(1); + + if (match.equals("one")) + { + config.chronicle(1); + } + else + { + config.chronicle(Integer.parseInt(match)); + } + } + else if (chronicleUseAndCheckMatcher.find()) + { + config.chronicle(Integer.parseInt(chronicleUseAndCheckMatcher.group(1))); + } + else if (message.equals(CHRONICLE_ONE_CHARGE_TEXT)) + { + config.chronicle(1); + } + else if (message.equals(CHRONICLE_EMPTY_TEXT) || message.equals(CHRONICLE_NO_CHARGES_TEXT)) + { + config.chronicle(0); + } + else if (message.equals(CHRONICLE_FULL_TEXT)) + { + config.chronicle(1000); + } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeType.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeType.java index b0bb7da687..a3f5fb7a78 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeType.java @@ -1,5 +1,6 @@ /* * Copyright (c) 2017, Mitchell + * Copyright (c) 2020, Unmoon * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,5 +43,6 @@ enum ItemChargeType SACK, RING_OF_FORGING, GUTHIX_REST, + CHRONICLE, POTION, } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithSlot.java index 9af0327a04..c59741ac52 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithSlot.java @@ -1,6 +1,7 @@ /* * Copyright (c) 2019, Tomas Slusny * Copyright (c) 2019, Aleios + * Copyright (c) 2020, Unmoon * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,6 +41,7 @@ enum ItemWithSlot BINDING_NECKLACE(ItemChargeType.BINDING_NECKLACE, EquipmentInventorySlot.AMULET), EXPLORER_RING(ItemChargeType.EXPLORER_RING, EquipmentInventorySlot.RING), RING_OF_FORGING(ItemChargeType.RING_OF_FORGING, EquipmentInventorySlot.RING), + CHRONICLE(ItemChargeType.CHRONICLE, EquipmentInventorySlot.SHIELD), TELEPORT(ItemChargeType.TELEPORT, EquipmentInventorySlot.WEAPON, EquipmentInventorySlot.AMULET, EquipmentInventorySlot.GLOVES, EquipmentInventorySlot.RING); private final ItemChargeType type; diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java index 44694dfce8..42572e9006 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java @@ -72,6 +72,18 @@ public class ItemChargePluginTest private static final String BREAK_AMULET_OF_CHEMISTRY_3_DOSES = "Your amulet of chemistry helps you create a 3-dose potion. It then crumbles to dust."; private static final String BREAK_AMULET_OF_CHEMISTRY_2_DOSES = "Your amulet of chemistry helps you create a 2-dose potion. It then crumbles to dust."; + private static final String CHRONICLE_CHECK_CHARGES_FULL = "Your book has 1000 charges left."; + private static final String CHRONICLE_CHECK_CHARGES_ONE = "You have one charge left in your book."; + private static final String CHRONICLE_CHECK_CHARGES_EMPTY = "Your book has run out of charges."; + private static final String CHRONICLE_TELEPORT = "Your book has 999 charges left."; + private static final String CHRONICLE_TELEPORT_ONE = "You have one charge left in your book."; + private static final String CHRONICLE_TELEPORT_EMPTY = "Your book has run out of charges."; + private static final String CHRONICLE_TELEPORT_FAIL = "Your book does not have any charges. Purchase some Teleport Cards from Diango."; + private static final String CHRONICLE_ADD_SINGLE_CHARGE = "You add a single charge to your book. It now has one charge."; + private static final String CHRONICLE_ADD_SINGLE_CHARGE_FULL = "You add a single charge to your book. It now has 1000 charges."; + private static final String CHRONICLE_ADD_MULTIPLE_CHARGES = "You add 5 charges to your book. It now has 5 charges."; + private static final String CHRONICLE_ADD_FULL = "Your book is fully charged! It has 1,000 charges already."; + @Mock @Bind private Client client; @@ -198,5 +210,59 @@ public class ItemChargePluginTest verify(config).amuletOfChemistry(eq(5)); reset(config); + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_CHECK_CHARGES_FULL, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(1000)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_CHECK_CHARGES_ONE, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(1)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_CHECK_CHARGES_EMPTY, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(0)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(999)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT_ONE, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(1)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT_EMPTY, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(0)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT_FAIL, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(0)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_SINGLE_CHARGE, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(1)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_SINGLE_CHARGE_FULL, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(1000)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_MULTIPLE_CHARGES, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(5)); + reset(config); + + chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_FULL, "", 0); + itemChargePlugin.onChatMessage(chatMessage); + verify(config).chronicle(eq(1000)); + reset(config); } } \ No newline at end of file From 3a1e752da51968b41c47187e166643f27f4ac78d Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 4 Nov 2020 14:39:07 -0500 Subject: [PATCH 14/41] item charges test: remove unnecessary eq matchers --- .../itemcharges/ItemChargePluginTest.java | 57 +++++++++---------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java index 42572e9006..3963e12c7b 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java @@ -42,7 +42,6 @@ import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import static org.mockito.ArgumentMatchers.eq; import org.mockito.Mock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; @@ -126,143 +125,143 @@ public class ItemChargePluginTest { ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHECK, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).dodgyNecklace(eq(10)); + verify(config).dodgyNecklace(10); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", PROTECT, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).dodgyNecklace(eq(9)); + verify(config).dodgyNecklace(9); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", PROTECT_1, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).dodgyNecklace(eq(1)); + verify(config).dodgyNecklace(1); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", BREAK, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).dodgyNecklace(eq(10)); + verify(config).dodgyNecklace(10); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHECK_RING_OF_FORGING_ONE, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).ringOfForging(eq(1)); + verify(config).ringOfForging(1); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHECK_RING_OF_FORGING_FULL, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).ringOfForging(eq(140)); + verify(config).ringOfForging(140); reset(config); when(config.ringOfForging()).thenReturn(90); // Create equipment inventory with ring of forging ItemContainer equipmentItemContainer = mock(ItemContainer.class); - when(client.getItemContainer(eq(InventoryID.EQUIPMENT))).thenReturn(equipmentItemContainer); + when(client.getItemContainer(InventoryID.EQUIPMENT)).thenReturn(equipmentItemContainer); when(equipmentItemContainer.contains(ItemID.RING_OF_FORGING)).thenReturn(true); // Run message chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", USED_RING_OF_FORGING, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).ringOfForging(eq(89)); + verify(config).ringOfForging(89); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", BREAK_RING_OF_FORGING, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).ringOfForging(eq(140)); + verify(config).ringOfForging(140); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHECK_AMULET_OF_CHEMISTRY, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(5)); + verify(config).amuletOfChemistry(5); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHECK_AMULET_OF_CHEMISTRY_1, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(1)); + verify(config).amuletOfChemistry(1); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", USED_AMULET_OF_CHEMISTRY, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(4)); + verify(config).amuletOfChemistry(4); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", USED_AMULET_OF_CHEMISTRY_3_DOSES, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(2)); + verify(config).amuletOfChemistry(2); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", USED_AMULET_OF_CHEMISTRY_2_DOSES, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(1)); + verify(config).amuletOfChemistry(1); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", BREAK_AMULET_OF_CHEMISTRY, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(5)); + verify(config).amuletOfChemistry(5); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", BREAK_AMULET_OF_CHEMISTRY_3_DOSES, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(5)); + verify(config).amuletOfChemistry(5); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", BREAK_AMULET_OF_CHEMISTRY_2_DOSES, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).amuletOfChemistry(eq(5)); + verify(config).amuletOfChemistry(5); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_CHECK_CHARGES_FULL, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(1000)); + verify(config).chronicle(1000); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_CHECK_CHARGES_ONE, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(1)); + verify(config).chronicle(1); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_CHECK_CHARGES_EMPTY, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(0)); + verify(config).chronicle(0); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(999)); + verify(config).chronicle(999); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT_ONE, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(1)); + verify(config).chronicle(1); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT_EMPTY, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(0)); + verify(config).chronicle(0); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_TELEPORT_FAIL, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(0)); + verify(config).chronicle(0); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_SINGLE_CHARGE, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(1)); + verify(config).chronicle(1); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_SINGLE_CHARGE_FULL, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(1000)); + verify(config).chronicle(1000); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_MULTIPLE_CHARGES, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(5)); + verify(config).chronicle(5); reset(config); chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", CHRONICLE_ADD_FULL, "", 0); itemChargePlugin.onChatMessage(chatMessage); - verify(config).chronicle(eq(1000)); + verify(config).chronicle(1000); reset(config); } } \ No newline at end of file From f8d8aa762c9c9e000a634aae0ae2387a8928c597 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 4 Nov 2020 17:18:51 -0500 Subject: [PATCH 15/41] antidrag: set bank drag delay when bankside inv is opened too --- .../net/runelite/client/plugins/antidrag/AntiDragPlugin.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java index a885de198f..1c3952737e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java @@ -201,7 +201,9 @@ public class AntiDragPlugin extends Plugin implements KeyListener @Subscribe public void onWidgetLoaded(WidgetLoaded widgetLoaded) { - if ((widgetLoaded.getGroupId() == WidgetID.BANK_GROUP_ID || widgetLoaded.getGroupId() == WidgetID.DEPOSIT_BOX_GROUP_ID) && (!config.onShiftOnly() || shiftHeld) && !ctrlHeld) + if ((widgetLoaded.getGroupId() == WidgetID.BANK_GROUP_ID || + widgetLoaded.getGroupId() == WidgetID.BANK_INVENTORY_GROUP_ID || + widgetLoaded.getGroupId() == WidgetID.DEPOSIT_BOX_GROUP_ID) && (!config.onShiftOnly() || shiftHeld) && !ctrlHeld) { setBankDragDelay(config.dragDelay()); } From 9b3beffbfc4b843b1af3bbe06f473cac17530f67 Mon Sep 17 00:00:00 2001 From: dekvall Date: Thu, 29 Oct 2020 22:23:10 +0100 Subject: [PATCH 16/41] timers: add league home tele --- .../src/main/java/net/runelite/api/AnimationID.java | 7 +++++++ .../net/runelite/client/plugins/timers/TimersPlugin.java | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/AnimationID.java index 4d3d6623a5..d84c849c04 100644 --- a/runelite-api/src/main/java/net/runelite/api/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/AnimationID.java @@ -186,6 +186,13 @@ public final class AnimationID public static final int COW_HOME_TELEPORT_4 = 1699; public static final int COW_HOME_TELEPORT_5 = 1700; public static final int COW_HOME_TELEPORT_6 = 1701; + public static final int LEAGUE_HOME_TELEPORT_1 = 8798; + public static final int LEAGUE_HOME_TELEPORT_2 = 8799; + public static final int LEAGUE_HOME_TELEPORT_3 = 8801; + public static final int LEAGUE_HOME_TELEPORT_4 = 8803; + public static final int LEAGUE_HOME_TELEPORT_5 = 8805; + public static final int LEAGUE_HOME_TELEPORT_6 = 8807; + public static final int CONSTRUCTION = 3676; public static final int SAND_COLLECTION = 895; public static final int PISCARILIUS_CRANE_REPAIR = 7199; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java index 3cbf489c59..f53238ab87 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java @@ -858,7 +858,8 @@ public class TimersPlugin extends Plugin if (config.showHomeMinigameTeleports() && client.getLocalPlayer().getAnimation() == AnimationID.IDLE && (lastAnimation == AnimationID.BOOK_HOME_TELEPORT_5 - || lastAnimation == AnimationID.COW_HOME_TELEPORT_6)) + || lastAnimation == AnimationID.COW_HOME_TELEPORT_6 + || lastAnimation == AnimationID.LEAGUE_HOME_TELEPORT_6)) { if (lastTeleportClicked == TeleportWidget.HOME_TELEPORT) { From d3573edbfe829bea2055bd4ffb3ecd96c996a80f Mon Sep 17 00:00:00 2001 From: Hydrox6 Date: Mon, 2 Nov 2020 21:54:50 +0000 Subject: [PATCH 17/41] add support for trailblazer tools --- .../src/main/java/net/runelite/api/AnimationID.java | 7 +++++++ .../woodcutting/CrowdsourcingWoodcutting.java | 3 ++- .../runelite/client/plugins/fishing/FishingOverlay.java | 2 ++ .../client/plugins/idlenotifier/IdleNotifierPlugin.java | 7 +++++++ .../java/net/runelite/client/plugins/mining/Pickaxe.java | 9 ++++++++- .../client/plugins/motherlode/MotherlodeOverlay.java | 2 +- .../client/plugins/wintertodt/WintertodtPlugin.java | 2 ++ .../net/runelite/client/plugins/woodcutting/Axe.java | 5 ++++- 8 files changed, 33 insertions(+), 4 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/AnimationID.java index d84c849c04..bde6a00de3 100644 --- a/runelite-api/src/main/java/net/runelite/api/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/AnimationID.java @@ -46,6 +46,7 @@ public final class AnimationID public static final int WOODCUTTING_INFERNAL = 2117; public static final int WOODCUTTING_3A_AXE = 7264; public static final int WOODCUTTING_CRYSTAL = 8324; + public static final int WOODCUTTING_TRAILBLAZER = 8778; public static final int CONSUMING = 829; // consuming consumables public static final int FIREMAKING = 733; public static final int DEATH = 836; @@ -107,6 +108,8 @@ public final class AnimationID public static final int FISHING_DRAGON_HARPOON = 7401; public static final int FISHING_INFERNAL_HARPOON = 7402; public static final int FISHING_CRYSTAL_HARPOON = 8336; + public static final int FISHING_TRAILBLAZER_HARPOON = 8784; + public static final int FISHING_TRAILBLAZER_HARPOON_2 = 8785; public static final int FISHING_OILY_ROD = 622; public static final int FISHING_KARAMBWAN = 1193; public static final int FISHING_CRUSHING_INFERNAL_EELS = 7553; @@ -141,6 +144,9 @@ public final class AnimationID public static final int MINING_INFERNAL_PICKAXE = 4482; public static final int MINING_3A_PICKAXE = 7283; public static final int MINING_CRYSTAL_PICKAXE = 8347; + public static final int MINING_TRAILBLAZER_PICKAXE = 8787; + public static final int MINING_TRAILBLAZER_PICKAXE_2 = 8788; + public static final int MINING_TRAILBLAZER_PICKAXE_3 = 8789; public static final int MINING_MOTHERLODE_BRONZE = 6753; public static final int MINING_MOTHERLODE_IRON = 6754; public static final int MINING_MOTHERLODE_STEEL = 6755; @@ -155,6 +161,7 @@ public final class AnimationID public static final int MINING_MOTHERLODE_INFERNAL = 4481; public static final int MINING_MOTHERLODE_3A = 7282; public static final int MINING_MOTHERLODE_CRYSTAL = 8345; + public static final int MINING_MOTHERLODE_TRAILBLAZER = 8786; public static final int DENSE_ESSENCE_CHIPPING = 7201; public static final int DENSE_ESSENCE_CHISELING = 7202; public static final int HERBLORE_POTIONMAKING = 363; //used for both herb and secondary diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/crowdsourcing/woodcutting/CrowdsourcingWoodcutting.java b/runelite-client/src/main/java/net/runelite/client/plugins/crowdsourcing/woodcutting/CrowdsourcingWoodcutting.java index b3e1189103..c8499575cf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/crowdsourcing/woodcutting/CrowdsourcingWoodcutting.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/crowdsourcing/woodcutting/CrowdsourcingWoodcutting.java @@ -87,7 +87,8 @@ public class CrowdsourcingWoodcutting put(AnimationID.WOODCUTTING_DRAGON, ItemID.DRAGON_AXE). put(AnimationID.WOODCUTTING_INFERNAL, ItemID.INFERNAL_AXE). put(AnimationID.WOODCUTTING_3A_AXE, ItemID._3RD_AGE_AXE). - put(AnimationID.WOODCUTTING_CRYSTAL, ItemID.CRYSTAL_AXE).build(); + put(AnimationID.WOODCUTTING_CRYSTAL, ItemID.CRYSTAL_AXE). + put(AnimationID.WOODCUTTING_TRAILBLAZER, ItemID.TRAILBLAZER_AXE).build(); private static final Set SUCCESS_MESSAGES = new ImmutableSet.Builder(). add("You get some logs."). diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java index 07d9897fef..43853f95c7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java @@ -66,6 +66,8 @@ class FishingOverlay extends OverlayPanel AnimationID.FISHING_DRAGON_HARPOON, AnimationID.FISHING_HARPOON, AnimationID.FISHING_INFERNAL_HARPOON, + AnimationID.FISHING_TRAILBLAZER_HARPOON, + AnimationID.FISHING_TRAILBLAZER_HARPOON_2, AnimationID.FISHING_KARAMBWAN, AnimationID.FISHING_NET, AnimationID.FISHING_OILY_ROD, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java index 7fd0b6aeaf..93566d4c22 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java @@ -139,6 +139,7 @@ public class IdleNotifierPlugin extends Plugin case WOODCUTTING_INFERNAL: case WOODCUTTING_3A_AXE: case WOODCUTTING_CRYSTAL: + case WOODCUTTING_TRAILBLAZER: /* Cooking(Fire, Range) */ case COOKING_FIRE: case COOKING_RANGE: @@ -198,6 +199,8 @@ public class IdleNotifierPlugin extends Plugin case FISHING_DRAGON_HARPOON: case FISHING_INFERNAL_HARPOON: case FISHING_CRYSTAL_HARPOON: + case FISHING_TRAILBLAZER_HARPOON: + case FISHING_TRAILBLAZER_HARPOON_2: case FISHING_OILY_ROD: case FISHING_KARAMBWAN: case FISHING_BAREHAND: @@ -223,6 +226,9 @@ public class IdleNotifierPlugin extends Plugin case MINING_INFERNAL_PICKAXE: case MINING_3A_PICKAXE: case MINING_CRYSTAL_PICKAXE: + case MINING_TRAILBLAZER_PICKAXE: + case MINING_TRAILBLAZER_PICKAXE_2: + case MINING_TRAILBLAZER_PICKAXE_3: case DENSE_ESSENCE_CHIPPING: case DENSE_ESSENCE_CHISELING: /* Mining(Motherlode) */ @@ -240,6 +246,7 @@ public class IdleNotifierPlugin extends Plugin case MINING_MOTHERLODE_INFERNAL: case MINING_MOTHERLODE_3A: case MINING_MOTHERLODE_CRYSTAL: + case MINING_MOTHERLODE_TRAILBLAZER: /* Herblore */ case HERBLORE_PESTLE_AND_MORTAR: case HERBLORE_POTIONMAKING: diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/Pickaxe.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/Pickaxe.java index b21b3eea29..edfd2826ff 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/Pickaxe.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/Pickaxe.java @@ -53,8 +53,12 @@ import static net.runelite.api.AnimationID.MINING_MOTHERLODE_IRON; import static net.runelite.api.AnimationID.MINING_MOTHERLODE_MITHRIL; import static net.runelite.api.AnimationID.MINING_MOTHERLODE_RUNE; import static net.runelite.api.AnimationID.MINING_MOTHERLODE_STEEL; +import static net.runelite.api.AnimationID.MINING_MOTHERLODE_TRAILBLAZER; import static net.runelite.api.AnimationID.MINING_RUNE_PICKAXE; import static net.runelite.api.AnimationID.MINING_STEEL_PICKAXE; +import static net.runelite.api.AnimationID.MINING_TRAILBLAZER_PICKAXE; +import static net.runelite.api.AnimationID.MINING_TRAILBLAZER_PICKAXE_2; +import static net.runelite.api.AnimationID.MINING_TRAILBLAZER_PICKAXE_3; import static net.runelite.api.ItemID.ADAMANT_PICKAXE; import static net.runelite.api.ItemID.BLACK_PICKAXE; import static net.runelite.api.ItemID.BRONZE_PICKAXE; @@ -69,6 +73,7 @@ import static net.runelite.api.ItemID.MITHRIL_PICKAXE; import static net.runelite.api.ItemID.RUNE_PICKAXE; import static net.runelite.api.ItemID.STEEL_PICKAXE; import static net.runelite.api.ItemID._3RD_AGE_PICKAXE; +import static net.runelite.api.ItemID.TRAILBLAZER_PICKAXE; import net.runelite.api.Player; @Getter @@ -87,7 +92,9 @@ enum Pickaxe DRAGON_UPGRADED(DRAGON_PICKAXE_12797, MINING_DRAGON_PICKAXE_UPGRADED, MINING_MOTHERLODE_DRAGON_UPGRADED), INFERNAL(INFERNAL_PICKAXE, MINING_INFERNAL_PICKAXE, MINING_MOTHERLODE_INFERNAL), THIRDAGE(_3RD_AGE_PICKAXE, MINING_3A_PICKAXE, MINING_MOTHERLODE_3A), - CRYSTAL(CRYSTAL_PICKAXE, MINING_CRYSTAL_PICKAXE, MINING_MOTHERLODE_CRYSTAL); + CRYSTAL(CRYSTAL_PICKAXE, MINING_CRYSTAL_PICKAXE, MINING_MOTHERLODE_CRYSTAL), + TRAILBLAZER(TRAILBLAZER_PICKAXE, MINING_TRAILBLAZER_PICKAXE, MINING_TRAILBLAZER_PICKAXE_2, + MINING_TRAILBLAZER_PICKAXE_3, MINING_MOTHERLODE_TRAILBLAZER); private final int itemId; private final int[] animIds; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java index 0ee91ab522..b3dba5c048 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java @@ -48,7 +48,7 @@ class MotherlodeOverlay extends OverlayPanel MINING_MOTHERLODE_BLACK, MINING_MOTHERLODE_MITHRIL, MINING_MOTHERLODE_ADAMANT, MINING_MOTHERLODE_RUNE, MINING_MOTHERLODE_GILDED, MINING_MOTHERLODE_DRAGON, MINING_MOTHERLODE_DRAGON_UPGRADED, MINING_MOTHERLODE_DRAGON_OR, MINING_MOTHERLODE_INFERNAL, - MINING_MOTHERLODE_3A, MINING_MOTHERLODE_CRYSTAL + MINING_MOTHERLODE_3A, MINING_MOTHERLODE_CRYSTAL, MINING_MOTHERLODE_TRAILBLAZER ); static final String MINING_RESET = "Reset"; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java index f993505978..611dbeba22 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java @@ -50,6 +50,7 @@ import static net.runelite.api.AnimationID.WOODCUTTING_IRON; import static net.runelite.api.AnimationID.WOODCUTTING_MITHRIL; import static net.runelite.api.AnimationID.WOODCUTTING_RUNE; import static net.runelite.api.AnimationID.WOODCUTTING_STEEL; +import static net.runelite.api.AnimationID.WOODCUTTING_TRAILBLAZER; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.InventoryID; @@ -416,6 +417,7 @@ public class WintertodtPlugin extends Plugin case WOODCUTTING_INFERNAL: case WOODCUTTING_3A_AXE: case WOODCUTTING_CRYSTAL: + case WOODCUTTING_TRAILBLAZER: setActivity(WintertodtActivity.WOODCUTTING); break; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java index 54b579e5ae..306e9dd346 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/Axe.java @@ -40,6 +40,7 @@ import static net.runelite.api.AnimationID.WOODCUTTING_IRON; import static net.runelite.api.AnimationID.WOODCUTTING_MITHRIL; import static net.runelite.api.AnimationID.WOODCUTTING_RUNE; import static net.runelite.api.AnimationID.WOODCUTTING_STEEL; +import static net.runelite.api.AnimationID.WOODCUTTING_TRAILBLAZER; import static net.runelite.api.ItemID.ADAMANT_AXE; import static net.runelite.api.ItemID.BLACK_AXE; import static net.runelite.api.ItemID.BRONZE_AXE; @@ -51,6 +52,7 @@ import static net.runelite.api.ItemID.IRON_AXE; import static net.runelite.api.ItemID.MITHRIL_AXE; import static net.runelite.api.ItemID.RUNE_AXE; import static net.runelite.api.ItemID.STEEL_AXE; +import static net.runelite.api.ItemID.TRAILBLAZER_AXE; import static net.runelite.api.ItemID._3RD_AGE_AXE; import net.runelite.api.Player; @@ -69,7 +71,8 @@ enum Axe DRAGON(WOODCUTTING_DRAGON, DRAGON_AXE), INFERNAL(WOODCUTTING_INFERNAL, INFERNAL_AXE), THIRDAGE(WOODCUTTING_3A_AXE, _3RD_AGE_AXE), - CRYSTAL(WOODCUTTING_CRYSTAL, CRYSTAL_AXE); + CRYSTAL(WOODCUTTING_CRYSTAL, CRYSTAL_AXE), + TRAILBLAZER(WOODCUTTING_TRAILBLAZER, TRAILBLAZER_AXE); private final Integer animId; private final Integer itemId; From 6044c9ce90cf892c3a5e6f82c73ed67781360a1b Mon Sep 17 00:00:00 2001 From: RansomTime <47819665+RansomTime@users.noreply.github.com> Date: Thu, 5 Nov 2020 00:27:15 +0000 Subject: [PATCH 18/41] slayer plugin: add Cyclops to hill giants task list Slayer info from https://oldschool.runescape.wiki/w/Cyclops - notable synergy with Unnatural Selection in Trailblazer league --- .../src/main/java/net/runelite/client/plugins/slayer/Task.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java index 1c9d9e81e2..19d29bc4a2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java @@ -102,7 +102,7 @@ enum Task GROTESQUE_GUARDIANS("Grotesque Guardians", ItemID.MIDNIGHT, 0, ItemID.ROCK_HAMMER, "Dusk", "Dawn"), HARPIE_BUG_SWARMS("Harpie bug swarms", ItemID.SWARM), HELLHOUNDS("Hellhounds", ItemID.HELLHOUND), - HILL_GIANTS("Hill giants", ItemID.ENSOULED_GIANT_HEAD), + HILL_GIANTS("Hill giants", ItemID.ENSOULED_GIANT_HEAD, "Cyclops"), HOBGOBLINS("Hobgoblins", ItemID.HOBGOBLIN_GUARD), HYDRAS("Hydras", ItemID.HYDRA), ICEFIENDS("Icefiends", ItemID.ICE_DIAMOND), From 16c9a9cb3a6a2ad2739bd069bc0fb57d55fff88b Mon Sep 17 00:00:00 2001 From: dekvall Date: Thu, 5 Nov 2020 11:23:54 -0500 Subject: [PATCH 19/41] regenmeter: add support for fluid strikes --- .../src/main/java/net/runelite/api/Varbits.java | 13 +++++++------ .../client/plugins/regenmeter/RegenMeterPlugin.java | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/Varbits.java b/runelite-api/src/main/java/net/runelite/api/Varbits.java index 3277622f4d..b96a5994df 100644 --- a/runelite-api/src/main/java/net/runelite/api/Varbits.java +++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java @@ -563,13 +563,14 @@ public enum Varbits WINTERTODT_TIMER(7980), /** - * Twisted league + * League relics */ - TWISTED_LEAGUE_RELIC_1(10049), - TWISTED_LEAGUE_RELIC_2(10050), - TWISTED_LEAGUE_RELIC_3(10051), - TWISTED_LEAGUE_RELIC_4(10052), - TWISTED_LEAGUE_RELIC_5(10053), + LEAGUE_RELIC_1(10049), + LEAGUE_RELIC_2(10050), + LEAGUE_RELIC_3(10051), + LEAGUE_RELIC_4(10052), + LEAGUE_RELIC_5(10053), + LEAGUE_RELIC_6(11696), /** * Whether the Special Attack orb is disabled due to being in a PvP area diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterPlugin.java index 0eb6e9b231..6339ce5486 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/regenmeter/RegenMeterPlugin.java @@ -57,7 +57,7 @@ public class RegenMeterPlugin extends Plugin private static final int SPEC_REGEN_TICKS = 50; private static final int NORMAL_HP_REGEN_TICKS = 100; - private static final int TWISTED_LEAGUE_ENDLESS_ENDURANCE_RELIC = 2; + private static final int TRAILBLAZER_LEAGUE_FLUID_STRIKES_RELIC = 2; @Inject private Client client; @@ -144,7 +144,7 @@ public class RegenMeterPlugin extends Plugin ticksPerHPRegen /= 2; } - if (client.getVar(Varbits.TWISTED_LEAGUE_RELIC_1) == TWISTED_LEAGUE_ENDLESS_ENDURANCE_RELIC) + if (client.getVar(Varbits.LEAGUE_RELIC_3) == TRAILBLAZER_LEAGUE_FLUID_STRIKES_RELIC) { ticksPerHPRegen /= 4; } From d8e72c6551d7ce5f667dc05d91d7edf77ffb7252 Mon Sep 17 00:00:00 2001 From: dekvall Date: Thu, 5 Nov 2020 11:23:58 -0500 Subject: [PATCH 20/41] xptracker: add league relic modifiers --- .../plugins/xptracker/XpTrackerPlugin.java | 2 +- .../client/plugins/xptracker/XpWorldType.java | 45 +++++++++++++++---- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java index 82c742e47f..9ae532a8db 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java @@ -377,7 +377,7 @@ public class XpTrackerPlugin extends Plugin final Actor interacting = client.getLocalPlayer().getInteracting(); if (interacting instanceof NPC && COMBAT.contains(skill)) { - final int xpModifier = worldSetToType(client.getWorldType()).getXpModifier(); + final int xpModifier = worldSetToType(client.getWorldType()).modifier(client);; final NPC npc = (NPC) interacting; xpState.updateNpcExperience(skill, npc, npcManager.getHealth(npc.getId()), xpModifier); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java index cc62695c92..245057e209 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java @@ -24,20 +24,47 @@ */ package net.runelite.client.plugins.xptracker; -import lombok.Getter; -import lombok.RequiredArgsConstructor; +import net.runelite.api.Client; +import net.runelite.api.Varbits; import net.runelite.api.WorldType; -@Getter -@RequiredArgsConstructor enum XpWorldType { - NORMAL(1), - TOURNEY(1), - DMM(5), - LEAGUE(5); + NORMAL, + TOURNEY, + DMM + { + @Override + int modifier(Client client) + { + return 5; + } + }, + LEAGUE + { + @Override + int modifier(Client client) + { + if (client.getVar(Varbits.LEAGUE_RELIC_6) != 0) + { + return 16; + } + if (client.getVar(Varbits.LEAGUE_RELIC_4) != 0) + { + return 12; + } + if (client.getVar(Varbits.LEAGUE_RELIC_2) != 0) + { + return 8; + } + return 5; + } + }; - private final int xpModifier; + int modifier(Client client) + { + return 1; + } static XpWorldType of(WorldType type) { From 26edf447c8f6abd0fd1ea62b807f4b380094eb86 Mon Sep 17 00:00:00 2001 From: Cryslacks Date: Wed, 7 Oct 2020 10:21:17 +0200 Subject: [PATCH 21/41] Add trade and duel inventory to widget item inventory overlay --- .../main/java/net/runelite/api/widgets/WidgetID.java | 2 ++ .../runelite/client/ui/overlay/WidgetItemOverlay.java | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 563bc38161..861790dc85 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -160,6 +160,8 @@ public class WidgetID public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_PRIVATE_GROUP_ID = 271; public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_SHARED_GROUP_ID = 550; public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_INVENTORY_GROUP_ID = 551; + public static final int DUEL_INVENTORY_GROUP_ID = 421; + public static final int DUEL_INVENTORY_OTHER_GROUP_ID = 481; static class WorldMap { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java index b351dcf808..295c1d618b 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java @@ -44,6 +44,10 @@ import static net.runelite.api.widgets.WidgetID.GUIDE_PRICES_INVENTORY_GROUP_ID; import static net.runelite.api.widgets.WidgetID.INVENTORY_GROUP_ID; import static net.runelite.api.widgets.WidgetID.SEED_VAULT_INVENTORY_GROUP_ID; import static net.runelite.api.widgets.WidgetID.SHOP_INVENTORY_GROUP_ID; +import static net.runelite.api.widgets.WidgetID.DUEL_INVENTORY_GROUP_ID; +import static net.runelite.api.widgets.WidgetID.DUEL_INVENTORY_OTHER_GROUP_ID; +import static net.runelite.api.widgets.WidgetID.PLAYER_TRADE_SCREEN_GROUP_ID; +import static net.runelite.api.widgets.WidgetID.PLAYER_TRADE_INVENTORY_GROUP_ID; import static net.runelite.api.widgets.WidgetInfo.BANK_CONTENT_CONTAINER; import static net.runelite.api.widgets.WidgetInfo.BANK_TAB_CONTAINER; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; @@ -138,7 +142,11 @@ public abstract class WidgetItemOverlay extends Overlay GUIDE_PRICES_INVENTORY_GROUP_ID, EQUIPMENT_INVENTORY_GROUP_ID, INVENTORY_GROUP_ID, - SEED_VAULT_INVENTORY_GROUP_ID); + SEED_VAULT_INVENTORY_GROUP_ID, + DUEL_INVENTORY_GROUP_ID, + DUEL_INVENTORY_OTHER_GROUP_ID, + PLAYER_TRADE_SCREEN_GROUP_ID, + PLAYER_TRADE_INVENTORY_GROUP_ID); } protected void showOnBank() From 79286202e6350a7f1558223f65cba54e4c894727 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 6 Nov 2020 15:48:48 -0500 Subject: [PATCH 22/41] ci: update glslang to 8.13.3743 --- ci/build.sh | 4 ++-- .../main/resources/net/runelite/client/plugins/gpu/vert.glsl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 15282adc6f..4fddc5fa14 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -6,8 +6,8 @@ CACHEDIR="$HOME/.cache/runelite" mkdir -p "${CACHEDIR}" GLSLANG_ARCHIVE="${CACHEDIR}/glslang.zip" GLSLANG_DIR="${CACHEDIR}/glslang" -GLSLANG_RELEASE='https://github.com/KhronosGroup/glslang/releases/download/8.13.3559/glslang-master-linux-Release.zip' -GLSLANG_CHECKSUM='9adcfdef5b52275e61068aafbb62747936c6c18ab6dc32a6ef707cfc7b0df423' +GLSLANG_RELEASE='https://github.com/KhronosGroup/glslang/releases/download/8.13.3743/glslang-master-linux-Release.zip' +GLSLANG_CHECKSUM='d02b22d35ba7bc786a115fbc90ff2caef7f1cd99d87ab053e3dba8efda5b405a' if [ ! -f "${GLSLANG_ARCHIVE}" ] || [ ! -d "${GLSLANG_DIR}" ] || ! echo "${GLSLANG_CHECKSUM} ${GLSLANG_ARCHIVE}" | sha256sum -c -; then wget -O "${GLSLANG_ARCHIVE}" "${GLSLANG_RELEASE}" diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/vert.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/vert.glsl index 613d95aa51..0b161a1149 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/vert.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/vert.glsl @@ -91,7 +91,7 @@ void main() float nearestEdgeDistance = min(xDist, zDist); float secondNearestEdgeDistance = max(xDist, zDist); float fogDistance = nearestEdgeDistance - FOG_CORNER_ROUNDING * TILE_SIZE * - max(0, (nearestEdgeDistance + FOG_CORNER_ROUNDING_SQUARED) / + max(0.f, (nearestEdgeDistance + FOG_CORNER_ROUNDING_SQUARED) / (secondNearestEdgeDistance + FOG_CORNER_ROUNDING_SQUARED)); fogAmount = fogFactorLinear(fogDistance, 0, fogDepth * TILE_SIZE) * useFog; From 1cc422605d1ba540c60fa54f0b82ecc24b9b2318 Mon Sep 17 00:00:00 2001 From: ThePharros <18340303+ThePharros@users.noreply.github.com> Date: Fri, 6 Nov 2020 17:48:54 -0500 Subject: [PATCH 23/41] menu entry swapper: add recite-prayer swap --- .../menuentryswapper/MenuEntrySwapperConfig.java | 11 +++++++++++ .../menuentryswapper/MenuEntrySwapperPlugin.java | 2 ++ 2 files changed, 13 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java index f0a305e9f1..bceea79f33 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java @@ -144,6 +144,17 @@ public interface MenuEntrySwapperConfig extends Config return false; } + @ConfigItem( + keyName = "swapPrayerBook", + name = "Recite-Prayer", + description = "Swap Read with Recite-prayer on the Prayer Book from The Great Brain Robbery quest", + section = itemSection + ) + default boolean swapPrayerBook() + { + return false; + } + @ConfigItem( keyName = "swapContract", name = "Contract", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 23caa3ea3f..f4cacb4a36 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -323,6 +323,8 @@ public class MenuEntrySwapperPlugin extends Plugin swap("clean", "use", config::swapHerbs); + swap("read", "recite-prayer", config::swapPrayerBook); + swap("collect-note", "collect-item", () -> config.swapGEItemCollect() == GEItemCollectMode.ITEMS); swap("collect-notes", "collect-items", () -> config.swapGEItemCollect() == GEItemCollectMode.ITEMS); From 7f49b88b42d81e74e990a95115ee3199c29e8411 Mon Sep 17 00:00:00 2001 From: Usman Akhtar <60450353+akhtar-u@users.noreply.github.com> Date: Sat, 7 Nov 2020 13:52:28 -0500 Subject: [PATCH 24/41] opponent info: fix npcindicator color not working with show opponents in menu --- .../client/plugins/opponentinfo/OpponentInfoPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java index 7faea8bc1f..801148c447 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java @@ -184,7 +184,7 @@ public class OpponentInfoPlugin extends Plugin if (npc.getInteracting() == client.getLocalPlayer() || lastOpponent == npc) { MenuEntry[] menuEntries = client.getMenuEntries(); - menuEntries[menuEntries.length - 1].setTarget("*" + menuEntryAdded.getTarget()); + menuEntries[menuEntries.length - 1].setTarget("*" + menuEntries[menuEntries.length - 1].getTarget()); client.setMenuEntries(menuEntries); } } From b031d4c60f7b654258e58905d3a495df12f2311d Mon Sep 17 00:00:00 2001 From: Ben Poulson Date: Wed, 4 Nov 2020 06:23:10 +0000 Subject: [PATCH 25/41] gpu: add colorblind mode Co-authored-by: Adam --- .../client/plugins/gpu/GpuPlugin.java | 6 ++ .../client/plugins/gpu/GpuPluginConfig.java | 12 +++ .../plugins/gpu/config/ColorBlindMode.java | 33 +++++++++ .../client/plugins/gpu/colorblind.glsl | 74 +++++++++++++++++++ .../net/runelite/client/plugins/gpu/frag.glsl | 6 ++ .../runelite/client/plugins/gpu/fragui.glsl | 6 ++ 6 files changed, 137 insertions(+) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/gpu/config/ColorBlindMode.java create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index 5f458f1762..67b2c1bcc1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -252,6 +252,8 @@ public class GpuPlugin extends Plugin implements DrawCallbacks private int modelOrientation; // Uniforms + private int uniColorBlindMode; + private int uniUiColorBlindMode; private int uniUseFog; private int uniFogColor; private int uniFogDepth; @@ -536,11 +538,13 @@ public class GpuPlugin extends Plugin implements DrawCallbacks uniFogColor = gl.glGetUniformLocation(glProgram, "fogColor"); uniFogDepth = gl.glGetUniformLocation(glProgram, "fogDepth"); uniDrawDistance = gl.glGetUniformLocation(glProgram, "drawDistance"); + uniColorBlindMode = gl.glGetUniformLocation(glProgram, "colorBlindMode"); uniTex = gl.glGetUniformLocation(glUiProgram, "tex"); uniTexSamplingMode = gl.glGetUniformLocation(glUiProgram, "samplingMode"); uniTexTargetDimensions = gl.glGetUniformLocation(glUiProgram, "targetDimensions"); uniTexSourceDimensions = gl.glGetUniformLocation(glUiProgram, "sourceDimensions"); + uniUiColorBlindMode = gl.glGetUniformLocation(glUiProgram, "colorBlindMode"); uniTextures = gl.glGetUniformLocation(glProgram, "textures"); uniTextureOffsets = gl.glGetUniformLocation(glProgram, "textureOffsets"); @@ -1121,6 +1125,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks // Brightness happens to also be stored in the texture provider, so we use that gl.glUniform1f(uniBrightness, (float) textureProvider.getBrightness()); gl.glUniform1f(uniSmoothBanding, config.smoothBanding() ? 0f : 1f); + gl.glUniform1i(uniColorBlindMode, config.colorBlindMode().ordinal()); // Calculate projection matrix Matrix4 projectionMatrix = new Matrix4(); @@ -1248,6 +1253,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks gl.glUniform1i(uniTex, 0); gl.glUniform1i(uniTexSamplingMode, uiScalingMode.getMode()); gl.glUniform2i(uniTexSourceDimensions, canvasWidth, canvasHeight); + gl.glUniform1i(uniUiColorBlindMode, config.colorBlindMode().ordinal()); if (client.isStretchedEnabled()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPluginConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPluginConfig.java index c432ba4ad7..bef0ce2921 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPluginConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPluginConfig.java @@ -31,6 +31,7 @@ import net.runelite.client.config.Range; import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_FOG_DEPTH; import net.runelite.client.plugins.gpu.config.AntiAliasingMode; import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_DISTANCE; +import net.runelite.client.plugins.gpu.config.ColorBlindMode; import net.runelite.client.plugins.gpu.config.UIScalingMode; @ConfigGroup("gpu") @@ -123,4 +124,15 @@ public interface GpuPluginConfig extends Config { return 0; } + + @ConfigItem( + keyName = "colorBlindMode", + name = "Colorblindness Correction", + description = "Adjusts colors to account for colorblindness", + position = 8 + ) + default ColorBlindMode colorBlindMode() + { + return ColorBlindMode.NONE; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/config/ColorBlindMode.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/config/ColorBlindMode.java new file mode 100644 index 0000000000..9a544c0e6a --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/config/ColorBlindMode.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2020 Ben Poulson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.gpu.config; + +public enum ColorBlindMode +{ + NONE, + PROTANOPE, + DEUTERANOPE, + TRITANOPE; +} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl new file mode 100644 index 0000000000..2a6a16883d --- /dev/null +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl @@ -0,0 +1,74 @@ +// +// Algorithm from "Analysis of Color Blindness" by Onur Fidaner, Poliang Lin and Nevran Ozguven. +// https://web.archive.org/web/20090731011248/http://scien.stanford.edu/class/psych221/projects/05/ofidaner/project_report.pdf +// + +#define NONE 0 +#define PROTAN 1 +#define DEUTERAN 2 +#define TRITAN 3 + +const mat3 rgb2lms = mat3( + vec3(17.8824, 43.5161, 4.11935), + vec3(3.45565, 27.1554, 3.86714), + vec3(0.0299566, 0.184309, 1.46709) +); + +const mat3 lms2lmsp = mat3( + vec3(0.0, 2.02344, -2.52581), + vec3(0.0, 1.0, 0.0), + vec3(0.0, 0.0, 1.0) +); + +const mat3 lms2lmsd = mat3( + vec3(1.0, 0.0, 0.0), + vec3(0.494207, 0.0, 1.24827), + vec3(0.0, 0.0, 1.0) +); + +const mat3 lms2lmst = mat3( + vec3(1.0, 0.0, 0.0), + vec3(0.0, 1.0, 0.0), + vec3(-0.395913, 0.801109, 0.0) +); + +const mat3 corrections = mat3( + vec3(0.0, 0.0, 0.0), + vec3(0.7, 1.0, 0.0), + vec3(0.7, 0.0, 1.0) +); + +vec3 colorblind(int mode, vec3 color) +{ + vec3 LMS = color * rgb2lms; + vec3 lms; + + if (mode == PROTAN) { + lms = LMS * lms2lmsp; // red deficiency + } + else if (mode == DEUTERAN) { + lms = LMS * lms2lmsd; // green deficiency + } + else if (mode == TRITAN) { + lms = LMS * lms2lmst; // blue deficiency + } + else { + // Should be impossible to get here + return color; + } + + // LMS to RGB matrix conversion + mat3 lms2rgb = inverse(rgb2lms); + vec3 error = lms * lms2rgb; + + // Isolate invisible colors to color vision deficiency (calculate error matrix) + error = (color - error); + + // Shift colors towards visible spectrum (apply error modifications) + vec3 correction = error * corrections; + + // Add compensation to original values + correction = color + correction; + + return correction; +} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/frag.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/frag.glsl index 54ddd3cfe6..b89513a94e 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/frag.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/frag.glsl @@ -29,6 +29,7 @@ uniform vec2 textureOffsets[64]; uniform float brightness; uniform float smoothBanding; uniform vec4 fogColor; +uniform int colorBlindMode; in vec4 Color; noperspective centroid in float fHsl; @@ -39,6 +40,7 @@ in float fogAmount; out vec4 FragColor; #include hsl_to_rgb.glsl +#include colorblind.glsl void main() { int hsl = int(fHsl); @@ -57,6 +59,10 @@ void main() { smoothColor = textureColorBrightness * smoothColor; } + if (colorBlindMode > 0) { + smoothColor.rgb = colorblind(colorBlindMode, smoothColor.rgb); + } + vec3 mixedColor = mix(smoothColor.rgb, fogColor.rgb, fogAmount); FragColor = vec4(mixedColor, smoothColor.a); } diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl index 73a3e36ee7..cf013aacdd 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl @@ -34,9 +34,11 @@ uniform sampler2D tex; uniform int samplingMode; uniform ivec2 sourceDimensions; uniform ivec2 targetDimensions; +uniform int colorBlindMode; #include scale/bicubic.glsl #include scale/xbr_lv2_frag.glsl +#include colorblind.glsl in vec2 TexCoord; in XBRTable xbrTable; @@ -53,5 +55,9 @@ void main() { else if (samplingMode == SAMPLING_XBR) c = textureXBR(tex, TexCoord, xbrTable, ceil(1.0 * targetDimensions.x / sourceDimensions.x)); + if (colorBlindMode > 0) { + c.rgb = colorblind(colorBlindMode, c.rgb); + } + FragColor = c; } From 4f3d57d739529ba20aacf0f12736b1cc5e9e4657 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 9 Nov 2020 12:41:50 -0500 Subject: [PATCH 26/41] Fix offline worlds showing population of 65535 The service has been updated to return -1 when worlds are offline, and then the UI updated to display OFF when the count is less than 0 --- .../net/runelite/http/service/worlds/WorldsService.java | 2 +- .../client/plugins/worldhopper/WorldTableRow.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java b/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java index a3bd010430..fe85fb35dd 100644 --- a/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java +++ b/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java @@ -74,7 +74,7 @@ public class WorldsService .address(readString(buf)) .activity(readString(buf)) .location(buf.get() & 0xFF) - .players(buf.getShort() & 0xFFFF); + .players(buf.getShort()); worlds.add(worldBuilder.build()); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java index d67d5b6bb4..eb39459f32 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java @@ -207,7 +207,12 @@ class WorldTableRow extends JPanel void updatePlayerCount(int playerCount) { this.updatedPlayerCount = playerCount; - playerCountField.setText(String.valueOf(playerCount)); + playerCountField.setText(playerCountString(playerCount)); + } + + private static String playerCountString(int playerCount) + { + return playerCount < 0 ? "OFF" : Integer.toString(playerCount); } void setPing(int ping) @@ -272,7 +277,7 @@ class WorldTableRow extends JPanel JPanel column = new JPanel(new BorderLayout()); column.setBorder(new EmptyBorder(0, 5, 0, 5)); - playerCountField = new JLabel(world.getPlayers() + ""); + playerCountField = new JLabel(playerCountString(world.getPlayers())); playerCountField.setFont(FontManager.getRunescapeSmallFont()); column.add(playerCountField, BorderLayout.WEST); From 51d105a30b16cda9b3f8796e8853491dfe319747 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 9 Nov 2020 12:37:33 -0500 Subject: [PATCH 27/41] chat commands: format lp score --- .../client/plugins/chatcommands/ChatCommandsPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 7574803fb1..c4c8f715cd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -1311,7 +1311,7 @@ public class ChatCommandsPlugin extends Plugin .append(minigame.getName()) .append(" Score: ") .append(ChatColorType.HIGHLIGHT) - .append(Integer.toString(score)); + .append(String.format("%,d", score)); int rank = hiscoreSkill.getRank(); if (rank != -1) From 811842ef2f46ade48bff5b4148256dbd8f791c79 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 9 Nov 2020 11:54:14 -0500 Subject: [PATCH 28/41] wildcard matcher: quote replacement to prevent the matcher from replacing group references --- .../src/main/java/net/runelite/client/util/WildcardMatcher.java | 2 +- .../test/java/net/runelite/client/util/WildcardMatcherTest.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java index 354005a048..2421010fb5 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java +++ b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java @@ -45,7 +45,7 @@ public class WildcardMatcher } else { - matcher.appendReplacement(buffer, "\\\\Q" + matcher.group(0) + "\\\\E"); + matcher.appendReplacement(buffer, Matcher.quoteReplacement(Pattern.quote(matcher.group(0)))); } } diff --git a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java index 53b48a0755..5b1d09a264 100644 --- a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java +++ b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java @@ -39,5 +39,6 @@ public class WildcardMatcherTest assertFalse(matches("Abyssal whip", "Adamant dagger")); assertTrue(matches("rune*", "Runeite Ore")); assertTrue(matches("Abyssal whip", "Abyssal whip")); + assertTrue(matches("string $ with special character", "string $ with special character")); } } \ No newline at end of file From 02b107ed97b7bb8cff56d99ce8fca0922dbbaad6 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Wed, 11 Nov 2020 11:31:30 +0000 Subject: [PATCH 29/41] Update Item IDs to 2020-11-11-rev192 --- .../src/main/java/net/runelite/api/ItemID.java | 4 +--- .../src/main/java/net/runelite/api/NullItemID.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java index ba6f1c4707..67557b873c 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -10176,7 +10176,6 @@ public final class ItemID public static final int CHAOTIC_HANDEGG = 22361; public static final int OCULUS_ORB = 22364; public static final int SHAYZIEN_FAVOUR_CERTIFICATE = 22365; - public static final int CYAN_CRYSTAL_22366 = 22366; public static final int KOUREND_FAVOUR_CERTIFICATE = 22367; public static final int BRYOPHYTAS_STAFF_UNCHARGED = 22368; public static final int BRYOPHYTAS_STAFF = 22370; @@ -10375,7 +10374,6 @@ public final class ItemID public static final int OLD_NOTES_22774 = 22774; public static final int ANCIENT_LETTER = 22775; public static final int ARCEUUS_FAVOUR_CERTIFICATE = 22777; - public static final int DARK_ALTAR_22778 = 22778; public static final int WYRM_BONES = 22780; public static final int DRAKE_BONES = 22783; public static final int HYDRA_BONES = 22786; @@ -11518,7 +11516,7 @@ public final class ItemID public static final int TRAILBLAZER_TROPHY = 25040; public static final int TRAILBLAZER_DRAGON_TROPHY = 25042; public static final int TRAILBLAZER_RUNE_TROPHY = 25044; - public static final int TWISTED_ADAMANT_TROPHY_25046 = 25046; + public static final int TRAILBLAZER_ADAMANT_TROPHY = 25046; public static final int TRAILBLAZER_MITHRIL_TROPHY = 25048; public static final int TRAILBLAZER_STEEL_TROPHY = 25050; public static final int TRAILBLAZER_IRON_TROPHY = 25052; diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java index fb20591bfa..c9f155f9a7 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -12003,6 +12003,7 @@ public final class NullItemID public static final int NULL_22360 = 22360; public static final int NULL_22362 = 22362; public static final int NULL_22363 = 22363; + public static final int NULL_22366 = 22366; public static final int NULL_22369 = 22369; public static final int NULL_22371 = 22371; public static final int NULL_22373 = 22373; @@ -12216,6 +12217,7 @@ public final class NullItemID public static final int NULL_22757 = 22757; public static final int NULL_22759 = 22759; public static final int NULL_22776 = 22776; + public static final int NULL_22778 = 22778; public static final int NULL_22779 = 22779; public static final int NULL_22781 = 22781; public static final int NULL_22782 = 22782; @@ -13355,5 +13357,16 @@ public final class NullItemID public static final int NULL_25113 = 25113; public static final int NULL_25115 = 25115; public static final int NULL_25116 = 25116; + public static final int NULL_25118 = 25118; + public static final int NULL_25119 = 25119; + public static final int NULL_25120 = 25120; + public static final int NULL_25121 = 25121; + public static final int NULL_25122 = 25122; + public static final int NULL_25123 = 25123; + public static final int NULL_25124 = 25124; + public static final int NULL_25125 = 25125; + public static final int NULL_25126 = 25126; + public static final int NULL_25127 = 25127; + public static final int NULL_25128 = 25128; /* This file is automatically generated. Do not edit. */ } From bb4101a9a242c05bdbd9db74a9239b5c40478527 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Wed, 11 Nov 2020 11:31:31 +0000 Subject: [PATCH 30/41] Update Item variations to 2020-11-11-rev192 --- runelite-client/src/main/resources/item_variations.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json index 0271d91ad5..b5bec4195e 100644 --- a/runelite-client/src/main/resources/item_variations.json +++ b/runelite-client/src/main/resources/item_variations.json @@ -4720,7 +4720,6 @@ ], "cyan crystal": [ 6643, - 22366, 23779 ], "blue crystal": [ @@ -8292,10 +8291,6 @@ 24890, 24894 ], - "dark altar": [ - 20619, - 22778 - ], "occult altar": [ 20620, 20621, @@ -9306,10 +9301,6 @@ 24365, 24366 ], - "twisted adamant trophy": [ - 24376, - 25046 - ], "twisted hat": [ 24387, 24397, From b2ea095aee3ea18789b387a1ac71db688e3a1579 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Wed, 11 Nov 2020 11:31:31 +0000 Subject: [PATCH 31/41] Update Object IDs to 2020-11-11-rev192 --- .../java/net/runelite/api/NullObjectID.java | 9 ------- .../main/java/net/runelite/api/ObjectID.java | 27 +------------------ 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java index 47bae609ef..f3c11e2598 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -9385,7 +9385,6 @@ public final class NullObjectID public static final int NULL_20841 = 20841; public static final int NULL_20842 = 20842; public static final int NULL_20846 = 20846; - public static final int NULL_20853 = 20853; public static final int NULL_20857 = 20857; public static final int NULL_20859 = 20859; public static final int NULL_20860 = 20860; @@ -19726,14 +19725,6 @@ public final class NullObjectID public static final int NULL_40352 = 40352; public static final int NULL_40353 = 40353; public static final int NULL_40354 = 40354; - public static final int NULL_40360 = 40360; - public static final int NULL_40364 = 40364; - public static final int NULL_40368 = 40368; - public static final int NULL_40378 = 40378; - public static final int NULL_40379 = 40379; - public static final int NULL_40380 = 40380; - public static final int NULL_40381 = 40381; - public static final int NULL_40382 = 40382; public static final int NULL_40392 = 40392; public static final int NULL_40393 = 40393; public static final int NULL_40394 = 40394; diff --git a/runelite-api/src/main/java/net/runelite/api/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/ObjectID.java index b43d877ab4..0ad9e0d818 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -11465,16 +11465,6 @@ public final class ObjectID public static final int EXIT_PORTAL_20843 = 20843; public static final int TREE_20844 = 20844; public static final int TREE_20845 = 20845; - public static final int WARDROBE_20847 = 20847; - public static final int WEB_20848 = 20848; - public static final int JACKOLANTERN = 20849; - public static final int JACKOLANTERN_20850 = 20850; - public static final int PORTAL_TO_RICKS_ROOM = 20851; - public static final int PORTAL_TO_WIZARDS_TOWER = 20852; - public static final int BONFIRE = 20854; - public static final int BONFIRE_20855 = 20855; - public static final int BONFIRE_20856 = 20856; - public static final int BED_20858 = 20858; public static final int COMPOST_BIN_20870 = 20870; public static final int COMPOST_BIN_20871 = 20871; public static final int COMPOST_BIN_20872 = 20872; @@ -15460,7 +15450,7 @@ public final class ObjectID public static final int MARBLE_BENCH_29275 = 29275; public static final int OBSIDIAN_BENCH_29276 = 29276; public static final int OBSIDIAN_BENCH_29277 = 29277; - public static final int BONFIRE_29300 = 29300; + public static final int BONFIRE = 29300; public static final int CRATE_29301 = 29301; public static final int CRATE_29302 = 29302; public static final int CRATE_29303 = 29303; @@ -20620,21 +20610,6 @@ public final class ObjectID public static final int LECTERN_40357 = 40357; public static final int LECTERN_40358 = 40358; public static final int PICTURE_40359 = 40359; - public static final int MUSHROOM_40361 = 40361; - public static final int BARREL_OF_SPIDERS = 40362; - public static final int BARREL_OF_SPIDERS_40363 = 40363; - public static final int TREE_STUMP_40365 = 40365; - public static final int CAULDRON_OF_BREW = 40366; - public static final int CAULDRON_OF_BREW_40367 = 40367; - public static final int PLANT_40369 = 40369; - public static final int GRAMOPHONE_40370 = 40370; - public static final int WARDROBE_40371 = 40371; - public static final int WARDROBE_40372 = 40372; - public static final int BOOKSHELF_40373 = 40373; - public static final int CRATE_40374 = 40374; - public static final int HAT_STAND_40375 = 40375; - public static final int PORTRAIT_40376 = 40376; - public static final int KWUARM_AND_PEAS = 40377; public static final int MAGICAL_PUMPKIN = 40383; public static final int MAGICAL_PUMPKIN_40384 = 40384; public static final int MAGICAL_PUMPKIN_40385 = 40385; From b0d4d7ab25bbd03a3266f17746d419fcc41656d6 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Wed, 11 Nov 2020 11:31:31 +0000 Subject: [PATCH 32/41] Update NPC IDs to 2020-11-11-rev192 --- .../src/main/java/net/runelite/api/NpcID.java | 26 ++++--------------- .../main/java/net/runelite/api/NullNpcID.java | 10 ------- 2 files changed, 5 insertions(+), 31 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java index 962a248a1f..61f8fec18d 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -368,8 +368,8 @@ public final class NpcID public static final int PHEASANT_374 = 374; public static final int RICK_TURPENTINE = 375; public static final int RICK_TURPENTINE_376 = 376; - public static final int RICK_377 = 377; - public static final int RICK_378 = 378; + public static final int PHOSANIS_NIGHTMARE = 377; + public static final int THE_NIGHTMARE = 378; public static final int QUIZ_MASTER = 379; public static final int PILLORY_GUARD = 380; public static final int TRAMP = 381; @@ -5547,6 +5547,7 @@ public final class NpcID public static final int AGILITY_TRAINER_5927 = 5927; public static final int WEREWOLF_5928 = 5928; public static final int KNIGHT_5929 = 5929; + public static final int RICK_5931 = 5931; public static final int EGG_5932 = 5932; public static final int EGG_5933 = 5933; public static final int EGG_5934 = 5934; @@ -8398,7 +8399,7 @@ public final class NpcID public static final int SHURA = 9413; public static final int SHURA_9414 = 9414; public static final int ACORN = 9415; - public static final int PHOSANIS_NIGHTMARE = 9416; + public static final int PHOSANIS_NIGHTMARE_9416 = 9416; public static final int PHOSANIS_NIGHTMARE_9417 = 9417; public static final int PHOSANIS_NIGHTMARE_9418 = 9418; public static final int PHOSANIS_NIGHTMARE_9419 = 9419; @@ -8407,7 +8408,7 @@ public final class NpcID public static final int PHOSANIS_NIGHTMARE_9422 = 9422; public static final int PHOSANIS_NIGHTMARE_9423 = 9423; public static final int PHOSANIS_NIGHTMARE_9424 = 9424; - public static final int THE_NIGHTMARE = 9425; + public static final int THE_NIGHTMARE_9425 = 9425; public static final int THE_NIGHTMARE_9426 = 9426; public static final int THE_NIGHTMARE_9427 = 9427; public static final int THE_NIGHTMARE_9428 = 9428; @@ -8827,25 +8828,8 @@ public final class NpcID public static final int SPIDER_10442 = 10442; public static final int SPIDER_10443 = 10443; public static final int BEES = 10444; - public static final int RICK_10445 = 10445; - public static final int RICK_10446 = 10446; - public static final int RICK_10447 = 10447; - public static final int EVE_10448 = 10448; public static final int EVE_10449 = 10449; - public static final int YELDIVE = 10450; - public static final int YELDIVE_10451 = 10451; - public static final int YANES = 10452; - public static final int YANES_10453 = 10453; - public static final int HOGST = 10454; - public static final int HOGST_10455 = 10455; - public static final int POUNCER = 10456; - public static final int POUNCER_10457 = 10457; - public static final int GHOSTLY_FIGURE = 10458; - public static final int GHOSTLY_FIGURE_10459 = 10459; public static final int JACKOLANTERN = 10460; - public static final int RICK_10461 = 10461; - public static final int RICK_10462 = 10462; - public static final int RICK_10463 = 10463; public static final int LEAGUES_ASSISTANT = 10476; public static final int THESSALIA = 10477; public static final int THESSALIA_10478 = 10478; diff --git a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java index bfb27b5a2c..d01e542110 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java @@ -1600,16 +1600,6 @@ public final class NullNpcID public static final int NULL_10431 = 10431; public static final int NULL_10440 = 10440; public static final int NULL_10441 = 10441; - public static final int NULL_10464 = 10464; - public static final int NULL_10465 = 10465; - public static final int NULL_10466 = 10466; - public static final int NULL_10467 = 10467; - public static final int NULL_10468 = 10468; - public static final int NULL_10469 = 10469; - public static final int NULL_10470 = 10470; - public static final int NULL_10471 = 10471; - public static final int NULL_10472 = 10472; - public static final int NULL_10473 = 10473; public static final int NULL_10474 = 10474; public static final int NULL_10475 = 10475; /* This file is automatically generated. Do not edit. */ From 36ed9307c8856237d183aac8f9600dd396ff821b Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Wed, 11 Nov 2020 11:31:34 +0000 Subject: [PATCH 33/41] Update Widget IDs to 2020-11-11-rev192 Lost widget 399.3 --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 861790dc85..ce6abc6144 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -831,7 +831,7 @@ public class WidgetID static class QuestList { static final int BOX = 0; - static final int SCROLLBAR = 3; + static final int SCROLLBAR = 4; static final int CONTAINER = 5; static final int FREE_CONTAINER = 6; static final int MEMBERS_CONTAINER = 7; From c846416cb22aff5b6ef096ccc67fb3df10c9927d Mon Sep 17 00:00:00 2001 From: dekvall Date: Wed, 11 Nov 2020 14:46:23 +0100 Subject: [PATCH 34/41] widgetid: correct kingdom reward group --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index ce6abc6144..8a9437f128 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -103,7 +103,7 @@ public class WidgetID public static final int THEATRE_OF_BLOOD_REWARD_GROUP_ID = 23; public static final int EXPERIENCE_TRACKER_GROUP_ID = 122; public static final int TITHE_FARM_GROUP_ID = 241; - public static final int KINGDOM_GROUP_ID = 392; + public static final int KINGDOM_GROUP_ID = 616; public static final int BARROWS_GROUP_ID = 24; public static final int BLAST_MINE_GROUP_ID = 598; public static final int MTA_ALCHEMY_GROUP_ID = 194; From 2b80bff4dbf37ebf259875f5456b35193b6e9c0e Mon Sep 17 00:00:00 2001 From: Runelite auto updater Date: Wed, 11 Nov 2020 17:37:14 +0000 Subject: [PATCH 35/41] Release 1.6.31 --- cache-client/pom.xml | 2 +- cache-updater/pom.xml | 2 +- cache/pom.xml | 2 +- http-api/pom.xml | 2 +- http-service/pom.xml | 2 +- pom.xml | 4 ++-- runelite-api/pom.xml | 2 +- runelite-client/pom.xml | 2 +- runelite-script-assembler-plugin/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cache-client/pom.xml b/cache-client/pom.xml index da20b36dde..f03d249f8a 100644 --- a/cache-client/pom.xml +++ b/cache-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 cache-client diff --git a/cache-updater/pom.xml b/cache-updater/pom.xml index 7839c544ec..6182a5e6f0 100644 --- a/cache-updater/pom.xml +++ b/cache-updater/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 Cache Updater diff --git a/cache/pom.xml b/cache/pom.xml index c33520a26f..67f459857f 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 cache diff --git a/http-api/pom.xml b/http-api/pom.xml index ade5b362c3..11f0c6b794 100644 --- a/http-api/pom.xml +++ b/http-api/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 Web API diff --git a/http-service/pom.xml b/http-service/pom.xml index d12a850ff3..87399f3f4c 100644 --- a/http-service/pom.xml +++ b/http-service/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 Web Service diff --git a/pom.xml b/pom.xml index edade826d7..57af057a15 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 pom RuneLite @@ -61,7 +61,7 @@ https://github.com/runelite/runelite scm:git:git://github.com/runelite/runelite scm:git:git@github.com:runelite/runelite - HEAD + runelite-parent-1.6.31 diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 8ec359a326..5395c31390 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 runelite-api diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index 5462a2a3a2..fd539481c8 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 client diff --git a/runelite-script-assembler-plugin/pom.xml b/runelite-script-assembler-plugin/pom.xml index 62f0481d21..b2dbc02f34 100644 --- a/runelite-script-assembler-plugin/pom.xml +++ b/runelite-script-assembler-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31-SNAPSHOT + 1.6.31 script-assembler-plugin From b520e58034f034da81bc6b40d70a9847752403dd Mon Sep 17 00:00:00 2001 From: Runelite auto updater Date: Wed, 11 Nov 2020 17:37:23 +0000 Subject: [PATCH 36/41] Bump for 1.6.32-SNAPSHOT --- cache-client/pom.xml | 2 +- cache-updater/pom.xml | 2 +- cache/pom.xml | 2 +- http-api/pom.xml | 2 +- http-service/pom.xml | 2 +- pom.xml | 4 ++-- runelite-api/pom.xml | 2 +- runelite-client/pom.xml | 2 +- runelite-script-assembler-plugin/pom.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cache-client/pom.xml b/cache-client/pom.xml index f03d249f8a..53c26e7144 100644 --- a/cache-client/pom.xml +++ b/cache-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT cache-client diff --git a/cache-updater/pom.xml b/cache-updater/pom.xml index 6182a5e6f0..a13cfc42c2 100644 --- a/cache-updater/pom.xml +++ b/cache-updater/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT Cache Updater diff --git a/cache/pom.xml b/cache/pom.xml index 67f459857f..3a7aef269b 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT cache diff --git a/http-api/pom.xml b/http-api/pom.xml index 11f0c6b794..4b796c3420 100644 --- a/http-api/pom.xml +++ b/http-api/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT Web API diff --git a/http-service/pom.xml b/http-service/pom.xml index 87399f3f4c..59907580ec 100644 --- a/http-service/pom.xml +++ b/http-service/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT Web Service diff --git a/pom.xml b/pom.xml index 57af057a15..28c93c25d3 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT pom RuneLite @@ -61,7 +61,7 @@ https://github.com/runelite/runelite scm:git:git://github.com/runelite/runelite scm:git:git@github.com:runelite/runelite - runelite-parent-1.6.31 + HEAD diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 5395c31390..237343cec7 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT runelite-api diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index fd539481c8..ee28986187 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT client diff --git a/runelite-script-assembler-plugin/pom.xml b/runelite-script-assembler-plugin/pom.xml index b2dbc02f34..b2124d85aa 100644 --- a/runelite-script-assembler-plugin/pom.xml +++ b/runelite-script-assembler-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.6.31 + 1.6.32-SNAPSHOT script-assembler-plugin From 909acea9f77e6aa1aa69b014efb584130a31c88e Mon Sep 17 00:00:00 2001 From: dekvall Date: Thu, 12 Nov 2020 14:46:41 +0100 Subject: [PATCH 37/41] widgetid: correct quest completed group --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 8a9437f128..32d169a062 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -85,7 +85,7 @@ public class WidgetID public static final int BA_REWARD_GROUP_ID = 497; public static final int LEVEL_UP_GROUP_ID = 233; public static final int DIALOG_SPRITE_GROUP_ID = 193; - public static final int QUEST_COMPLETED_GROUP_ID = 277; + public static final int QUEST_COMPLETED_GROUP_ID = 153; public static final int CLUE_SCROLL_REWARD_GROUP_ID = 73; public static final int BARROWS_REWARD_GROUP_ID = 155; public static final int RAIDS_GROUP_ID = 513; From cb31e1ddd4e6430611e012e5c5c99557442c94cf Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Thu, 12 Nov 2020 18:36:15 -0800 Subject: [PATCH 38/41] timers: Fix leagues area teleport bug Teleporting using a trailblazer leagues area teleport previously caused a home or minigame teleport timer to be created, depending on which of the two was most recently stored as `lastTeleportClicked`. To avoid this, a new TeleportWidget has been registered which does not follow any code paths in the plugin. --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 6 ++++++ .../main/java/net/runelite/api/widgets/WidgetInfo.java | 5 ++++- .../runelite/client/plugins/timers/TeleportWidget.java | 8 +++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 32d169a062..226e646688 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -162,6 +162,7 @@ public class WidgetID public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_INVENTORY_GROUP_ID = 551; public static final int DUEL_INVENTORY_GROUP_ID = 421; public static final int DUEL_INVENTORY_OTHER_GROUP_ID = 481; + public static final int TRAILBLAZER_AREAS_GROUP_ID = 512; static class WorldMap { @@ -936,4 +937,9 @@ public class WidgetID { static final int CONTAINER = 6; } + + static class TrailblazerAreas + { + static final int TELEPORT = 59; + } } diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index 2f2a31fbed..3a9f5b5856 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -544,7 +544,10 @@ public enum WidgetInfo GAUNTLET_TIMER_CONTAINER(WidgetID.GAUNTLET_TIMER_GROUP_ID, WidgetID.GauntletTimer.CONTAINER), HALLOWED_SEPULCHRE_TIMER_CONTAINER(WidgetID.HALLOWED_SEPULCHRE_TIMER_GROUP_ID, WidgetID.HallowedSepulchreTimer.CONTAINER), - HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, WidgetID.EncounterHealthBar.CONTAINER); + HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, WidgetID.EncounterHealthBar.CONTAINER), + + TRAILBLAZER_AREA_TELEPORT(WidgetID.TRAILBLAZER_AREAS_GROUP_ID, WidgetID.TrailblazerAreas.TELEPORT), + ; private final int groupId; private final int childId; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TeleportWidget.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TeleportWidget.java index 24fe28fa25..ea3eb66b6a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TeleportWidget.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TeleportWidget.java @@ -32,7 +32,9 @@ import net.runelite.api.widgets.WidgetInfo; enum TeleportWidget { HOME_TELEPORT, - MINIGAME_TELEPORT; + MINIGAME_TELEPORT, + TRAILBLAZER_AREA_TELEPORT, + ; private static final Collection HOME_TELEPORT_IDS = ImmutableList.of( WidgetInfo.SPELL_LUMBRIDGE_HOME_TELEPORT.getId(), @@ -56,6 +58,10 @@ enum TeleportWidget { return MINIGAME_TELEPORT; } + else if (widgetId == WidgetInfo.TRAILBLAZER_AREA_TELEPORT.getId()) + { + return TRAILBLAZER_AREA_TELEPORT; + } return null; } } From ad4d1787a15a733ee2883c140055b0d53ba3f6a7 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 13 Nov 2020 12:38:36 -0500 Subject: [PATCH 39/41] gpu: fix intel miscompiles of fragui shader Having all 3 sampling branches feed into one colorblind() call was breaking some versions of Intel's drivers whenever the xbr sampling code was merely present. Changing each branch to individually call colorblind() seems to fix it. --- .../client/plugins/gpu/colorblind.glsl | 1 - .../runelite/client/plugins/gpu/fragui.glsl | 23 +++++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl index 2a6a16883d..b2c2c49b51 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/colorblind.glsl @@ -53,7 +53,6 @@ vec3 colorblind(int mode, vec3 color) lms = LMS * lms2lmst; // blue deficiency } else { - // Should be impossible to get here return color; } diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl index cf013aacdd..e522d34400 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/fragui.glsl @@ -24,7 +24,6 @@ */ #version 330 -#define SAMPLING_DEFAULT 0 #define SAMPLING_MITCHELL 1 #define SAMPLING_CATROM 2 #define SAMPLING_XBR 3 @@ -48,15 +47,19 @@ out vec4 FragColor; void main() { vec4 c; - if (samplingMode == SAMPLING_DEFAULT) - c = texture(tex, TexCoord); - else if (samplingMode == SAMPLING_CATROM || samplingMode == SAMPLING_MITCHELL) - c = textureCubic(tex, TexCoord, samplingMode); - else if (samplingMode == SAMPLING_XBR) - c = textureXBR(tex, TexCoord, xbrTable, ceil(1.0 * targetDimensions.x / sourceDimensions.x)); - - if (colorBlindMode > 0) { - c.rgb = colorblind(colorBlindMode, c.rgb); + switch (samplingMode) { + case SAMPLING_CATROM: + case SAMPLING_MITCHELL: + c = textureCubic(tex, TexCoord, samplingMode); + c.rgb = colorblind(colorBlindMode, c.rgb); + break; + case SAMPLING_XBR: + c = textureXBR(tex, TexCoord, xbrTable, ceil(1.0 * targetDimensions.x / sourceDimensions.x)); + c.rgb = colorblind(colorBlindMode, c.rgb); + break; + default: // NEAREST or LINEAR, which uses GL_TEXTURE_MIN_FILTER/GL_TEXTURE_MAG_FILTER to affect sampling + c = texture(tex, TexCoord); + c.rgb = colorblind(colorBlindMode, c.rgb); } FragColor = c; From d6d43b60965d2255967c6063fb8d97c8569a1bd4 Mon Sep 17 00:00:00 2001 From: Trevor Date: Wed, 14 Oct 2020 08:17:26 -0400 Subject: [PATCH 40/41] raids plugin: fix array out of bounds error when scouting for a raid --- .../client/plugins/raids/RaidsPlugin.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index f42b1c82f0..f5a3871422 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -49,6 +49,7 @@ import lombok.Setter; import lombok.extern.slf4j.Slf4j; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; +import net.runelite.api.Constants; import net.runelite.api.GameState; import net.runelite.api.InstanceTemplates; import net.runelite.api.MenuAction; @@ -586,9 +587,16 @@ public class RaidsPlugin extends Plugin return null; } + Integer lobbyIndex = findLobbyIndex(gridBase); + + if (lobbyIndex == null) + { + return null; + } + raid = new Raid( new WorldPoint(client.getBaseX() + gridBase.getX(), client.getBaseY() + gridBase.getY(), LOBBY_PLANE), - findLobbyIndex(gridBase) + lobbyIndex ); } @@ -894,8 +902,22 @@ public class RaidsPlugin extends Plugin * 0 1 2 3 * 4 5 6 7 */ - private int findLobbyIndex(Point gridBase) + private Integer findLobbyIndex(Point gridBase) { + /* + * If the room to the right of the starting room can't be seen then return null + * This should only happen if the user turns on the raid plugin while already inside of a raid and not in the + * starting location + * + * The player should always be able to see both rows of rooms (on the y axis) so the second check is not needed + * but is included to be safe + */ + if (Constants.SCENE_SIZE <= gridBase.getX() + RaidRoom.ROOM_MAX_SIZE + || Constants.SCENE_SIZE <= gridBase.getY() + RaidRoom.ROOM_MAX_SIZE) + { + return null; + } + int x; int y; From 661aca847523964324a29b4fc191fb8b00a8bed4 Mon Sep 17 00:00:00 2001 From: Jacob Buckheit Date: Wed, 14 Oct 2020 21:35:20 -0400 Subject: [PATCH 41/41] chat notifier: fix matching messages with included punctuation The punctuation is not in \b or \s, so additionally include \z. Also added \A for the beginning, which would have the same problem, which the test also tests for. Co-authored-by: Adam --- .../ChatNotificationsPlugin.java | 4 ++-- .../ChatNotificationsPluginTest.java | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java index a412756fa1..44069b177d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java @@ -120,8 +120,8 @@ public class ChatNotificationsPlugin extends Plugin .map(this::quoteAndIgnoreColor) // regex escape and ignore nested colors in the target message .collect(Collectors.joining("|")); // To match \b doesn't work due to <> not being in \w, - // so match \b or \s - highlightMatcher = Pattern.compile("(?:\\b|(?<=\\s))(" + joined + ")(?:\\b|(?=\\s))", Pattern.CASE_INSENSITIVE); + // so match \b or \s, as well as \A and \z for beginning and end of input respectively + highlightMatcher = Pattern.compile("(?:\\b|(?<=\\s)|\\A)(?:" + joined + ")(?:\\b|(?=\\s)|\\z)", Pattern.CASE_INSENSITIVE); } } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java index 7fc7f2aad6..b341d62de6 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java @@ -113,6 +113,25 @@ public class ChatNotificationsPluginTest verify(messageNode).setValue("test test test"); } + @Test + public void testMatchEntireMessage() + { + when(config.highlightWordsString()).thenReturn(".Your divine potion effect is about to expire."); + + String message = ".Your divine potion effect is about to expire."; + MessageNode messageNode = mock(MessageNode.class); + when(messageNode.getValue()).thenReturn(message); + + ChatMessage chatMessage = new ChatMessage(); + chatMessage.setType(ChatMessageType.PUBLICCHAT); + chatMessage.setMessageNode(messageNode); + + chatNotificationsPlugin.startUp(); // load highlight config + chatNotificationsPlugin.onChatMessage(chatMessage); + + verify(messageNode).setValue(".Your divine potion effect is about to expire."); + } + @Test public void testFullStop() {