Merge branch 'master' into in-v-trans-avec
This commit is contained in:
8
.github/workflows/gradle.yml
vendored
8
.github/workflows/gradle.yml
vendored
@@ -10,12 +10,6 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/cache@v1
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Make gradlew executable
|
||||
run: chmod +x ./gradlew
|
||||
- name: Update Gradle Wrapper
|
||||
@@ -28,4 +22,4 @@ jobs:
|
||||
PULL_REQUEST_TITLE: 'project: Update gradle wrapper'
|
||||
PULL_REQUEST_BODY: This is an auto-generated PR with an updated gradle version
|
||||
COMMIT_MESSAGE: 'project: Update gradle wrapper'
|
||||
PULL_REQUEST_LABELS: automated-pull-request, gradle
|
||||
PULL_REQUEST_LABELS: automated-pull-request, gradle
|
||||
|
||||
8
.github/workflows/scraper.yml
vendored
8
.github/workflows/scraper.yml
vendored
@@ -10,12 +10,6 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/cache@v1
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Set up JDK 11
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
@@ -42,4 +36,4 @@ jobs:
|
||||
PULL_REQUEST_TITLE: 'Client: Update NPC stats'
|
||||
PULL_REQUEST_BODY: This is an auto-generated PR with changes from the OSRS wiki
|
||||
COMMIT_MESSAGE: 'Client: Update NPC stats'
|
||||
PULL_REQUEST_LABELS: automated-pull-request, NPC stats
|
||||
PULL_REQUEST_LABELS: automated-pull-request, NPC stats
|
||||
|
||||
@@ -122,13 +122,6 @@ subprojects {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
withType<AbstractArchiveTask> {
|
||||
isPreserveFileTimestamps = false
|
||||
isReproducibleFileOrder = true
|
||||
dirMode = 493
|
||||
fileMode = 420
|
||||
}
|
||||
|
||||
withType<Checkstyle> {
|
||||
group = "verification"
|
||||
|
||||
|
||||
@@ -1,85 +1,42 @@
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.get
|
||||
import org.gradle.kotlin.dsl.register
|
||||
import java.io.File
|
||||
import org.gradle.kotlin.dsl.*
|
||||
|
||||
class BootstrapPlugin : Plugin<Project> {
|
||||
override fun apply(project: Project) {
|
||||
project.tasks.register<BootstrapTask>("bootstrapStaging") {
|
||||
dependsOn("jar")
|
||||
dependsOn("shadowJar")
|
||||
|
||||
type = "staging"
|
||||
clientJar = project.tasks["jar"].outputs.files.singleFile
|
||||
|
||||
dependsOn(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":http-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
doLast {
|
||||
|
||||
project.copy {
|
||||
from(project.tasks["jar"])
|
||||
from(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
from(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
from(project.parent!!.project(":http-api").tasks["jar"])
|
||||
from(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
into("${project.buildDir}/bootstrap/${type}/")
|
||||
}
|
||||
}
|
||||
override fun apply(project: Project): Unit = with(project) {
|
||||
val clientJar by configurations.creating {
|
||||
isCanBeConsumed = false
|
||||
isCanBeResolved = true
|
||||
isTransitive = false
|
||||
}
|
||||
val bootstrapDependencies by configurations.creating {
|
||||
extendsFrom(clientJar)
|
||||
isCanBeConsumed = false
|
||||
isCanBeResolved = true
|
||||
isTransitive = false
|
||||
}
|
||||
|
||||
project.tasks.register<BootstrapTask>("bootstrapStable") {
|
||||
dependsOn("jar")
|
||||
dependsOn("shadowJar")
|
||||
|
||||
type = "stable"
|
||||
clientJar = project.tasks["jar"].outputs.files.singleFile
|
||||
|
||||
dependsOn(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":http-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
doLast {
|
||||
|
||||
project.copy {
|
||||
from(project.tasks["jar"])
|
||||
from(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
from(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
from(project.parent!!.project(":http-api").tasks["jar"])
|
||||
from(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
into("${project.buildDir}/bootstrap/${type}/")
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
clientJar(tasks["jar"].outputs.files)
|
||||
bootstrapDependencies(project(":runelite-api"))
|
||||
bootstrapDependencies(project(":runescape-api"))
|
||||
bootstrapDependencies(project(":http-api"))
|
||||
bootstrapDependencies(project(":injected-client"))
|
||||
}
|
||||
|
||||
project.tasks.register<BootstrapTask>("bootstrapNightly") {
|
||||
dependsOn("jar")
|
||||
dependsOn("shadowJar")
|
||||
tasks.register<BootstrapTask>("bootstrapStaging", "staging")
|
||||
tasks.register<BootstrapTask>("bootstrapNightly", "nightly")
|
||||
tasks.register<BootstrapTask>("bootstrapStable", "stable")
|
||||
|
||||
type = "nightly"
|
||||
clientJar = project.tasks["jar"].outputs.files.singleFile
|
||||
tasks.withType<BootstrapTask> {
|
||||
dependsOn(bootstrapDependencies)
|
||||
|
||||
dependsOn(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":http-api").tasks["jar"])
|
||||
dependsOn(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
this.clientJar = clientJar.singleFile
|
||||
|
||||
doLast {
|
||||
|
||||
project.copy {
|
||||
from(project.tasks["jar"])
|
||||
from(project.parent!!.project(":runelite-api").tasks["jar"])
|
||||
from(project.parent!!.project(":runescape-api").tasks["jar"])
|
||||
from(project.parent!!.project(":http-api").tasks["jar"])
|
||||
from(project.parent!!.project(":injected-client").tasks["jar"])
|
||||
|
||||
into("${project.buildDir}/bootstrap/${type}/")
|
||||
copy {
|
||||
from(bootstrapDependencies)
|
||||
into("${buildDir}/bootstrap/${type}/")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.InputFile
|
||||
import org.gradle.api.tasks.Optional
|
||||
import org.gradle.api.tasks.PathSensitive
|
||||
import org.gradle.api.tasks.PathSensitivity
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
@@ -9,12 +8,9 @@ import org.gradle.kotlin.dsl.extra
|
||||
import org.gradle.kotlin.dsl.get
|
||||
import java.io.File
|
||||
import java.security.MessageDigest
|
||||
import javax.inject.Inject
|
||||
|
||||
open class BootstrapTask : DefaultTask() {
|
||||
|
||||
@Input
|
||||
@Optional
|
||||
var type: String? = "stable"
|
||||
open class BootstrapTask @Inject constructor(@Input val type: String) : DefaultTask() {
|
||||
|
||||
@InputFile
|
||||
@PathSensitive(PathSensitivity.ABSOLUTE)
|
||||
@@ -42,10 +38,11 @@ open class BootstrapTask : DefaultTask() {
|
||||
project.configurations["runtimeClasspath"].resolvedConfiguration.resolvedArtifacts.forEach {
|
||||
val module = it.moduleVersion.id.toString()
|
||||
|
||||
val name = module.split(":")[1]
|
||||
val group = module.split(":")[0]
|
||||
val version = module.split(":")[2]
|
||||
var path = ""
|
||||
val splat = module.split(":")
|
||||
val name = splat[1]
|
||||
val group = splat[0]
|
||||
val version = splat[2]
|
||||
lateinit var path: String
|
||||
|
||||
if (it.file.name.contains(ProjectVersions.rlVersion)) {
|
||||
path = "https://github.com/open-osrs/hosting/raw/master/${type}/${it.file.name}"
|
||||
@@ -84,7 +81,7 @@ open class BootstrapTask : DefaultTask() {
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
fun boostrap() {
|
||||
fun bootstrap() {
|
||||
val json = JsonBuilder(
|
||||
"projectVersion" to ProjectVersions.openosrsVersion,
|
||||
"minimumLauncherVersion" to ProjectVersions.launcherVersion,
|
||||
|
||||
@@ -27,9 +27,9 @@ const val kotlinVersion = "1.3.50"
|
||||
|
||||
object ProjectVersions {
|
||||
const val launcherVersion = "2.0.4"
|
||||
const val rlVersion = "1.5.41-SNAPSHOT"
|
||||
const val rlVersion = "1.5.42-SNAPSHOT"
|
||||
|
||||
const val openosrsVersion = "2.1.13.0-SNAPSHOT"
|
||||
const val openosrsVersion = "2.1.15.0-SNAPSHOT"
|
||||
|
||||
const val rsversion = 185
|
||||
const val cacheversion = 165
|
||||
|
||||
@@ -24,7 +24,4 @@
|
||||
*/
|
||||
package net.runelite.cache.definitions;
|
||||
|
||||
public interface WorldMapTypeBase
|
||||
{
|
||||
|
||||
}
|
||||
public interface WorldMapTypeBase {}
|
||||
|
||||
@@ -25,13 +25,12 @@
|
||||
|
||||
package net.runelite.cache.definitions.loaders;
|
||||
|
||||
import java.util.HashMap;
|
||||
import net.runelite.cache.definitions.ItemDefinition;
|
||||
import net.runelite.cache.io.InputStream;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class ItemLoader
|
||||
{
|
||||
private static final Logger logger = LoggerFactory.getLogger(ItemLoader.class);
|
||||
@@ -40,7 +39,7 @@ public class ItemLoader
|
||||
{
|
||||
ItemDefinition def = new ItemDefinition(id);
|
||||
InputStream is = new InputStream(b);
|
||||
|
||||
|
||||
while (true)
|
||||
{
|
||||
int opcode = is.readUnsignedByte();
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
package net.runelite.cache;
|
||||
|
||||
|
||||
import com.google.common.io.Files;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
<module name="SuppressionCommentFilter"/>
|
||||
<module name="LeftCurly">
|
||||
<property name="option" value="nl"/>
|
||||
<!-- allow {} on anonymous classes and lambdas-->
|
||||
<property name="tokens" value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF, INTERFACE_DEF, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF, STATIC_INIT"/>
|
||||
</module>
|
||||
<module name="RightCurly">
|
||||
<property name="option" value="alone"/>
|
||||
@@ -42,12 +44,12 @@
|
||||
<property name="message" value="Indent must use tab characters"/>
|
||||
<property name="ignoreComments" value="true"/>
|
||||
</module>
|
||||
<module name="RegexpSinglelineJava">
|
||||
<property name="format" value="import (?!static|java\.awt).*\*"/>
|
||||
<property name="message" value="Multiline imports are disallowed if they are not static"/>
|
||||
<property name="ignoreComments" value="true"/>
|
||||
<module name="AvoidStarImport">
|
||||
<property name="allowStaticMemberImports" value="true"/>
|
||||
</module>
|
||||
<module name="WhitespaceAround">
|
||||
<property name="allowEmptyTypes" value="true"/>
|
||||
</module>
|
||||
<module name="WhitespaceAround"/>
|
||||
<module name="WhitespaceAfter">
|
||||
<property name="tokens" value="COMMA"/>
|
||||
</module>
|
||||
@@ -57,6 +59,11 @@
|
||||
<property name="format" value="else[ \t]*[\r\n]+[ \t]*if"/>
|
||||
<property name="message" value="Newline should not be between else and if"/>
|
||||
</module>
|
||||
<module name="RegexpMultiline">
|
||||
<property name="format" value="^[\r\n\s]+import"/>
|
||||
<property name="maximum" value="1"/>
|
||||
<property name="message" value="There should not be empty lines in the imports list"/>
|
||||
</module>
|
||||
<module name="SuppressionFilter">
|
||||
<property name="file" value="${config_loc}/suppressions.xml"/>
|
||||
</module>
|
||||
|
||||
@@ -28,7 +28,6 @@ package net.runelite.asm.attributes;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import net.runelite.asm.Type;
|
||||
import net.runelite.asm.attributes.annotation.Annotation;
|
||||
import net.runelite.asm.attributes.annotation.Element;
|
||||
|
||||
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ArrayStoreInstruction extends MappableInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ArrayStoreInstruction extends MappableInstruction {}
|
||||
|
||||
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ComparisonInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ComparisonInstruction {}
|
||||
|
||||
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ConversionInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ConversionInstruction {}
|
||||
|
||||
@@ -25,6 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface GetFieldInstruction extends FieldInstruction
|
||||
{
|
||||
}
|
||||
public interface GetFieldInstruction extends FieldInstruction {}
|
||||
|
||||
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ReturnInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ReturnInstruction {}
|
||||
|
||||
@@ -25,6 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface SetFieldInstruction extends FieldInstruction, MappableInstruction
|
||||
{
|
||||
}
|
||||
public interface SetFieldInstruction extends FieldInstruction, MappableInstruction {}
|
||||
|
||||
@@ -40,7 +40,6 @@ import net.runelite.asm.execution.InstructionContext;
|
||||
import net.runelite.asm.execution.Stack;
|
||||
import net.runelite.asm.execution.StackContext;
|
||||
import static net.runelite.asm.execution.StaticStep.stepInto;
|
||||
|
||||
import net.runelite.asm.execution.Value;
|
||||
import net.runelite.asm.pool.Method;
|
||||
import net.runelite.asm.signature.Signature;
|
||||
|
||||
@@ -25,11 +25,10 @@
|
||||
|
||||
package net.runelite.asm.execution;
|
||||
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import net.runelite.asm.Method;
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
public class Stack
|
||||
{
|
||||
@@ -40,13 +39,13 @@ public class Stack
|
||||
{
|
||||
stack = new StackContext[sz * 2]; // XXX FIXME
|
||||
}
|
||||
|
||||
|
||||
public Stack(Stack other)
|
||||
{
|
||||
this.size = other.size;
|
||||
this.stack = other.stack.clone();
|
||||
}
|
||||
|
||||
|
||||
private void printStack(StackContext ctx, int level)
|
||||
{
|
||||
for (int i = 0; i < level; ++i)
|
||||
@@ -66,7 +65,7 @@ public class Stack
|
||||
printStack(stack[c], 0);
|
||||
throw new RuntimeException("Stack overflow");
|
||||
}
|
||||
|
||||
|
||||
assert !i.getType().equals(Type.VOID);
|
||||
|
||||
stack[size] = i;
|
||||
@@ -80,12 +79,12 @@ public class Stack
|
||||
|
||||
return stack[--size];
|
||||
}
|
||||
|
||||
|
||||
public int getSize()
|
||||
{
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
public List<StackContext> getStack()
|
||||
{
|
||||
return Arrays.asList(stack);
|
||||
|
||||
@@ -25,10 +25,9 @@
|
||||
|
||||
package net.runelite.asm.execution;
|
||||
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
public class VariableContext
|
||||
{
|
||||
@@ -46,13 +45,13 @@ public class VariableContext
|
||||
type = ctx.getType();
|
||||
value = ctx.getValue();
|
||||
}
|
||||
|
||||
|
||||
public VariableContext(Type type) // for entrypoints
|
||||
{
|
||||
this.type = type;
|
||||
value = Value.UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
public VariableContext(InstructionContext i, VariableContext other)
|
||||
{
|
||||
ic = i;
|
||||
@@ -60,24 +59,24 @@ public class VariableContext
|
||||
type = other.type;
|
||||
value = other.value;
|
||||
}
|
||||
|
||||
|
||||
public VariableContext(InstructionContext i, Type type, Value value)
|
||||
{
|
||||
ic = i;
|
||||
this.type = type;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
|
||||
public StackContext getStackContext()
|
||||
{
|
||||
return ctx;
|
||||
}
|
||||
|
||||
|
||||
public InstructionContext getInstructionWhichStored()
|
||||
{
|
||||
return ic;
|
||||
}
|
||||
|
||||
|
||||
public Type getType()
|
||||
{
|
||||
return type;
|
||||
@@ -87,7 +86,7 @@ public class VariableContext
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
public void addRead(InstructionContext ctx)
|
||||
{
|
||||
if (!read.contains(ctx))
|
||||
@@ -103,7 +102,7 @@ public class VariableContext
|
||||
{
|
||||
return isParameter;
|
||||
}
|
||||
|
||||
|
||||
public VariableContext markParameter()
|
||||
{
|
||||
isParameter = true;
|
||||
|
||||
@@ -25,9 +25,8 @@
|
||||
|
||||
package net.runelite.asm.pool;
|
||||
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
import java.util.Objects;
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
public class Field
|
||||
{
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
*/
|
||||
package net.runelite.asm.signature;
|
||||
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -33,6 +31,7 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.runelite.asm.Type;
|
||||
|
||||
public class Signature
|
||||
{
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package net.runelite.deob;
|
||||
|
||||
import java.util.List;
|
||||
import net.runelite.asm.ClassFile;
|
||||
import net.runelite.asm.Field;
|
||||
import net.runelite.asm.Method;
|
||||
@@ -33,8 +34,6 @@ import net.runelite.asm.attributes.annotation.Annotation;
|
||||
import net.runelite.asm.attributes.annotation.Element;
|
||||
import net.runelite.asm.signature.Signature;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DeobAnnotations
|
||||
{
|
||||
public static final Type OBFUSCATED_NAME = new Type("Lnet/runelite/mapping/ObfuscatedName;");
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
package net.runelite.deob.deobfuscators;
|
||||
|
||||
import java.util.List;
|
||||
import net.runelite.asm.ClassFile;
|
||||
import net.runelite.asm.ClassGroup;
|
||||
import net.runelite.asm.Field;
|
||||
@@ -35,31 +36,29 @@ import net.runelite.deob.DeobAnnotations;
|
||||
import net.runelite.deob.Deobfuscator;
|
||||
import net.runelite.deob.util.NameMappings;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RenameUnique implements Deobfuscator
|
||||
{
|
||||
private Renamer renamer;
|
||||
|
||||
|
||||
private void generateClassNames(NameMappings map, ClassGroup group)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
|
||||
for (ClassFile cf : group.getClasses())
|
||||
{
|
||||
if (cf.getName().length() > Deob.OBFUSCATED_NAME_MAX_LEN)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
map.map(cf.getPoolClass(), "class" + i++);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void generateFieldNames(NameMappings map, ClassGroup group)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
|
||||
for (ClassFile cf : group.getClasses())
|
||||
for (Field field : cf.getFields())
|
||||
{
|
||||
@@ -67,7 +66,7 @@ public class RenameUnique implements Deobfuscator
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
map.map(field.getPoolField(), "field" + i++);
|
||||
}
|
||||
}
|
||||
@@ -75,7 +74,7 @@ public class RenameUnique implements Deobfuscator
|
||||
private void generateMethodNames(NameMappings map, ClassGroup group)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
|
||||
for (ClassFile cf : group.getClasses())
|
||||
for (Method method : cf.getMethods())
|
||||
{
|
||||
@@ -83,16 +82,16 @@ public class RenameUnique implements Deobfuscator
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
List<Method> virtualMethods = VirtualMethods.getVirtualMethods(method);
|
||||
assert !virtualMethods.isEmpty();
|
||||
|
||||
|
||||
String name;
|
||||
if (virtualMethods.size() == 1)
|
||||
name = "method" + i++;
|
||||
else
|
||||
name = "vmethod" + i++;
|
||||
|
||||
|
||||
for (Method m : virtualMethods)
|
||||
map.map(m.getPoolMethod(), name);
|
||||
}
|
||||
@@ -103,13 +102,13 @@ public class RenameUnique implements Deobfuscator
|
||||
{
|
||||
group.buildClassGraph();
|
||||
group.lookup();
|
||||
|
||||
|
||||
NameMappings mappings = new NameMappings();
|
||||
|
||||
|
||||
this.generateClassNames(mappings, group);
|
||||
this.generateFieldNames(mappings, group);
|
||||
this.generateMethodNames(mappings, group);
|
||||
|
||||
|
||||
renamer = new Renamer(mappings);
|
||||
renamer.run(group);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
package net.runelite.deob.deobfuscators.packethandler;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import net.runelite.asm.Type;
|
||||
import net.runelite.asm.attributes.code.Instruction;
|
||||
import net.runelite.asm.execution.InstructionContext;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.runelite.gamepack;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
|
||||
@@ -24,7 +24,4 @@
|
||||
*/
|
||||
package net.runelite.deob.deobfuscators.unusedclass;
|
||||
|
||||
public class EmptyClass
|
||||
{
|
||||
|
||||
}
|
||||
public class EmptyClass {}
|
||||
|
||||
@@ -24,7 +24,4 @@
|
||||
*/
|
||||
package net.runelite.deob.deobfuscators.unusedclass;
|
||||
|
||||
public interface EmptyInterface
|
||||
{
|
||||
|
||||
}
|
||||
public interface EmptyInterface {}
|
||||
|
||||
@@ -70,9 +70,7 @@ public class HookImporter
|
||||
Assert.assertNotNull(is);
|
||||
|
||||
Gson gson = new Gson();
|
||||
java.lang.reflect.Type type = new TypeToken<Map<String, ClassHook>>()
|
||||
{
|
||||
}.getType();
|
||||
java.lang.reflect.Type type = new TypeToken<Map<String, ClassHook>>() {}.getType();
|
||||
hooks = gson.fromJson(new InputStreamReader(is), type);
|
||||
|
||||
group = JarUtil.loadJar(IN);
|
||||
|
||||
@@ -81,9 +81,7 @@ public class HookImporter
|
||||
|
||||
InputStream is = getClass().getResourceAsStream("hooks.json");
|
||||
Gson gson = new Gson();
|
||||
java.lang.reflect.Type type = new TypeToken<List<HookClass>>()
|
||||
{
|
||||
}.getType();
|
||||
java.lang.reflect.Type type = new TypeToken<List<HookClass>>() {}.getType();
|
||||
hooks = gson.fromJson(new InputStreamReader(is), type);
|
||||
}
|
||||
|
||||
|
||||
@@ -115,9 +115,7 @@ public class AnimationClient
|
||||
{
|
||||
InputStream in = response.body().byteStream();
|
||||
// CHECKSTYLE:OFF
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<AnimationKey>>()
|
||||
{
|
||||
}.getType());
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<AnimationKey>>() {}.getType());
|
||||
// CHECKSTYLE:ON
|
||||
}
|
||||
catch (JsonParseException ex)
|
||||
|
||||
@@ -35,8 +35,7 @@ public enum HiscoreEndpoint
|
||||
HARDCORE_IRONMAN("Hardcore Ironman", "https://services.runescape.com/m=hiscore_oldschool_hardcore_ironman/index_lite.ws"),
|
||||
ULTIMATE_IRONMAN("Ultimate Ironman", "https://services.runescape.com/m=hiscore_oldschool_ultimate/index_lite.ws"),
|
||||
DEADMAN("Deadman", "https://services.runescape.com/m=hiscore_oldschool_deadman/index_lite.ws"),
|
||||
SEASONAL_DEADMAN("Seasonal Deadman", "https://services.runescape.com/m=hiscore_oldschool_seasonal/index_lite.ws"),
|
||||
DEADMAN_TOURNAMENT("Deadman Tournament", "https://services.runescape.com/m=hiscore_oldschool_tournament/index_lite.ws");
|
||||
LEAGUE("Twisted League", "https://services.runescape.com/m=hiscore_oldschool_seasonal/index_lite.ws");
|
||||
|
||||
private final String name;
|
||||
private final HttpUrl hiscoreURL;
|
||||
|
||||
@@ -54,6 +54,7 @@ public class HiscoreResult
|
||||
private Skill runecraft;
|
||||
private Skill hunter;
|
||||
private Skill construction;
|
||||
private Skill leaguePoints;
|
||||
private Skill bountyHunterHunter;
|
||||
private Skill bountyHunterRogue;
|
||||
private Skill clueScrollAll;
|
||||
@@ -115,6 +116,8 @@ public class HiscoreResult
|
||||
return getHunter();
|
||||
case CONSTRUCTION:
|
||||
return getConstruction();
|
||||
case LEAGUE_POINTS:
|
||||
return getLeaguePoints();
|
||||
case OVERALL:
|
||||
return getOverall();
|
||||
case BOUNTY_HUNTER_HUNTER:
|
||||
|
||||
@@ -26,8 +26,6 @@ package net.runelite.http.api.hiscore;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.runelite.http.api.hiscore.HiscoreResult;
|
||||
import net.runelite.http.api.hiscore.Skill;
|
||||
|
||||
public class HiscoreResultBuilder
|
||||
{
|
||||
@@ -77,9 +75,9 @@ public class HiscoreResultBuilder
|
||||
hiscoreResult.setRunecraft(skills.get(21));
|
||||
hiscoreResult.setHunter(skills.get(22));
|
||||
hiscoreResult.setConstruction(skills.get(23));
|
||||
hiscoreResult.setBountyHunterHunter(skills.get(24));
|
||||
hiscoreResult.setBountyHunterRogue(skills.get(25));
|
||||
hiscoreResult.setLastManStanding(skills.get(26));
|
||||
hiscoreResult.setLeaguePoints(skills.get(24));
|
||||
hiscoreResult.setBountyHunterHunter(skills.get(25));
|
||||
hiscoreResult.setBountyHunterRogue(skills.get(26));
|
||||
hiscoreResult.setClueScrollAll(skills.get(27));
|
||||
hiscoreResult.setClueScrollBeginner(skills.get(28));
|
||||
hiscoreResult.setClueScrollEasy(skills.get(29));
|
||||
@@ -87,6 +85,7 @@ public class HiscoreResultBuilder
|
||||
hiscoreResult.setClueScrollHard(skills.get(31));
|
||||
hiscoreResult.setClueScrollElite(skills.get(32));
|
||||
hiscoreResult.setClueScrollMaster(skills.get(33));
|
||||
hiscoreResult.setLastManStanding(skills.get(34));
|
||||
return hiscoreResult;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,16 +50,17 @@ public enum HiscoreSkill
|
||||
RUNECRAFT("Runecraft"),
|
||||
HUNTER("Hunter"),
|
||||
CONSTRUCTION("Construction"),
|
||||
LEAGUE_POINTS("League Points"),
|
||||
BOUNTY_HUNTER_HUNTER("Bounty Hunter - Hunter"),
|
||||
BOUNTY_HUNTER_ROGUE("Bounty Hunter - Rogue"),
|
||||
LAST_MAN_STANDING("Last Man Standing"),
|
||||
CLUE_SCROLL_ALL("Clue Scrolls (all)"),
|
||||
CLUE_SCROLL_BEGINNER("Clue Scrolls (beginner)"),
|
||||
CLUE_SCROLL_EASY("Clue Scrolls (easy)"),
|
||||
CLUE_SCROLL_MEDIUM("Clue Scrolls (medium)"),
|
||||
CLUE_SCROLL_HARD("Clue Scrolls (hard)"),
|
||||
CLUE_SCROLL_ELITE("Clue Scrolls (elite)"),
|
||||
CLUE_SCROLL_MASTER("Clue Scrolls (master)");
|
||||
CLUE_SCROLL_MASTER("Clue Scrolls (master)"),
|
||||
LAST_MAN_STANDING("Last Man Standing");
|
||||
|
||||
private final String name;
|
||||
|
||||
|
||||
@@ -102,9 +102,7 @@ public class LootTrackerClient
|
||||
}
|
||||
|
||||
InputStream in = response.body().byteStream();
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<LootRecord>>()
|
||||
{
|
||||
}.getType());
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<LootRecord>>() {}.getType());
|
||||
}
|
||||
catch (JsonParseException ex)
|
||||
{
|
||||
|
||||
@@ -34,6 +34,5 @@ public enum WorldType
|
||||
LAST_MAN_STANDING,
|
||||
TOURNAMENT,
|
||||
DEADMAN,
|
||||
SEASONAL_DEADMAN,
|
||||
DEADMAN_TOURNAMENT
|
||||
LEAGUE;
|
||||
}
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
|
||||
package net.runelite.http.api.ws;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
@@ -31,6 +27,9 @@ import com.google.gson.internal.Streams;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Adapts values whose runtime type may differ from their declaration type. This
|
||||
|
||||
@@ -27,6 +27,4 @@ package net.runelite.http.api.ws.messages.party;
|
||||
import net.runelite.api.events.Event;
|
||||
import net.runelite.http.api.ws.WebsocketMessage;
|
||||
|
||||
public class Part extends WebsocketMessage implements Event
|
||||
{
|
||||
}
|
||||
public class Part extends WebsocketMessage implements Event {}
|
||||
|
||||
@@ -30,6 +30,4 @@ import net.runelite.api.events.Event;
|
||||
|
||||
@Value
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class UserSync extends PartyMemberMessage implements Event
|
||||
{
|
||||
}
|
||||
public class UserSync extends PartyMemberMessage implements Event {}
|
||||
|
||||
@@ -101,9 +101,7 @@ public class XteaClient
|
||||
{
|
||||
InputStream in = response.body().byteStream();
|
||||
// CHECKSTYLE:OFF
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<XteaKey>>()
|
||||
{
|
||||
}.getType());
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<XteaKey>>() {}.getType());
|
||||
// CHECKSTYLE:ON
|
||||
}
|
||||
catch (JsonParseException ex)
|
||||
|
||||
@@ -110,9 +110,7 @@ public class TwitterService
|
||||
}
|
||||
|
||||
InputStream in = response.body().byteStream();
|
||||
Type listType = new TypeToken<List<TwitterStatusesResponseItem>>()
|
||||
{
|
||||
}.getType();
|
||||
Type listType = new TypeToken<List<TwitterStatusesResponseItem>>() {}.getType();
|
||||
List<TwitterStatusesResponseItem> statusesResponse = RuneLiteAPI.GSON
|
||||
.fromJson(new InputStreamReader(in), listType);
|
||||
|
||||
|
||||
@@ -58,9 +58,7 @@ public class OsbuddyClient
|
||||
throw new IOException("Error retrieving summary from OSBuddy: " + responseOk.message());
|
||||
}
|
||||
|
||||
Type type = new TypeToken<Map<Integer, OsbuddySummaryItem>>()
|
||||
{
|
||||
}.getType();
|
||||
Type type = new TypeToken<Map<Integer, OsbuddySummaryItem>>() {}.getType();
|
||||
|
||||
return RuneLiteAPI.GSON.fromJson(responseOk.body().string(), type);
|
||||
}
|
||||
|
||||
@@ -26,9 +26,8 @@
|
||||
|
||||
package net.runelite.http.service.util;
|
||||
|
||||
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
||||
|
||||
public class HiscoreEndpointEditor extends PropertyEditorSupport
|
||||
{
|
||||
|
||||
@@ -29,7 +29,4 @@ import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Not found")
|
||||
public class NotFoundException extends RuntimeException
|
||||
{
|
||||
|
||||
}
|
||||
public class NotFoundException extends RuntimeException {}
|
||||
|
||||
@@ -35,9 +35,8 @@ enum ServiceWorldType
|
||||
HIGH_RISK(WorldType.HIGH_RISK, 1 << 10),
|
||||
LAST_MAN_STANDING(WorldType.LAST_MAN_STANDING, 1 << 14),
|
||||
TOURNAMENT(WorldType.TOURNAMENT, 1 << 25),
|
||||
DEADMAN_TOURNAMENT(WorldType.DEADMAN_TOURNAMENT, 1 << 26),
|
||||
DEADMAN(WorldType.DEADMAN, 1 << 29),
|
||||
SEASONAL_DEADMAN(WorldType.SEASONAL_DEADMAN, 1 << 30);
|
||||
LEAGUE(WorldType.LEAGUE, 1 << 30);
|
||||
|
||||
private final WorldType apiType;
|
||||
private final int mask;
|
||||
|
||||
@@ -60,16 +60,17 @@ public class HiscoreServiceTest
|
||||
+ "638177,1,0\n"
|
||||
+ "516239,9,1000\n"
|
||||
+ "492790,1,0\n"
|
||||
+ "2,2460\n" // leagues
|
||||
+ "-1,-1\n"
|
||||
+ "73,1738\n"
|
||||
+ "-1,-1\n"
|
||||
+ "531,1432\n"
|
||||
+ "324,212\n"
|
||||
+ "8008,131\n"
|
||||
+ "1337,911\n"
|
||||
+ "42,14113\n"
|
||||
+ "1,777\n"
|
||||
+ "254,92\n";
|
||||
+ "254,92\n"
|
||||
+ "-1,-1\n"; // lms
|
||||
|
||||
private final MockWebServer server = new MockWebServer();
|
||||
|
||||
@@ -105,6 +106,7 @@ public class HiscoreServiceTest
|
||||
Assert.assertEquals(777, result.getClueScrollElite().getLevel());
|
||||
Assert.assertEquals(254, result.getClueScrollMaster().getRank());
|
||||
Assert.assertEquals(-1, result.getLastManStanding().getLevel());
|
||||
Assert.assertEquals(2460, result.getLeaguePoints().getLevel());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,7 +24,4 @@
|
||||
*/
|
||||
package net.runelite.protocol.api.handshake;
|
||||
|
||||
public abstract class HandshakePacket
|
||||
{
|
||||
|
||||
}
|
||||
public abstract class HandshakePacket {}
|
||||
|
||||
@@ -29,7 +29,4 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class LoginHandshakePacket extends HandshakePacket
|
||||
{
|
||||
|
||||
}
|
||||
public class LoginHandshakePacket extends HandshakePacket {}
|
||||
|
||||
@@ -27,6 +27,4 @@ package net.runelite.api;
|
||||
/**
|
||||
* Represents the friend and ignore list manager.
|
||||
*/
|
||||
public interface FriendManager
|
||||
{
|
||||
}
|
||||
public interface FriendManager {}
|
||||
|
||||
@@ -27,6 +27,4 @@ package net.runelite.api;
|
||||
/**
|
||||
* Detects when the window is focused or unfocused.
|
||||
*/
|
||||
public interface KeyFocusListener
|
||||
{
|
||||
}
|
||||
public interface KeyFocusListener {}
|
||||
|
||||
@@ -27,6 +27,4 @@ package net.runelite.api;
|
||||
/**
|
||||
* Represents a chat entity that has a name.
|
||||
*/
|
||||
public interface Nameable extends Comparable
|
||||
{
|
||||
}
|
||||
public interface Nameable extends Comparable {}
|
||||
|
||||
@@ -698,7 +698,37 @@ public enum Varbits
|
||||
|
||||
WITHDRAW_X_AMOUNT(3960),
|
||||
|
||||
IN_PVP_AREA(8121);
|
||||
IN_PVP_AREA(8121),
|
||||
|
||||
/**
|
||||
* Twisted league
|
||||
*/
|
||||
TWISTED_LEAGUE_RELIC_1(10049),
|
||||
TWISTED_LEAGUE_RELIC_2(10050),
|
||||
TWISTED_LEAGUE_RELIC_3(10051),
|
||||
TWISTED_LEAGUE_RELIC_4(10052),
|
||||
TWISTED_LEAGUE_RELIC_5(10053),
|
||||
|
||||
/**
|
||||
* Value of hotkey varbits can be 0-13
|
||||
* 0 corresponds to no hotkey set
|
||||
* 1-12 correspond to F1-F12 respectively
|
||||
* 13 corresponds to escape
|
||||
*/
|
||||
COMBAT_TAB_HOTKEY(4675),
|
||||
STATS_TAB_HOTKEY(4676),
|
||||
QUESTS_TAB_HOTKEY(4677),
|
||||
INVENTORY_TAB_HOTKEY(4678),
|
||||
EQUIPMENT_TAB_HOTKEY(4679),
|
||||
PRAYER_TAB_HOTKEY(4680),
|
||||
SPELLBOOK_TAB_HOTKEY(4682),
|
||||
FRIENDS_TAB_HOTKEY(4684),
|
||||
ACCOUNT_MANAGEMENT_TAB_HOTKEY(6517),
|
||||
LOGOUT_TAB_HOTKEY(4689),
|
||||
OPTIONS_TAB_HOTKEY(4686),
|
||||
EMOTES_TAB_HOTKEY(4687),
|
||||
CLAN_TAB_HOTKEY(4683),
|
||||
MUSIC_TAB_HOTKEY(4688);
|
||||
|
||||
/**
|
||||
* The raw varbit ID.
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Tomas Slusny <slusnucky@gmail.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.api;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -36,18 +60,14 @@ public enum WorldType
|
||||
* Tournament world type.
|
||||
*/
|
||||
TOURNAMENT(1 << 25),
|
||||
/**
|
||||
* Deadman Tournament world type.
|
||||
*/
|
||||
DEADMAN_TOURNAMENT(1 << 26),
|
||||
/**
|
||||
* Deadman world type.
|
||||
*/
|
||||
DEADMAN(1 << 29),
|
||||
/**
|
||||
* Seasonal deadman world type.
|
||||
* League world type
|
||||
*/
|
||||
SEASONAL_DEADMAN(1 << 30);
|
||||
LEAGUE(1 << 30);
|
||||
|
||||
private final int mask;
|
||||
|
||||
@@ -58,44 +78,34 @@ public enum WorldType
|
||||
|
||||
private static final EnumSet<WorldType> PVP_WORLD_TYPES = EnumSet.of(
|
||||
DEADMAN,
|
||||
DEADMAN_TOURNAMENT,
|
||||
PVP,
|
||||
SEASONAL_DEADMAN
|
||||
PVP
|
||||
);
|
||||
|
||||
|
||||
private static final EnumSet<WorldType> DEADMAN_WORLD_TYPES = EnumSet.of(
|
||||
DEADMAN,
|
||||
DEADMAN_TOURNAMENT,
|
||||
SEASONAL_DEADMAN
|
||||
DEADMAN
|
||||
);
|
||||
|
||||
private static final EnumSet<WorldType> HIGHRISK_WORLD_TYPES = EnumSet.of(
|
||||
HIGH_RISK
|
||||
);
|
||||
|
||||
|
||||
private static final EnumSet<WorldType> ALL_HIGHRISK_WORLD_TYPES = EnumSet.of(
|
||||
HIGH_RISK,
|
||||
DEADMAN,
|
||||
DEADMAN_TOURNAMENT,
|
||||
SEASONAL_DEADMAN
|
||||
DEADMAN
|
||||
);
|
||||
|
||||
private static final EnumSet<WorldType> ALL_PVP_WORLD_TYPES = EnumSet.of(
|
||||
HIGH_RISK,
|
||||
DEADMAN,
|
||||
DEADMAN_TOURNAMENT,
|
||||
PVP,
|
||||
SEASONAL_DEADMAN
|
||||
PVP
|
||||
);
|
||||
|
||||
private static final EnumSet<WorldType> ALL_PK_WORLD_TYPES = EnumSet.of(
|
||||
HIGH_RISK,
|
||||
DEADMAN,
|
||||
DEADMAN_TOURNAMENT,
|
||||
PVP,
|
||||
SEASONAL_DEADMAN,
|
||||
BOUNTY
|
||||
);
|
||||
);
|
||||
|
||||
/**
|
||||
* Create enum set of world types from mask.
|
||||
@@ -137,10 +147,10 @@ public enum WorldType
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a world having a {@link Collection} of {@link WorldType}s is a PVP/DEADMAN/HIGHRISK world.
|
||||
* Checks whether a world having a {@link Collection} of {@link WorldType}s is a PVP world.
|
||||
*
|
||||
* @param worldTypes A {@link Collection} of {@link WorldType}s describing the given world.
|
||||
* @return True if the given worldtypes of the world are a PVP/DEADMAN/HIGHRISK world, false otherwise.
|
||||
* @return True if the given worldtypes of the world are a PVP world, false otherwise.
|
||||
* @see Client#getWorldType()
|
||||
*/
|
||||
public static boolean isPvpWorld(final Collection<WorldType> worldTypes)
|
||||
@@ -157,19 +167,19 @@ public enum WorldType
|
||||
{
|
||||
return worldTypes.stream().anyMatch(HIGHRISK_WORLD_TYPES::contains);
|
||||
}
|
||||
|
||||
|
||||
public static boolean isAllHighRiskWorld(final Collection<WorldType> worldTypes)
|
||||
{
|
||||
return worldTypes.stream().anyMatch(ALL_HIGHRISK_WORLD_TYPES::contains);
|
||||
}
|
||||
|
||||
|
||||
public static boolean isAllPvpWorld(final Collection<WorldType> worldTypes)
|
||||
{
|
||||
return worldTypes.stream().anyMatch(ALL_PVP_WORLD_TYPES::contains);
|
||||
}
|
||||
|
||||
|
||||
public static boolean isAllPKWorld(final Collection<WorldType> worldTypes)
|
||||
{
|
||||
return worldTypes.stream().anyMatch(ALL_PK_WORLD_TYPES::contains);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,4 @@ import java.lang.annotation.RetentionPolicy;
|
||||
*/
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface VisibleForDevtools
|
||||
{
|
||||
}
|
||||
public @interface VisibleForDevtools {}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
public interface Event
|
||||
{
|
||||
}
|
||||
public interface Event {}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Matthew Steglinski <https://github.com/sainttx>
|
||||
* Copyright (c) 2019, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -24,15 +24,12 @@
|
||||
*/
|
||||
package net.runelite.api.events;
|
||||
|
||||
/**
|
||||
* An event when the local player dies.
|
||||
*/
|
||||
public class LocalPlayerDeath implements Event
|
||||
{
|
||||
public static final LocalPlayerDeath INSTANCE = new LocalPlayerDeath();
|
||||
import lombok.Value;
|
||||
import net.runelite.api.Skill;
|
||||
|
||||
private LocalPlayerDeath()
|
||||
{
|
||||
// noop
|
||||
}
|
||||
@Value
|
||||
public class FakeXpDrop implements Event
|
||||
{
|
||||
private final Skill skill;
|
||||
private final int xp;
|
||||
}
|
||||
@@ -26,7 +26,6 @@ package net.runelite.api.widgets;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.Collection;
|
||||
|
||||
import net.runelite.api.FontTypeFace;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.Sprite;
|
||||
|
||||
@@ -161,6 +161,7 @@ public class WidgetID
|
||||
public static final int LMS_INGAME_GROUP_ID = 328;
|
||||
public static final int JEWELLERY_BOX_GROUP_ID = 590;
|
||||
public static final int OPTIONS_GROUP_ID = 261;
|
||||
public static final int GWD_KC_GROUP_ID = 406;
|
||||
|
||||
static class WorldMap
|
||||
{
|
||||
@@ -658,6 +659,11 @@ public class WidgetID
|
||||
static final int REWARD_TEXT = 57;
|
||||
}
|
||||
|
||||
static class GWD
|
||||
{
|
||||
static final int CONTAINER = 7;
|
||||
}
|
||||
|
||||
static class LevelUp
|
||||
{
|
||||
static final int SKILL = 1;
|
||||
@@ -827,161 +833,180 @@ public class WidgetID
|
||||
static final int FILTERED_SPELLS_PARENT = 1;
|
||||
static final int FILTERED_SPELLS_BOUNDS = 3;
|
||||
|
||||
static final int FILTER_SECTION_PARENT = 182;
|
||||
static final int FILTER_BUTTONS_PARENT = 185;
|
||||
static final int FILTER_BUTTON_PARENT = 186;
|
||||
static final int FILTER_BUTTON = 188;
|
||||
static final int TOOLTIP = 189;
|
||||
|
||||
// NORMAL SPELLS
|
||||
static final int LUMBRIDGE_HOME_TELEPORT = 4;
|
||||
static final int WIND_STRIKE = 5;
|
||||
static final int CONFUSE = 6;
|
||||
static final int ENCHANT_CROSSBOW_BOLT = 7;
|
||||
static final int WATER_STRIKE = 8;
|
||||
static final int LVL_1_ENCHANT = 9;
|
||||
static final int EARTH_STRIKE = 10;
|
||||
static final int WEAKEN = 11;
|
||||
static final int FIRE_STRIKE = 12;
|
||||
static final int BONES_TO_BANANAS = 13;
|
||||
static final int WIND_BOLT = 14;
|
||||
static final int CURSE = 15;
|
||||
static final int BIND = 16;
|
||||
static final int LOW_LEVEL_ALCHEMY = 17;
|
||||
static final int WATER_BOLT = 18;
|
||||
static final int VARROCK_TELEPORT = 19;
|
||||
static final int LVL_2_ENCHANT = 20;
|
||||
static final int EARTH_BOLT = 21;
|
||||
static final int LUMBRIDGE_TELEPORT = 22;
|
||||
static final int TELEKINETIC_GRAB = 23;
|
||||
static final int FIRE_BOLT = 24;
|
||||
static final int FALADOR_TELEPORT = 25;
|
||||
static final int CRUMBLE_UNDEAD = 26;
|
||||
static final int TELEPORT_TO_HOUSE = 27;
|
||||
static final int WIND_BLAST = 28;
|
||||
static final int SUPERHEAT_ITEM = 29;
|
||||
static final int CAMELOT_TELEPORT = 30;
|
||||
static final int WATER_BLAST = 31;
|
||||
static final int LVL_3_ENCHANT = 32;
|
||||
static final int IBAN_BLAST = 33;
|
||||
static final int SNARE = 34;
|
||||
static final int MAGIC_DART = 35;
|
||||
static final int ARDOUGNE_TELEPORT = 36;
|
||||
static final int EARTH_BLAST = 37;
|
||||
static final int HIGH_LEVEL_ALCHEMY = 38;
|
||||
static final int CHARGE_WATER_ORB = 39;
|
||||
static final int LVL_4_ENCHANT = 40;
|
||||
static final int WATCHTOWER_TELEPORT = 41;
|
||||
static final int FIRE_BLAST = 42;
|
||||
static final int CHARGE_EARTH_ORB = 43;
|
||||
static final int BONES_TO_PEACHES = 44;
|
||||
static final int SARADOMIN_STRIKE = 45;
|
||||
static final int CLAWS_OF_GUTHIX = 46;
|
||||
static final int FLAMES_OF_ZAMORAK = 47;
|
||||
static final int TROLLHEIM_TELEPORT = 48;
|
||||
static final int WIND_WAVE = 49;
|
||||
static final int CHARGE_FIRE_ORB = 50;
|
||||
static final int TELEPORT_TO_APE_ATOLL = 51;
|
||||
static final int WATER_WAVE = 52;
|
||||
static final int CHARGE_AIR_ORB = 53;
|
||||
static final int VULNERABILITY = 54;
|
||||
static final int LVL_5_ENCHANT = 55;
|
||||
static final int TELEPORT_TO_KOUREND = 56;
|
||||
static final int EARTH_WAVE = 57;
|
||||
static final int ENFEEBLE = 58;
|
||||
static final int TELEOTHER_LUMBRIDGE = 59;
|
||||
static final int FIRE_WAVE = 60;
|
||||
static final int ENTANGLE = 61;
|
||||
static final int STUN = 62;
|
||||
static final int CHARGE = 63;
|
||||
static final int WIND_SURGE = 64;
|
||||
static final int TELEOTHER_FALADOR = 65;
|
||||
static final int WATER_SURGE = 66;
|
||||
static final int TELE_BLOCK = 67;
|
||||
static final int BOUNTY_TARGET_TELEPORT = 68;
|
||||
static final int LVL_6_ENCHANT = 69;
|
||||
static final int TELEOTHER_CAMELOT = 70;
|
||||
static final int EARTH_SURGE = 71;
|
||||
static final int LVL_7_ENCHANT = 72;
|
||||
static final int FIRE_SURGE = 73;
|
||||
static final int LUMBRIDGE_HOME_TELEPORT = 5;
|
||||
static final int WIND_STRIKE = 6;
|
||||
static final int CONFUSE = 7;
|
||||
static final int ENCHANT_CROSSBOW_BOLT = 8;
|
||||
static final int WATER_STRIKE = 9;
|
||||
static final int LVL_1_ENCHANT = 10;
|
||||
static final int EARTH_STRIKE = 11;
|
||||
static final int WEAKEN = 12;
|
||||
static final int FIRE_STRIKE = 13;
|
||||
static final int BONES_TO_BANANAS = 14;
|
||||
static final int WIND_BOLT = 15;
|
||||
static final int CURSE = 16;
|
||||
static final int BIND = 17;
|
||||
static final int LOW_LEVEL_ALCHEMY = 18;
|
||||
static final int WATER_BOLT = 19;
|
||||
static final int VARROCK_TELEPORT = 20;
|
||||
static final int LVL_2_ENCHANT = 21;
|
||||
static final int EARTH_BOLT = 22;
|
||||
static final int LUMBRIDGE_TELEPORT = 23;
|
||||
static final int TELEKINETIC_GRAB = 24;
|
||||
static final int FIRE_BOLT = 25;
|
||||
static final int FALADOR_TELEPORT = 26;
|
||||
static final int CRUMBLE_UNDEAD = 27;
|
||||
static final int TELEPORT_TO_HOUSE = 28;
|
||||
static final int WIND_BLAST = 29;
|
||||
static final int SUPERHEAT_ITEM = 30;
|
||||
static final int CAMELOT_TELEPORT = 31;
|
||||
static final int WATER_BLAST = 32;
|
||||
static final int LVL_3_ENCHANT = 33;
|
||||
static final int IBAN_BLAST = 34;
|
||||
static final int SNARE = 35;
|
||||
static final int MAGIC_DART = 36;
|
||||
static final int ARDOUGNE_TELEPORT = 37;
|
||||
static final int EARTH_BLAST = 38;
|
||||
static final int HIGH_LEVEL_ALCHEMY = 39;
|
||||
static final int CHARGE_WATER_ORB = 40;
|
||||
static final int LVL_4_ENCHANT = 41;
|
||||
static final int WATCHTOWER_TELEPORT = 42;
|
||||
static final int FIRE_BLAST = 43;
|
||||
static final int CHARGE_EARTH_ORB = 44;
|
||||
static final int BONES_TO_PEACHES = 45;
|
||||
static final int SARADOMIN_STRIKE = 46;
|
||||
static final int CLAWS_OF_GUTHIX = 47;
|
||||
static final int FLAMES_OF_ZAMORAK = 48;
|
||||
static final int TROLLHEIM_TELEPORT = 49;
|
||||
static final int WIND_WAVE = 50;
|
||||
static final int CHARGE_FIRE_ORB = 51;
|
||||
static final int TELEPORT_TO_APE_ATOLL = 52;
|
||||
static final int WATER_WAVE = 53;
|
||||
static final int CHARGE_AIR_ORB = 54;
|
||||
static final int VULNERABILITY = 55;
|
||||
static final int LVL_5_ENCHANT = 56;
|
||||
static final int TELEPORT_TO_KOUREND = 57;
|
||||
static final int EARTH_WAVE = 58;
|
||||
static final int ENFEEBLE = 59;
|
||||
static final int TELEOTHER_LUMBRIDGE = 60;
|
||||
static final int FIRE_WAVE = 61;
|
||||
static final int ENTANGLE = 62;
|
||||
static final int STUN = 63;
|
||||
static final int CHARGE = 64;
|
||||
static final int WIND_SURGE = 65;
|
||||
static final int TELEOTHER_FALADOR = 66;
|
||||
static final int WATER_SURGE = 67;
|
||||
static final int TELE_BLOCK = 68;
|
||||
static final int BOUNTY_TARGET_TELEPORT = 69;
|
||||
static final int LVL_6_ENCHANT = 70;
|
||||
static final int TELEOTHER_CAMELOT = 71;
|
||||
static final int EARTH_SURGE = 72;
|
||||
static final int LVL_7_ENCHANT = 73;
|
||||
static final int FIRE_SURGE = 74;
|
||||
|
||||
// ANCIENT SPELLS
|
||||
static final int ICE_RUSH = 74;
|
||||
static final int ICE_BLITZ = 75;
|
||||
static final int ICE_BURST = 76;
|
||||
static final int ICE_BARRAGE = 77;
|
||||
static final int BLOOD_RUSH = 78;
|
||||
static final int BLOOD_BLITZ = 79;
|
||||
static final int BLOOD_BURST = 80;
|
||||
static final int BLOOD_BARRAGE = 81;
|
||||
static final int SMOKE_RUSH = 82;
|
||||
static final int SMOKE_BLITZ = 83;
|
||||
static final int SMOKE_BURST = 84;
|
||||
static final int SMOKE_BARRAGE = 85;
|
||||
static final int SHADOW_RUSH = 86;
|
||||
static final int SHADOW_BLITZ = 87;
|
||||
static final int SHADOW_BURST = 88;
|
||||
static final int SHADOW_BARRAGE = 89;
|
||||
static final int PADDEWWA_TELEPORT = 90;
|
||||
static final int SENNTISTEN_TELEPORT = 91;
|
||||
static final int KHARYRLL_TELEPORT = 92;
|
||||
static final int LASSAR_TELEPORT = 93;
|
||||
static final int DAREEYAK_TELEPORT = 94;
|
||||
static final int CARRALLANGER_TELEPORT = 95;
|
||||
static final int ANNAKARL_TELEPORT = 96;
|
||||
static final int GHORROCK_TELEPORT = 97;
|
||||
static final int EDGEVILLE_HOME_TELEPORT = 98;
|
||||
static final int TOOLTIP = 188;
|
||||
|
||||
static final int ICE_RUSH = 75;
|
||||
static final int ICE_BLITZ = 76;
|
||||
static final int ICE_BURST = 77;
|
||||
static final int ICE_BARRAGE = 78;
|
||||
static final int BLOOD_RUSH = 79;
|
||||
static final int BLOOD_BLITZ = 80;
|
||||
static final int BLOOD_BURST = 81;
|
||||
static final int BLOOD_BARRAGE = 82;
|
||||
static final int SMOKE_RUSH = 83;
|
||||
static final int SMOKE_BLITZ = 84;
|
||||
static final int SMOKE_BURST = 85;
|
||||
static final int SMOKE_BARRAGE = 86;
|
||||
static final int SHADOW_RUSH = 87;
|
||||
static final int SHADOW_BLITZ = 88;
|
||||
static final int SHADOW_BURST = 89;
|
||||
static final int SHADOW_BARRAGE = 90;
|
||||
static final int PADDEWWA_TELEPORT = 91;
|
||||
static final int SENNTISTEN_TELEPORT = 92;
|
||||
static final int KHARYRLL_TELEPORT = 93;
|
||||
static final int LASSAR_TELEPORT = 94;
|
||||
static final int DAREEYAK_TELEPORT = 95;
|
||||
static final int CARRALLANGER_TELEPORT = 96;
|
||||
static final int ANNAKARL_TELEPORT = 97;
|
||||
static final int GHORROCK_TELEPORT = 98;
|
||||
static final int EDGEVILLE_HOME_TELEPORT = 99;
|
||||
|
||||
// LUNAR SPELLS
|
||||
static final int LUNAR_HOME_TELEPORT = 99;
|
||||
static final int BAKE_PIE = 100;
|
||||
static final int CURE_PLANT = 101;
|
||||
static final int MONSTER_EXAMINE = 102;
|
||||
static final int NPC_CONTACT = 103;
|
||||
static final int CURE_OTHER = 104;
|
||||
static final int HUMIDIFY = 105;
|
||||
static final int MOONCLAN_TELEPORT = 106;
|
||||
static final int TELE_GROUP_MOONCLAN = 107;
|
||||
static final int CURE_ME = 108;
|
||||
static final int HUNTER_KIT = 109;
|
||||
static final int WATERBIRTH_TELEPORT = 110;
|
||||
static final int TELE_GROUP_WATERBIRTH = 111;
|
||||
static final int CURE_GROUP = 112;
|
||||
static final int STAT_SPY = 113;
|
||||
static final int BARBARIAN_TELEPORT = 114;
|
||||
static final int TELE_GROUP_BARBARIAN = 115;
|
||||
static final int SUPERGLASS_MAKE = 116;
|
||||
static final int TAN_LEATHER = 117;
|
||||
static final int KHAZARD_TELEPORT = 118;
|
||||
static final int TELE_GROUP_KHAZARD = 119;
|
||||
static final int DREAM = 120;
|
||||
static final int STRING_JEWELLERY = 121;
|
||||
static final int STAT_RESTORE_POT_SHARE = 122;
|
||||
static final int MAGIC_IMBUE = 123;
|
||||
static final int FERTILE_SOIL = 124;
|
||||
static final int BOOST_POTION_SHARE = 125;
|
||||
static final int FISHING_GUILD_TELEPORT = 126;
|
||||
static final int TELE_GROUP_FISHING_GUILD = 127;
|
||||
static final int PLANK_MAKE = 128;
|
||||
static final int CATHERBY_TELEPORT = 129;
|
||||
static final int TELE_GROUP_CATHERBY = 130;
|
||||
static final int RECHARGE_DRAGONSTONE = 131;
|
||||
static final int ICE_PLATEAU_TELEPORT = 132;
|
||||
static final int TELE_GROUP_ICE_PLATEAU = 133;
|
||||
static final int ENERGY_TRANSFER = 134;
|
||||
static final int HEAL_OTHER = 135;
|
||||
static final int VENGEANCE_OTHER = 136;
|
||||
static final int VENGEANCE = 137;
|
||||
static final int HEAL_GROUP = 138;
|
||||
static final int SPELLBOOK_SWAP = 139;
|
||||
static final int GEOMANCY = 140;
|
||||
static final int SPIN_FLAX = 141;
|
||||
static final int OURANIA_TELEPORT = 142;
|
||||
static final int LUNAR_HOME_TELEPORT = 100;
|
||||
static final int BAKE_PIE = 101;
|
||||
static final int CURE_PLANT = 102;
|
||||
static final int MONSTER_EXAMINE = 103;
|
||||
static final int NPC_CONTACT = 104;
|
||||
static final int CURE_OTHER = 105;
|
||||
static final int HUMIDIFY = 106;
|
||||
static final int MOONCLAN_TELEPORT = 107;
|
||||
static final int TELE_GROUP_MOONCLAN = 108;
|
||||
static final int CURE_ME = 109;
|
||||
static final int HUNTER_KIT = 110;
|
||||
static final int WATERBIRTH_TELEPORT = 111;
|
||||
static final int TELE_GROUP_WATERBIRTH = 112;
|
||||
static final int CURE_GROUP = 113;
|
||||
static final int STAT_SPY = 114;
|
||||
static final int BARBARIAN_TELEPORT = 115;
|
||||
static final int TELE_GROUP_BARBARIAN = 116;
|
||||
static final int SUPERGLASS_MAKE = 117;
|
||||
static final int TAN_LEATHER = 118;
|
||||
static final int KHAZARD_TELEPORT = 119;
|
||||
static final int TELE_GROUP_KHAZARD = 120;
|
||||
static final int DREAM = 121;
|
||||
static final int STRING_JEWELLERY = 122;
|
||||
static final int STAT_RESTORE_POT_SHARE = 123;
|
||||
static final int MAGIC_IMBUE = 124;
|
||||
static final int FERTILE_SOIL = 125;
|
||||
static final int BOOST_POTION_SHARE = 126;
|
||||
static final int FISHING_GUILD_TELEPORT = 127;
|
||||
static final int TELE_GROUP_FISHING_GUILD = 128;
|
||||
static final int PLANK_MAKE = 129;
|
||||
static final int CATHERBY_TELEPORT = 130;
|
||||
static final int TELE_GROUP_CATHERBY = 131;
|
||||
static final int RECHARGE_DRAGONSTONE = 132;
|
||||
static final int ICE_PLATEAU_TELEPORT = 133;
|
||||
static final int TELE_GROUP_ICE_PLATEAU = 134;
|
||||
static final int ENERGY_TRANSFER = 135;
|
||||
static final int HEAL_OTHER = 136;
|
||||
static final int VENGEANCE_OTHER = 137;
|
||||
static final int VENGEANCE = 138;
|
||||
static final int HEAL_GROUP = 139;
|
||||
static final int SPELLBOOK_SWAP = 140;
|
||||
static final int GEOMANCY = 141;
|
||||
static final int SPIN_FLAX = 142;
|
||||
static final int OURANIA_TELEPORT = 143;
|
||||
|
||||
// ARCEUUS SPELLS
|
||||
static final int ARCEUUS_HOME_TELEPORT = 143;
|
||||
static final int BATTLEFRONT_TELEPORT = 178;
|
||||
static final int ARCEUUS_HOME_TELEPORT = 144;
|
||||
static final int BATTLEFRONT_TELEPORT = 179;
|
||||
}
|
||||
|
||||
static final int FILTER_SECTION_PARENT = 181;
|
||||
static final int FILTER_BUTTONS_PARENT = 184;
|
||||
static final int FILTER_BUTTON_PARENT = 185;
|
||||
static final int FILTER_BUTTON = 187;
|
||||
static class StandardSpellBook
|
||||
{
|
||||
static final int LUMBRIDGE_HOME_TELEPORT = 5;
|
||||
}
|
||||
|
||||
static class AncientSpellBook
|
||||
{
|
||||
static final int EDGEVILLE_HOME_TELEPORT = 99;
|
||||
}
|
||||
|
||||
static class LunarSpellBook
|
||||
{
|
||||
static final int LUNAR_HOME_TELEPORT = 100;
|
||||
}
|
||||
|
||||
static class ArceuusSpellBook
|
||||
{
|
||||
static final int ARCEUUS_HOME_TELEPORT = 144;
|
||||
}
|
||||
|
||||
static class Pvp
|
||||
|
||||
@@ -429,6 +429,8 @@ public enum WidgetInfo
|
||||
|
||||
MOTHERLODE_MINE(WidgetID.MOTHERLODE_MINE_GROUP_ID, 0),
|
||||
|
||||
GWD_KC(WidgetID.GWD_KC_GROUP_ID, WidgetID.GWD.CONTAINER),
|
||||
|
||||
PUZZLE_BOX(WidgetID.PUZZLE_BOX_GROUP_ID, WidgetID.PuzzleBox.VISIBLE_BOX),
|
||||
|
||||
LIGHT_BOX(WidgetID.LIGHT_BOX_GROUP_ID, WidgetID.LightBox.LIGHT_BOX),
|
||||
@@ -524,7 +526,7 @@ public enum WidgetInfo
|
||||
SPELLBOOK_FILTERED_SPELLS_PARENT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.FILTERED_SPELLS_PARENT),
|
||||
SPELLBOOK_FILTERED_BOUNDS(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.FILTERED_SPELLS_BOUNDS),
|
||||
|
||||
/* STANDARD SPELL BOOK WIDGETS*/
|
||||
/* STANDARD SPELL BOOK WIDGETS*/
|
||||
SPELL_LUMBRIDGE_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.LUMBRIDGE_HOME_TELEPORT),
|
||||
SPELL_WIND_STRIKE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.WIND_STRIKE),
|
||||
SPELL_CONFUSE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.CONFUSE),
|
||||
@@ -595,7 +597,7 @@ public enum WidgetInfo
|
||||
SPELL_LVL_7_ENCHANT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.LVL_7_ENCHANT),
|
||||
SPELL_FIRE_SURGE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.FIRE_SURGE),
|
||||
SPELL_BOUNTY_TARGET_TELEPORT2(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.BOUNTY_TARGET_TELEPORT),
|
||||
/* END OF STANDARD SPELL BOOK WIDGETS*/
|
||||
/* END OF STANDARD SPELL BOOK WIDGETS*/
|
||||
|
||||
/* ANCIENT SPELL BOOK WIDGETS*/
|
||||
SPELL_ICE_RUSH(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.ICE_RUSH),
|
||||
@@ -624,9 +626,9 @@ public enum WidgetInfo
|
||||
SPELL_GHORROCK_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.GHORROCK_TELEPORT),
|
||||
SPELL_EDGEVILLE_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.EDGEVILLE_HOME_TELEPORT),
|
||||
SPELL_BOUNTY_TARGET_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.BOUNTY_TARGET_TELEPORT),
|
||||
/* END OF ANCIENT SPELL BOOK WIDGETS*/
|
||||
/* END OF ANCIENT SPELL BOOK WIDGETS*/
|
||||
|
||||
/* LUNAR SPELL BOOK WIDGETS*/
|
||||
/* LUNAR SPELL BOOK WIDGETS*/
|
||||
SPELL_LUNAR_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.LUNAR_HOME_TELEPORT),
|
||||
SPELL_VENGEANCE_OTHER(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.VENGEANCE_OTHER),
|
||||
SPELL_VENGEANCE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.VENGEANCE),
|
||||
@@ -672,18 +674,17 @@ public enum WidgetInfo
|
||||
SPELL_GEOMANCY(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.GEOMANCY),
|
||||
SPELL_SPIN_FLAX(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.SPIN_FLAX),
|
||||
SPELL_OURANIA_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.OURANIA_TELEPORT),
|
||||
/* END OF LUNAR SPELL BOOK WIDGETS*/
|
||||
/* END OF LUNAR SPELL BOOK WIDGETS*/
|
||||
SPELL_TOOLTIP(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.TOOLTIP),
|
||||
/* ARCEUUS SPELL BOOK WIDGETS*/
|
||||
/* ARCEUUS SPELL BOOK WIDGETS*/
|
||||
SPELL_ARCEUUS_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.ARCEUUS_HOME_TELEPORT),
|
||||
SPELL_BATTLEFRONT_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.BATTLEFRONT_TELEPORT),
|
||||
/* END OF ARCEUUS SPELL BOOK WIDGETS*/
|
||||
/* END OF ARCEUUS SPELL BOOK WIDGETS*/
|
||||
SPELLBOOK_FILTER_SECTION_PARENT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.FILTER_SECTION_PARENT),
|
||||
SPELLBOOK_FILTER_BUTTONS_PARENT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.FILTER_BUTTONS_PARENT),
|
||||
SPELLBOOK_FILTER_BUTTON_PARENT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.FILTER_BUTTON_PARENT),
|
||||
SPELLBOOK_FILTER_BUTTON(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.FILTER_BUTTON),
|
||||
|
||||
|
||||
KOUREND_FAVOUR_OVERLAY(WidgetID.KOUREND_FAVOUR_GROUP_ID, WidgetID.KourendFavour.KOUREND_FAVOUR_OVERLAY),
|
||||
ZEAH_MESS_HALL_COOKING_DISPLAY(WidgetID.ZEAH_MESS_HALL_GROUP_ID, WidgetID.Zeah.MESS_HALL_COOKING_DISPLAY),
|
||||
|
||||
@@ -694,7 +695,6 @@ public enum WidgetInfo
|
||||
MULTICOMBAT_FIXED(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MULTICOMBAT_INDICATOR),
|
||||
MULTICOMBAT_RESIZEABLE(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewport.MULTICOMBAT_INDICATOR),
|
||||
|
||||
|
||||
FULLSCREEN_MAP_ROOT(WidgetID.FULLSCREEN_MAP_GROUP_ID, WidgetID.FullScreenMap.ROOT),
|
||||
|
||||
QUESTLIST_BOX(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.BOX),
|
||||
@@ -756,8 +756,8 @@ public enum WidgetInfo
|
||||
XP_DROP_7(WidgetID.EXPERIENCE_DROP_GROUP_ID, WidgetID.ExperienceDrop.DROP_7),
|
||||
|
||||
ITEMS_KEPT_CUSTOM_TEXT_CONTAINER(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.CUSTOM_TEXT_CONTAINER),
|
||||
ITEMS_KEPT_ON_DEATH_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.KEPT_ITEMS_CONTAINER),
|
||||
ITEMS_KEPT_ON_DEATH_TEXT(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.KEPT_ITEMS_TEXT),
|
||||
ITEMS_KEPT_ON_DEATH_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.KEPT_ITEMS_CONTAINER),
|
||||
ITEMS_LOST_ON_DEATH_TEXT(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_TEXT),
|
||||
ITEMS_LOST_ON_DEATH_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_CONTAINER),
|
||||
ITEMS_KEPT_INFORMATION_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.INFORMATION_CONTAINER),
|
||||
|
||||
@@ -192,9 +192,9 @@ public class Notifier
|
||||
case SOLID_UNTIL_CANCELLED:
|
||||
case FLASH_UNTIL_CANCELLED:
|
||||
// Any interaction with the client since the notification started will cancel it after the minimum duration
|
||||
if (client.getMouseIdleTicks() < MINIMUM_FLASH_DURATION_TICKS
|
||||
if ((client.getMouseIdleTicks() < MINIMUM_FLASH_DURATION_TICKS
|
||||
|| client.getKeyboardIdleTicks() < MINIMUM_FLASH_DURATION_TICKS
|
||||
|| client.getMouseLastPressedMillis() > mouseLastPressedMillis)
|
||||
|| client.getMouseLastPressedMillis() > mouseLastPressedMillis) && clientUI.isFocused())
|
||||
{
|
||||
flashStart = null;
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.client.account.SessionManager;
|
||||
import net.runelite.client.callback.Hooks;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
@@ -86,6 +87,7 @@ import org.slf4j.LoggerFactory;
|
||||
public class RuneLite
|
||||
{
|
||||
public static final File RUNELITE_DIR = new File(System.getProperty("user.home"), ".runelite");
|
||||
public static final File CACHE_DIR = new File(RUNELITE_DIR, "cache");
|
||||
public static final File PROFILES_DIR = new File(RUNELITE_DIR, "profiles");
|
||||
public static final File PLUGIN_DIR = new File(RUNELITE_DIR, "plugins");
|
||||
public static final File SCREENSHOT_DIR = new File(RUNELITE_DIR, "screenshots");
|
||||
@@ -367,6 +369,7 @@ public class RuneLite
|
||||
chatboxPanelManager.get();
|
||||
|
||||
eventBus.subscribe(GameStateChanged.class, this, hooks::onGameStateChanged);
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, hooks::onScriptCallbackEvent);
|
||||
|
||||
// Add core overlays
|
||||
WidgetOverlay.createOverlays(client).forEach(overlayManager::add);
|
||||
|
||||
@@ -75,7 +75,7 @@ public class RuneLiteModule extends AbstractModule
|
||||
bindConstant().annotatedWith(Names.named("developerMode")).to(developerMode);
|
||||
bind(ScheduledExecutorService.class).toInstance(new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor()));
|
||||
bind(OkHttpClient.class).toInstance(RuneLiteAPI.CLIENT.newBuilder()
|
||||
.cache(new Cache(new File(RuneLite.RUNELITE_DIR, "cache" + File.separator + "okhttp"), MAX_OKHTTP_CACHE_SIZE))
|
||||
.cache(new Cache(new File(RuneLite.CACHE_DIR, "okhttp"), MAX_OKHTTP_CACHE_SIZE))
|
||||
.build());
|
||||
bind(MenuManager.class);
|
||||
bind(ChatMessageManager.class);
|
||||
|
||||
@@ -47,12 +47,15 @@ import net.runelite.api.Entity;
|
||||
import net.runelite.api.MainBufferProvider;
|
||||
import net.runelite.api.NullItemID;
|
||||
import net.runelite.api.RenderOverview;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.WorldMapManager;
|
||||
import net.runelite.api.events.BeforeMenuRender;
|
||||
import net.runelite.api.events.BeforeRender;
|
||||
import net.runelite.api.events.Event;
|
||||
import net.runelite.api.events.FakeXpDrop;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.api.hooks.Callbacks;
|
||||
import net.runelite.api.hooks.DrawCallbacks;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
@@ -544,4 +547,25 @@ public class Hooks implements Callbacks
|
||||
client.getCallbacks().post(BeforeMenuRender.class, event);
|
||||
return event.isConsumed();
|
||||
}
|
||||
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent)
|
||||
{
|
||||
if (!scriptCallbackEvent.getEventName().equals("fakeXpDrop"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int[] intStack = client.getIntStack();
|
||||
final int intStackSize = client.getIntStackSize();
|
||||
|
||||
final int statId = intStack[intStackSize - 2];
|
||||
final int xp = intStack[intStackSize - 1];
|
||||
|
||||
Skill skill = Skill.values()[statId];
|
||||
FakeXpDrop fakeXpDrop = new FakeXpDrop(
|
||||
skill,
|
||||
xp
|
||||
);
|
||||
eventBus.post(FakeXpDrop.class, fakeXpDrop);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,4 @@ import java.lang.annotation.Target;
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@Documented
|
||||
public @interface Alpha
|
||||
{
|
||||
}
|
||||
public @interface Alpha {}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
package net.runelite.client.config;
|
||||
|
||||
public class Button
|
||||
{
|
||||
}
|
||||
public class Button {}
|
||||
|
||||
@@ -24,6 +24,4 @@
|
||||
*/
|
||||
package net.runelite.client.config;
|
||||
|
||||
public interface Config
|
||||
{
|
||||
}
|
||||
public interface Config {}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
package net.runelite.client.config;
|
||||
|
||||
public class Title
|
||||
{
|
||||
}
|
||||
public class Title {}
|
||||
|
||||
@@ -35,7 +35,4 @@ import net.runelite.api.events.Event;
|
||||
* it has nothing to do with whether an account is being logged out.
|
||||
*/
|
||||
@Data
|
||||
public class SessionClose implements Event
|
||||
{
|
||||
|
||||
}
|
||||
public class SessionClose implements Event {}
|
||||
|
||||
@@ -35,7 +35,4 @@ import net.runelite.api.events.Event;
|
||||
* it has nothing to do with whether an account is being logged in.
|
||||
*/
|
||||
@Data
|
||||
public class SessionOpen implements Event
|
||||
{
|
||||
|
||||
}
|
||||
public class SessionOpen implements Event {}
|
||||
|
||||
@@ -24,6 +24,4 @@
|
||||
*/
|
||||
package net.runelite.client.input;
|
||||
|
||||
public interface KeyListener extends java.awt.event.KeyListener
|
||||
{
|
||||
}
|
||||
public interface KeyListener extends java.awt.event.KeyListener {}
|
||||
|
||||
@@ -24,6 +24,4 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
public interface Requirement
|
||||
{
|
||||
}
|
||||
public interface Requirement {}
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.aoewarnings;
|
||||
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.time.Instant;
|
||||
|
||||
@@ -70,8 +70,11 @@ public class AttackStylesPlugin extends Plugin
|
||||
private int attackStyleVarbit = -1;
|
||||
private int equippedWeaponTypeVarbit = -1;
|
||||
private int castingModeVarbit = -1;
|
||||
@Getter
|
||||
@Nullable
|
||||
private AttackStyle attackStyle;
|
||||
private final Set<Skill> warnedSkills = new HashSet<>();
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private boolean warnedSkillSelected = false;
|
||||
private final Table<WeaponType, WidgetInfo, Boolean> widgetsToHide = HashBasedTable.create();
|
||||
|
||||
@@ -108,7 +111,8 @@ public class AttackStylesPlugin extends Plugin
|
||||
private boolean warnForRanged;
|
||||
private boolean warnForMagic;
|
||||
private boolean hideAutoRetaliate;
|
||||
private boolean removeWarnedStyles;
|
||||
@VisibleForTesting
|
||||
boolean removeWarnedStyles;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
@@ -159,18 +163,8 @@ public class AttackStylesPlugin extends Plugin
|
||||
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public AttackStyle getAttackStyle()
|
||||
{
|
||||
return attackStyle;
|
||||
}
|
||||
|
||||
boolean isWarnedSkillSelected()
|
||||
{
|
||||
return warnedSkillSelected;
|
||||
}
|
||||
|
||||
private void onWidgetHiddenChanged(WidgetHiddenChanged event)
|
||||
@VisibleForTesting
|
||||
void onWidgetHiddenChanged(WidgetHiddenChanged event)
|
||||
{
|
||||
if (event.getWidget().isSelfHidden() || TO_GROUP(event.getWidget().getId()) != COMBAT_GROUP_ID)
|
||||
{
|
||||
@@ -215,6 +209,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int currentAttackStyleVarbit = client.getVar(VarPlayer.ATTACK_STYLE);
|
||||
@@ -240,6 +235,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("attackIndicator"))
|
||||
|
||||
@@ -27,6 +27,13 @@
|
||||
package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import java.awt.BasicStroke;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Stroke;
|
||||
import java.util.Map;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Perspective;
|
||||
@@ -39,14 +46,6 @@ import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Stroke;
|
||||
import java.awt.BasicStroke;
|
||||
import java.util.Map;
|
||||
|
||||
@Singleton
|
||||
class AboveSceneOverlay extends Overlay
|
||||
{
|
||||
|
||||
@@ -31,7 +31,6 @@ import java.awt.Graphics2D;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.image.BufferedImage;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Point;
|
||||
|
||||
@@ -26,18 +26,17 @@
|
||||
package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.runelite.client.menus.AbstractComparableEntry;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
|
||||
class BarbarianAssaultMenu
|
||||
{
|
||||
private final MenuManager menuManager;
|
||||
|
||||
@@ -26,15 +26,14 @@
|
||||
package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.NPC;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
class Healer
|
||||
|
||||
@@ -27,7 +27,6 @@ package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -24,13 +24,12 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
|
||||
class Timer
|
||||
{
|
||||
|
||||
@@ -25,14 +25,13 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class TimerBox extends InfoBox
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.awt.Color;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
@@ -35,8 +36,6 @@ import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.chat.ChatMessageBuilder;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
@Data
|
||||
public class Wave
|
||||
{
|
||||
|
||||
@@ -24,14 +24,13 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.bosstimetracker;
|
||||
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
||||
|
||||
public class BossTimeTracker extends InfoBox
|
||||
{
|
||||
|
||||
@@ -24,29 +24,27 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.bosstimetracker;
|
||||
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.util.Text;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.Arrays;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
import static net.runelite.api.ItemID.FIRE_CAPE;
|
||||
import static net.runelite.api.ItemID.INFERNAL_CAPE;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.util.Text;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Boss Time Tracker",
|
||||
|
||||
@@ -40,7 +40,7 @@ public enum CannonSpots
|
||||
BLACK_DEMONS(new WorldPoint(2859, 9778, 0), new WorldPoint(2841, 9791, 0), new WorldPoint(1421, 10089, 1)),
|
||||
ELVES(new WorldPoint(2044, 4635, 0), new WorldPoint(3278, 6098, 0)),
|
||||
SUQAHS(new WorldPoint(2114, 3943, 0)),
|
||||
TROLLS(new WorldPoint(2401, 3856, 0)),
|
||||
TROLLS(new WorldPoint(2401, 3856, 0), new WorldPoint(1242, 3517, 0)),
|
||||
GREATER_DEMONS(new WorldPoint(1435, 10086, 2)),
|
||||
BRINE_RAT(new WorldPoint(2707, 10132, 0)),
|
||||
DAGGANOTH(new WorldPoint(2524, 10020, 0)),
|
||||
|
||||
@@ -28,6 +28,7 @@ package net.runelite.client.plugins.chatcommands;
|
||||
import com.google.inject.Provides;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import java.io.IOException;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.regex.Matcher;
|
||||
@@ -42,8 +43,10 @@ import net.runelite.api.Experience;
|
||||
import net.runelite.api.IconID;
|
||||
import net.runelite.api.ItemDefinition;
|
||||
import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.Player;
|
||||
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.GameTick;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
@@ -1157,31 +1160,28 @@ public class ChatCommandsPlugin extends Plugin
|
||||
*/
|
||||
private HiscoreLookup getCorrectLookupFor(final ChatMessage chatMessage)
|
||||
{
|
||||
final String player;
|
||||
final HiscoreEndpoint ironmanStatus;
|
||||
Player localPlayer = client.getLocalPlayer();
|
||||
final String player = sanitize(chatMessage.getName());
|
||||
|
||||
if (chatMessage.getType().equals(ChatMessageType.PRIVATECHATOUT))
|
||||
// If we are sending the message then just use the local hiscore endpoint for the world
|
||||
if (chatMessage.getType().equals(ChatMessageType.PRIVATECHATOUT)
|
||||
|| player.equals(localPlayer.getName()))
|
||||
{
|
||||
player = client.getLocalPlayer().getName();
|
||||
ironmanStatus = hiscoreEndpoint;
|
||||
return new HiscoreLookup(localPlayer.getName(), hiscoreEndpoint);
|
||||
}
|
||||
else
|
||||
{
|
||||
player = sanitize(chatMessage.getName());
|
||||
|
||||
if (player.equals(client.getLocalPlayer().getName()))
|
||||
// Public chat on a leagues world is always league hiscores, regardless of icon
|
||||
if (chatMessage.getType() == ChatMessageType.PUBLICCHAT || chatMessage.getType() == ChatMessageType.MODCHAT)
|
||||
{
|
||||
if (client.getWorldType().contains(WorldType.LEAGUE))
|
||||
{
|
||||
// Get ironman status from for the local player
|
||||
ironmanStatus = hiscoreEndpoint;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get ironman status from their icon in chat
|
||||
ironmanStatus = getHiscoreEndpointByName(chatMessage.getName());
|
||||
return new HiscoreLookup(player, HiscoreEndpoint.LEAGUE);
|
||||
}
|
||||
}
|
||||
|
||||
return new HiscoreLookup(player, ironmanStatus);
|
||||
// Get ironman status from their icon in chat
|
||||
HiscoreEndpoint endpoint = getHiscoreEndpointByName(chatMessage.getName());
|
||||
return new HiscoreLookup(player, endpoint);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1220,6 +1220,12 @@ public class ChatCommandsPlugin extends Plugin
|
||||
*/
|
||||
private HiscoreEndpoint getLocalHiscoreEndpointType()
|
||||
{
|
||||
EnumSet<WorldType> worldType = client.getWorldType();
|
||||
if (worldType.contains(WorldType.LEAGUE))
|
||||
{
|
||||
return HiscoreEndpoint.LEAGUE;
|
||||
}
|
||||
|
||||
return toEndPoint(client.getAccountType());
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,6 @@ package net.runelite.client.plugins.chatnotifications;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.inject.Provides;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -41,17 +40,17 @@ import javax.inject.Singleton;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.util.Text;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.RuneLiteProperties;
|
||||
import net.runelite.client.chat.ChatColorType;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.api.util.Text;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Chat Notifications",
|
||||
|
||||
@@ -127,7 +127,7 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
||||
.put(new WorldPoint(3058, 3884, 0), "Wilderness. Near runite ore north of Lava Maze.")
|
||||
.put(new WorldPoint(3290, 3889, 0), "Wilderness. Demonic Ruins.")
|
||||
.put(new WorldPoint(3770, 3897, 0), "Small Island north of Fossil Island.")
|
||||
.put(new WorldPoint(2505, 3899, 0), "Small Island north-east of Miscellania (AJS).")
|
||||
.put(new WorldPoint(2505, 3899, 0), "Small Island north-west of Miscellania (AJS).")
|
||||
.put(new WorldPoint(3285, 3942, 0), "Wilderness. Rogues' Castle.")
|
||||
.put(new WorldPoint(3159, 3959, 0), "Wilderness. North of Deserted Keep, west of Resource Area.")
|
||||
.put(new WorldPoint(3039, 3960, 0), "Wilderness. Pirates' Hideout.")
|
||||
|
||||
@@ -68,6 +68,10 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
"Jorral",
|
||||
"Speak to Jorral to receive a strange device.",
|
||||
new WorldPoint(2436, 3347, 0));
|
||||
private static final HotColdClue MASTER_CLUE_LEAGUE = new HotColdClue("Buried beneath the ground, who knows where it's found. Lucky for you, A man called Watson may have a clue.",
|
||||
"Watson",
|
||||
"Speak to Watson to receive a strange device.",
|
||||
new WorldPoint(1645, 3572, 0));
|
||||
|
||||
private final String text;
|
||||
private final String npc;
|
||||
@@ -89,6 +93,11 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
MASTER_CLUE.reset();
|
||||
return MASTER_CLUE;
|
||||
}
|
||||
else if (MASTER_CLUE_LEAGUE.text.equalsIgnoreCase(text))
|
||||
{
|
||||
MASTER_CLUE_LEAGUE.reset();
|
||||
return MASTER_CLUE_LEAGUE;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -272,11 +281,11 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
|
||||
final Set<HotColdTemperature> temperatureSet;
|
||||
|
||||
if (this.equals(BEGINNER_CLUE))
|
||||
if (this == BEGINNER_CLUE)
|
||||
{
|
||||
temperatureSet = HotColdTemperature.BEGINNER_HOT_COLD_TEMPERATURES;
|
||||
}
|
||||
else if (this.equals(MASTER_CLUE))
|
||||
else if (this == MASTER_CLUE || this == MASTER_CLUE_LEAGUE)
|
||||
{
|
||||
temperatureSet = HotColdTemperature.MASTER_HOT_COLD_TEMPERATURES;
|
||||
}
|
||||
@@ -300,8 +309,9 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((this.equals(BEGINNER_CLUE) && temperature == HotColdTemperature.BEGINNER_VISIBLY_SHAKING)
|
||||
|| (this.equals(MASTER_CLUE) && temperature == HotColdTemperature.MASTER_VISIBLY_SHAKING))
|
||||
boolean master = this == MASTER_CLUE || this == MASTER_CLUE_LEAGUE;
|
||||
if ((this == BEGINNER_CLUE && temperature == HotColdTemperature.BEGINNER_VISIBLY_SHAKING)
|
||||
|| (master && temperature == HotColdTemperature.MASTER_VISIBLY_SHAKING))
|
||||
{
|
||||
markFinalSpot(localWorld);
|
||||
}
|
||||
@@ -327,11 +337,11 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
{
|
||||
final boolean isBeginner;
|
||||
|
||||
if (this.equals(BEGINNER_CLUE))
|
||||
if (this == BEGINNER_CLUE)
|
||||
{
|
||||
isBeginner = true;
|
||||
}
|
||||
else if (this.equals(MASTER_CLUE))
|
||||
else if (this == MASTER_CLUE || this == MASTER_CLUE_LEAGUE)
|
||||
{
|
||||
isBeginner = false;
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ public class SkillChallengeClue extends ClueScroll implements NpcClueScroll
|
||||
new SkillChallengeClue("Mine a piece of mithril ore.", ANY_PICKAXE),
|
||||
new SkillChallengeClue("Smith a mithril 2h sword.", item(ItemID.HAMMER), xOfItem(ItemID.MITHRIL_BAR, 3)),
|
||||
new SkillChallengeClue("Catch a raw shark.", ANY_HARPOON),
|
||||
new SkillChallengeClue("Chop a yew tree.", ANY_AXE),
|
||||
new SkillChallengeClue("Cut a yew log.", ANY_AXE),
|
||||
new SkillChallengeClue("Fix a magical lamp in Dorgesh-Kaan.", item(ItemID.LIGHT_ORB)),
|
||||
new SkillChallengeClue("Burn a yew log.", item(ItemID.YEW_LOGS), item(ItemID.TINDERBOX)),
|
||||
new SkillChallengeClue("Cook a swordfish", "cook a swordfish", item(ItemID.RAW_SWORDFISH)),
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package net.runelite.client.plugins.combatcounter;
|
||||
|
||||
import java.awt.Color;
|
||||
import net.runelite.client.config.Alpha;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
|
||||
import java.awt.*;
|
||||
import net.runelite.client.config.ConfigTitleSection;
|
||||
import net.runelite.client.config.Title;
|
||||
|
||||
@@ -57,7 +56,7 @@ public interface CombatCounterConfig extends Config
|
||||
{
|
||||
return new Title();
|
||||
}
|
||||
|
||||
|
||||
@Alpha
|
||||
@ConfigItem(
|
||||
keyName = "selfColor",
|
||||
@@ -70,7 +69,7 @@ public interface CombatCounterConfig extends Config
|
||||
{
|
||||
return Color.green;
|
||||
}
|
||||
|
||||
|
||||
@Alpha
|
||||
@ConfigItem(
|
||||
keyName = "totalColor",
|
||||
@@ -83,7 +82,7 @@ public interface CombatCounterConfig extends Config
|
||||
{
|
||||
return Color.RED;
|
||||
}
|
||||
|
||||
|
||||
@Alpha
|
||||
@ConfigItem(
|
||||
keyName = "otherColor",
|
||||
@@ -96,7 +95,7 @@ public interface CombatCounterConfig extends Config
|
||||
{
|
||||
return Color.white;
|
||||
}
|
||||
|
||||
|
||||
@Alpha
|
||||
@ConfigItem(
|
||||
keyName = "bgColor",
|
||||
@@ -109,7 +108,7 @@ public interface CombatCounterConfig extends Config
|
||||
{
|
||||
return new Color(70, 61, 50, 156);
|
||||
}
|
||||
|
||||
|
||||
@Alpha
|
||||
@ConfigItem(
|
||||
keyName = "titleColor",
|
||||
|
||||
@@ -48,7 +48,6 @@ import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.ItemDespawned;
|
||||
import net.runelite.api.events.LocalPlayerDeath;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
import net.runelite.api.events.MenuOpened;
|
||||
import net.runelite.api.events.MenuOptionClicked;
|
||||
@@ -80,6 +79,7 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
static final int HIJACKED_ITEMID = 0x69696969;
|
||||
|
||||
private static final Set<Integer> RESPAWN_REGIONS = ImmutableSet.of(
|
||||
6457, // Kourend
|
||||
12850, // Lumbridge
|
||||
11828, // Falador
|
||||
12342, // Edgeville
|
||||
@@ -197,7 +197,7 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath);
|
||||
eventBus.subscribe(PlayerDeath.class, this, this::onPlayerDeath);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
if (config.permaBones())
|
||||
@@ -209,7 +209,6 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
private void addBoneSubs()
|
||||
{
|
||||
eventBus.subscribe(ItemDespawned.class, BONES, this::onItemDespawn);
|
||||
eventBus.subscribe(PlayerDeath.class, BONES, this::onPlayerDeath);
|
||||
eventBus.subscribe(MenuEntryAdded.class, BONES, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(MenuOptionClicked.class, BONES, this::onMenuOptionClicked);
|
||||
eventBus.subscribe(MenuOpened.class, BONES, this::onMenuOpened);
|
||||
@@ -230,7 +229,26 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
|
||||
private void onPlayerDeath(PlayerDeath death)
|
||||
{
|
||||
newBoneFor(death.getPlayer());
|
||||
if (client.isInInstancedRegion())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Player player = death.getPlayer();
|
||||
|
||||
if (config.permaBones() && player.getWorldLocation().getRegionID() != 13362)
|
||||
{
|
||||
newBoneFor(player);
|
||||
}
|
||||
|
||||
if (player != client.getLocalPlayer())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
lastDeath = player.getWorldLocation();
|
||||
lastDeathWorld = client.getWorld();
|
||||
lastDeathTime = Instant.now();
|
||||
}
|
||||
|
||||
private void newBoneFor(Player player)
|
||||
@@ -301,24 +319,6 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
private void onLocalPlayerDeath(LocalPlayerDeath death)
|
||||
{
|
||||
if (client.isInInstancedRegion())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Player lp = client.getLocalPlayer();
|
||||
if (config.permaBones())
|
||||
{
|
||||
newBoneFor(lp);
|
||||
}
|
||||
|
||||
lastDeath = lp.getWorldLocation();
|
||||
lastDeathWorld = client.getWorld();
|
||||
lastDeathTime = Instant.now();
|
||||
}
|
||||
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
// Check if player respawned in a death respawn location
|
||||
|
||||
@@ -28,9 +28,11 @@ import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
|
||||
@ConfigGroup("defaultworld")
|
||||
@ConfigGroup(DefaultWorldConfig.GROUP)
|
||||
public interface DefaultWorldConfig extends Config
|
||||
{
|
||||
final String GROUP = "defaultworld";
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "defaultWorld",
|
||||
name = "Default world",
|
||||
@@ -40,4 +42,32 @@ public interface DefaultWorldConfig extends Config
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "useLastWorld",
|
||||
name = "Use Last World",
|
||||
description = "Use the last world you used as the default"
|
||||
)
|
||||
default boolean useLastWorld()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "lastWorld",
|
||||
name = "",
|
||||
description = "",
|
||||
hidden = true
|
||||
)
|
||||
default int lastWorld()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "lastWorld",
|
||||
name = "",
|
||||
description = ""
|
||||
)
|
||||
void lastWorld(int lastWorld);
|
||||
}
|
||||
@@ -107,6 +107,11 @@ public class DefaultWorldPlugin extends Plugin
|
||||
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
config.lastWorld(client.getWorld());
|
||||
}
|
||||
|
||||
applyWorld();
|
||||
}
|
||||
|
||||
@@ -170,7 +175,7 @@ public class DefaultWorldPlugin extends Plugin
|
||||
log.debug("Stored old world {}", worldCache);
|
||||
}
|
||||
|
||||
final int newWorld = config.getWorld();
|
||||
final int newWorld = !config.useLastWorld() ? config.getWorld() : config.lastWorld();
|
||||
changeWorld(newWorld);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,12 @@ enum Emoji
|
||||
PARTY_POPPER("@@@"),
|
||||
EYES("O.O"),
|
||||
SWEAT(";;"),
|
||||
PILE_OF_POO("~@~");
|
||||
PILE_OF_POO("~@~"),
|
||||
FIRE("(/\\)"),
|
||||
ALIEN("(@.@)"),
|
||||
EGGPLANT("8=D"),
|
||||
WAVE("(^_^)/"),
|
||||
HEART_EYES("(*.*)");
|
||||
|
||||
private static final Map<String, Emoji> emojiMap;
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.equipmentinspector;
|
||||
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
@@ -43,6 +43,7 @@ import net.runelite.api.Skill;
|
||||
import net.runelite.api.SpriteID;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.WorldType;
|
||||
import net.runelite.api.events.FakeXpDrop;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
@@ -145,6 +146,7 @@ public class XpDropPlugin extends Plugin
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(XpDropEvent.class, this, this::onXpDropEvent);
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
eventBus.subscribe(FakeXpDrop.class, this, this::onFakeXpDrop);
|
||||
}
|
||||
|
||||
private void onXpDropEvent(XpDropEvent event)
|
||||
@@ -351,6 +353,14 @@ public class XpDropPlugin extends Plugin
|
||||
client.runScript(XPDROP_DISABLED, lastSkill.ordinal(), previousExpGained);
|
||||
}
|
||||
|
||||
private void onFakeXpDrop(FakeXpDrop fakeXpDrop)
|
||||
{
|
||||
if (fakeXpDrop.getSkill() == Skill.HITPOINTS)
|
||||
{
|
||||
calculateDamageDealt(fakeXpDrop.getXp());
|
||||
}
|
||||
}
|
||||
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent e)
|
||||
{
|
||||
if (this.showdamagedrops == XpDropConfig.DamageMode.NONE)
|
||||
@@ -364,21 +374,6 @@ public class XpDropPlugin extends Plugin
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
// Handles Fake XP drops (Ironman, DMM Cap, 200m xp, etc)
|
||||
else if (eventName.equals("fakeXpDrop"))
|
||||
{
|
||||
final int[] intStack = client.getIntStack();
|
||||
final int intStackSize = client.getIntStackSize();
|
||||
|
||||
final int skillId = intStack[intStackSize - 2];
|
||||
final Skill skill = Skill.values()[skillId];
|
||||
|
||||
if (skill.equals(Skill.HITPOINTS))
|
||||
{
|
||||
final int exp = intStack[intStackSize - 1];
|
||||
calculateDamageDealt(exp);
|
||||
}
|
||||
}
|
||||
else if (eventName.equals("hpXpGained"))
|
||||
{
|
||||
final int[] intStack = client.getIntStack();
|
||||
|
||||
@@ -40,8 +40,8 @@ import net.runelite.api.WorldType;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.LocalPlayerDeath;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.PlayerDeath;
|
||||
import net.runelite.api.events.SpotAnimationChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
@@ -125,7 +125,7 @@ public class FreezeTimersPlugin extends Plugin
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath);
|
||||
eventBus.subscribe(PlayerDeath.class, this, this::onPlayerDeath);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
}
|
||||
@@ -207,7 +207,7 @@ public class FreezeTimersPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
private void onLocalPlayerDeath(LocalPlayerDeath event)
|
||||
private void onPlayerDeath(PlayerDeath event)
|
||||
{
|
||||
final Player localPlayer = client.getLocalPlayer();
|
||||
final long currentTime = System.currentTimeMillis();
|
||||
|
||||
@@ -108,9 +108,7 @@ public class GrandExchangePlugin extends Plugin
|
||||
private static final OSBGrandExchangeClient CLIENT = new OSBGrandExchangeClient();
|
||||
private static final String OSB_GE_TEXT = "<br>OSBuddy Actively traded price: ";
|
||||
private static final String BUY_LIMIT_GE_TEXT = "<br>Buy limit: ";
|
||||
private static final TypeToken<Map<Integer, Integer>> BUY_LIMIT_TOKEN = new TypeToken<Map<Integer, Integer>>()
|
||||
{
|
||||
};
|
||||
private static final TypeToken<Map<Integer, Integer>> BUY_LIMIT_TOKEN = new TypeToken<Map<Integer, Integer>>() {};
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private NavigationButton button;
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
searchBar.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
searchBar.setHoverBackgroundColor(ColorScheme.DARK_GRAY_HOVER_COLOR);
|
||||
searchBar.addActionListener(e -> executor.execute(() -> priceLookup(false)));
|
||||
searchBar.addClearListener(e -> updateSearch());
|
||||
|
||||
searchItemsPanel.setLayout(new GridBagLayout());
|
||||
searchItemsPanel.setBackground(ColorScheme.DARK_GRAY_COLOR);
|
||||
@@ -154,7 +155,7 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
executor.execute(() -> priceLookup(true));
|
||||
}
|
||||
|
||||
private void priceLookup(boolean exactMatch)
|
||||
private boolean updateSearch()
|
||||
{
|
||||
String lookup = searchBar.getText();
|
||||
|
||||
@@ -162,7 +163,7 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
{
|
||||
searchItemsPanel.removeAll();
|
||||
SwingUtilities.invokeLater(searchItemsPanel::updateUI);
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Input is not empty, add searching label
|
||||
@@ -170,8 +171,17 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
searchBar.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
searchBar.setEditable(false);
|
||||
searchBar.setIcon(IconTextField.Icon.LOADING);
|
||||
return true;
|
||||
}
|
||||
|
||||
List<ItemPrice> result = itemManager.search(lookup);
|
||||
private void priceLookup(boolean exactMatch)
|
||||
{
|
||||
if (!updateSearch())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
List<ItemPrice> result = itemManager.search(searchBar.getText());
|
||||
if (result.isEmpty())
|
||||
{
|
||||
searchBar.setIcon(IconTextField.Icon.ERROR);
|
||||
@@ -182,7 +192,7 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
}
|
||||
|
||||
// move to client thread to lookup item composition
|
||||
clientThread.invokeLater(() -> processResult(result, lookup, exactMatch));
|
||||
clientThread.invokeLater(() -> processResult(result, searchBar.getText(), exactMatch));
|
||||
}
|
||||
|
||||
private void processResult(List<ItemPrice> result, String lookup, boolean exactMatch)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user