Merge remote-tracking branch 'runelite/master'
This commit is contained in:
@@ -1,428 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2016-2017, Adam <Adam@sigterm.info>
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>runelite-parent</artifactId>
|
||||
<version>1.7.18-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>client</artifactId>
|
||||
<name>RuneLite Client</name>
|
||||
|
||||
<properties>
|
||||
<jarsigner.skip>true</jarsigner.skip>
|
||||
<pmd.skip>true</pmd.skip>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sf.jopt-simple</groupId>
|
||||
<artifactId>jopt-simple</artifactId>
|
||||
<version>5.0.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<exclusions>
|
||||
<!--
|
||||
compile time annotations for static analysis in Guava
|
||||
https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies
|
||||
-->
|
||||
<exclusion>
|
||||
<groupId>com.google.code.findbugs</groupId>
|
||||
<artifactId>jsr305</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>com.google.errorprone</groupId>
|
||||
<artifactId>error_prone_annotations</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>com.google.j2objc</groupId>
|
||||
<artifactId>j2objc-annotations</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>animal-sniffer-annotations</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject</groupId>
|
||||
<artifactId>guice</artifactId>
|
||||
<classifier>no_aop</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.pushingpixels</groupId>
|
||||
<artifactId>substance</artifactId>
|
||||
<version>8.0.02</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.pushingpixels</groupId>
|
||||
<artifactId>trident</artifactId>
|
||||
<version>1.5.00</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-text</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jogl</groupId>
|
||||
<artifactId>jogl-all</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jogl</groupId>
|
||||
<artifactId>jogl-all</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
<classifier>natives-windows-amd64</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jogl</groupId>
|
||||
<artifactId>jogl-all</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
<classifier>natives-windows-i586</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jogl</groupId>
|
||||
<artifactId>jogl-all</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
<classifier>natives-linux-amd64</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jogl</groupId>
|
||||
<artifactId>jogl-all-natives-macosx</artifactId>
|
||||
<version>2.4.0-rc-20210117</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.gluegen</groupId>
|
||||
<artifactId>gluegen-rt</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.gluegen</groupId>
|
||||
<artifactId>gluegen-rt</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
<classifier>natives-windows-amd64</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.gluegen</groupId>
|
||||
<artifactId>gluegen-rt</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
<classifier>natives-windows-i586</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.gluegen</groupId>
|
||||
<artifactId>gluegen-rt</artifactId>
|
||||
<version>2.4.0-rc-20200429</version>
|
||||
<classifier>natives-linux-amd64</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.gluegen</groupId>
|
||||
<artifactId>gluegen-rt-natives-macosx</artifactId>
|
||||
<version>2.4.0-rc-20210117</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jocl</groupId>
|
||||
<artifactId>jocl</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jocl</groupId>
|
||||
<artifactId>jocl</artifactId>
|
||||
<version>1.0</version>
|
||||
<classifier>macos-x64</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite.jocl</groupId>
|
||||
<artifactId>jocl</artifactId>
|
||||
<version>1.0</version>
|
||||
<classifier>macos-arm64</classifier>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>archive-patcher</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<!-- net.runelite:discord also has this -->
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>4.5.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna-platform</artifactId>
|
||||
<version>4.5.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.findbugs</groupId>
|
||||
<artifactId>jsr305</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>runelite-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>jshell</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>client-patch</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>http-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>discord</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>orange-extensions</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hamcrest</groupId>
|
||||
<artifactId>hamcrest-library</artifactId>
|
||||
<version>1.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject.extensions</groupId>
|
||||
<artifactId>guice-testlib</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject.extensions</groupId>
|
||||
<artifactId>guice-grapher</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp3</groupId>
|
||||
<artifactId>mockwebserver</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<excludes>
|
||||
<exclude>logback.xml</exclude>
|
||||
</excludes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>logback.xml</include>
|
||||
</includes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
<configuration>
|
||||
<nonFilteredFileExtensions>
|
||||
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>png</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>gif</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>wav</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.2.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<shadedArtifactAttached>true</shadedArtifactAttached>
|
||||
<shadedClassifierName>shaded</shadedClassifierName>
|
||||
|
||||
<transformers>
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<mainClass>net.runelite.client.RuneLite</mainClass>
|
||||
</transformer>
|
||||
</transformers>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Strip jar before signing -->
|
||||
<plugin>
|
||||
<groupId>io.github.zlika</groupId>
|
||||
<artifactId>reproducible-build-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jarsigner-plugin</artifactId>
|
||||
<version>1.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>sign</id>
|
||||
<goals>
|
||||
<goal>sign</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<skip>${jarsigner.skip}</skip>
|
||||
<keystore>${jarsigner.keystore}</keystore>
|
||||
<alias>${jarsigner.alias}</alias>
|
||||
<storepass>${jarsigner.storepass}</storepass>
|
||||
<keypass>${jarsigner.keypass}</keypass>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>net.runelite</groupId>
|
||||
<artifactId>script-assembler-plugin</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>assemble</id>
|
||||
<goals>
|
||||
<goal>assemble</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<scriptDirectory>src/main/scripts</scriptDirectory>
|
||||
<outputDirectory>${project.build.outputDirectory}/runelite</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>build-index</id>
|
||||
<goals>
|
||||
<goal>build-index</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<archiveOverlayDirectory>${project.build.outputDirectory}/runelite</archiveOverlayDirectory>
|
||||
<indexFile>${project.build.outputDirectory}/runelite/index</indexFile>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>3.13.0</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.pmd</groupId>
|
||||
<artifactId>pmd-core</artifactId>
|
||||
<version>6.29.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.pmd</groupId>
|
||||
<artifactId>pmd-java</artifactId>
|
||||
<version>6.29.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<failOnViolation>true</failOnViolation>
|
||||
<printFailingErrors>true</printFailingErrors>
|
||||
<rulesets>
|
||||
<ruleset>${basedir}/pmd-ruleset.xml</ruleset>
|
||||
</rulesets>
|
||||
<linkXRef>false</linkXRef>
|
||||
<analysisCache>true</analysisCache>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>check</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -229,7 +229,8 @@ public enum ItemMapping
|
||||
SLAYER_HELMET, SLAYER_HELMET_I, BLACK_SLAYER_HELMET, BLACK_SLAYER_HELMET_I, PURPLE_SLAYER_HELMET, PURPLE_SLAYER_HELMET_I, RED_SLAYER_HELMET, RED_SLAYER_HELMET_I,
|
||||
GREEN_SLAYER_HELMET, GREEN_SLAYER_HELMET_I, TURQUOISE_SLAYER_HELMET, TURQUOISE_SLAYER_HELMET_I, TWISTED_SLAYER_HELMET, TWISTED_SLAYER_HELMET_I, HYDRA_SLAYER_HELMET, HYDRA_SLAYER_HELMET_I,
|
||||
SLAYER_HELMET_I_25177, BLACK_SLAYER_HELMET_I_25179, GREEN_SLAYER_HELMET_I_25181, RED_SLAYER_HELMET_I_25183, PURPLE_SLAYER_HELMET_I_25185, TURQUOISE_SLAYER_HELMET_I_25187, HYDRA_SLAYER_HELMET_I_25189, TWISTED_SLAYER_HELMET_I_25191,
|
||||
BLACK_MASK_I_25276, BLACK_MASK_1_I_25275, BLACK_MASK_2_I_25274, BLACK_MASK_3_I_25273, BLACK_MASK_4_I_25272, BLACK_MASK_5_I_25271, BLACK_MASK_6_I_25270, BLACK_MASK_7_I_25269, BLACK_MASK_8_I_25268, BLACK_MASK_9_I_25267, BLACK_MASK_10_I_25266),
|
||||
BLACK_MASK_I_25276, BLACK_MASK_1_I_25275, BLACK_MASK_2_I_25274, BLACK_MASK_3_I_25273, BLACK_MASK_4_I_25272, BLACK_MASK_5_I_25271, BLACK_MASK_6_I_25270, BLACK_MASK_7_I_25269, BLACK_MASK_8_I_25268, BLACK_MASK_9_I_25267, BLACK_MASK_10_I_25266,
|
||||
TZTOK_SLAYER_HELMET, TZTOK_SLAYER_HELMET_I, TZTOK_SLAYER_HELMET_I_25902, VAMPYRIC_SLAYER_HELMET, VAMPYRIC_SLAYER_HELMET_I, VAMPYRIC_SLAYER_HELMET_I_25908, TZKAL_SLAYER_HELMET, TZKAL_SLAYER_HELMET_I, TZKAL_SLAYER_HELMET_I_25914),
|
||||
|
||||
// Pharaoh's Sceptres
|
||||
ITEM_PHARAOHS_SCEPTRE_1(PHARAOHS_SCEPTRE, PHARAOHS_SCEPTRE_1),
|
||||
|
||||
@@ -56,18 +56,19 @@ import net.runelite.api.IndexedSprite;
|
||||
import net.runelite.api.ItemComposition;
|
||||
import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.ScriptID;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.WorldType;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.ScriptPostFired;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.vars.AccountType;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import static net.runelite.api.widgets.WidgetID.ADVENTURE_LOG_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.COLLECTION_LOG_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.GENERIC_SCROLL_GROUP_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.KILL_LOGS_GROUP_ID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
@@ -114,7 +115,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
private static final Pattern TOB_WAVE_PB_PATTERN = Pattern.compile("Theatre of Blood wave completion time: <col=ff0000>(?<pb>[0-9:]+(?:\\.[0-9]+)?)</col> \\(new personal best\\)");
|
||||
private static final Pattern TOB_WAVE_DURATION_PATTERN = Pattern.compile("Theatre of Blood wave completion time: <col=ff0000>[0-9:.]+</col>\\. Personal best: (?<pb>[0-9:]+(?:\\.[0-9]+)?)");
|
||||
private static final Pattern KILL_DURATION_PATTERN = Pattern.compile("(?i)^(?:(?:Fight |Lap |Challenge |Corrupted challenge )?duration:|Subdued in) <col=[0-9a-f]{6}>[0-9:.]+</col>\\. Personal best: (?:<col=ff0000>)?(?<pb>[0-9:]+(?:\\.[0-9]+)?)");
|
||||
private static final Pattern NEW_PB_PATTERN = Pattern.compile("(?i)^(?:(?:Fight |Lap |Challenge |Corrupted challenge )?duration:|Subdued in) <col=[0-9a-f]{6}>(?<pb>[0-9:]+(?:\\.[0-9]+)?)</col> \\(new personal best\\)");
|
||||
private static final Pattern NEW_PB_PATTERN = Pattern.compile("(?i)(?:(?:Fight |Lap |Challenge |Corrupted challenge )?duration:|Subdued in) <col=[0-9a-f]{6}>(?<pb>[0-9:]+(?:\\.[0-9]+)?)</col> \\(new personal best\\)");
|
||||
private static final Pattern DUEL_ARENA_WINS_PATTERN = Pattern.compile("You (were defeated|won)! You have(?: now)? won (\\d+) duels?");
|
||||
private static final Pattern DUEL_ARENA_LOSSES_PATTERN = Pattern.compile("You have(?: now)? lost (\\d+) duels?");
|
||||
private static final Pattern ADVENTURE_LOG_TITLE_PATTERN = Pattern.compile("The Exploits of (.+)");
|
||||
@@ -155,7 +156,6 @@ public class ChatCommandsPlugin extends Plugin
|
||||
private boolean bossLogLoaded;
|
||||
private boolean advLogLoaded;
|
||||
private boolean scrollInterfaceLoaded;
|
||||
private boolean collectionLogLoaded;
|
||||
private String pohOwner;
|
||||
private HiscoreEndpoint hiscoreEndpoint; // hiscore endpoint for current player
|
||||
private String lastBossKill;
|
||||
@@ -599,39 +599,6 @@ public class ChatCommandsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
if (collectionLogLoaded && (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName())))
|
||||
{
|
||||
collectionLogLoaded = false;
|
||||
|
||||
Widget collectionLogEntryHeader = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_HEADER);
|
||||
if (collectionLogEntryHeader != null && collectionLogEntryHeader.getChildren() != null)
|
||||
{
|
||||
Widget entryTitle = collectionLogEntryHeader.getChild(COL_LOG_ENTRY_HEADER_TITLE_INDEX);
|
||||
// Make sure that the player is looking in the All Pets tab of the collection log
|
||||
if (entryTitle.getText().equals("All Pets"))
|
||||
{
|
||||
Widget collectionLogEntryItems = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_ITEMS);
|
||||
if (collectionLogEntryItems != null && collectionLogEntryItems.getChildren() != null)
|
||||
{
|
||||
List<Pet> petList = new ArrayList<>();
|
||||
for (Widget child : collectionLogEntryItems.getChildren())
|
||||
{
|
||||
if (child.getOpacity() == 0)
|
||||
{
|
||||
Pet pet = Pet.findPet(Text.removeTags(child.getName()));
|
||||
if (pet != null)
|
||||
{
|
||||
petList.add(pet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setPetList(petList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bossLogLoaded && (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName())))
|
||||
{
|
||||
bossLogLoaded = false;
|
||||
@@ -700,6 +667,47 @@ public class ChatCommandsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptPostFired(ScriptPostFired scriptPostFired)
|
||||
{
|
||||
if (scriptPostFired.getScriptId() != ScriptID.COLLECTION_DRAW_LIST)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName()))
|
||||
{
|
||||
Widget collectionLogEntryHeader = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_HEADER);
|
||||
if (collectionLogEntryHeader != null && collectionLogEntryHeader.getChildren() != null)
|
||||
{
|
||||
Widget entryTitle = collectionLogEntryHeader.getChild(COL_LOG_ENTRY_HEADER_TITLE_INDEX);
|
||||
// Make sure that the player is looking in the All Pets tab of the collection log
|
||||
if (entryTitle.getText().equals("All Pets"))
|
||||
{
|
||||
Widget collectionLogEntryItems = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_ITEMS);
|
||||
if (collectionLogEntryItems != null && collectionLogEntryItems.getChildren() != null)
|
||||
{
|
||||
List<Pet> petList = new ArrayList<>();
|
||||
for (Widget child : collectionLogEntryItems.getChildren())
|
||||
{
|
||||
if (child.getOpacity() == 0)
|
||||
{
|
||||
Pet pet = Pet.findPet(Text.removeTags(child.getName()));
|
||||
if (pet != null)
|
||||
{
|
||||
petList.add(pet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setPetList(petList);
|
||||
log.debug("Loaded {} pets", petList.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded widget)
|
||||
{
|
||||
@@ -708,9 +716,6 @@ public class ChatCommandsPlugin extends Plugin
|
||||
case ADVENTURE_LOG_ID:
|
||||
advLogLoaded = true;
|
||||
break;
|
||||
case COLLECTION_LOG_ID:
|
||||
collectionLogLoaded = true;
|
||||
break;
|
||||
case KILL_LOGS_GROUP_ID:
|
||||
bossLogLoaded = true;
|
||||
break;
|
||||
@@ -1194,7 +1199,9 @@ public class ChatCommandsPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
ChatMessageBuilder responseBuilder = new ChatMessageBuilder().append("Pets: ")
|
||||
ChatMessageBuilder responseBuilder = new ChatMessageBuilder()
|
||||
.append(ChatColorType.NORMAL)
|
||||
.append("Pets: ")
|
||||
.append("(" + playerPetList.size() + ")");
|
||||
|
||||
// Append pets that the player owns
|
||||
@@ -1211,7 +1218,8 @@ public class ChatCommandsPlugin extends Plugin
|
||||
|
||||
log.debug("Setting response {}", response);
|
||||
final MessageNode messageNode = chatMessage.getMessageNode();
|
||||
messageNode.setValue(response);
|
||||
messageNode.setRuneLiteFormatMessage(response);
|
||||
chatMessageManager.update(messageNode);
|
||||
client.refreshChat();
|
||||
}
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
||||
new AnagramClue("O BIRDZ A ZANY EN PC", "Cap'n Izzy No-Beard", new WorldPoint(2807, 3191, 0), "Brimhaven Agility Arena", "How many Banana Trees are there in the plantation?", "33"),
|
||||
new AnagramClue("OK CO", "Cook", new WorldPoint(3207, 3214, 0), "Ground floor of Lumbridge Castle", "How many cannons does Lumbridge Castle have?", "9"),
|
||||
new AnagramClue("OR ZINC FUMES WARD", "Wizard Frumscone", new WorldPoint(2594, 3086, 0), "Downstairs in the Wizards' Guild"),
|
||||
new AnagramClue("OUR OWN NEEDS", "Nurse Wooned", new WorldPoint(1511, 3619, 0), "Shayzien Infirmary", "How many wounded soldiers are in the camp?", "16"),
|
||||
new AnagramClue("OUR OWN NEEDS", "Nurse Wooned", new WorldPoint(1511, 3619, 0), "Shayzien Infirmary", "How many wounded soldiers are there in the camp?", "16"),
|
||||
new AnagramClue("PACINNG A TAIE", "Captain Ginea", new WorldPoint(1504, 3632, 0), "Tent east of Shayzien Encampment war tent", "1 soldier can deal with 6 lizardmen. How many soldiers do we need for an army of 678 lizardmen?", "113"),
|
||||
new AnagramClue("PEAK REFLEX", "Flax keeper", new WorldPoint(2744, 3444, 0), "Flax field south of Seers Village", "If I have 1014 flax, and I spin a third of them into bowstring, how many flax do I have left?", "676"),
|
||||
new AnagramClue("PEATY PERT", "Party Pete", new WorldPoint(3047, 3376, 0), "Falador Party Room"),
|
||||
|
||||
@@ -392,6 +392,13 @@ public class GroundItemsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Since the loot can potentially be over multiple tiles, make sure to process lootbeams on all those tiles
|
||||
items.stream()
|
||||
.map(ItemStack::getLocation)
|
||||
.map(l -> WorldPoint.fromLocal(client, l))
|
||||
.distinct()
|
||||
.forEach(this::handleLootbeam);
|
||||
}
|
||||
|
||||
private GroundItem buildGroundItem(final Tile tile, final TileItem item)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -70,6 +70,7 @@ import net.runelite.client.menus.WidgetMenuOption;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.ArdougneCloakMode;
|
||||
import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.DesertAmuletMode;
|
||||
import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.KaramjaGlovesMode;
|
||||
import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.MorytaniaLegsMode;
|
||||
import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.RadasBlessingMode;
|
||||
@@ -374,6 +375,9 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
swap("wear", "ecto teleport", () -> config.swapMorytaniaLegsMode() == MorytaniaLegsMode.ECTOFUNTUS);
|
||||
swap("wear", "burgh teleport", () -> config.swapMorytaniaLegsMode() == MorytaniaLegsMode.BURGH_DE_ROTT);
|
||||
|
||||
swap("wear", "nardah", () -> config.swapDesertAmuletMode() == DesertAmuletMode.NARDAH);
|
||||
swap("wear", "kalphite cave", () -> config.swapDesertAmuletMode() == DesertAmuletMode.KALPHITE_CAVE);
|
||||
|
||||
swap("bury", "use", config::swapBones);
|
||||
|
||||
swap("wield", "battlestaff", "use", config::swapBattlestaves);
|
||||
|
||||
@@ -29,7 +29,6 @@ package net.runelite.client.plugins.xptracker;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.GridLayout;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
@@ -54,6 +53,7 @@ import net.runelite.api.Skill;
|
||||
import net.runelite.api.WorldType;
|
||||
import net.runelite.client.game.SkillIconManager;
|
||||
import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.ui.DynamicGridLayout;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.SkillColor;
|
||||
import net.runelite.client.ui.components.MouseDragEventForwarder;
|
||||
@@ -190,7 +190,7 @@ class XpInfoBox extends JPanel
|
||||
headerPanel.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
headerPanel.setLayout(new BorderLayout());
|
||||
|
||||
statsPanel.setLayout(new GridLayout(2, 2));
|
||||
statsPanel.setLayout(new DynamicGridLayout(2, 2));
|
||||
statsPanel.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
statsPanel.setBorder(new EmptyBorder(9, 2, 9, 2));
|
||||
|
||||
|
||||
@@ -143,6 +143,14 @@
|
||||
"ry2": 48,
|
||||
"z1": 2,
|
||||
"z2": 2
|
||||
},
|
||||
{
|
||||
"rx1": 53,
|
||||
"ry1": 44,
|
||||
"rx2": 53,
|
||||
"ry2": 47,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
}
|
||||
],
|
||||
"13151":[ // Prif NE
|
||||
@@ -275,6 +283,38 @@
|
||||
"ry2": 52,
|
||||
"z1": 2,
|
||||
"z2": 2
|
||||
},
|
||||
{
|
||||
"rx1": 46,
|
||||
"ry1": 52,
|
||||
"rx2": 46,
|
||||
"ry2": 52,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 40,
|
||||
"ry1": 47,
|
||||
"rx2": 40,
|
||||
"ry2": 47,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 40,
|
||||
"ry1": 26,
|
||||
"rx2": 40,
|
||||
"ry2": 26,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 53,
|
||||
"ry1": 22,
|
||||
"rx2": 53,
|
||||
"ry2": 25,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
}
|
||||
],
|
||||
"13150": [ // Prif SE
|
||||
@@ -419,6 +459,14 @@
|
||||
"ry2": 11,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 20,
|
||||
"ry1": 23,
|
||||
"rx2": 26,
|
||||
"ry2": 34,
|
||||
"z1": 1,
|
||||
"z2": 1
|
||||
}
|
||||
],
|
||||
"12852": [ // South Varrock
|
||||
@@ -1919,7 +1967,25 @@
|
||||
"z1": 1,
|
||||
"z2": 2
|
||||
},
|
||||
{ // Lighthouse clockwork
|
||||
{
|
||||
"rx1": 12,
|
||||
"ry1": 51,
|
||||
"rx2": 13,
|
||||
"ry2": 52,
|
||||
"z1": 0,
|
||||
"z2": 1
|
||||
}
|
||||
],
|
||||
"9799": [ // Lighthouse (During Horror from the Deep)
|
||||
{
|
||||
"rx1": 9,
|
||||
"ry1": 53,
|
||||
"rx2": 16,
|
||||
"ry2": 60,
|
||||
"z1": 1,
|
||||
"z2": 2
|
||||
},
|
||||
{
|
||||
"rx1": 12,
|
||||
"ry1": 51,
|
||||
"rx2": 13,
|
||||
@@ -2413,5 +2479,97 @@
|
||||
"z1": 0,
|
||||
"z2": 1
|
||||
}
|
||||
],
|
||||
"8008": [ // Temple of Light Dungeon
|
||||
{
|
||||
"rx1": 34,
|
||||
"ry1": 45,
|
||||
"rx2": 54,
|
||||
"ry2": 60,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
}
|
||||
],
|
||||
"12349": [ // Mage Arena
|
||||
{
|
||||
"rx1": 31,
|
||||
"ry1": 48,
|
||||
"rx2": 36,
|
||||
"ry2": 53,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 23,
|
||||
"ry1": 8,
|
||||
"rx2": 44,
|
||||
"ry2": 50,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 10,
|
||||
"ry1": 18,
|
||||
"rx2": 56,
|
||||
"ry2": 37,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 12,
|
||||
"ry1": 16,
|
||||
"rx2": 54,
|
||||
"ry2": 40,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 14,
|
||||
"ry1": 14,
|
||||
"rx2": 52,
|
||||
"ry2": 42,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 16,
|
||||
"ry1": 12,
|
||||
"rx2": 50,
|
||||
"ry2": 44,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 18,
|
||||
"ry1": 10,
|
||||
"rx2": 48,
|
||||
"ry2": 46,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 20,
|
||||
"ry1": 8,
|
||||
"rx2": 46,
|
||||
"ry2": 48,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 55,
|
||||
"ry1": 38,
|
||||
"rx2": 55,
|
||||
"ry2": 38,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
},
|
||||
{
|
||||
"rx1": 24,
|
||||
"ry1": 51,
|
||||
"rx2": 24,
|
||||
"ry2": 51,
|
||||
"z1": 0,
|
||||
"z2": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user