diff --git a/cache/pom.xml b/cache/pom.xml index b1f0d575215..a29adaafb37 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.10.33-SNAPSHOT + 1.10.34-SNAPSHOT cache diff --git a/cache/src/main/java/net/runelite/cache/definitions/NpcDefinition.java b/cache/src/main/java/net/runelite/cache/definitions/NpcDefinition.java index ccf9e680bec..d92f4e43f1c 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/NpcDefinition.java +++ b/cache/src/main/java/net/runelite/cache/definitions/NpcDefinition.java @@ -75,4 +75,6 @@ public class NpcDefinition public boolean lowPriorityFollowerOps; public Map params; public int category; + public int height = -1; + public int[] stats = {1, 1, 1, 1, 1, 1}; } diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java index 8bf513b4e40..276b4e65e8d 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/NpcLoader.java @@ -158,7 +158,30 @@ else if (opcode == 60) { def.chatheadModels[index] = stream.readUnsignedShort(); } - + } + else if (opcode == 74) + { + def.stats[0] = stream.readUnsignedShort(); + } + else if (opcode == 75) + { + def.stats[1] = stream.readUnsignedShort(); + } + else if (opcode == 76) + { + def.stats[2] = stream.readUnsignedShort(); + } + else if (opcode == 77) + { + def.stats[3] = stream.readUnsignedShort(); + } + else if (opcode == 78) + { + def.stats[4] = stream.readUnsignedShort(); + } + else if (opcode == 79) + { + def.stats[5] = stream.readUnsignedShort(); } else if (opcode == 93) { @@ -333,6 +356,10 @@ else if (opcode == 123) { def.lowPriorityFollowerOps = true; } + else if (opcode == 124) + { + def.height = stream.readUnsignedShort(); + } else if (opcode == 249) { length = stream.readUnsignedByte(); diff --git a/pom.xml b/pom.xml index 422db8a3f26..45d62ea6da9 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.10.33-SNAPSHOT + 1.10.34-SNAPSHOT pom RuneLite @@ -47,7 +47,7 @@ true - 222 + 223 @@ -309,6 +309,23 @@ maven-plugin-plugin 3.6.0 + + org.apache.maven.plugins + maven-pmd-plugin + 3.22.0 + + + net.sourceforge.pmd + pmd-core + 7.2.0 + + + net.sourceforge.pmd + pmd-java + 7.2.0 + + + diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 5aae3583f48..cea51f70621 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.10.33-SNAPSHOT + 1.10.34-SNAPSHOT runelite-api 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 0b4970acab3..00e36bfc64c 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -3715,10 +3715,10 @@ public final class ItemID public static final int LEDERHOSEN_SHORTS = 6181; public static final int LEDERHOSEN_HAT = 6182; public static final int FROG_TOKEN = 6183; - public static final int PRINCE_TUNIC = 6184; - public static final int PRINCE_LEGGINGS = 6185; - public static final int PRINCESS_BLOUSE = 6186; - public static final int PRINCESS_SKIRT = 6187; + public static final int ROYAL_FROG_TUNIC = 6184; + public static final int ROYAL_FROG_LEGGINGS = 6185; + public static final int ROYAL_FROG_BLOUSE = 6186; + public static final int ROYAL_FROG_SKIRT = 6187; public static final int FROG_MASK = 6188; public static final int MYSTERY_BOX = 6199; public static final int RAW_FISHLIKE_THING = 6200; 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 bdd68298ad6..e0dbd92a9a6 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -382,6 +382,7 @@ public final class NpcID public static final int REACHER_389 = 389; public static final int EVIL_BOB = 390; public static final int EVIL_BOB_391 = 391; + public static final int TROTTERS = 392; public static final int SERVANT = 393; public static final int ROD_FISHING_SPOT = 394; public static final int CAT = 395; @@ -749,8 +750,8 @@ public final class NpcID public static final int SKRAELING_774 = 774; public static final int FISHMONGER = 775; public static final int GREENGROCER = 776; - public static final int ETHEREAL_MAN = 777; - public static final int ETHEREAL_LADY = 778; + public static final int ETHEREAL_BEING = 777; + public static final int ETHEREAL_BEING_778 = 778; public static final int ETHEREAL_NUMERATOR = 779; public static final int ETHEREAL_EXPERT = 780; public static final int ETHEREAL_PERCEPTIVE = 781; @@ -5038,8 +5039,6 @@ public final class NpcID public static final int FROG_5431 = 5431; public static final int FROG_5432 = 5432; public static final int CALEB_5433 = 5433; - public static final int FROG_PRINCE = 5434; - public static final int FROG_PRINCESS = 5435; public static final int NILES = 5436; public static final int MILES = 5437; public static final int GILES = 5438; @@ -11294,6 +11293,10 @@ public final class NpcID public static final int KIT_BREAKER_13436 = 13436; public static final int SIR_KIT_BREAKER = 13437; public static final int SIR_KIT_BREAKER_13438 = 13438; + public static final int FROG_PRIN = 13443; + public static final int FROG_PRIN_13444 = 13444; + public static final int FROG_PRINCE = 13445; + public static final int FROG_PRINCESS = 13446; public static final int ENRAGED_BLOOD_MOON = 13485; public static final int ENRAGED_BLUE_MOON = 13486; public static final int ENRAGED_ECLIPSE_MOON = 13487; diff --git a/runelite-client/pmd-ruleset.xml b/runelite-client/pmd-ruleset.xml index cfbbdec60e3..ee2e61d7974 100644 --- a/runelite-client/pmd-ruleset.xml +++ b/runelite-client/pmd-ruleset.xml @@ -44,7 +44,7 @@ + value="net.runelite.client.eventbus.Subscribe,com.google.inject.Provides"/> @@ -53,13 +53,20 @@ + + - + + + + + + @@ -68,12 +75,7 @@ - - - - - + @@ -81,10 +83,6 @@ - - - - @@ -100,5 +98,4 @@ - diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index c9293233cdc..0f6a564cb28 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.10.33-SNAPSHOT + 1.10.34-SNAPSHOT client @@ -448,19 +448,6 @@ org.apache.maven.plugins maven-pmd-plugin - 3.16.0 - - - net.sourceforge.pmd - pmd-core - 6.44.0 - - - net.sourceforge.pmd - pmd-java - 6.44.0 - - true true diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index b41dfbceb25..8a892ec4a5a 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -189,7 +189,7 @@ public static void main(String[] args) throws Exception .withRequiredArg() .ofType(ClientUpdateCheckMode.class) .defaultsTo(ClientUpdateCheckMode.AUTO) - .withValuesConvertedBy(new EnumConverter(ClientUpdateCheckMode.class) + .withValuesConvertedBy(new EnumConverter<>(ClientUpdateCheckMode.class) { @Override public ClientUpdateCheckMode convert(String v) diff --git a/runelite-client/src/main/java/net/runelite/client/RuntimeConfigLoader.java b/runelite-client/src/main/java/net/runelite/client/RuntimeConfigLoader.java index 30e64a3e6a3..7be20afc805 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuntimeConfigLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/RuntimeConfigLoader.java @@ -118,7 +118,7 @@ public void onFailure(Call call, IOException e) @Override public void onResponse(Call call, Response response) { - try // NOPMD: UseTryWithResources + try (response) { RuntimeConfig config = RuneLiteAPI.GSON.fromJson(response.body().charStream(), RuntimeConfig.class); future.complete(config); @@ -127,10 +127,6 @@ public void onResponse(Call call, Response response) { future.completeExceptionally(ex); } - finally - { - response.close(); - } } }); return future; diff --git a/runelite-client/src/main/java/net/runelite/client/Updater.java b/runelite-client/src/main/java/net/runelite/client/Updater.java index 1440a075657..c952a865645 100644 --- a/runelite-client/src/main/java/net/runelite/client/Updater.java +++ b/runelite-client/src/main/java/net/runelite/client/Updater.java @@ -314,7 +314,7 @@ private static double installRollout() } } HashCode hash = hasher.hash(); - return (double) (hash.asInt() & 0x7fffffff) / (double) Integer.MAX_VALUE; + return (hash.asInt() & 0x7fffffff) / (double) Integer.MAX_VALUE; } catch (Exception ex) { diff --git a/runelite-client/src/main/java/net/runelite/client/account/AccountClient.java b/runelite-client/src/main/java/net/runelite/client/account/AccountClient.java index 11bf90716f2..14b03a9874c 100644 --- a/runelite-client/src/main/java/net/runelite/client/account/AccountClient.java +++ b/runelite-client/src/main/java/net/runelite/client/account/AccountClient.java @@ -99,7 +99,7 @@ public void logout() throws IOException .url(url) .build(); - try (Response response = client.newCall(request).execute()) + try (Response ignored = client.newCall(request).execute()) { log.debug("Sent logout request"); } diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigClient.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigClient.java index e1d43830076..162da2e7558 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigClient.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigClient.java @@ -160,7 +160,7 @@ public void onFailure(Call call, IOException e) @Override public void onResponse(Call call, Response response) { - try // NOPMD: UseTryWithResources + try (response) { if (response.code() != 200) { @@ -188,10 +188,6 @@ public void onResponse(Call call, Response response) { future.completeExceptionally(ex); } - finally - { - response.close(); - } } }); 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 5fd32b9d130..8c39c5f229f 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 @@ -87,10 +87,12 @@ private static class OutlineKey @Inject(optional = true) @Named("activePriceThreshold") + @SuppressWarnings("PMD.ImmutableField") private double activePriceThreshold = 5; @Inject(optional = true) @Named("lowPriceThreshold") + @SuppressWarnings("PMD.ImmutableField") private int lowPriceThreshold = 1000; private Map itemPrices = Collections.emptyMap(); @@ -194,7 +196,7 @@ public ItemManager(Client client, ScheduledExecutorService scheduledExecutorServ itemImages = CacheBuilder.newBuilder() .maximumSize(128L) .expireAfterAccess(1, TimeUnit.HOURS) - .build(new CacheLoader() + .build(new CacheLoader<>() { @Override public AsyncBufferedImage load(ImageKey key) throws Exception @@ -206,7 +208,7 @@ public AsyncBufferedImage load(ImageKey key) throws Exception itemOutlines = CacheBuilder.newBuilder() .maximumSize(128L) .expireAfterAccess(1, TimeUnit.HOURS) - .build(new CacheLoader() + .build(new CacheLoader<>() { @Override public BufferedImage load(OutlineKey key) throws Exception diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemVariationMapping.java b/runelite-client/src/main/java/net/runelite/client/game/ItemVariationMapping.java index 2161bedba2a..30933209ed5 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemVariationMapping.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemVariationMapping.java @@ -51,7 +51,7 @@ public class ItemVariationMapping { final Gson gson = new Gson(); // CHECKSTYLE:OFF - final TypeToken>> typeToken = new TypeToken>>(){}; + final TypeToken>> typeToken = new TypeToken<>(){}; // CHECKSTYLE:ON final Map> itemVariations; diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextMenuInput.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextMenuInput.java index bc637a6528f..1de8cc39e88 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextMenuInput.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextMenuInput.java @@ -56,7 +56,7 @@ private static final class Entry private String title; @Getter - private List options = new ArrayList<>(); + private final List options = new ArrayList<>(); @Getter private Runnable onClose; diff --git a/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreClient.java b/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreClient.java index 84bfaafbf54..c63dfcaeb56 100644 --- a/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreClient.java +++ b/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreClient.java @@ -90,14 +90,10 @@ public void onFailure(Call call, IOException e) @Override public void onResponse(Call call, Response response) throws IOException { - try // NOPMD: UseTryWithResources + try (response) { future.complete(processResponse(username, response)); } - finally - { - response.close(); - } } }); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/GenericDiaryRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/GenericDiaryRequirement.java index ba7834b151b..e11d461dc23 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/GenericDiaryRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/GenericDiaryRequirement.java @@ -32,7 +32,7 @@ public abstract class GenericDiaryRequirement { @Getter - private Set requirements = new HashSet<>(); + private final Set requirements = new HashSet<>(); protected void add(String task, Requirement... requirements) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java index dcc56b03828..a32bf0c53b4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java @@ -188,7 +188,7 @@ public void onWidgetLoaded(WidgetLoaded event) for (Item item : items) { - long itemStack = (long) itemManager.getItemPrice(item.getId()) * (long) item.getQuantity(); + long itemStack = (long) itemManager.getItemPrice(item.getId()) * item.getQuantity(); chestPrice += itemStack; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 88362c9d5a4..0ed5fddb1f0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -81,7 +81,7 @@ public class CannonPlugin extends Plugin private int cannonWorld = -1; @Getter - private List spotPoints = new ArrayList<>(); + private final List spotPoints = new ArrayList<>(); @Inject private ItemManager itemManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java index b5da6850af2..8e8c7a28a6a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java @@ -95,7 +95,7 @@ public class ChatFilterPlugin extends Plugin MODCHAT ); - private final CharMatcher jagexPrintableCharMatcher = Text.JAGEX_PRINTABLE_CHAR_MATCHER; + private static final CharMatcher jagexPrintableCharMatcher = Text.JAGEX_PRINTABLE_CHAR_MATCHER; private List filteredPatterns = Collections.emptyList(); private List filteredNamePatterns = Collections.emptyList(); @@ -270,7 +270,7 @@ public void onScriptCallbackEvent(ScriptCallbackEvent event) @Subscribe public void onOverheadTextChanged(OverheadTextChanged event) { - if (!(event.getActor() instanceof Player) || event.getActor().getName() == null || !canFilterPlayer(event.getActor().getName())) // NOPMD: SimplifyConditional + if (!(event.getActor() instanceof Player) || event.getActor().getName() == null || !canFilterPlayer(event.getActor().getName())) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java index dca93b03a3d..1da68135b68 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java @@ -198,7 +198,7 @@ public class CrypticClue extends ClueScroll implements NpcClueScroll, ObjectClue .text("His bark is worse than his bite.") .location(new WorldPoint(3499, 3503, 0)) .npc("Barker") - .solution("Speak to the Barker at Canifis's Barkers' Haberdashery.") + .solution("Speak to Barker at Canifis's Barkers' Haberdashery.") .build(), CrypticClue.builder() .text("The beasts to my east snap claws and tails, The rest to my west can slide and eat fish. The force to my north will jump and they'll wail, Come dig by my fire and make a wish.") @@ -1879,6 +1879,7 @@ public int[] getConfigKeys() return new int[]{text.hashCode()}; } + @SuppressWarnings("PMD.UnusedPrivateMethod") private static WorldPoint getViggoraLocation(ClueScrollPlugin plugin) { int varb = plugin.getClient().getVarbitValue(Varbits.VIGGORA_LOCATION); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java index a7d9cb8bc08..611bd1ee4e7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java @@ -60,8 +60,8 @@ public enum Emote PUSH_UP("Push up", EMOTE_PUSH_UP), FORTIS_SALUTE("Fortis Salute", EMOTE_FORTIS_SALUTE); - private String name; - private int spriteId; + private final String name; + private final int spriteId; Emote(String name, int spriteId) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index fefc8615e6e..42b878bb580 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -169,7 +169,7 @@ public class DevToolsPlugin extends Plugin private DevToolsButton uiDefaultsInspector; private NavigationButton navButton; - private HotkeyListener swingInspectorHotkeyListener = new HotkeyListener(() -> config.swingInspectorHotkey()) + private final HotkeyListener swingInspectorHotkeyListener = new HotkeyListener(() -> config.swingInspectorHotkey()) { Object inspector; @@ -206,7 +206,7 @@ public void hotkeyPressed() } }; - private AWTEventListener swingInspectorKeyListener = rawEv -> + private final AWTEventListener swingInspectorKeyListener = rawEv -> { if (rawEv instanceof KeyEvent) { 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 cc1516382ec..c4520a16ef4 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 @@ -85,8 +85,8 @@ public class ScriptInspector extends DevToolsFrame private int lastTick; private Set blacklist; private Set highlights; - private final JList jList; - private final DefaultListModel listModel; + private final JList jList; + private final DefaultListModel listModel; private ListState state = ListState.BLACKLIST; private enum ListState @@ -232,9 +232,9 @@ public void adjustmentValueChanged(AdjustmentEvent e) final JPanel rightSide = new JPanel(); rightSide.setLayout(new BorderLayout()); - listModel = new DefaultListModel(); + listModel = new DefaultListModel<>(); changeState(ListState.BLACKLIST); - jList = new JList(listModel); + jList = new JList<>(listModel); jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane listScrollPane = new JScrollPane(jList); @@ -424,7 +424,7 @@ private void removeSelectedFromSet() return; } - int script = (Integer) listModel.get(index); + int script = listModel.get(index); getSet().remove(script); refreshList(); } 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 283a20558be..c66c040e44e 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 @@ -238,7 +238,7 @@ public void onFailure(Call call, IOException e) @Override public void onResponse(Call call, Response response) throws IOException { - try // NOPMD: UseTryWithResources + try (response) { if (!response.isSuccessful()) { @@ -254,10 +254,6 @@ public void onResponse(Call call, Response response) throws IOException partyService.setPartyMemberAvatar(event.getMemberId(), image); } - finally - { - response.close(); - } } }); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java index e4a2a174775..3c928f5e657 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java @@ -171,7 +171,7 @@ private void updatePresenceWithLatestEvent() // Replace snapshot with + to make tooltip shorter (so it will span only 1 line) final String versionShortHand = runeliteVersion.replace("-SNAPSHOT", "+"); - StringBuilder largeImageTooltipText = new StringBuilder(runeliteTitle + " v" + versionShortHand); + StringBuilder largeImageTooltipText = new StringBuilder(runeliteTitle).append(" v").append(versionShortHand); if (safeMode) { largeImageTooltipText.append(" (safe mode)"); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java index e35bbedbd28..5a187cbe9f8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsMember.java @@ -62,7 +62,7 @@ float getDps() return 0; } - return (float) damage / (float) diff; + return damage / (float) diff; } void pause() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/driftnet/DriftNetPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/driftnet/DriftNetPlugin.java index 7da55f877b6..ff6a6eb9f07 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/driftnet/DriftNetPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/driftnet/DriftNetPlugin.java @@ -97,9 +97,9 @@ public class DriftNetPlugin extends Plugin private DriftNetOverlay overlay; @Getter - private Set fish = new HashSet<>(); + private final Set fish = new HashSet<>(); @Getter - private Map taggedFish = new HashMap<>(); + private final Map taggedFish = new HashMap<>(); @Getter private final List NETS = ImmutableList.of( new DriftNet(NullObjectID.NULL_31433, Varbits.NORTH_NET_STATUS, Varbits.NORTH_NET_CATCH_COUNT, ImmutableSet.of( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java index 29c57c68e2b..c43f798d260 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java @@ -69,7 +69,7 @@ public class EntityHiderPlugin extends Plugin NpcID.EVIL_BOB, NpcID.EVIL_BOB_6754, NpcID.FLIPPA_6744, NpcID.FREAKY_FORESTER_6748, - NpcID.FROG_5429, NpcID.FROG_5430, NpcID.FROG_5431, NpcID.FROG_5432, NpcID.FROG, NpcID.FROG_PRINCE, NpcID.FROG_PRINCESS, + NpcID.FROG_5429, NpcID.FROG_5430, NpcID.FROG_5431, NpcID.FROG_5432, NpcID.FROG, NpcID.FROG_PRINCE, NpcID.FROG_PRINCESS, NpcID.FROG_PRIN, NpcID.FROG_PRIN_13444, NpcID.GENIE, NpcID.GENIE_327, NpcID.GILES, NpcID.GILES_5441, NpcID.LEO_6746, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsDrawListener.java b/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsDrawListener.java index 4c266b7be2d..fee00307ef1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsDrawListener.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsDrawListener.java @@ -53,7 +53,7 @@ public class FpsDrawListener implements Runnable // Working set private long lastMillis = 0; - private long[] lastDelays = new long[SAMPLE_SIZE]; + private final long[] lastDelays = new long[SAMPLE_SIZE]; private int lastDelayIndex = 0; private long sleepDelay = 0; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java index 1e3282e2938..42d3b5fe894 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java @@ -54,7 +54,7 @@ class SceneUploader private final Client client; private final GpuPluginConfig gpuConfig; - private Regions regions; + private final Regions regions; int sceneId = (int) System.nanoTime(); private int offset; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterTrap.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterTrap.java index 4a282889947..db00c219cad 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterTrap.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterTrap.java @@ -58,10 +58,10 @@ class HunterTrap * The ID of the game object this is representing */ @Getter - private int objectId; + private final int objectId; @Getter - private WorldPoint worldLocation; + private final WorldPoint worldLocation; /** * The states a trap can be in. diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java index 4b2a893ffe3..7742ac3e0ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java @@ -31,9 +31,11 @@ import net.runelite.client.config.Range; import net.runelite.client.config.Units; -@ConfigGroup("idlenotifier") +@ConfigGroup(IdleNotifierConfig.GROUP) public interface IdleNotifierConfig extends Config { + String GROUP = "idlenotifier"; + @ConfigItem( keyName = "animationidle", name = "Idle Animation Notifications", @@ -90,75 +92,145 @@ default int getIdleNotificationDelay() return 5000; } + @ConfigItem( + keyName = "hitpointsNotification", + name = "Hitpoints Notification", + description = "Configures if hitpoints notifications are enabled", + position = 6 + ) + default Notification getHitpointsNotification() + { + return Notification.OFF; + } + @ConfigItem( keyName = "hitpoints", name = "Hitpoints Threshold", - description = "The amount of hitpoints to send a notification at. A value of 0 will disable notification.", - position = 6 + description = "The amount of hitpoints to send a notification at.", + position = 7 ) + @Range(min = 1) default int getHitpointsThreshold() { - return 0; + return 1; + } + + @ConfigItem( + keyName = "prayerNotification", + name = "Prayer Notification", + description = "Configures if prayer notifications are enabled.", + position = 8 + ) + default Notification getPrayerNotification() + { + return Notification.OFF; } @ConfigItem( keyName = "prayer", name = "Prayer Threshold", - description = "The amount of prayer points to send a notification at. A value of 0 will disable notification.", - position = 7 + description = "The amount of prayer points to send a notification at.", + position = 9 ) + @Range(min = 1) default int getPrayerThreshold() { - return 0; + return 1; + } + + @ConfigItem( + keyName = "lowEnergyNotification", + name = "Low Energy Notification", + description = "Configures if low energy notifications are enabled", + position = 10 + ) + default Notification getLowEnergyNotification() + { + return Notification.OFF; } @ConfigItem( keyName = "lowEnergy", name = "Low Energy Threshold", - description = "The amount of energy points remaining to send a notification at. A value of 100 will disable notification.", - position = 8 + description = "The amount of energy points remaining to send a notification at.", + position = 11 ) @Units(Units.PERCENT) - @Range(max = 100) + @Range(max = 99) default int getLowEnergyThreshold() { - return 100; + return 0; + } + + @ConfigItem( + keyName = "highEnergyNotification", + name = "High Energy Notification", + description = "Configures if high energy notifications are enabled", + position = 12 + ) + default Notification getHighEnergyNotification() + { + return Notification.OFF; } @ConfigItem( keyName = "highEnergy", name = "High Energy Threshold", - description = "The amount of energy points reached to send a notification. A value of 0 will disable notification.", - position = 9 + description = "The amount of energy points reached to send a notification.", + position = 13 ) @Units(Units.PERCENT) - @Range(max = 100) + @Range(min = 1, max = 100) default int getHighEnergyThreshold() { - return 0; + return 100; + } + + @ConfigItem( + keyName = "oxygenNotification", + name = "Oxygen Notification", + description = "Configures if oxygen notifications are enabled", + position = 14 + ) + default Notification getOxygenNotification() + { + return Notification.OFF; } @ConfigItem( keyName = "oxygen", name = "Oxygen Threshold", - position = 10, - description = "The amount of remaining oxygen to send a notification at. A value of 0 will disable notification." + position = 15, + description = "The amount of remaining oxygen to send a notification at." ) @Units(Units.PERCENT) + @Range(min = 1) default int getOxygenThreshold() { - return 0; + return 1; + } + + @ConfigItem( + keyName = "specNotification", + name = "Spec Notification", + description = "Configures if special attack notifications are enabled", + position = 16 + ) + default Notification getSpecNotification() + { + return Notification.OFF; } @ConfigItem( keyName = "spec", name = "Spec Threshold", - position = 11, - description = "The amount of special attack energy reached to send a notification at. A value of 0 will disable notification." + position = 17, + description = "The amount of special attack energy reached to send a notification at." ) @Units(Units.PERCENT) + @Range(min = 1) default int getSpecEnergyThreshold() { - return 0; + return 1; } } 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 79361c1d933..24a13705453 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 @@ -55,6 +55,7 @@ import net.runelite.api.events.VarbitChanged; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; +import net.runelite.client.config.Notification; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -85,6 +86,9 @@ public class IdleNotifierPlugin extends Plugin @Inject private IdleNotifierConfig config; + @Inject + private ConfigManager configManager; + private Instant lastAnimating; private int lastAnimation = IDLE; private Instant lastInteracting; @@ -117,6 +121,7 @@ protected void startUp() { // can't tell when 6hr will be if enabled while already logged in sixHourWarningTime = null; + migrateConfig(); } @Subscribe @@ -548,32 +553,32 @@ public void onGameTick(GameTick event) if (checkLowHitpoints()) { - notifier.notify("You have low hitpoints!"); + notifier.notify(config.getHitpointsNotification(), "You have low hitpoints!"); } if (checkLowPrayer()) { - notifier.notify("You have low prayer!"); + notifier.notify(config.getPrayerNotification(), "You have low prayer!"); } if (checkLowEnergy()) { - notifier.notify("You have low run energy!"); + notifier.notify(config.getLowEnergyNotification(), "You have low run energy!"); } if (checkHighEnergy()) { - notifier.notify("You have restored run energy!"); + notifier.notify(config.getHighEnergyNotification(), "You have restored run energy!"); } if (checkLowOxygen()) { - notifier.notify("You have low oxygen!"); + notifier.notify(config.getOxygenNotification(), "You have low oxygen!"); } if (checkFullSpecEnergy()) { - notifier.notify("You have restored spec energy!"); + notifier.notify(config.getSpecNotification(), "You have restored spec energy!"); } } @@ -588,6 +593,83 @@ public void onVarbitChanged(VarbitChanged event) } } + private void migrateConfig() + { + String migrated = configManager.getConfiguration(IdleNotifierConfig.GROUP, "migrated"); + if ("1".equals(migrated)) + { + return; + } + + int hitpointsThreshold = configManager.getConfiguration(IdleNotifierConfig.GROUP, "hitpoints", int.class); + if (hitpointsThreshold == 0) + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "hitpoints", 1); + configManager.setConfiguration(IdleNotifierConfig.GROUP, "hitpointsNotification", Notification.OFF); + } + else + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "hitpointsNotification", Notification.ON); + } + + int prayerThreshold = configManager.getConfiguration(IdleNotifierConfig.GROUP, "prayer", int.class); + if (prayerThreshold == 0) + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "prayer", 1); + configManager.setConfiguration(IdleNotifierConfig.GROUP, "prayerNotification", Notification.OFF); + } + else + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "prayerNotification", Notification.ON); + } + + int lowEnergyThreshold = configManager.getConfiguration(IdleNotifierConfig.GROUP, "lowEnergy", int.class); + if (lowEnergyThreshold == 100) + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "lowEnergy", 0); + configManager.setConfiguration(IdleNotifierConfig.GROUP, "lowEnergyNotification", Notification.OFF); + } + else + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "lowEnergyNotification", Notification.ON); + } + + int highEnergyThreshold = configManager.getConfiguration(IdleNotifierConfig.GROUP, "highEnergy", int.class); + if (highEnergyThreshold == 0) + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "highEnergy", 100); + configManager.setConfiguration(IdleNotifierConfig.GROUP, "highEnergyNotification", Notification.OFF); + } + else + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "highEnergyNotification", Notification.ON); + } + + int oxygenThreshold = configManager.getConfiguration(IdleNotifierConfig.GROUP, "oxygen", int.class); + if (oxygenThreshold == 0) + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "oxygen", 1); + configManager.setConfiguration(IdleNotifierConfig.GROUP, "oxygenNotification", Notification.OFF); + } + else + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "oxygenNotification", Notification.ON); + } + + int specThreshold = configManager.getConfiguration(IdleNotifierConfig.GROUP, "spec", int.class); + if (specThreshold == 0) + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "spec", 1); + configManager.setConfiguration(IdleNotifierConfig.GROUP, "specNotification", Notification.OFF); + } + else + { + configManager.setConfiguration(IdleNotifierConfig.GROUP, "specNotification", Notification.ON); + } + + configManager.setConfiguration(IdleNotifierConfig.GROUP, "migrated", 1); + } + private void checkNpcInteraction(final NPC target) { final NPCComposition npcComposition = target.getComposition(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/HealthbarOverride.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/HealthbarOverride.java index 0c4e29cd802..7132877f97d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/HealthbarOverride.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/HealthbarOverride.java @@ -160,7 +160,8 @@ enum HealthbarOverride implements SpriteOverride private final String fileName; @Getter - private int padding = 1; + @SuppressWarnings("PMD.FinalFieldCouldBeStatic") + private final int padding = 1; private static final Map MAP; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/SpriteOverride.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/SpriteOverride.java index 3dc74063714..6c6ce35b514 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/SpriteOverride.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/SpriteOverride.java @@ -151,8 +151,8 @@ enum SpriteOverride RESIZEABLE_MODE_TAB_STONE_MIDDLE(SpriteID.RESIZEABLE_MODE_TAB_STONE_MIDDLE, AROUND_2010), RESIZEABLE_MODE_TAB_STONE_MIDDLE_SELECTED(SpriteID.RESIZEABLE_MODE_TAB_STONE_MIDDLE_SELECTED, AROUND_2010); - private int spriteID; - private Skin[] skin; + private final int spriteID; + private final Skin[] skin; SpriteOverride(int spriteID, Skin... skin) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java index aaf3e95c12d..36df9095690 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java @@ -187,13 +187,13 @@ enum WidgetOffset FIXED_2006_MUSIC_HIGHLIGHT(Skin.AROUND_2006, ComponentID.FIXED_VIEWPORT_MUSIC_TAB, 206, null, 33, 36), FIXED_2006_MUSIC_ICON(Skin.AROUND_2006, ComponentID.FIXED_VIEWPORT_MUSIC_ICON, 202, -1, null, null); - private Skin skin; + private final Skin skin; @Component - private int component; - private Integer offsetX; - private Integer offsetY; - private Integer width; - private Integer height; + private final int component; + private final Integer offsetX; + private final Integer offsetY; + private final Integer width; + private final Integer height; WidgetOffset(Skin skin, @Component int component, Integer offsetX, Integer offsetY, Integer width, Integer height) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOverride.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOverride.java index ed3176b1b15..ea61b1d58af 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOverride.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOverride.java @@ -44,10 +44,10 @@ enum WidgetOverride FIXED_BOTTOM_RIGHT_2005(Skin.AROUND_2005, "1030_bottom_middle", ComponentID.FIXED_VIEWPORT_LOGOUT_TAB), FIXED_BOTTOM_MIDDLE_2005(Skin.AROUND_2005, "1030_bottom_right", ComponentID.FIXED_VIEWPORT_OPTIONS_TAB, ComponentID.FIXED_VIEWPORT_EMOTES_TAB); - private Skin skin; - private String name; + private final Skin skin; + private final String name; @Component - private int[] widgetInfo; + private final int[] widgetInfo; WidgetOverride(Skin skin, String name, @Component int... widgetInfo) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Bookcase.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Bookcase.java index d3830370706..6193a2093a9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Bookcase.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/Bookcase.java @@ -60,7 +60,7 @@ class Bookcase * Books that can be in this slot. Will only be populated if library.state != SolvedState.NO_DATA */ @Getter - private Set possibleBooks = new HashSet<>(); + private final Set possibleBooks = new HashSet<>(); void clearBook() { 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 124777483bc..b269d58395e 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 @@ -1819,7 +1819,7 @@ private void swap(ArrayListMultimap optionIndexes, MenuEntry[] sortedInsert(list2, index1); } - private static > void sortedInsert(List list, T value) // NOPMD: UnusedPrivateMethod: false positive + private static > void sortedInsert(List list, T value) { 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/motherlode/MotherlodeSession.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeSession.java index 3f81339985f..bff9a797721 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeSession.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeSession.java @@ -61,7 +61,7 @@ public void incrementPayDirtMined() Duration timeSinceStart = Duration.between(recentPayDirtMined, now); if (!timeSinceStart.isZero()) { - perHour = (int) ((double) recentMined * (double) HOUR / (double) timeSinceStart.toMillis()); + perHour = (int) ((double) recentMined * HOUR / timeSinceStart.toMillis()); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java index 3e64d2833e6..114a667e66c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java @@ -908,7 +908,7 @@ public void update() public void updateVar() { int val = getValue(); - int varVal = Math.round((float) val / (max / 100.f)); + int varVal = Math.round(val / (max / 100.f)); client.getVarps()[this.var] = varVal; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java index 499be796e34..5208d7e38b8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java @@ -259,7 +259,7 @@ private int calculatePointsPerHour() if (!timeSinceStart.isZero()) { - return (int) ((double) currentPoints * (double) HOUR.toMillis() / (double) timeSinceStart.toMillis()); + return (int) ((double) currentPoints * HOUR.toMillis() / timeSinceStart.toMillis()); } return 0; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/MemorizedNpc.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/MemorizedNpc.java index 1a330670a6f..a39af74fe7e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/MemorizedNpc.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/MemorizedNpc.java @@ -35,10 +35,10 @@ class MemorizedNpc { @Getter - private int npcIndex; + private final int npcIndex; @Getter - private String npcName; + private final String npcName; @Getter private int npcSize; 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 339bf24c260..09df99c8ed2 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 @@ -208,7 +208,7 @@ else if (opponent instanceof Player) } else { - float floatRatio = (float) lastRatio / (float) lastHealthScale; + float floatRatio = lastRatio / (float) lastHealthScale; progressBarComponent.setValue(floatRatio * 100d); } 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 69a636e7ca8..9abf8523426 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 @@ -64,7 +64,7 @@ public class PestControlPlugin extends Plugin private final Pattern SHIELD_DROP = Pattern.compile("The ([a-z]+), [^ ]+ portal shield has dropped!", Pattern.CASE_INSENSITIVE); @Getter(AccessLevel.PACKAGE) - private List spinners = new ArrayList<>(); + private final List spinners = new ArrayList<>(); @Inject private OverlayManager overlayManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java index 4b207bd7548..28519fe4586 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java @@ -71,7 +71,7 @@ public class PuzzleSolverPlugin extends Plugin private Client client; private LightboxState lightbox; - private LightboxState[] changes = new LightboxState[LightBox.COMBINATIONS_POWER]; + private final LightboxState[] changes = new LightboxState[LightBox.COMBINATIONS_POWER]; private Combination lastClick; private boolean lastClickInvalid; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleState.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleState.java index c0df3107c54..88545f6fb55 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleState.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleState.java @@ -36,7 +36,7 @@ public class PuzzleState { private PuzzleState parent; - private int[] pieces; + private final int[] pieces; private int emptyPiece = -1; private int h = -1; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java index 24b89a6b0fb..f1d07a66f36 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java @@ -41,11 +41,11 @@ public class Raid // The south west tile of the lobby room @Getter - private WorldPoint gridBase; + private final WorldPoint gridBase; // The index of the lobby room in the rooms array @Getter - private int lobbyIndex; + private final int lobbyIndex; public Raid(WorldPoint gridBase, int lobbyIndex) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java index 35dbb0a66d6..b6b09b888a1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java @@ -200,9 +200,9 @@ public void startCreation(Point location, Dimension size) currentMarker = new ScreenMarker( Instant.now().toEpochMilli(), DEFAULT_MARKER_NAME + " " + (screenMarkers.size() + 1), - pluginPanel.getSelectedBorderThickness(), - pluginPanel.getSelectedColor(), - pluginPanel.getSelectedFillColor(), + ScreenMarkerPluginPanel.SELECTED_BORDER_THICKNESS, + ScreenMarkerPluginPanel.SELECTED_COLOR, + ScreenMarkerPluginPanel.SELECTED_FILL_COLOR, true, false ); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPluginPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPluginPanel.java index efa012df878..1c63ade9ddd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPluginPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPluginPanel.java @@ -56,6 +56,10 @@ public class ScreenMarkerPluginPanel extends PluginPanel private static final int DEFAULT_BORDER_THICKNESS = 3; + public static final Color SELECTED_COLOR = DEFAULT_BORDER_COLOR; + public static final Color SELECTED_FILL_COLOR = DEFAULT_FILL_COLOR; + public static final int SELECTED_BORDER_THICKNESS = DEFAULT_BORDER_THICKNESS; + private final JLabel addMarker = new JLabel(ADD_ICON); private final JLabel title = new JLabel(); private final PluginErrorPanel noMarkersPanel = new PluginErrorPanel(); @@ -64,16 +68,7 @@ public class ScreenMarkerPluginPanel extends PluginPanel private final ScreenMarkerPlugin plugin; @Getter - private Color selectedColor = DEFAULT_BORDER_COLOR; - - @Getter - private Color selectedFillColor = DEFAULT_FILL_COLOR; - - @Getter - private int selectedBorderThickness = DEFAULT_BORDER_THICKNESS; - - @Getter - private ScreenMarkerCreationPanel creationPanel; + private final ScreenMarkerCreationPanel creationPanel; static { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java index defceeb0c44..d1e7af58b26 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java @@ -122,8 +122,8 @@ public TimeablePanel(T timeable, String title, int maximumProgressValue) JLayeredPane layeredIconPane = new JLayeredPane(); layeredIconPane.setPreferredSize(new Dimension(Constants.ITEM_SPRITE_WIDTH, Constants.ITEM_SPRITE_HEIGHT)); - layeredIconPane.add(icon, Integer.valueOf(0)); - layeredIconPane.add(overlayIcon, Integer.valueOf(1)); + layeredIconPane.add(icon, (Object) 0); + layeredIconPane.add(overlayIcon, (Object) 1); icon.setBounds(0, 0, Constants.ITEM_SPRITE_WIDTH, Constants.ITEM_SPRITE_HEIGHT); overlayIcon.setBounds(OVERLAY_ICON_BOUNDS); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockManager.java index fe3d381fae0..522f44243dd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockManager.java @@ -63,7 +63,7 @@ public class ClockManager private final List stopwatches = new ArrayList<>(); @Getter - private ClockTabPanel clockTabPanel = new ClockTabPanel(this); + private final ClockTabPanel clockTabPanel = new ClockTabPanel(this); void addTimer() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java index 06cf1e03c88..a9a7a0550f4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java @@ -51,6 +51,7 @@ class FarmingWorld private Multimap regions = HashMultimap.create(); @Getter + @SuppressWarnings("PMD.ImmutableField") private Map> tabs = new HashMap<>(); private final Comparator tabSorter = Comparator 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 622e4db98b3..b680c5737c2 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 @@ -135,7 +135,7 @@ public void onFailure(Call call, IOException e) public void onResponse(Call call, Response response) throws IOException { String body = response.body().string(); - try // NOPMD: UseTryWithResources + try (response) { JsonArray jar = new JsonParser().parse(body).getAsJsonArray(); List apredictions = gson.fromJson(jar.get(1), new TypeToken>() @@ -159,10 +159,6 @@ public void onResponse(Call call, Response response) throws IOException { log.warn("error parsing wiki response {}", body, e); } - finally - { - response.close(); - } } }); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java index a51e8f9c6ef..d9413aa51af 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java @@ -38,7 +38,7 @@ public enum TeleportType SCROLL(""), OTHER(""); - private String prefix; + private final String prefix; TeleportType(String prefix) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaClient.java b/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaClient.java index 355d1d8893b..62716752e07 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaClient.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaClient.java @@ -85,17 +85,13 @@ public void onFailure(Call call, IOException e) @Override public void onResponse(Call call, Response response) { - try // NOPMD: UseTryWithResources + try (response) { if (!response.isSuccessful()) { log.debug("unsuccessful xtea response"); } } - finally - { - response.close(); - } } }); } diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java index 1912f95bf77..7374e8a1c43 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java @@ -136,7 +136,7 @@ private Object doLoad() ClassLoader classLoader; try (FileChannel lockfile = FileChannel.open(LOCK_FILE.toPath(), StandardOpenOption.CREATE, StandardOpenOption.READ, StandardOpenOption.WRITE); - FileLock flock = lockfile.lock()) + @SuppressWarnings("PMD.UnusedLocalVariable") FileLock flock = lockfile.lock()) { SplashScreen.stage(.05, null, "Downloading Old School RuneScape"); try @@ -241,7 +241,7 @@ private RSConfig downloadConfig() throws IOException catch (IOException ex) { log.debug("error downloading backup config", ex); - throw err; // use error from Jagex's servers + throw err; // NOPMD: PreserveStackTrace - use error from Jagex's servers } } 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 633b5845e21..2690b55503e 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 @@ -117,10 +117,10 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ClientShutdown; import net.runelite.client.events.ConfigChanged; +import net.runelite.client.input.KeyListener; import net.runelite.client.input.MouseAdapter; import net.runelite.client.input.MouseListener; import net.runelite.client.input.MouseManager; -import net.runelite.client.input.KeyListener; import net.runelite.client.ui.laf.RuneLiteLAF; import net.runelite.client.ui.laf.RuneLiteRootPaneUI; import net.runelite.client.util.HotkeyListener; @@ -178,10 +178,12 @@ public class ClientUI @Inject(optional = true) @Named("minMemoryLimit") + @SuppressWarnings("PMD.ImmutableField") private int minMemoryLimit = 400; @Inject(optional = true) @Named("recommendedMemoryLimit") + @SuppressWarnings("PMD.ImmutableField") private int recommendedMemoryLimit = 512; private List keyListeners; @@ -940,7 +942,15 @@ public void forceFocus() */ public void flashTaskbar() { - Taskbar.getTaskbar().requestWindowUserAttention(frame); + Taskbar taskbar = Taskbar.getTaskbar(); + if (taskbar.isSupported(Taskbar.Feature.USER_ATTENTION_WINDOW)) + { + taskbar.requestWindowUserAttention(frame); + } + else + { + log.debug("USER_ATTENTION_WINDOW is not supported"); + } } /** diff --git a/runelite-client/src/main/java/net/runelite/client/util/ImageUtil.java b/runelite-client/src/main/java/net/runelite/client/util/ImageUtil.java index ae7c4c1e54a..7c66de2f1a3 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/ImageUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/util/ImageUtil.java @@ -117,7 +117,6 @@ public static BufferedImage recolorImage(Image image, Color rgb) public static BufferedImage luminanceOffset(final Image rawImg, final int offset) { BufferedImage image = toARGB(rawImg); - final float offsetFloat = (float) offset; final int numComponents = image.getColorModel().getNumComponents(); final float[] scales = new float[numComponents]; final float[] offsets = new float[numComponents]; @@ -125,7 +124,7 @@ public static BufferedImage luminanceOffset(final Image rawImg, final int offset Arrays.fill(scales, 1f); for (int i = 0; i < numComponents; i++) { - offsets[i] = offsetFloat; + offsets[i] = offset; } // Set alpha to not offset offsets[numComponents - 1] = 0f; @@ -171,14 +170,13 @@ public static BufferedImage luminanceScale(final Image rawImg, final float perce public static BufferedImage alphaOffset(final Image rawImg, final int offset) { BufferedImage image = toARGB(rawImg); - final float offsetFloat = (float) offset; final int numComponents = image.getColorModel().getNumComponents(); final float[] scales = new float[numComponents]; final float[] offsets = new float[numComponents]; Arrays.fill(scales, 1f); Arrays.fill(offsets, 0f); - offsets[numComponents - 1] = offsetFloat; + offsets[numComponents - 1] = offset; return offset(image, scales, offsets); } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPluginTest.java index 7a41b880a62..66e9956caf1 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPluginTest.java @@ -47,6 +47,7 @@ import net.runelite.api.events.HitsplatApplied; import net.runelite.api.events.InteractingChanged; import net.runelite.client.Notifier; +import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Notification; import org.junit.Before; import org.junit.Test; @@ -80,6 +81,10 @@ public class IdleNotifierPluginTest @Bind private Notifier notifier; + @Mock + @Bind + private ConfigManager configManager; + @Inject private IdleNotifierPlugin plugin; @@ -302,6 +307,7 @@ public void testSendOneNotificationForAnimationAndInteract() @Test public void testSpecRegen() { + when(config.getSpecNotification()).thenReturn(Notification.ON); when(config.getSpecEnergyThreshold()).thenReturn(50); when(client.getVarpValue(eq(VarPlayer.SPECIAL_ATTACK_PERCENT))).thenReturn(400); // 40% @@ -310,7 +316,7 @@ public void testSpecRegen() when(client.getVarpValue(eq(VarPlayer.SPECIAL_ATTACK_PERCENT))).thenReturn(500); // 50% plugin.onGameTick(new GameTick()); - verify(notifier).notify(eq("You have restored spec energy!")); + verify(notifier).notify(Notification.ON, "You have restored spec energy!"); } @Test diff --git a/runelite-jshell/pom.xml b/runelite-jshell/pom.xml index 2c5c25bac18..3b875b8cebc 100644 --- a/runelite-jshell/pom.xml +++ b/runelite-jshell/pom.xml @@ -30,7 +30,7 @@ net.runelite runelite-parent - 1.10.33-SNAPSHOT + 1.10.34-SNAPSHOT jshell diff --git a/runelite-maven-plugin/pom.xml b/runelite-maven-plugin/pom.xml index 8ff26539387..52caea449b5 100644 --- a/runelite-maven-plugin/pom.xml +++ b/runelite-maven-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.10.33-SNAPSHOT + 1.10.34-SNAPSHOT runelite-maven-plugin @@ -80,19 +80,6 @@ org.apache.maven.plugins maven-pmd-plugin - 3.16.0 - - - net.sourceforge.pmd - pmd-core - 6.44.0 - - - net.sourceforge.pmd - pmd-java - 6.44.0 - - true true