Merge branch 'master' into rebasetob
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
name: OpenOSRS - CI (PR)
|
||||
|
||||
on: pull_request
|
||||
on:
|
||||
pull_request:
|
||||
types: ['opened', 'edited', 'reopened', 'synchronize']
|
||||
|
||||
jobs:
|
||||
pr-lint:
|
||||
@@ -10,7 +12,7 @@ jobs:
|
||||
steps:
|
||||
- name: PR title lint
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: seferov/pr-lint-action@master
|
||||
uses: seferov/pr-lint-action@v1.0.3
|
||||
with:
|
||||
title-regex: '^([\w-/]+): \w+'
|
||||
|
||||
@@ -35,7 +37,7 @@ jobs:
|
||||
- name: Assembling
|
||||
run: ./gradlew assemble --console=plain
|
||||
- name: Building
|
||||
run: ./gradlew build --stacktrace -x test -x checkstyleMain --console=plain
|
||||
run: ./gradlew build --stacktrace -x test -x checkstyleMain -x checkstyleTest --console=plain
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -116,4 +118,4 @@ jobs:
|
||||
if: github.event_name == 'pull_request' && github.actor == 'OpenOSRS'
|
||||
uses: hmarr/auto-approve-action@v2.0.0
|
||||
with:
|
||||
github-token: ${{ secrets.Owain }}
|
||||
github-token: ${{ secrets.Owain }}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,15 +2,17 @@
|
||||
|
||||
|
||||
|
||||
# OpenOSRS
|
||||
# OpenOSRS
|
||||
|
||||
[/badge.svg)](https://github.com/open-osrs/runelite/actions?query=workflow%3A%22OpenOSRS+-+CI+%28push%29%22)
|
||||
[](http://hits.dwyl.io/open-osrs/runelite)
|
||||
[OpenOSRS](https://openosrs.com) is an extended version of [RuneLite](https://github.com/runelite/runelite) that provides more functionality and less restrictions while staying more open-source. We are not affiliated with RuneLite.
|
||||
[OpenOSRS](https://openosrs.com) is an extended version of [RuneLite](https://github.com/runelite/runelite) that provides more functionality and less restrictions while staying fully open-source. We are not affiliated with RuneLite.
|
||||
|
||||
## Discord
|
||||
|
||||
## Discord
|
||||
[](https://discord.gg/HN5gf3m)
|
||||
|
||||
## Project Layout
|
||||
## Project Layout
|
||||
|
||||
- [cache](cache/src/main/java/net/runelite/cache) - Libraries used for reading/writing cache files, as well as the data in it
|
||||
- [deobfuscator](deobfuscator/src/main/java/net/runelite/deob) - Can decompile and cleanup gamepacks as well as map updates to newer revs
|
||||
@@ -23,38 +25,18 @@
|
||||
- [runescape-api](runescape-api/src/main/java/net/runelite) - Mappings correspond to these interfaces, runelite-api is a subset of this
|
||||
- [runelite-client](runelite-client/src/main/java/net/runelite/client) - Game client with plugins
|
||||
|
||||
## Building
|
||||
## Building
|
||||
|
||||
We have migrated the project to Gradle. Information on how to setup and build the project can be found at https://github.com/open-osrs/runelite/wiki/Building-with-IntelliJ-IDEA
|
||||
|
||||
## Private Servers
|
||||
Currently we support RSMod which can be found at: https://github.com/Tomm0017/rsmod but should work with any server that follows osrs protocol.
|
||||
```
|
||||
Gradle
|
||||
enter
|
||||
run --args='--rs=RSPS'
|
||||
into the tasks box
|
||||
|
||||
Jar
|
||||
Use -rs=RSPS arg.
|
||||
|
||||
Exe
|
||||
Use --clientargs="--rs=RSPS" arg.
|
||||
|
||||
-----
|
||||
|
||||
Codebase is set to 127.0.0.1 by default and can be changed in the Private Server plugin (requires restart)
|
||||
Update modulus in Private Server plugin.
|
||||
|
||||
Disable Default World plugin if you have it enabled, this causes issues with codebase.
|
||||
```
|
||||
## License
|
||||
## License
|
||||
|
||||
OpenOSRS is licensed under the BSD 2-clause license. See the license header in the respective file to be sure.
|
||||
|
||||
## Contribute and Develop
|
||||
## Contribute and Develop
|
||||
|
||||
We've set up a separate document for our [contribution guidelines](https://github.com/open-osrs/runelite/blob/master/.github/CONTRIBUTING.md).
|
||||
|
||||
## Supported By
|
||||
## Supported By
|
||||
|
||||
OpenOSRS uses profiling tools provided by [](https://www.yourkit.com/java/profiler/)
|
||||
|
||||
@@ -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)
|
||||
@@ -27,10 +23,10 @@ open class BootstrapTask : DefaultTask() {
|
||||
val launcherArguments = arrayOf("-XX:+DisableAttachMechanism", "-Drunelite.launcher.nojvm=true", "-Xmx512m", "-Xss2m", "-XX:CompileThreshold=1500", "-Xincgc", "-XX:+UseConcMarkSweepGC", "-XX:+UseParNewGC", "-Djna.nosys=true")
|
||||
|
||||
@Input
|
||||
val clientJvmArguments = arrayOf("-XX:+DisableAttachMechanism", "-Xmx512m", "-Xss2m", "-XX:CompileThreshold=1500", "-Xincgc", "-XX:+UseConcMarkSweepGC", "-XX:+UseParNewGC", "-Djna.nosys=true")
|
||||
val clientJvmArguments = arrayOf("-XX:+DisableAttachMechanism", "-Xmx512m", "-Xss2m", "-XX:CompileThreshold=1500", "-Xincgc", "-XX:+UseConcMarkSweepGC", "-XX:+UseParNewGC", "-Djna.nosys=true", "-Dawt.useSystemAAFontSettings=on", "-Dswing.aatext=true")
|
||||
|
||||
@Input
|
||||
val clientJvm9Arguments = arrayOf("-XX:+DisableAttachMechanism", "-Xmx512m", "-Xss2m", "-XX:CompileThreshold=1500", "-Djna.nosys=true")
|
||||
val clientJvm9Arguments = arrayOf("-XX:+DisableAttachMechanism", "-Xmx512m", "-Xss2m", "-XX:CompileThreshold=1500", "-Djna.nosys=true", "-Dawt.useSystemAAFontSettings=on", "-Dswing.aatext=true")
|
||||
|
||||
private fun hash(file: ByteArray): String {
|
||||
return MessageDigest.getInstance("SHA-256").digest(file).fold("", { str, it -> str + "%02x".format(it) })
|
||||
@@ -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,
|
||||
@@ -103,4 +100,4 @@ open class BootstrapTask : DefaultTask() {
|
||||
out.println(json)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@ const val kotlinVersion = "1.3.50"
|
||||
|
||||
object ProjectVersions {
|
||||
const val launcherVersion = "2.0.4"
|
||||
const val rlVersion = "1.5.40-SNAPSHOT"
|
||||
const val rlVersion = "1.5.42"
|
||||
|
||||
const val openosrsVersion = "2.1.12.0-SNAPSHOT"
|
||||
const val openosrsVersion = "2.1.15.0"
|
||||
|
||||
const val rsversion = 185
|
||||
const val rsversion = 186
|
||||
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>
|
||||
|
||||
@@ -90,4 +90,25 @@ tasks {
|
||||
filter(ReplaceTokens::class, "tokens" to tokens)
|
||||
filteringCharset = "UTF-8"
|
||||
}
|
||||
|
||||
register<JavaExec>("Downloader.main()") {
|
||||
group = "gamepack"
|
||||
|
||||
classpath = project.sourceSets.main.get().runtimeClasspath
|
||||
main = "net.runelite.gamepack.Downloader"
|
||||
}
|
||||
|
||||
register<JavaExec>("Deob.main()") {
|
||||
group = "gamepack"
|
||||
|
||||
classpath = project.sourceSets.main.get().runtimeClasspath
|
||||
main = "net.runelite.deob.Deob"
|
||||
}
|
||||
|
||||
register<JavaExec>("UpdateMappings.main()") {
|
||||
group = "gamepack"
|
||||
|
||||
classpath = project.sourceSets.main.get().runtimeClasspath
|
||||
main = "net.runelite.deob.updater.UpdateMappings"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-4
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ArrayStoreInstruction extends MappableInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ArrayStoreInstruction extends MappableInstruction {}
|
||||
|
||||
+1
-4
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ComparisonInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ComparisonInstruction {}
|
||||
|
||||
+1
-4
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ConversionInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ConversionInstruction {}
|
||||
|
||||
+1
-3
@@ -25,6 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface GetFieldInstruction extends FieldInstruction
|
||||
{
|
||||
}
|
||||
public interface GetFieldInstruction extends FieldInstruction {}
|
||||
|
||||
+1
-4
@@ -25,7 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface ReturnInstruction
|
||||
{
|
||||
|
||||
}
|
||||
public interface ReturnInstruction {}
|
||||
|
||||
+1
-3
@@ -25,6 +25,4 @@
|
||||
|
||||
package net.runelite.asm.attributes.code.instruction.types;
|
||||
|
||||
public interface SetFieldInstruction extends FieldInstruction, MappableInstruction
|
||||
{
|
||||
}
|
||||
public interface SetFieldInstruction extends FieldInstruction, MappableInstruction {}
|
||||
|
||||
-1
@@ -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);
|
||||
}
|
||||
|
||||
-1
@@ -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;
|
||||
@@ -58,4 +57,9 @@ public class Downloader
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
gamepack();
|
||||
}
|
||||
}
|
||||
+1
-4
@@ -24,7 +24,4 @@
|
||||
*/
|
||||
package net.runelite.deob.deobfuscators.unusedclass;
|
||||
|
||||
public class EmptyClass
|
||||
{
|
||||
|
||||
}
|
||||
public class EmptyClass {}
|
||||
|
||||
+1
-4
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
package net.runelite.http.api.worlds;
|
||||
|
||||
import com.google.gson.JsonParseException;
|
||||
import io.reactivex.Observable;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import javax.inject.Inject;
|
||||
@@ -50,7 +50,7 @@ public class WorldClient
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
public Observable<WorldResult> lookupWorlds()
|
||||
public WorldResult lookupWorlds() throws IOException
|
||||
{
|
||||
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
|
||||
.addPathSegment("worlds.js")
|
||||
@@ -58,27 +58,24 @@ public class WorldClient
|
||||
|
||||
logger.debug("Built URI: {}", url);
|
||||
|
||||
return Observable.defer(() ->
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.build();
|
||||
|
||||
try (Response response = client.newCall(request).execute())
|
||||
{
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.build();
|
||||
|
||||
try (Response response = client.newCall(request).execute())
|
||||
if (!response.isSuccessful())
|
||||
{
|
||||
if (!response.isSuccessful())
|
||||
{
|
||||
logger.debug("Error looking up worlds: {}", response);
|
||||
return Observable.just(null);
|
||||
}
|
||||
logger.debug("Error looking up worlds: {}", response);
|
||||
throw new IOException("unsuccessful response looking up worlds");
|
||||
}
|
||||
|
||||
InputStream in = response.body().byteStream();
|
||||
return Observable.just(RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), WorldResult.class));
|
||||
}
|
||||
catch (JsonParseException ex)
|
||||
{
|
||||
return Observable.error(ex);
|
||||
}
|
||||
});
|
||||
InputStream in = response.body().byteStream();
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), WorldResult.class);
|
||||
}
|
||||
catch (JsonParseException ex)
|
||||
{
|
||||
throw new IOException(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)
|
||||
|
||||
@@ -47,6 +47,7 @@ public class ChatController
|
||||
{
|
||||
private static final Pattern STRING_VALIDATION = Pattern.compile("[^a-zA-Z0-9' -]");
|
||||
private static final int STRING_MAX_LENGTH = 50;
|
||||
private static final int MAX_LAYOUT_ROOMS = 16;
|
||||
|
||||
private final Cache<KillCountKey, Integer> killCountCache = CacheBuilder.newBuilder()
|
||||
.expireAfterWrite(2, TimeUnit.MINUTES)
|
||||
@@ -214,6 +215,11 @@ public class ChatController
|
||||
@PostMapping("/layout")
|
||||
public void submitLayout(@RequestParam String name, @RequestBody LayoutRoom[] rooms)
|
||||
{
|
||||
if (rooms.length > MAX_LAYOUT_ROOMS)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
chatService.setLayout(name, rooms);
|
||||
}
|
||||
|
||||
|
||||
+1
-3
@@ -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);
|
||||
}
|
||||
|
||||
+1
-2
@@ -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
|
||||
{
|
||||
|
||||
+1
-4
@@ -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;
|
||||
|
||||
+4
-2
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,34 +32,46 @@ plugins {
|
||||
id("com.openosrs.injector")
|
||||
}
|
||||
|
||||
val vanillaDep by configurations.creating
|
||||
val rsapiDep by configurations.creating
|
||||
val rsclientDep by configurations.creating
|
||||
val mixinsDep by configurations.creating
|
||||
val combined by configurations.creating {
|
||||
extendsFrom(rsapiDep, rsclientDep, mixinsDep, vanillaDep)
|
||||
isCanBeResolved = true
|
||||
isCanBeConsumed = false
|
||||
}
|
||||
|
||||
configurations {
|
||||
create("vanilla")
|
||||
create("injected-client")
|
||||
all {
|
||||
isTransitive = false
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
"vanilla"(Libraries.vanilla)
|
||||
vanillaDep(Libraries.vanilla)
|
||||
rsapiDep(project(":runescape-api"))
|
||||
rsclientDep(project(":runescape-client"))
|
||||
mixinsDep(project(":runelite-mixins"))
|
||||
}
|
||||
|
||||
injector {
|
||||
mixins.set(tasks.getByPath(":runelite-mixins:jar").outputs.files.singleFile)
|
||||
rsapi.set(tasks.getByPath(":runescape-api:jar").outputs.files.singleFile)
|
||||
rsclient.set(tasks.getByPath(":runescape-client:jar").outputs.files.singleFile)
|
||||
vanilla.set(project.file(configurations["vanilla"].asPath))
|
||||
mixins.set(mixinsDep.singleFile)
|
||||
rsapi.set(rsapiDep.singleFile)
|
||||
rsclient.set(rsclientDep.singleFile)
|
||||
vanilla.set(vanillaDep.singleFile)
|
||||
}
|
||||
|
||||
artifacts {
|
||||
add("runtimeOnly", tasks.inject.get().output) {
|
||||
builtBy(tasks.inject)
|
||||
sourceSets {
|
||||
main {
|
||||
output.dir(tasks.inject.get().output.get().asFile.parentFile, "builtBy" to tasks.inject)
|
||||
}
|
||||
}
|
||||
|
||||
// keep the sourcesets etc but remove useless tasks
|
||||
tasks {
|
||||
build {
|
||||
dependsOn(":runelite-mixins:build")
|
||||
dependsOn(":runescape-api:build")
|
||||
dependsOn(":runescape-client:build")
|
||||
inject {
|
||||
dependsOn(configurations["combined"])
|
||||
}
|
||||
classes {
|
||||
enabled = false
|
||||
@@ -73,4 +85,4 @@ tasks {
|
||||
processResources {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,4 @@
|
||||
*/
|
||||
package net.runelite.protocol.api.handshake;
|
||||
|
||||
public abstract class HandshakePacket
|
||||
{
|
||||
|
||||
}
|
||||
public abstract class HandshakePacket {}
|
||||
|
||||
+1
-4
@@ -29,7 +29,4 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class LoginHandshakePacket extends HandshakePacket
|
||||
{
|
||||
|
||||
}
|
||||
public class LoginHandshakePacket extends HandshakePacket {}
|
||||
|
||||
@@ -148,6 +148,10 @@ public enum ChatMessageType
|
||||
* A message that times out after 10 seconds.
|
||||
*/
|
||||
TENSECTIMEOUT(107),
|
||||
/**
|
||||
* The "Welcome to RuneScape" message
|
||||
*/
|
||||
WELCOME(108),
|
||||
/**
|
||||
* An unknown message type.
|
||||
*/
|
||||
|
||||
@@ -341,11 +341,12 @@ public interface Client extends GameShell
|
||||
* Gets the logged in player instance.
|
||||
*
|
||||
* @return the logged in player
|
||||
*
|
||||
* <p>
|
||||
* (getLocalPlayerIndex returns the local index, useful for menus/interacting)
|
||||
*/
|
||||
@Nullable
|
||||
Player getLocalPlayer();
|
||||
|
||||
int getLocalPlayerIndex();
|
||||
|
||||
/**
|
||||
@@ -957,36 +958,42 @@ public interface Client extends GameShell
|
||||
|
||||
/**
|
||||
* Gets the music volume
|
||||
*
|
||||
* @return volume 0-255 inclusive
|
||||
*/
|
||||
int getMusicVolume();
|
||||
|
||||
/**
|
||||
* Sets the music volume
|
||||
*
|
||||
* @param volume 0-255 inclusive
|
||||
*/
|
||||
void setMusicVolume(int volume);
|
||||
|
||||
/**
|
||||
* Gets the sound effect volume
|
||||
*
|
||||
* @return volume 0-127 inclusive
|
||||
*/
|
||||
int getSoundEffectVolume();
|
||||
|
||||
/**
|
||||
* Sets the sound effect volume
|
||||
*
|
||||
* @param volume 0-127 inclusive
|
||||
*/
|
||||
void setSoundEffectVolume(int volume);
|
||||
|
||||
/**
|
||||
* Gets the area sound effect volume
|
||||
*
|
||||
* @return volume 0-127 inclusive
|
||||
*/
|
||||
int getAreaSoundEffectVolume();
|
||||
|
||||
/**
|
||||
* Sets the area sound effect volume
|
||||
*
|
||||
* @param volume 0-127 inclusive
|
||||
*/
|
||||
void setAreaSoundEffectVolume(int volume);
|
||||
@@ -1554,6 +1561,13 @@ public interface Client extends GameShell
|
||||
*/
|
||||
void setNPCsHidden2D(boolean state);
|
||||
|
||||
/**
|
||||
* Sets whether Pets from other players are hidden.
|
||||
*
|
||||
* @param state new pet hidden state
|
||||
*/
|
||||
void setPetsHidden(boolean state);
|
||||
|
||||
/**
|
||||
* Sets whether attacking players or NPCs are hidden.
|
||||
*
|
||||
@@ -1777,7 +1791,7 @@ public interface Client extends GameShell
|
||||
/**
|
||||
* @param param0 This is SceneX for gameObject, index for items, and 0 for npc.
|
||||
* @param param1 This is SceneY for gameObject, static for items, and 0 for npc.
|
||||
* @param opcode Menu entry Action opcode.
|
||||
* @param opcode Menu entry Action opcode.
|
||||
* @param id Targets ID
|
||||
* @param menuEntry Do these actually matter?
|
||||
* @param targetString Do these actually matter?
|
||||
@@ -1865,26 +1879,25 @@ public interface Client extends GameShell
|
||||
/**
|
||||
* Scales values from pixels onto canvas
|
||||
*
|
||||
* @see net.runelite.client.util.ImageUtil#resizeSprite(Client, Sprite, int, int)
|
||||
*
|
||||
* @param canvas the array we're writing to
|
||||
* @param pixels pixels to draw
|
||||
* @param color should be 0
|
||||
* @param pixelX x index
|
||||
* @param pixelY y index
|
||||
* @param canvasIdx index in canvas (canvas[canvasIdx])
|
||||
* @param canvas the array we're writing to
|
||||
* @param pixels pixels to draw
|
||||
* @param color should be 0
|
||||
* @param pixelX x index
|
||||
* @param pixelY y index
|
||||
* @param canvasIdx index in canvas (canvas[canvasIdx])
|
||||
* @param canvasOffset x offset
|
||||
* @param newWidth new width
|
||||
* @param newHeight new height
|
||||
* @param pixelWidth pretty much horizontal scale
|
||||
* @param pixelHeight pretty much vertical scale
|
||||
* @param oldWidth old width
|
||||
* @param newWidth new width
|
||||
* @param newHeight new height
|
||||
* @param pixelWidth pretty much horizontal scale
|
||||
* @param pixelHeight pretty much vertical scale
|
||||
* @param oldWidth old width
|
||||
* @see net.runelite.client.util.ImageUtil#resizeSprite(Client, Sprite, int, int)
|
||||
*/
|
||||
void scaleSprite(int[] canvas, int[] pixels, int color, int pixelX, int pixelY, int canvasIdx, int canvasOffset, int newWidth, int newHeight, int pixelWidth, int pixelHeight, int oldWidth);
|
||||
|
||||
/**
|
||||
* Get the MenuEntry at client.getMenuOptionCount() - 1
|
||||
*
|
||||
* <p>
|
||||
* This is useful so you don't have to use getMenuEntries,
|
||||
* which will create a big array, when you only want to change
|
||||
* the left click one.
|
||||
@@ -1893,7 +1906,7 @@ public interface Client extends GameShell
|
||||
|
||||
/**
|
||||
* Set the MenuEntry at client.getMenuOptionCount() - 1
|
||||
*
|
||||
* <p>
|
||||
* This is useful so you don't have to use setMenuEntries,
|
||||
* which will arraycopy a big array to several smaller arrays lol,
|
||||
* when you only want to change the left click one.
|
||||
|
||||
@@ -27,6 +27,4 @@ package net.runelite.api;
|
||||
/**
|
||||
* Represents the friend and ignore list manager.
|
||||
*/
|
||||
public interface FriendManager
|
||||
{
|
||||
}
|
||||
public interface FriendManager {}
|
||||
|
||||
@@ -98,13 +98,14 @@ public enum InventoryID
|
||||
|
||||
public static InventoryID getValue(int value)
|
||||
{
|
||||
for (InventoryID e: InventoryID.values())
|
||||
for (InventoryID e : InventoryID.values())
|
||||
{
|
||||
if (e.id == value)
|
||||
{
|
||||
return e;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
throw new IllegalArgumentException("No InventoryID with id " + value + " exists");
|
||||
}
|
||||
}
|
||||
@@ -11327,5 +11327,45 @@ public final class ItemID
|
||||
public static final int BOUNTY_HUNTER_HAT_TIER_4 = 24344;
|
||||
public static final int BOUNTY_HUNTER_HAT_TIER_5 = 24346;
|
||||
public static final int BOUNTY_HUNTER_HAT_TIER_6 = 24348;
|
||||
public static final int SCROLL_BOX_BEGINNER = 24361;
|
||||
public static final int SCROLL_BOX_EASY = 24362;
|
||||
public static final int SCROLL_BOX_MEDIUM = 24363;
|
||||
public static final int SCROLL_BOX_HARD = 24364;
|
||||
public static final int SCROLL_BOX_ELITE = 24365;
|
||||
public static final int SCROLL_BOX_MASTER = 24366;
|
||||
public static final int CABBAGE_24367 = 24367;
|
||||
public static final int TWISTED_SLAYER_HELMET = 24370;
|
||||
public static final int TWISTED_LEAGUE_DRAGON_TROPHY = 24372;
|
||||
public static final int TWISTED_LEAGUE_RUNE_TROPHY = 24374;
|
||||
public static final int TWISTED_LEAGUE_ADAMANT_TROPHY = 24376;
|
||||
public static final int TWISTED_LEAGUE_MITHRIL_TROPHY = 24378;
|
||||
public static final int TWISTED_LEAGUE_STEEL_TROPHY = 24380;
|
||||
public static final int TWISTED_LEAGUE_IRON_TROPHY = 24382;
|
||||
public static final int TWISTED_LEAGUE_BRONZE_TROPHY = 24384;
|
||||
public static final int TWISTED_HAT_T3 = 24387;
|
||||
public static final int TWISTED_COAT_T3 = 24389;
|
||||
public static final int TWISTED_TROUSERS_T3 = 24391;
|
||||
public static final int TWISTED_BOOTS_T3 = 24393;
|
||||
public static final int TWISTED_CANE = 24395;
|
||||
public static final int TWISTED_HAT_T2 = 24397;
|
||||
public static final int TWISTED_COAT_T2 = 24399;
|
||||
public static final int TWISTED_TROUSERS_T2 = 24401;
|
||||
public static final int TWISTED_BOOTS_T2 = 24403;
|
||||
public static final int TWISTED_HAT_T1 = 24405;
|
||||
public static final int TWISTED_COAT_T1 = 24407;
|
||||
public static final int TWISTED_TROUSERS_T1 = 24409;
|
||||
public static final int TWISTED_BOOTS_T1 = 24411;
|
||||
public static final int TWISTED_LEAGUE_BANNER = 24413;
|
||||
public static final int RUNE_POUCH_L = 24416;
|
||||
public static final int INQUISITORS_MACE = 24417;
|
||||
public static final int SIRENS_TOME = 24418;
|
||||
public static final int INQUISITORS_GREAT_HELM = 24419;
|
||||
public static final int INQUISITORS_HAUBERK = 24420;
|
||||
public static final int INQUISITORS_PLATESKIRT = 24421;
|
||||
public static final int NIGHTMARE_STAFF = 24422;
|
||||
public static final int HARMONISED_NIGHTMARE_STAFF = 24423;
|
||||
public static final int VOLATILE_NIGHTMARE_STAFF = 24424;
|
||||
public static final int ELDRITCH_NIGHTMARE_STAFF = 24425;
|
||||
public static final int CABBAGE_24426 = 24426;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -27,6 +27,4 @@ package net.runelite.api;
|
||||
/**
|
||||
* Detects when the window is focused or unfocused.
|
||||
*/
|
||||
public interface KeyFocusListener
|
||||
{
|
||||
}
|
||||
public interface KeyFocusListener {}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Magic fTail
|
||||
* 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;
|
||||
|
||||
public final class ModelID
|
||||
{
|
||||
public static final int ANVIL = 1251;
|
||||
public static final int WILLOW_TREE = 1570;
|
||||
public static final int SLAYER_SKILL_MODEL = 1733;
|
||||
public static final int FIREMAKING_SKILL_MODEL = 2260;
|
||||
public static final int STEEL_KITESHIELD = 2339;
|
||||
public static final int PURE_ESSENCE = 2349;
|
||||
public static final int RAW_TUNA = 2355;
|
||||
public static final int CLEAN_HERB = 2364;
|
||||
public static final int HAMMER = 2376;
|
||||
public static final int BLUE_WIZARD_HAT = 2483;
|
||||
public static final int CHISEL = 2489;
|
||||
public static final int HIGHWAYMAN_MASK = 2500;
|
||||
public static final int STEEL_PICKAXE = 2529;
|
||||
public static final int SHORTBOW = 2562;
|
||||
public static final int STEEL_LONGSWORD = 2602;
|
||||
public static final int STEEL_SWORD = 2604;
|
||||
public static final int STEEL_ARROW = 2711;
|
||||
public static final int PRAYER_SKILL_MODEL = 3325;
|
||||
public static final int STRENGTH_SKILL_MODEL = 3327;
|
||||
public static final int AGILITY_SKILL_MODEL = 3328;
|
||||
public static final int HEARTH = 3326;
|
||||
public static final int WATERING_CAN = 7331;
|
||||
public static final int SAW = 12309;
|
||||
public static final int FOOTPRINT = 19980;
|
||||
public static final int COOKING_SKILL_MODEL = 27611;
|
||||
}
|
||||
@@ -48,6 +48,8 @@ public interface NPCDefinition
|
||||
|
||||
boolean isClickable();
|
||||
|
||||
boolean isFollower();
|
||||
|
||||
/**
|
||||
* Gets whether the NPC is visible on the mini-map.
|
||||
*/
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
@@ -308,7 +308,8 @@ public final class NpcID
|
||||
public static final int FROG = 312;
|
||||
public static final int REACHER_313 = 313;
|
||||
public static final int DR_JEKYLL_314 = 314;
|
||||
public static final int PAUL = 317;
|
||||
public static final int LEAGUES_TUTOR = 315;
|
||||
public static final int LEAGUES_TUTOR_316 = 316;
|
||||
public static final int DARK_CORE = 318;
|
||||
public static final int CORPOREAL_BEAST = 319;
|
||||
public static final int DARK_ENERGY_CORE = 320;
|
||||
@@ -7160,6 +7161,7 @@ public final class NpcID
|
||||
public static final int REVENANT_DARK_BEAST = 7938;
|
||||
public static final int REVENANT_KNIGHT = 7939;
|
||||
public static final int REVENANT_DRAGON = 7940;
|
||||
public static final int PAUL = 7941;
|
||||
public static final int EMBLEM_TRADER_7943 = 7943;
|
||||
public static final int FISHING_SPOT_7946 = 7946;
|
||||
public static final int FISHING_SPOT_7947 = 7947;
|
||||
|
||||
@@ -12814,5 +12814,43 @@ public final class NullItemID
|
||||
public static final int NULL_24345 = 24345;
|
||||
public static final int NULL_24347 = 24347;
|
||||
public static final int NULL_24349 = 24349;
|
||||
public static final int NULL_24350 = 24350;
|
||||
public static final int NULL_24351 = 24351;
|
||||
public static final int NULL_24352 = 24352;
|
||||
public static final int NULL_24353 = 24353;
|
||||
public static final int NULL_24354 = 24354;
|
||||
public static final int NULL_24355 = 24355;
|
||||
public static final int NULL_24356 = 24356;
|
||||
public static final int NULL_24357 = 24357;
|
||||
public static final int NULL_24358 = 24358;
|
||||
public static final int NULL_24359 = 24359;
|
||||
public static final int NULL_24360 = 24360;
|
||||
public static final int NULL_24368 = 24368;
|
||||
public static final int NULL_24369 = 24369;
|
||||
public static final int NULL_24371 = 24371;
|
||||
public static final int NULL_24373 = 24373;
|
||||
public static final int NULL_24375 = 24375;
|
||||
public static final int NULL_24377 = 24377;
|
||||
public static final int NULL_24379 = 24379;
|
||||
public static final int NULL_24381 = 24381;
|
||||
public static final int NULL_24383 = 24383;
|
||||
public static final int NULL_24385 = 24385;
|
||||
public static final int NULL_24386 = 24386;
|
||||
public static final int NULL_24388 = 24388;
|
||||
public static final int NULL_24390 = 24390;
|
||||
public static final int NULL_24392 = 24392;
|
||||
public static final int NULL_24394 = 24394;
|
||||
public static final int NULL_24396 = 24396;
|
||||
public static final int NULL_24398 = 24398;
|
||||
public static final int NULL_24400 = 24400;
|
||||
public static final int NULL_24402 = 24402;
|
||||
public static final int NULL_24404 = 24404;
|
||||
public static final int NULL_24406 = 24406;
|
||||
public static final int NULL_24408 = 24408;
|
||||
public static final int NULL_24410 = 24410;
|
||||
public static final int NULL_24412 = 24412;
|
||||
public static final int NULL_24414 = 24414;
|
||||
public static final int NULL_24415 = 24415;
|
||||
public static final int NULL_24427 = 24427;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -13793,6 +13793,9 @@ public final class NullObjectID
|
||||
public static final int NULL_29134 = 29134;
|
||||
public static final int NULL_29135 = 29135;
|
||||
public static final int NULL_29150 = 29150;
|
||||
public static final int NULL_29154 = 29154;
|
||||
public static final int NULL_29155 = 29155;
|
||||
public static final int NULL_29156 = 29156;
|
||||
public static final int NULL_29228 = 29228;
|
||||
public static final int NULL_29229 = 29229;
|
||||
public static final int NULL_29265 = 29265;
|
||||
@@ -18041,6 +18044,8 @@ public final class NullObjectID
|
||||
public static final int NULL_37436 = 37436;
|
||||
public static final int NULL_37437 = 37437;
|
||||
public static final int NULL_37438 = 37438;
|
||||
public static final int NULL_37439 = 37439;
|
||||
public static final int NULL_37440 = 37440;
|
||||
public static final int NULL_37446 = 37446;
|
||||
public static final int NULL_37447 = 37447;
|
||||
public static final int NULL_37448 = 37448;
|
||||
@@ -18052,5 +18057,22 @@ public final class NullObjectID
|
||||
public static final int NULL_37455 = 37455;
|
||||
public static final int NULL_37456 = 37456;
|
||||
public static final int NULL_37457 = 37457;
|
||||
public static final int NULL_37467 = 37467;
|
||||
public static final int NULL_37468 = 37468;
|
||||
public static final int NULL_37469 = 37469;
|
||||
public static final int NULL_37470 = 37470;
|
||||
public static final int NULL_37471 = 37471;
|
||||
public static final int NULL_37472 = 37472;
|
||||
public static final int NULL_37473 = 37473;
|
||||
public static final int NULL_37474 = 37474;
|
||||
public static final int NULL_37475 = 37475;
|
||||
public static final int NULL_37476 = 37476;
|
||||
public static final int NULL_37477 = 37477;
|
||||
public static final int NULL_37478 = 37478;
|
||||
public static final int NULL_37479 = 37479;
|
||||
public static final int NULL_37480 = 37480;
|
||||
public static final int NULL_37481 = 37481;
|
||||
public static final int NULL_37490 = 37490;
|
||||
public static final int NULL_37491 = 37491;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -15349,9 +15349,6 @@ public final class ObjectID
|
||||
public static final int MAHOGANY_ADVENTURE_LOG = 29151;
|
||||
public static final int GILDED_ADVENTURE_LOG = 29152;
|
||||
public static final int MARBLE_ADVENTURE_LOG = 29153;
|
||||
public static final int BASIC_JEWELLERY_BOX = 29154;
|
||||
public static final int FANCY_JEWELLERY_BOX = 29155;
|
||||
public static final int ORNATE_JEWELLERY_BOX = 29156;
|
||||
public static final int BOSS_LAIR_DISPLAY = 29157;
|
||||
public static final int KRAKEN_DISPLAY = 29158;
|
||||
public static final int ZULRAH_DISPLAY = 29159;
|
||||
@@ -16927,7 +16924,7 @@ public final class ObjectID
|
||||
public static final int CORPOREAL_BEAST_DISPLAY = 31921;
|
||||
public static final int GILDED_ADVENTURE_LOG_31922 = 31922;
|
||||
public static final int ALTAR_OF_THE_OCCULT_31923 = 31923;
|
||||
public static final int ORNATE_JEWELLERY_BOX_31924 = 31924;
|
||||
public static final int ORNATE_JEWELLERY_BOX = 31924;
|
||||
public static final int MOUNTED_MAX_CAPE_31925 = 31925;
|
||||
public static final int BURNING_BRAZIER_31926 = 31926;
|
||||
public static final int PYROMANCER = 31927;
|
||||
@@ -19385,7 +19382,83 @@ public final class ObjectID
|
||||
public static final int ROUGH_WALL_37431 = 37431;
|
||||
public static final int STREAK_INFO = 37434;
|
||||
public static final int SWAMPY_SINK = 37435;
|
||||
public static final int SHUTTERED_WINDOW_37441 = 37441;
|
||||
public static final int DECORATIVE_WINDOW_37442 = 37442;
|
||||
public static final int STAINEDGLASS_WINDOW_37443 = 37443;
|
||||
public static final int LOG_PILE_37444 = 37444;
|
||||
public static final int HOTSPOT_MARKER = 37445;
|
||||
public static final int DECORATIVE_WINDOW_37450 = 37450;
|
||||
public static final int STAINEDGLASS_WINDOW_37458 = 37458;
|
||||
public static final int DECORATIVE_WINDOW_37459 = 37459;
|
||||
public static final int STAINEDGLASS_WINDOW_37460 = 37460;
|
||||
public static final int DECORATIVE_WINDOW_37461 = 37461;
|
||||
public static final int STAINEDGLASS_WINDOW_37462 = 37462;
|
||||
public static final int DOOR_37463 = 37463;
|
||||
public static final int DOOR_37464 = 37464;
|
||||
public static final int DOOR_37465 = 37465;
|
||||
public static final int DOOR_37466 = 37466;
|
||||
public static final int LEAGUE_FIRSTS_BOARD = 37482;
|
||||
public static final int DRAGON_TROPHY_DISPLAY = 37483;
|
||||
public static final int DRAGON_TROPHY_DISPLAY_37484 = 37484;
|
||||
public static final int DRAGON_TROPHY_DISPLAY_37485 = 37485;
|
||||
public static final int DRAGON_TROPHY_DISPLAY_37486 = 37486;
|
||||
public static final int DRAGON_TROPHY_DISPLAY_37487 = 37487;
|
||||
public static final int DRAGON_TROPHY_DISPLAY_37488 = 37488;
|
||||
public static final int DRAGON_TROPHY_DISPLAY_37489 = 37489;
|
||||
public static final int BASIC_JEWELLERY_BOX = 37492;
|
||||
public static final int BASIC_JEWELLERY_BOX_37493 = 37493;
|
||||
public static final int BASIC_JEWELLERY_BOX_37494 = 37494;
|
||||
public static final int BASIC_JEWELLERY_BOX_37495 = 37495;
|
||||
public static final int BASIC_JEWELLERY_BOX_37496 = 37496;
|
||||
public static final int BASIC_JEWELLERY_BOX_37497 = 37497;
|
||||
public static final int BASIC_JEWELLERY_BOX_37498 = 37498;
|
||||
public static final int BASIC_JEWELLERY_BOX_37499 = 37499;
|
||||
public static final int BASIC_JEWELLERY_BOX_37500 = 37500;
|
||||
public static final int FANCY_JEWELLERY_BOX = 37501;
|
||||
public static final int FANCY_JEWELLERY_BOX_37502 = 37502;
|
||||
public static final int FANCY_JEWELLERY_BOX_37503 = 37503;
|
||||
public static final int FANCY_JEWELLERY_BOX_37504 = 37504;
|
||||
public static final int FANCY_JEWELLERY_BOX_37505 = 37505;
|
||||
public static final int FANCY_JEWELLERY_BOX_37506 = 37506;
|
||||
public static final int FANCY_JEWELLERY_BOX_37507 = 37507;
|
||||
public static final int FANCY_JEWELLERY_BOX_37508 = 37508;
|
||||
public static final int FANCY_JEWELLERY_BOX_37509 = 37509;
|
||||
public static final int FANCY_JEWELLERY_BOX_37510 = 37510;
|
||||
public static final int FANCY_JEWELLERY_BOX_37511 = 37511;
|
||||
public static final int FANCY_JEWELLERY_BOX_37512 = 37512;
|
||||
public static final int FANCY_JEWELLERY_BOX_37513 = 37513;
|
||||
public static final int FANCY_JEWELLERY_BOX_37514 = 37514;
|
||||
public static final int FANCY_JEWELLERY_BOX_37515 = 37515;
|
||||
public static final int FANCY_JEWELLERY_BOX_37516 = 37516;
|
||||
public static final int FANCY_JEWELLERY_BOX_37517 = 37517;
|
||||
public static final int FANCY_JEWELLERY_BOX_37518 = 37518;
|
||||
public static final int FANCY_JEWELLERY_BOX_37519 = 37519;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37520 = 37520;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37521 = 37521;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37522 = 37522;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37523 = 37523;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37524 = 37524;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37525 = 37525;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37526 = 37526;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37527 = 37527;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37528 = 37528;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37529 = 37529;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37530 = 37530;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37531 = 37531;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37532 = 37532;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37533 = 37533;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37534 = 37534;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37535 = 37535;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37536 = 37536;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37537 = 37537;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37538 = 37538;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37539 = 37539;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37540 = 37540;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37541 = 37541;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37542 = 37542;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37543 = 37543;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37544 = 37544;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37545 = 37545;
|
||||
public static final int ORNATE_JEWELLERY_BOX_37546 = 37546;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -273,9 +273,12 @@ public enum VarPlayer
|
||||
QUEST_ENTER_THE_ABYSS(492),
|
||||
QUEST_ALFRED_GRIMHANDS_BARCRAWL(77),
|
||||
QUEST_ALFRED_GRIMHANDS_BARCRAWL_STATE_76(76),
|
||||
QUEST_THE_MAGE_ARENA(267);
|
||||
|
||||
QUEST_THE_MAGE_ARENA(267),
|
||||
|
||||
/**
|
||||
* 0 = 2 buttons, 1 = 1 button
|
||||
*/
|
||||
MOUSE_BUTTONS(170);
|
||||
|
||||
public final int id;
|
||||
}
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
@@ -33,6 +33,7 @@ import javax.annotation.Nullable;
|
||||
import lombok.Value;
|
||||
import net.runelite.api.Client;
|
||||
import static net.runelite.api.Constants.CHUNK_SIZE;
|
||||
import static net.runelite.api.Constants.REGION_SIZE;
|
||||
import net.runelite.api.Perspective;
|
||||
|
||||
/**
|
||||
@@ -416,6 +417,6 @@ public class WorldPoint
|
||||
|
||||
private static int getRegionOffset(final int position)
|
||||
{
|
||||
return position & 0x3f;
|
||||
return position & (REGION_SIZE - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
public interface Event
|
||||
{
|
||||
}
|
||||
public interface Event {}
|
||||
|
||||
+8
-11
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.Value;
|
||||
import net.runelite.api.Player;
|
||||
|
||||
/**
|
||||
* This will fire whenever the {@link net.runelite.api.PlayerAppearance} hash changes.
|
||||
*/
|
||||
@Value
|
||||
public class PlayerAppearanceChanged implements Event
|
||||
{
|
||||
private Player player;
|
||||
}
|
||||
@@ -24,13 +24,13 @@
|
||||
*/
|
||||
package net.runelite.api.hooks;
|
||||
|
||||
import net.runelite.api.MainBufferProvider;
|
||||
import net.runelite.api.events.Event;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseWheelEvent;
|
||||
import net.runelite.api.MainBufferProvider;
|
||||
import net.runelite.api.events.Event;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
/**
|
||||
* Interface of callbacks the injected client uses to send events
|
||||
@@ -42,14 +42,14 @@ public interface Callbacks
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
<T> void post(Class<T> eventClass, Event event);
|
||||
<T extends Event, E extends T> void post(Class<T> eventClass, E event);
|
||||
|
||||
/**
|
||||
* Post a deferred event, which gets delayed until the next cycle.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
<T> void postDeferred(Class<T> eventClass, Event event);
|
||||
<T extends Event, E extends T> void postDeferred(Class<T> eventClass, E event);
|
||||
|
||||
/**
|
||||
* Called each client cycle.
|
||||
|
||||
@@ -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;
|
||||
@@ -243,13 +242,6 @@ public interface Widget
|
||||
*/
|
||||
void setName(String name);
|
||||
|
||||
/**
|
||||
* Gets the model ID displayed in the widget.
|
||||
*
|
||||
* @return the model ID
|
||||
*/
|
||||
int getModelId();
|
||||
|
||||
/**
|
||||
* Gets the sprite ID displayed in the widget.
|
||||
*
|
||||
@@ -295,6 +287,76 @@ public interface Widget
|
||||
*/
|
||||
int getIndex();
|
||||
|
||||
/**
|
||||
* Gets the model ID displayed in the widget.
|
||||
*
|
||||
* @return the model ID
|
||||
*/
|
||||
int getModelId();
|
||||
|
||||
/**
|
||||
* Sets the model ID displayed in the widget
|
||||
*
|
||||
* @param modelId the new model ID
|
||||
*/
|
||||
void setModelId(int modelId);
|
||||
|
||||
/**
|
||||
* Gets the x rotation of the model displayed in the widget
|
||||
*
|
||||
* @return the x rotation
|
||||
*/
|
||||
int getRotationX();
|
||||
|
||||
/**
|
||||
* Sets the x rotation of the model displayed in the widget
|
||||
*
|
||||
* @param rotationX 0 = no rotation, 2047 = full rotation, outside range = crash
|
||||
*/
|
||||
void setRotationX(int rotationX);
|
||||
|
||||
/**
|
||||
* Gets the y rotation of the model displayed in the widget
|
||||
*
|
||||
* @return the y rotation
|
||||
*/
|
||||
int getRotationY();
|
||||
|
||||
/**
|
||||
* Sets the y rotation of the model displayed in the widget
|
||||
*
|
||||
* @param rotationY 0 = no rotation, 2047 = full rotation, outside range = crash
|
||||
*/
|
||||
void setRotationY(int rotationY);
|
||||
|
||||
/**
|
||||
* Gets the z rotation of the model displayed in the widget
|
||||
*
|
||||
* @return the z rotation
|
||||
*/
|
||||
int getRotationZ();
|
||||
|
||||
/**
|
||||
* Sets the z rotation of the model displayed in the widget
|
||||
*
|
||||
* @param rotationZ 0 = no rotation, 2047 = full rotation, outside range = crash
|
||||
*/
|
||||
void setRotationZ(int rotationZ);
|
||||
|
||||
/**
|
||||
* Gets the amount zoomed in on the model displayed in the widget
|
||||
*
|
||||
* @return the amount zoomed in
|
||||
*/
|
||||
int getModelZoom();
|
||||
|
||||
/**
|
||||
* Sets the amount zoomed in on the model displayed in the widget
|
||||
*
|
||||
* @param modelZoom the new zoom amount
|
||||
*/
|
||||
void setModelZoom(int modelZoom);
|
||||
|
||||
/**
|
||||
* Gets the location the widget is being drawn on the canvas.
|
||||
* <p>
|
||||
|
||||
@@ -162,6 +162,7 @@ public class WidgetID
|
||||
public static final int JEWELLERY_BOX_GROUP_ID = 590;
|
||||
public static final int OPTIONS_GROUP_ID = 261;
|
||||
public static final int THEATRE_OF_BLOOD_PARTY_GROUP_ID = 28;
|
||||
public static final int GWD_KC_GROUP_ID = 406;
|
||||
|
||||
static class WorldMap
|
||||
{
|
||||
@@ -361,126 +362,126 @@ public class WidgetID
|
||||
|
||||
static class Viewport
|
||||
{
|
||||
static final int MINIMAP_RESIZABLE_WIDGET = 17;
|
||||
static final int MINIMAP_RESIZABLE_CLICKBOX = 18;
|
||||
static final int MINIMAP_RESIZABLE_DRAW_AREA = 25;
|
||||
static final int MINIMAP_RESIZABLE_DECORATIONS = 27;
|
||||
static final int MINIMAP_RESIZABLE_ORB_HOLDER = 28;
|
||||
static final int MINIMAP_RESIZABLE_LOGOUT_BUTTON = 30;
|
||||
static final int MINIMAP_RESIZABLE_WIDGET = 18;
|
||||
static final int MINIMAP_RESIZABLE_CLICKBOX = 19;
|
||||
static final int MINIMAP_RESIZABLE_DRAW_AREA = 26;
|
||||
static final int MINIMAP_RESIZABLE_DECORATIONS = 28;
|
||||
static final int MINIMAP_RESIZABLE_ORB_HOLDER = 29;
|
||||
static final int MINIMAP_RESIZABLE_LOGOUT_BUTTON = 31;
|
||||
static final int FIXED_VIEWPORT = 17;
|
||||
static final int RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX = 12;
|
||||
static final int RESIZABLE_VIEWPORT_BOTTOM_LINE = 12;
|
||||
static final int RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX = 13;
|
||||
static final int RESIZABLE_VIEWPORT_BOTTOM_LINE = 13;
|
||||
}
|
||||
|
||||
static class FixedViewport
|
||||
{
|
||||
static final int MINIMAP = 3;
|
||||
static final int MINIMAP_DRAW_AREA = 8;
|
||||
static final int MULTICOMBAT_INDICATOR = 20;
|
||||
static final int BANK_PIN = 21;
|
||||
static final int CLAN_CHAT_TAB = 31;
|
||||
static final int FRIENDS_TAB = 33;
|
||||
static final int IGNORES_TAB = 32;
|
||||
static final int LOGOUT_TAB = 34;
|
||||
static final int OPTIONS_TAB = 35;
|
||||
static final int EMOTES_TAB = 36;
|
||||
static final int MUSIC_TAB = 37;
|
||||
static final int CLAN_CHAT_ICON = 38;
|
||||
static final int FRIENDS_ICON = 40;
|
||||
static final int IGNORES_ICON = 39;
|
||||
static final int LOGOUT_ICON = 41;
|
||||
static final int OPTIONS_ICON = 42;
|
||||
static final int EMOTES_ICON = 43;
|
||||
static final int MUSIC_ICON = 44;
|
||||
static final int COMBAT_TAB = 48;
|
||||
static final int STATS_TAB = 49;
|
||||
static final int QUESTS_TAB = 50;
|
||||
static final int INVENTORY_TAB = 51;
|
||||
static final int EQUIPMENT_TAB = 52;
|
||||
static final int PRAYER_TAB = 53;
|
||||
static final int MAGIC_TAB = 54;
|
||||
static final int COMBAT_ICON = 55;
|
||||
static final int STATS_ICON = 56;
|
||||
static final int QUESTS_ICON = 57;
|
||||
static final int INVENTORY_ICON = 58;
|
||||
static final int EQUIPMENT_ICON = 59;
|
||||
static final int PRAYER_ICON = 60;
|
||||
static final int MAGIC_ICON = 61;
|
||||
static final int ROOT_INTERFACE_CONTAINER = 62;
|
||||
static final int BANK_CONTAINER = 64;
|
||||
static final int INTERFACE_CONTAINER = 65;
|
||||
static final int INVENTORY_CONTAINER = 69;
|
||||
static final int MULTICOMBAT_INDICATOR = 21;
|
||||
static final int BANK_PIN = 22;
|
||||
static final int CLAN_CHAT_TAB = 32;
|
||||
static final int FRIENDS_TAB = 34;
|
||||
static final int IGNORES_TAB = 33;
|
||||
static final int LOGOUT_TAB = 35;
|
||||
static final int OPTIONS_TAB = 36;
|
||||
static final int EMOTES_TAB = 37;
|
||||
static final int MUSIC_TAB = 38;
|
||||
static final int CLAN_CHAT_ICON = 39;
|
||||
static final int FRIENDS_ICON = 41;
|
||||
static final int IGNORES_ICON = 40;
|
||||
static final int LOGOUT_ICON = 42;
|
||||
static final int OPTIONS_ICON = 43;
|
||||
static final int EMOTES_ICON = 44;
|
||||
static final int MUSIC_ICON = 45;
|
||||
static final int COMBAT_TAB = 49;
|
||||
static final int STATS_TAB = 50;
|
||||
static final int QUESTS_TAB = 51;
|
||||
static final int INVENTORY_TAB = 52;
|
||||
static final int EQUIPMENT_TAB = 53;
|
||||
static final int PRAYER_TAB = 54;
|
||||
static final int MAGIC_TAB = 55;
|
||||
static final int COMBAT_ICON = 56;
|
||||
static final int STATS_ICON = 57;
|
||||
static final int QUESTS_ICON = 58;
|
||||
static final int INVENTORY_ICON = 59;
|
||||
static final int EQUIPMENT_ICON = 60;
|
||||
static final int PRAYER_ICON = 61;
|
||||
static final int MAGIC_ICON = 62;
|
||||
static final int ROOT_INTERFACE_CONTAINER = 63;
|
||||
static final int BANK_CONTAINER = 65;
|
||||
static final int INTERFACE_CONTAINER = 66;
|
||||
static final int INVENTORY_CONTAINER = 70;
|
||||
}
|
||||
|
||||
static class ResizableViewport
|
||||
{
|
||||
static final int ITEMS_KEPT_ON_DEATH = 13;
|
||||
static final int BANK_PIN = 13;
|
||||
static final int MULTICOMBAT_INDICATOR = 16;
|
||||
static final int CLAN_CHAT_TAB = 35;
|
||||
static final int FRIENDS_TAB = 37;
|
||||
static final int IGNORES_TAB = 36;
|
||||
static final int LOGOUT_TAB = 38;
|
||||
static final int OPTIONS_TAB = 39;
|
||||
static final int EMOTES_TAB = 40;
|
||||
static final int MUSIC_TAB = 41;
|
||||
static final int CLAN_CHAT_ICON = 42;
|
||||
static final int FRIENDS_ICON = 44;
|
||||
static final int IGNORES_ICON = 43;
|
||||
static final int LOGOUT_ICON = 45;
|
||||
static final int OPTIONS_ICON = 46;
|
||||
static final int EMOTES_ICON = 47;
|
||||
static final int MUSIC_ICON = 48;
|
||||
static final int COMBAT_TAB = 51;
|
||||
static final int STATS_TAB = 52;
|
||||
static final int QUESTS_TAB = 53;
|
||||
static final int INVENTORY_TAB = 54;
|
||||
static final int EQUIPMENT_TAB = 55;
|
||||
static final int PRAYER_TAB = 56;
|
||||
static final int MAGIC_TAB = 57;
|
||||
static final int COMBAT_ICON = 58;
|
||||
static final int STATS_ICON = 59;
|
||||
static final int QUESTS_ICON = 60;
|
||||
static final int INVENTORY_ICON = 61;
|
||||
static final int EQUIPMENT_ICON = 62;
|
||||
static final int PRAYER_ICON = 63;
|
||||
static final int MAGIC_ICON = 64;
|
||||
static final int INTERFACE_CONTAINER = 65;
|
||||
static final int INVENTORY_CONTAINER = 71;
|
||||
static final int MULTICOMBAT_INDICATOR = 17;
|
||||
static final int CLAN_CHAT_TAB = 36;
|
||||
static final int FRIENDS_TAB = 38;
|
||||
static final int IGNORES_TAB = 37;
|
||||
static final int LOGOUT_TAB = 39;
|
||||
static final int OPTIONS_TAB = 40;
|
||||
static final int EMOTES_TAB = 41;
|
||||
static final int MUSIC_TAB = 42;
|
||||
static final int CLAN_CHAT_ICON = 43;
|
||||
static final int FRIENDS_ICON = 45;
|
||||
static final int IGNORES_ICON = 44;
|
||||
static final int LOGOUT_ICON = 46;
|
||||
static final int OPTIONS_ICON = 47;
|
||||
static final int EMOTES_ICON = 48;
|
||||
static final int MUSIC_ICON = 49;
|
||||
static final int COMBAT_TAB = 52;
|
||||
static final int STATS_TAB = 53;
|
||||
static final int QUESTS_TAB = 54;
|
||||
static final int INVENTORY_TAB = 55;
|
||||
static final int EQUIPMENT_TAB = 56;
|
||||
static final int PRAYER_TAB = 57;
|
||||
static final int MAGIC_TAB = 58;
|
||||
static final int COMBAT_ICON = 59;
|
||||
static final int STATS_ICON = 60;
|
||||
static final int QUESTS_ICON = 61;
|
||||
static final int INVENTORY_ICON = 62;
|
||||
static final int EQUIPMENT_ICON = 63;
|
||||
static final int PRAYER_ICON = 64;
|
||||
static final int MAGIC_ICON = 65;
|
||||
static final int INTERFACE_CONTAINER = 66;
|
||||
static final int INVENTORY_CONTAINER = 72;
|
||||
}
|
||||
|
||||
static class ResizableViewportBottomLine
|
||||
{
|
||||
static final int BANK_PIN = 13;
|
||||
static final int LOGOUT_BUTTON_OVERLAY = 29;
|
||||
static final int LOGOUT_BUTTON_OVERLAY = 30;
|
||||
static final int CMB_TAB = 50;
|
||||
static final int CMB_ICON = 57;
|
||||
static final int CMB_ICON = 58;
|
||||
static final int SKILLS_TAB = 51;
|
||||
static final int SKILLS_ICON = 58;
|
||||
static final int SKILLS_ICON = 59;
|
||||
static final int QUESTS_TAB = 52;
|
||||
static final int QUESTS_ICON = 59;
|
||||
static final int INVENTORY_TAB = 53;
|
||||
static final int INVENTORY_ICON = 60;
|
||||
static final int QUESTS_ICON = 60;
|
||||
static final int INVENTORY_TAB = 54;
|
||||
static final int INVENTORY_ICON = 61;
|
||||
static final int EQUIP_TAB = 54;
|
||||
static final int EQUIP_ICON = 61;
|
||||
static final int PRAYER_TAB = 55;
|
||||
static final int PRAYER_ICON = 62;
|
||||
static final int MAGIC_TAB = 56;
|
||||
static final int EQUIP_ICON = 62;
|
||||
static final int PRAYER_TAB = 56;
|
||||
static final int PRAYER_ICON = 63;
|
||||
static final int SPELL_TAB = 56;
|
||||
static final int SPELL_ICON = 53;
|
||||
static final int FC_TAB = 35;
|
||||
static final int FC_ICON = 41;
|
||||
static final int FC_ICON = 42;
|
||||
static final int IGNORE_TAB = 36;
|
||||
static final int IGNORE_ICON = 42;
|
||||
static final int FRIEND_TAB = 37;
|
||||
static final int FRIEND_ICON = 43;
|
||||
static final int FRIEND_ICON = 44;
|
||||
static final int SETTINGS_TAB = 38;
|
||||
static final int SETTINGS_ICON = 44;
|
||||
static final int SETTINGS_ICON = 45;
|
||||
static final int EMOTE_TAB = 39;
|
||||
static final int EMOTE_ICON = 45;
|
||||
static final int EMOTE_ICON = 46;
|
||||
static final int MUSIC_TAB = 40;
|
||||
static final int MUSIC_ICON = 46;
|
||||
static final int MAGIC_ICON = 63;
|
||||
static final int INVENTORY_CONTAINER = 71;
|
||||
static final int MUSIC_ICON = 47;
|
||||
static final int MAGIC_ICON = 64;
|
||||
static final int INVENTORY_CONTAINER = 72;
|
||||
}
|
||||
|
||||
static class Chatbox
|
||||
@@ -659,6 +660,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;
|
||||
@@ -830,164 +836,178 @@ public class WidgetID
|
||||
|
||||
static class SpellBook
|
||||
{
|
||||
static final int FILTERED_SPELLS_PARENT = 1;
|
||||
static final int FILTERED_SPELLS_BOUNDS = 3;
|
||||
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 final int KOUREND_HOME_TELEPORT = 4;
|
||||
}
|
||||
|
||||
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
|
||||
@@ -1025,7 +1045,7 @@ public class WidgetID
|
||||
|
||||
static class FullScreenMap
|
||||
{
|
||||
static final int ROOT = 25;
|
||||
static final int ROOT = 26;
|
||||
}
|
||||
|
||||
static class QuestList
|
||||
|
||||
@@ -271,7 +271,7 @@ public enum WidgetInfo
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_EQUIPMENT_ICON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.EQUIP_ICON),
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_COMBAT_ICON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.CMB_ICON),
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_STATS_ICON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.SKILLS_ICON),
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_MAGIC_TAB(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.MAGIC_TAB),
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_MAGIC_TAB(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.SPELL_TAB),
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_MAGIC_ICON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.MAGIC_ICON),
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_FRIEND_ICON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.FRIEND_ICON),
|
||||
RESIZABLE_VIEWPORT_BOTTOM_LINE_FRIEND_CHAT_ICON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.FC_ICON),
|
||||
@@ -430,6 +430,8 @@ public enum WidgetInfo
|
||||
MOTHERLODE_MINE(WidgetID.MOTHERLODE_MINE_GROUP_ID, 0),
|
||||
|
||||
THEATRE_OF_BLOOD_PARTY(WidgetID.THEATRE_OF_BLOOD_PARTY_GROUP_ID, WidgetID.TheatreOfBloodParty.CONTAINER),
|
||||
|
||||
GWD_KC(WidgetID.GWD_KC_GROUP_ID, WidgetID.GWD.CONTAINER),
|
||||
|
||||
PUZZLE_BOX(WidgetID.PUZZLE_BOX_GROUP_ID, WidgetID.PuzzleBox.VISIBLE_BOX),
|
||||
|
||||
@@ -512,6 +514,7 @@ public enum WidgetInfo
|
||||
|
||||
PVP_FOG_OVERLAY(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.FOG_OVERLAY),
|
||||
PVP_CONTAINER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.PVP_WIDGET_CONTAINER),
|
||||
|
||||
PVP_SKULL_CONTAINER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SKULL_CONTAINER),
|
||||
PVP_SKULL(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SKULL),
|
||||
PVP_ATTACK_RANGE(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.ATTACK_RANGE),
|
||||
@@ -523,10 +526,9 @@ public enum WidgetInfo
|
||||
PVP_KILLDEATH_COUNTER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.KILLDEATH_RATIO),
|
||||
|
||||
SPELLBOOK(WidgetID.SPELLBOOK_GROUP_ID, 0),
|
||||
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),
|
||||
@@ -597,7 +599,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),
|
||||
@@ -626,9 +628,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),
|
||||
@@ -674,17 +676,13 @@ 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_KOUREND_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.KOUREND_HOME_TELEPORT),
|
||||
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*/
|
||||
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),
|
||||
|
||||
/* END OF ARCEUUS SPELL BOOK WIDGETS*/
|
||||
|
||||
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),
|
||||
@@ -696,7 +694,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),
|
||||
@@ -758,8 +755,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),
|
||||
|
||||
@@ -89,10 +89,11 @@ dependencies {
|
||||
|
||||
testImplementation(Libraries.guiceGrapher)
|
||||
testImplementation(Libraries.guiceTestlib)
|
||||
testImplementation(Libraries.junit)
|
||||
testImplementation(Libraries.hamcrest)
|
||||
testImplementation(Libraries.junit)
|
||||
testImplementation(Libraries.mockitoCore)
|
||||
testImplementation(Libraries.mockitoInline)
|
||||
testImplementation(Libraries.okhttp3Webserver)
|
||||
testImplementation(Libraries.slf4jApi)
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -316,7 +316,7 @@ public class Notifier
|
||||
|
||||
private static Process sendCommand(final List<String> commands) throws IOException
|
||||
{
|
||||
return new ProcessBuilder(commands.toArray(new String[commands.size()]))
|
||||
return new ProcessBuilder(commands.toArray(new String[0]))
|
||||
.redirectErrorStream(true)
|
||||
.start();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -61,6 +62,7 @@ import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ClanManager;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.game.LootManager;
|
||||
import net.runelite.client.game.PlayerManager;
|
||||
import net.runelite.client.game.XpDropManager;
|
||||
import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
||||
import net.runelite.client.graphics.ModelOutlineRenderer;
|
||||
@@ -86,6 +88,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");
|
||||
@@ -156,6 +159,9 @@ public class RuneLite
|
||||
@Inject
|
||||
private Provider<XpDropManager> xpDropManager;
|
||||
|
||||
@Inject
|
||||
private Provider<PlayerManager> playerManager;
|
||||
|
||||
@Inject
|
||||
private Provider<ChatboxPanelManager> chatboxPanelManager;
|
||||
|
||||
@@ -236,7 +242,7 @@ public class RuneLite
|
||||
|
||||
Authenticator.setDefault(new Authenticator()
|
||||
{
|
||||
private PasswordAuthentication auth = new PasswordAuthentication(user, pass);
|
||||
private final PasswordAuthentication auth = new PasswordAuthentication(user, pass);
|
||||
|
||||
protected PasswordAuthentication getPasswordAuthentication()
|
||||
{
|
||||
@@ -288,8 +294,6 @@ public class RuneLite
|
||||
RuneLiteSplashScreen.setError("Error while loading!", "Please check your internet connection and your DNS settings.");
|
||||
});
|
||||
|
||||
RuneLiteSplashScreen.stage(0, "Starting OpenOSRS injector");
|
||||
|
||||
PROFILES_DIR.mkdirs();
|
||||
|
||||
final long start = System.currentTimeMillis();
|
||||
@@ -306,7 +310,7 @@ public class RuneLite
|
||||
log.info("Client initialization took {}ms. Uptime: {}ms", end - start, uptime);
|
||||
}
|
||||
|
||||
public void start() throws Exception
|
||||
private void start() throws Exception
|
||||
{
|
||||
// Load RuneLite or Vanilla client
|
||||
final boolean isOutdated = client == null;
|
||||
@@ -364,9 +368,11 @@ public class RuneLite
|
||||
commandManager.get();
|
||||
lootManager.get();
|
||||
xpDropManager.get();
|
||||
playerManager.get();
|
||||
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);
|
||||
|
||||
@@ -41,8 +41,8 @@ import net.runelite.client.callback.Hooks;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ChatColorConfig;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
import net.runelite.client.config.OpenOSRSConfig;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
@@ -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);
|
||||
|
||||
@@ -29,6 +29,7 @@ import java.util.Iterator;
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.function.BooleanSupplier;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
@@ -41,6 +42,7 @@ public class ClientThread implements Executor
|
||||
private final ConcurrentLinkedQueue<BooleanSupplier> invokes = new ConcurrentLinkedQueue<>();
|
||||
|
||||
@Inject
|
||||
@Nullable
|
||||
private Client client;
|
||||
|
||||
public void invoke(Runnable r)
|
||||
|
||||
@@ -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;
|
||||
@@ -136,6 +139,7 @@ public class Hooks implements Callbacks
|
||||
/**
|
||||
* Get the Graphics2D for the MainBufferProvider image
|
||||
* This caches the Graphics2D instance so it can be reused
|
||||
*
|
||||
* @param mainBufferProvider
|
||||
* @return
|
||||
*/
|
||||
@@ -156,13 +160,13 @@ public class Hooks implements Callbacks
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void post(Class<T> eventClass, Event event)
|
||||
public <T extends Event, E extends T> void post(Class<T> eventClass, E event)
|
||||
{
|
||||
eventBus.post(eventClass, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void postDeferred(Class<T> eventClass, Event event)
|
||||
public <T extends Event, E extends T> void postDeferred(Class<T> eventClass, E event)
|
||||
{
|
||||
deferredEventBus.post(eventClass, event);
|
||||
}
|
||||
@@ -544,4 +548,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
package net.runelite.client.chat;
|
||||
|
||||
import java.awt.Color;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.api.util.Text;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
|
||||
public class ChatMessageBuilder
|
||||
{
|
||||
|
||||
@@ -46,13 +46,13 @@ import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.api.events.ResizeableChanged;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ChatColorConfig;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.client.ui.JagexColors;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
+2
-7
@@ -26,12 +26,11 @@ package net.runelite.client.config;
|
||||
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Objects;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.client.util.ReflectUtil;
|
||||
|
||||
@Slf4j
|
||||
class ConfigInvocationHandler implements InvocationHandler
|
||||
@@ -169,12 +168,8 @@ class ConfigInvocationHandler implements InvocationHandler
|
||||
|
||||
static Object callDefaultMethod(Object proxy, Method method, Object[] args) throws Throwable
|
||||
{
|
||||
// Call the default method implementation - https://rmannibucau.wordpress.com/2014/03/27/java-8-default-interface-methods-and-jdk-dynamic-proxies/
|
||||
Constructor<MethodHandles.Lookup> constructor = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class, int.class);
|
||||
constructor.setAccessible(true);
|
||||
|
||||
Class<?> declaringClass = method.getDeclaringClass();
|
||||
return constructor.newInstance(declaringClass, MethodHandles.Lookup.PUBLIC | MethodHandles.Lookup.PRIVATE)
|
||||
return ReflectUtil.privateLookupIn(declaringClass)
|
||||
.unreflectSpecial(method, declaringClass)
|
||||
.bindTo(proxy)
|
||||
.invokeWithArguments(args);
|
||||
|
||||
@@ -71,6 +71,7 @@ public @interface ConfigItem
|
||||
|
||||
/**
|
||||
* For Config items that have a value of multiple enums,
|
||||
*
|
||||
* @return the number of rows that are display in the item without having to scroll.
|
||||
*/
|
||||
int displayRows() default 2;
|
||||
@@ -82,6 +83,7 @@ public @interface ConfigItem
|
||||
/**
|
||||
* Use this to indicate the enum class that is going to be used in the multiple select config.
|
||||
* This implementation made debugging problems with multiple selects a lot easier
|
||||
*
|
||||
* @return The Enum that will be used for the multiple select
|
||||
*/
|
||||
Class<? extends Enum> enumClass() default Enum.class;
|
||||
|
||||
@@ -59,10 +59,10 @@ import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.client.RuneLite;
|
||||
import static net.runelite.client.RuneLite.PROFILES_DIR;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
package net.runelite.client.config;
|
||||
|
||||
public class Title
|
||||
{
|
||||
}
|
||||
public class Title {}
|
||||
|
||||
@@ -64,7 +64,7 @@ public class DatabaseManager
|
||||
Settings settings = new Settings();
|
||||
settings.setExecuteLogging(false);
|
||||
|
||||
return DSL.using(connection, SQLDialect.H2, settings);
|
||||
return DSL.using(connection, SQLDialect.H2, settings);
|
||||
}
|
||||
|
||||
public boolean checkTableExists(String table)
|
||||
|
||||
@@ -2,10 +2,14 @@ package net.runelite.client.eventbus;
|
||||
|
||||
import com.jakewharton.rxrelay2.PublishRelay;
|
||||
import com.jakewharton.rxrelay2.Relay;
|
||||
import io.reactivex.ObservableTransformer;
|
||||
import io.reactivex.Scheduler;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.annotations.Nullable;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.sentry.Sentry;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -15,21 +19,25 @@ import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.events.Event;
|
||||
import net.runelite.client.RuneLiteProperties;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.OpenOSRSConfig;
|
||||
|
||||
@Slf4j
|
||||
@Singleton
|
||||
public class EventBus implements EventBusInterface
|
||||
{
|
||||
private Map<Object, Object> subscriptionList = new HashMap<>();
|
||||
private Map<Class<?>, Relay<Object>> subjectList = new HashMap<>();
|
||||
private Map<Object, CompositeDisposable> subscriptionsMap = new HashMap<>();
|
||||
private final Map<Object, Object> subscriptionList = new HashMap<>();
|
||||
private final Map<Class<?>, Relay<Object>> subjectList = new HashMap<>();
|
||||
private final Map<Object, CompositeDisposable> subscriptionsMap = new HashMap<>();
|
||||
|
||||
@Inject
|
||||
private OpenOSRSConfig openOSRSConfig;
|
||||
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
@NonNull
|
||||
private <T> Relay<Object> getSubject(Class<T> eventClass)
|
||||
private <T extends Event> Relay<Object> getSubject(Class<T> eventClass)
|
||||
{
|
||||
return subjectList.computeIfAbsent(eventClass, k -> PublishRelay.create().toSerialized());
|
||||
}
|
||||
@@ -47,34 +55,65 @@ public class EventBus implements EventBusInterface
|
||||
return compositeDisposable;
|
||||
}
|
||||
|
||||
@Override
|
||||
// Subscribe on lifecycle (for example from plugin startUp -> shutdown)
|
||||
public <T> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action)
|
||||
private <T> ObservableTransformer<T, T> applyTake(int until)
|
||||
{
|
||||
if (subscriptionList.containsKey(lifecycle) && eventClass.equals(subscriptionList.get(lifecycle)))
|
||||
return observable -> until > 0 ? observable.take(until) : observable;
|
||||
}
|
||||
|
||||
private Scheduler getScheduler(EventScheduler scheduler)
|
||||
{
|
||||
Scheduler subscribeScheduler;
|
||||
switch (scheduler)
|
||||
{
|
||||
return;
|
||||
case COMPUTATION:
|
||||
subscribeScheduler = Schedulers.computation();
|
||||
break;
|
||||
case IO:
|
||||
subscribeScheduler = Schedulers.io();
|
||||
break;
|
||||
case NEWTHREAD:
|
||||
subscribeScheduler = Schedulers.newThread();
|
||||
break;
|
||||
case SINGLE:
|
||||
subscribeScheduler = Schedulers.single();
|
||||
break;
|
||||
case TRAMPOLINE:
|
||||
subscribeScheduler = Schedulers.trampoline();
|
||||
break;
|
||||
case CLIENT:
|
||||
subscribeScheduler = Schedulers.from(clientThread);
|
||||
break;
|
||||
case DEFAULT:
|
||||
default:
|
||||
subscribeScheduler = null;
|
||||
break;
|
||||
}
|
||||
|
||||
Disposable disposable = getSubject(eventClass)
|
||||
.filter(Objects::nonNull) // Filter out null objects, better safe than sorry
|
||||
.cast(eventClass) // Cast it for easier usage
|
||||
.subscribe(action, error ->
|
||||
{
|
||||
log.error("Exception in eventbus", error);
|
||||
return subscribeScheduler;
|
||||
}
|
||||
|
||||
if (RuneLiteProperties.getLauncherVersion() != null && openOSRSConfig.shareLogs())
|
||||
{
|
||||
Sentry.capture(error);
|
||||
}
|
||||
});
|
||||
private <T> ObservableTransformer<T, T> applyScheduler(EventScheduler eventScheduler, boolean subscribe)
|
||||
{
|
||||
Scheduler scheduler = getScheduler(eventScheduler);
|
||||
|
||||
getCompositeDisposable(lifecycle).add(disposable);
|
||||
subscriptionList.put(lifecycle, eventClass);
|
||||
return observable -> scheduler == null ? observable : subscribe ? observable.subscribeOn(scheduler) : observable.observeOn(scheduler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action, int takeUntil)
|
||||
public <T extends Event> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action)
|
||||
{
|
||||
subscribe(eventClass, lifecycle, action, -1, EventScheduler.DEFAULT, EventScheduler.DEFAULT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Event> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action, int takeUtil)
|
||||
{
|
||||
subscribe(eventClass, lifecycle, action, takeUtil, EventScheduler.DEFAULT, EventScheduler.DEFAULT);
|
||||
}
|
||||
|
||||
@Override
|
||||
// Subscribe on lifecycle (for example from plugin startUp -> shutdown)
|
||||
public <T extends Event> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action, int takeUntil, @Nullable EventScheduler subscribe, @Nullable EventScheduler observe)
|
||||
{
|
||||
if (subscriptionList.containsKey(lifecycle) && eventClass.equals(subscriptionList.get(lifecycle)))
|
||||
{
|
||||
@@ -82,10 +121,12 @@ public class EventBus implements EventBusInterface
|
||||
}
|
||||
|
||||
Disposable disposable = getSubject(eventClass)
|
||||
.compose(applyTake(takeUntil))
|
||||
.filter(Objects::nonNull) // Filter out null objects, better safe than sorry
|
||||
.cast(eventClass) // Cast it for easier usage
|
||||
.take(takeUntil)
|
||||
.doFinally(() -> unregister(lifecycle))
|
||||
.compose(applyScheduler(subscribe, true))
|
||||
.compose(applyScheduler(observe, false))
|
||||
.subscribe(action, error ->
|
||||
{
|
||||
log.error("Exception in eventbus", error);
|
||||
@@ -113,7 +154,7 @@ public class EventBus implements EventBusInterface
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void post(Class<T> eventClass, @NonNull Event event)
|
||||
public <T extends Event> void post(Class<? extends T> eventClass, @NonNull T event)
|
||||
{
|
||||
getSubject(eventClass).accept(event);
|
||||
}
|
||||
|
||||
@@ -6,11 +6,13 @@ import net.runelite.api.events.Event;
|
||||
|
||||
public interface EventBusInterface
|
||||
{
|
||||
<T> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action);
|
||||
<T extends Event> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action);
|
||||
|
||||
<T> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action, int takeUntil);
|
||||
<T extends Event> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action, int takeUntil);
|
||||
|
||||
<T extends Event> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action, int takeUntil, EventScheduler subscribe, EventScheduler observe);
|
||||
|
||||
void unregister(@NonNull Object lifecycle);
|
||||
|
||||
<T> void post(Class<T> eventClass, @NonNull Event event);
|
||||
<T extends Event> void post(Class<? extends T> eventClass, @NonNull T event);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package net.runelite.client.eventbus;
|
||||
|
||||
import io.reactivex.annotations.Nullable;
|
||||
|
||||
public enum EventScheduler
|
||||
{
|
||||
DEFAULT(null),
|
||||
COMPUTATION("computation"),
|
||||
IO("io"),
|
||||
NEWTHREAD("newThread"),
|
||||
SINGLE("single"),
|
||||
TRAMPOLINE("trampoline"),
|
||||
CLIENT("client");
|
||||
|
||||
public final String scheduler;
|
||||
|
||||
EventScheduler(@Nullable String scheduler)
|
||||
{
|
||||
this.scheduler = scheduler;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user