@@ -26,7 +26,7 @@ Contributions are welcome, but there should be no changes made to runelite-clien
|
||||
- [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
|
||||
- [http-api](http-api/src/main/java/net/runelite/http/api) - API for runelite and OpenOSRS
|
||||
- [injector-plugin](injector-plugin/src/main/java/net/runelite/injector) - Tool for implementing our modifications to the gamepack
|
||||
- [injector](injector/src/main/java/com/openosrs/injector) - Bytecode weaver that allows us to add code to the obfuscated gamepack
|
||||
- [runelite-api](runelite-api/src/main/java/net/runelite/api) - RuneLite API, interfaces for accessing the client
|
||||
- [runelite-mixins](runelite-mixins/src/main/java/net/runelite) - Classes containing the Objects to be injected using the injector-plugin
|
||||
- [runescape-api](runescape-api/src/main/java/net/runelite) - Mappings correspond to these interfaces, runelite-api is a subset of this
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import groovy.json.JsonOutput
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.tasks.*
|
||||
@@ -117,11 +118,13 @@ open class BootstrapTask @Inject constructor(@Input val type: String) : DefaultT
|
||||
"artifacts" to getArtifacts()
|
||||
).toString()
|
||||
|
||||
val prettyJson = JsonOutput.prettyPrint(json)
|
||||
|
||||
val bootstrapDir = File("${project.buildDir}/bootstrap")
|
||||
bootstrapDir.mkdirs()
|
||||
|
||||
File(bootstrapDir, "bootstrap-${type}.json").printWriter().use { out ->
|
||||
out.println(json)
|
||||
out.println(prettyJson)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
object ProjectVersions {
|
||||
const val launcherVersion = "2.2.0"
|
||||
const val rlVersion = "1.6.36"
|
||||
const val rlVersion = "1.6.38"
|
||||
|
||||
const val openosrsVersion = "3.5.4"
|
||||
const val openosrsVersion = "4.0.0"
|
||||
|
||||
const val rsversion = 193
|
||||
const val cacheversion = 165
|
||||
|
||||
@@ -220,7 +220,7 @@ public class FlatStorage implements Storage
|
||||
br.printf("revision=%d\n", idx.getRevision());
|
||||
br.printf("compression=%d\n", idx.getCompression());
|
||||
br.printf("crc=%d\n", idx.getCrc());
|
||||
br.printf("named=%b\n", idx.getCompression());
|
||||
br.printf("named=%b\n", idx.isNamed());
|
||||
|
||||
idx.getArchives().sort(Comparator.comparing(Archive::getArchiveId));
|
||||
for (Archive archive : idx.getArchives())
|
||||
|
||||
@@ -66,7 +66,7 @@ public class DataFile implements Closeable
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
public byte[] read(int indexId, int archiveId, int sector, int size) throws IOException
|
||||
public synchronized byte[] read(int indexId, int archiveId, int sector, int size) throws IOException
|
||||
{
|
||||
if (sector <= 0L || dat.length() / SECTOR_SIZE < (long) sector)
|
||||
{
|
||||
@@ -169,7 +169,7 @@ public class DataFile implements Closeable
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
public DataFileWriteResult write(int indexId, int archiveId, byte[] compressedData) throws IOException
|
||||
public synchronized DataFileWriteResult write(int indexId, int archiveId, byte[] compressedData) throws IOException
|
||||
{
|
||||
int sector;
|
||||
int startSector;
|
||||
|
||||
@@ -112,13 +112,13 @@ public class DiskStorage implements Storage
|
||||
public byte[] readIndex(int indexId) throws IOException
|
||||
{
|
||||
IndexEntry entry = index255.read(indexId);
|
||||
if (entry != null)
|
||||
if (entry == null)
|
||||
{
|
||||
byte[] indexData = data.read(index255.getIndexFileId(), entry.getId(), entry.getSector(), entry.getLength());
|
||||
return indexData;
|
||||
return null;
|
||||
}
|
||||
|
||||
return null;
|
||||
byte[] indexData = data.read(index255.getIndexFileId(), entry.getId(), entry.getSector(), entry.getLength());
|
||||
return indexData;
|
||||
}
|
||||
|
||||
private void loadIndex(Index index) throws IOException
|
||||
@@ -126,7 +126,6 @@ public class DiskStorage implements Storage
|
||||
logger.trace("Loading index {}", index.getId());
|
||||
|
||||
byte[] indexData = readIndex(index.getId());
|
||||
|
||||
if (indexData == null)
|
||||
{
|
||||
return;
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Abex
|
||||
* 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.cache.models;
|
||||
|
||||
public final class JagexColor
|
||||
{
|
||||
public static final double BRIGHTNESS_MAX = .6;
|
||||
public static final double BRIGHTNESS_HIGH = .7;
|
||||
public static final double BRIGHTNESS_LOW = .8;
|
||||
public static final double BRIGTHNESS_MIN = .9;
|
||||
|
||||
private static final double HUE_OFFSET = (.5 / 64.D);
|
||||
private static final double SATURATION_OFFSET = (.5 / 8.D);
|
||||
|
||||
private JagexColor()
|
||||
{
|
||||
}
|
||||
|
||||
public static short packHSL(int hue, int saturation, int luminance)
|
||||
{
|
||||
return (short) ((short) (hue & 63) << 10
|
||||
| (short) (saturation & 7) << 7
|
||||
| (short) (luminance & 127));
|
||||
}
|
||||
|
||||
public static int unpackHue(short hsl)
|
||||
{
|
||||
return hsl >> 10 & 63;
|
||||
}
|
||||
|
||||
public static int unpackSaturation(short hsl)
|
||||
{
|
||||
return hsl >> 7 & 7;
|
||||
}
|
||||
|
||||
public static int unpackLuminance(short hsl)
|
||||
{
|
||||
return hsl & 127;
|
||||
}
|
||||
|
||||
public static String formatHSL(short hsl)
|
||||
{
|
||||
return String.format("%02Xh%Xs%02Xl", unpackHue(hsl), unpackSaturation(hsl), unpackLuminance(hsl));
|
||||
}
|
||||
|
||||
public static int HSLtoRGB(short hsl, double brightness)
|
||||
{
|
||||
double hue = (double) unpackHue(hsl) / 64.D + HUE_OFFSET;
|
||||
double saturation = (double) unpackSaturation(hsl) / 8.D + SATURATION_OFFSET;
|
||||
double luminance = (double) unpackLuminance(hsl) / 128.D;
|
||||
|
||||
// This is just a standard hsl to rgb transform
|
||||
// the only difference is the offsets above and the brightness transform below
|
||||
double chroma = (1.D - Math.abs((2.D * luminance) - 1.D)) * saturation;
|
||||
double x = chroma * (1 - Math.abs(((hue * 6.D) % 2.D) - 1.D));
|
||||
double lightness = luminance - (chroma / 2);
|
||||
|
||||
double r = lightness, g = lightness, b = lightness;
|
||||
switch ((int) (hue * 6.D))
|
||||
{
|
||||
case 0:
|
||||
r += chroma;
|
||||
g += x;
|
||||
break;
|
||||
case 1:
|
||||
g += chroma;
|
||||
r += x;
|
||||
break;
|
||||
case 2:
|
||||
g += chroma;
|
||||
b += x;
|
||||
break;
|
||||
case 3:
|
||||
b += chroma;
|
||||
g += x;
|
||||
break;
|
||||
case 4:
|
||||
b += chroma;
|
||||
r += x;
|
||||
break;
|
||||
default:
|
||||
r += chroma;
|
||||
b += x;
|
||||
break;
|
||||
}
|
||||
|
||||
int rgb = ((int) (r * 256.0D) << 16)
|
||||
| ((int) (g * 256.0D) << 8)
|
||||
| (int) (b * 256.0D);
|
||||
|
||||
rgb = adjustForBrightness(rgb, brightness);
|
||||
|
||||
if (rgb == 0)
|
||||
{
|
||||
rgb = 1;
|
||||
}
|
||||
return rgb;
|
||||
}
|
||||
|
||||
public static int adjustForBrightness(int rgb, double brightness)
|
||||
{
|
||||
double r = (double) (rgb >> 16) / 256.0D;
|
||||
double g = (double) (rgb >> 8 & 255) / 256.0D;
|
||||
double b = (double) (rgb & 255) / 256.0D;
|
||||
|
||||
r = Math.pow(r, brightness);
|
||||
g = Math.pow(g, brightness);
|
||||
b = Math.pow(b, brightness);
|
||||
|
||||
return ((int) (r * 256.0D) << 16)
|
||||
| ((int) (g * 256.0D) << 8)
|
||||
| (int) (b * 256.0D);
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,6 @@
|
||||
*/
|
||||
package net.runelite.cache.models;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.io.PrintWriter;
|
||||
import net.runelite.cache.TextureManager;
|
||||
import net.runelite.cache.definitions.ModelDefinition;
|
||||
@@ -32,6 +31,8 @@ import net.runelite.cache.definitions.TextureDefinition;
|
||||
|
||||
public class ObjExporter
|
||||
{
|
||||
private static final double BRIGHTNESS = JagexColor.BRIGTHNESS_MIN;
|
||||
|
||||
private final TextureManager textureManager;
|
||||
private final ModelDefinition model;
|
||||
|
||||
@@ -111,11 +112,10 @@ public class ObjExporter
|
||||
|
||||
if (textureId == -1)
|
||||
{
|
||||
Color color = rs2hsbToColor(model.faceColors[i]);
|
||||
|
||||
double r = color.getRed() / 255.0;
|
||||
double g = color.getGreen() / 255.0;
|
||||
double b = color.getBlue() / 255.0;
|
||||
int rgb = JagexColor.HSLtoRGB( model.faceColors[i], BRIGHTNESS);
|
||||
double r = ((rgb >> 16) & 0xff) / 255.0;
|
||||
double g = ((rgb >> 8) & 0xff) / 255.0;
|
||||
double b = (rgb & 0xff) / 255.0;
|
||||
|
||||
mtlWriter.println("Kd " + r + " " + g + " " + b);
|
||||
}
|
||||
@@ -140,12 +140,4 @@ public class ObjExporter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Color rs2hsbToColor(int hsb)
|
||||
{
|
||||
int decode_hue = (hsb >> 10) & 0x3f;
|
||||
int decode_saturation = (hsb >> 7) & 0x07;
|
||||
int decode_brightness = (hsb & 0x7f);
|
||||
return Color.getHSBColor((float) decode_hue / 63, (float) decode_saturation / 7, (float) decode_brightness / 127);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Abex
|
||||
* 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.cache.models;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import org.junit.Test;
|
||||
|
||||
public class JagexColorTest
|
||||
{
|
||||
private static final double[] BRIGHTNESS_LEVELS = {
|
||||
JagexColor.BRIGTHNESS_MIN,
|
||||
JagexColor.BRIGHTNESS_LOW,
|
||||
JagexColor.BRIGHTNESS_HIGH,
|
||||
JagexColor.BRIGHTNESS_MAX,
|
||||
};
|
||||
|
||||
// copy/pasted from the client, the reference colors
|
||||
private static int[] computeColorTable(double brightness, int min, int max)
|
||||
{
|
||||
int[] colorPalette = new int[65536];
|
||||
int var4 = min * 128;
|
||||
|
||||
for (int var5 = min; var5 < max; ++var5)
|
||||
{
|
||||
double var6 = (double) (var5 >> 3) / 64.0D + 0.0078125D;
|
||||
double var8 = (double) (var5 & 7) / 8.0D + 0.0625D;
|
||||
|
||||
for (int var10 = 0; var10 < 128; ++var10)
|
||||
{
|
||||
double var11 = (double) var10 / 128.0D;
|
||||
double var13 = var11;
|
||||
double var15 = var11;
|
||||
double var17 = var11;
|
||||
if (var8 != 0.0D)
|
||||
{
|
||||
double var19;
|
||||
if (var11 < 0.5D)
|
||||
{
|
||||
var19 = var11 * (1.0D + var8);
|
||||
}
|
||||
else
|
||||
{
|
||||
var19 = var11 + var8 - var11 * var8;
|
||||
}
|
||||
|
||||
double var21 = 2.0D * var11 - var19;
|
||||
double var23 = var6 + 0.3333333333333333D;
|
||||
if (var23 > 1.0D)
|
||||
{
|
||||
--var23;
|
||||
}
|
||||
|
||||
double var27 = var6 - 0.3333333333333333D;
|
||||
if (var27 < 0.0D)
|
||||
{
|
||||
++var27;
|
||||
}
|
||||
|
||||
if (6.0D * var23 < 1.0D)
|
||||
{
|
||||
var13 = var21 + (var19 - var21) * 6.0D * var23;
|
||||
}
|
||||
else if (2.0D * var23 < 1.0D)
|
||||
{
|
||||
var13 = var19;
|
||||
}
|
||||
else if (3.0D * var23 < 2.0D)
|
||||
{
|
||||
var13 = var21 + (var19 - var21) * (0.6666666666666666D - var23) * 6.0D;
|
||||
}
|
||||
else
|
||||
{
|
||||
var13 = var21;
|
||||
}
|
||||
|
||||
if (6.0D * var6 < 1.0D)
|
||||
{
|
||||
var15 = var21 + (var19 - var21) * 6.0D * var6;
|
||||
}
|
||||
else if (2.0D * var6 < 1.0D)
|
||||
{
|
||||
var15 = var19;
|
||||
}
|
||||
else if (3.0D * var6 < 2.0D)
|
||||
{
|
||||
var15 = var21 + (var19 - var21) * (0.6666666666666666D - var6) * 6.0D;
|
||||
}
|
||||
else
|
||||
{
|
||||
var15 = var21;
|
||||
}
|
||||
|
||||
if (6.0D * var27 < 1.0D)
|
||||
{
|
||||
var17 = var21 + (var19 - var21) * 6.0D * var27;
|
||||
}
|
||||
else if (2.0D * var27 < 1.0D)
|
||||
{
|
||||
var17 = var19;
|
||||
}
|
||||
else if (3.0D * var27 < 2.0D)
|
||||
{
|
||||
var17 = var21 + (var19 - var21) * (0.6666666666666666D - var27) * 6.0D;
|
||||
}
|
||||
else
|
||||
{
|
||||
var17 = var21;
|
||||
}
|
||||
}
|
||||
|
||||
int var29 = (int) (var13 * 256.0D);
|
||||
int var20 = (int) (var15 * 256.0D);
|
||||
int var30 = (int) (var17 * 256.0D);
|
||||
int var22 = var30 + (var20 << 8) + (var29 << 16);
|
||||
var22 = adjustForBrightness(var22, brightness);
|
||||
if (var22 == 0)
|
||||
{
|
||||
var22 = 1;
|
||||
}
|
||||
|
||||
colorPalette[var4++] = var22;
|
||||
}
|
||||
}
|
||||
|
||||
return colorPalette;
|
||||
}
|
||||
|
||||
private static int adjustForBrightness(int rgb, double brightness)
|
||||
{
|
||||
double var3 = (double) (rgb >> 16) / 256.0D;
|
||||
double var5 = (double) (rgb >> 8 & 255) / 256.0D;
|
||||
double var7 = (double) (rgb & 255) / 256.0D;
|
||||
var3 = Math.pow(var3, brightness);
|
||||
var5 = Math.pow(var5, brightness);
|
||||
var7 = Math.pow(var7, brightness);
|
||||
int var9 = (int) (var3 * 256.0D);
|
||||
int var10 = (int) (var5 * 256.0D);
|
||||
int var11 = (int) (var7 * 256.0D);
|
||||
return var11 + (var10 << 8) + (var9 << 16);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHslToRgb()
|
||||
{
|
||||
for (double brightness : BRIGHTNESS_LEVELS)
|
||||
{
|
||||
int[] colorPalette = computeColorTable(brightness, 0, 512);
|
||||
for (int i = 0; i < 0xFFFF; i++)
|
||||
{
|
||||
int rgb = JagexColor.HSLtoRGB((short) i, brightness);
|
||||
int crgb = colorPalette[i];
|
||||
assertEquals("idx " + i + " brightness " + brightness, crgb, rgb);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,10 +25,16 @@
|
||||
package net.runelite.http.api;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.awt.Color;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.time.Instant;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import net.runelite.http.api.gson.ColorTypeAdapter;
|
||||
import net.runelite.http.api.gson.InstantTypeAdapter;
|
||||
import net.runelite.http.api.gson.IllegalReflectionExclusion;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.MediaType;
|
||||
@@ -46,7 +52,7 @@ public class RuneLiteAPI
|
||||
public static final String RUNELITE_MACHINEID = "RUNELITE-MACHINEID";
|
||||
|
||||
public static final OkHttpClient CLIENT;
|
||||
public static final Gson GSON = new Gson();
|
||||
public static final Gson GSON;
|
||||
public static final MediaType JSON = MediaType.parse("application/json");
|
||||
public static String userAgent;
|
||||
|
||||
@@ -96,6 +102,23 @@ public class RuneLiteAPI
|
||||
}
|
||||
})
|
||||
.build();
|
||||
|
||||
GsonBuilder gsonBuilder = new GsonBuilder();
|
||||
|
||||
gsonBuilder
|
||||
.registerTypeAdapter(Instant.class, new InstantTypeAdapter())
|
||||
.registerTypeAdapter(Color.class, new ColorTypeAdapter());
|
||||
|
||||
boolean assertionsEnabled = false;
|
||||
assert assertionsEnabled = true;
|
||||
if (assertionsEnabled)
|
||||
{
|
||||
IllegalReflectionExclusion jbe = new IllegalReflectionExclusion();
|
||||
gsonBuilder.addSerializationExclusionStrategy(jbe);
|
||||
gsonBuilder.addDeserializationExclusionStrategy(jbe);
|
||||
}
|
||||
|
||||
GSON = gsonBuilder.create();
|
||||
}
|
||||
|
||||
public static HttpUrl getSessionBase()
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Abex
|
||||
* 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.http.api.gson;
|
||||
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonToken;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.awt.Color;
|
||||
import java.io.IOException;
|
||||
|
||||
public class ColorTypeAdapter extends TypeAdapter<Color>
|
||||
{
|
||||
@Override
|
||||
public void write(JsonWriter out, Color value) throws IOException
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
out.nullValue();
|
||||
return;
|
||||
}
|
||||
|
||||
int rgba = value.getRGB();
|
||||
out.beginObject()
|
||||
.name("value")
|
||||
.value(rgba)
|
||||
.endObject();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Color read(JsonReader in) throws IOException
|
||||
{
|
||||
switch (in.peek())
|
||||
{
|
||||
case NULL:
|
||||
in.nextNull();
|
||||
return null;
|
||||
case BEGIN_OBJECT:
|
||||
in.beginObject();
|
||||
double value = 0;
|
||||
while (in.peek() != JsonToken.END_OBJECT)
|
||||
{
|
||||
switch (in.nextName())
|
||||
{
|
||||
case "value":
|
||||
value = in.nextDouble();
|
||||
break;
|
||||
default:
|
||||
in.skipValue();
|
||||
break;
|
||||
}
|
||||
}
|
||||
in.endObject();
|
||||
return new Color((int) value, true);
|
||||
}
|
||||
return null; // throws
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Abex
|
||||
* 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.http.api.gson;
|
||||
|
||||
import com.google.gson.ExclusionStrategy;
|
||||
import com.google.gson.FieldAttributes;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class IllegalReflectionExclusion implements ExclusionStrategy
|
||||
{
|
||||
private static final Set<ClassLoader> PRIVATE_CLASSLOADERS = new HashSet<>();
|
||||
|
||||
static
|
||||
{
|
||||
for (ClassLoader cl = ClassLoader.getSystemClassLoader(); cl != null; )
|
||||
{
|
||||
cl = cl.getParent();
|
||||
PRIVATE_CLASSLOADERS.add(cl);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSkipField(FieldAttributes f)
|
||||
{
|
||||
if (!PRIVATE_CLASSLOADERS.contains(f.getDeclaringClass().getClassLoader()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
assert !Modifier.isPrivate(f.getDeclaringClass().getModifiers()) : "gsoning private class " + f.getDeclaringClass().getName();
|
||||
try
|
||||
{
|
||||
f.getDeclaringClass().getField(f.getName());
|
||||
}
|
||||
catch (NoSuchFieldException e)
|
||||
{
|
||||
throw new AssertionError("gsoning private field " + f.getDeclaringClass() + "." + f.getName());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSkipClass(Class<?> clazz)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Abex
|
||||
* 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.http.api.gson;
|
||||
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonToken;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.time.Instant;
|
||||
|
||||
// Just add water!
|
||||
public class InstantTypeAdapter extends TypeAdapter<Instant>
|
||||
{
|
||||
@Override
|
||||
public void write(JsonWriter out, Instant value) throws IOException
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
out.nullValue();
|
||||
return;
|
||||
}
|
||||
|
||||
out.beginObject()
|
||||
.name("seconds")
|
||||
.value(value.getEpochSecond())
|
||||
.name("nanos")
|
||||
.value(value.getNano())
|
||||
.endObject();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Instant read(JsonReader in) throws IOException
|
||||
{
|
||||
if (in.peek() == JsonToken.NULL)
|
||||
{
|
||||
in.nextNull();
|
||||
return null;
|
||||
}
|
||||
|
||||
long seconds = 0;
|
||||
int nanos = 0;
|
||||
in.beginObject();
|
||||
while (in.peek() != JsonToken.END_OBJECT)
|
||||
{
|
||||
switch (in.nextName())
|
||||
{
|
||||
case "nanos":
|
||||
nanos = in.nextInt();
|
||||
break;
|
||||
case "seconds":
|
||||
seconds = in.nextLong();
|
||||
break;
|
||||
}
|
||||
}
|
||||
in.endObject();
|
||||
|
||||
return Instant.ofEpochSecond(seconds, nanos);
|
||||
}
|
||||
}
|
||||
@@ -25,11 +25,11 @@
|
||||
package net.runelite.http.api.ws;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import net.runelite.http.api.RuneLiteAPI;
|
||||
import net.runelite.http.api.ws.messages.Handshake;
|
||||
import net.runelite.http.api.ws.messages.LoginResponse;
|
||||
import net.runelite.http.api.ws.messages.party.Join;
|
||||
@@ -76,7 +76,7 @@ public class WebsocketGsonFactory
|
||||
|
||||
public static Gson build(final RuntimeTypeAdapterFactory<WebsocketMessage> factory)
|
||||
{
|
||||
return new GsonBuilder()
|
||||
return RuneLiteAPI.GSON.newBuilder()
|
||||
.registerTypeAdapterFactory(factory)
|
||||
.create();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,250 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.http.service.chat;
|
||||
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import net.runelite.http.api.chat.Duels;
|
||||
import net.runelite.http.api.chat.LayoutRoom;
|
||||
import net.runelite.http.api.chat.Task;
|
||||
import net.runelite.http.service.util.exception.NotFoundException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.CacheControl;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/chat")
|
||||
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)
|
||||
.maximumSize(128L)
|
||||
.build();
|
||||
|
||||
@Autowired
|
||||
private ChatService chatService;
|
||||
|
||||
@PostMapping("/kc")
|
||||
public void submitKc(@RequestParam String name, @RequestParam String boss, @RequestParam int kc)
|
||||
{
|
||||
if (kc <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
chatService.setKc(name, boss, kc);
|
||||
killCountCache.put(new KillCountKey(name, boss), kc);
|
||||
}
|
||||
|
||||
@GetMapping("/kc")
|
||||
public int getKc(@RequestParam String name, @RequestParam String boss)
|
||||
{
|
||||
Integer kc = killCountCache.getIfPresent(new KillCountKey(name, boss));
|
||||
if (kc == null)
|
||||
{
|
||||
kc = chatService.getKc(name, boss);
|
||||
if (kc != null)
|
||||
{
|
||||
killCountCache.put(new KillCountKey(name, boss), kc);
|
||||
}
|
||||
}
|
||||
|
||||
if (kc == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
return kc;
|
||||
}
|
||||
|
||||
@PostMapping("/qp")
|
||||
public void submitQp(@RequestParam String name, @RequestParam int qp)
|
||||
{
|
||||
if (qp < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
chatService.setQp(name, qp);
|
||||
}
|
||||
|
||||
@GetMapping("/qp")
|
||||
public int getQp(@RequestParam String name)
|
||||
{
|
||||
Integer kc = chatService.getQp(name);
|
||||
if (kc == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
return kc;
|
||||
}
|
||||
|
||||
@PostMapping("/gc")
|
||||
public void submitGc(@RequestParam String name, @RequestParam int gc)
|
||||
{
|
||||
if (gc < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
chatService.setGc(name, gc);
|
||||
}
|
||||
|
||||
@GetMapping("/gc")
|
||||
public int getKc(@RequestParam String name)
|
||||
{
|
||||
Integer gc = chatService.getGc(name);
|
||||
if (gc == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
return gc;
|
||||
}
|
||||
|
||||
@PostMapping("/task")
|
||||
public void submitTask(@RequestParam String name, @RequestParam("task") String taskName, @RequestParam int amount,
|
||||
@RequestParam int initialAmount, @RequestParam String location)
|
||||
{
|
||||
Matcher mTask = STRING_VALIDATION.matcher(taskName);
|
||||
Matcher mLocation = STRING_VALIDATION.matcher(location);
|
||||
if (mTask.find() || taskName.length() > STRING_MAX_LENGTH ||
|
||||
mLocation.find() || location.length() > STRING_MAX_LENGTH)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Task task = new Task();
|
||||
task.setTask(taskName);
|
||||
task.setAmount(amount);
|
||||
task.setInitialAmount(initialAmount);
|
||||
task.setLocation(location);
|
||||
|
||||
chatService.setTask(name, task);
|
||||
}
|
||||
|
||||
@GetMapping("/task")
|
||||
public ResponseEntity<Task> getTask(@RequestParam String name)
|
||||
{
|
||||
Task task = chatService.getTask(name);
|
||||
if (task == null)
|
||||
{
|
||||
return ResponseEntity.status(HttpStatus.NOT_FOUND)
|
||||
.build();
|
||||
}
|
||||
|
||||
return ResponseEntity.ok()
|
||||
.cacheControl(CacheControl.maxAge(2, TimeUnit.MINUTES).cachePublic())
|
||||
.body(task);
|
||||
}
|
||||
|
||||
@PostMapping("/pb")
|
||||
public void submitPb(@RequestParam String name, @RequestParam String boss, @RequestParam int pb)
|
||||
{
|
||||
if (pb < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
chatService.setPb(name, boss, pb);
|
||||
}
|
||||
|
||||
@GetMapping("/pb")
|
||||
public int getPb(@RequestParam String name, @RequestParam String boss)
|
||||
{
|
||||
Integer pb = chatService.getPb(name, boss);
|
||||
if (pb == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
return pb;
|
||||
}
|
||||
|
||||
@PostMapping("/duels")
|
||||
public void submitDuels(@RequestParam String name, @RequestParam int wins,
|
||||
@RequestParam int losses,
|
||||
@RequestParam int winningStreak, @RequestParam int losingStreak)
|
||||
{
|
||||
if (wins < 0 || losses < 0 || winningStreak < 0 || losingStreak < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Duels duels = new Duels();
|
||||
duels.setWins(wins);
|
||||
duels.setLosses(losses);
|
||||
duels.setWinningStreak(winningStreak);
|
||||
duels.setLosingStreak(losingStreak);
|
||||
|
||||
chatService.setDuels(name, duels);
|
||||
}
|
||||
|
||||
@GetMapping("/duels")
|
||||
public Duels getDuels(@RequestParam String name)
|
||||
{
|
||||
Duels duels = chatService.getDuels(name);
|
||||
if (duels == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
return duels;
|
||||
}
|
||||
|
||||
@PostMapping("/layout")
|
||||
public void submitLayout(@RequestParam String name, @RequestBody LayoutRoom[] rooms)
|
||||
{
|
||||
if (rooms.length > MAX_LAYOUT_ROOMS)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
chatService.setLayout(name, rooms);
|
||||
}
|
||||
|
||||
@GetMapping("/layout")
|
||||
public LayoutRoom[] getLayout(@RequestParam String name)
|
||||
{
|
||||
LayoutRoom[] layout = chatService.getLayout(name);
|
||||
|
||||
if (layout == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
return layout;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.http.service.config;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import net.runelite.http.api.config.Configuration;
|
||||
import net.runelite.http.service.account.AuthFilter;
|
||||
import net.runelite.http.service.account.beans.SessionEntry;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PatchMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import static org.springframework.web.bind.annotation.RequestMethod.DELETE;
|
||||
import static org.springframework.web.bind.annotation.RequestMethod.PUT;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/config")
|
||||
public class ConfigController
|
||||
{
|
||||
private final ConfigService configService;
|
||||
private final AuthFilter authFilter;
|
||||
|
||||
@Autowired
|
||||
public ConfigController(ConfigService configService, AuthFilter authFilter)
|
||||
{
|
||||
this.configService = configService;
|
||||
this.authFilter = authFilter;
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public Configuration get(HttpServletRequest request, HttpServletResponse response) throws IOException
|
||||
{
|
||||
SessionEntry session = authFilter.handle(request, response);
|
||||
|
||||
if (session == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return configService.get(session.getUser());
|
||||
}
|
||||
|
||||
@PatchMapping
|
||||
public List<String> patch(
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
@RequestBody Configuration changes
|
||||
) throws IOException
|
||||
{
|
||||
SessionEntry session = authFilter.handle(request, response);
|
||||
if (session == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
List<String> failures = configService.patch(session.getUser(), changes);
|
||||
if (failures.size() != 0)
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
|
||||
return failures;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@RequestMapping(path = "/{key:.+}", method = PUT)
|
||||
public void setKey(
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
@PathVariable String key,
|
||||
@RequestBody(required = false) String value
|
||||
) throws IOException
|
||||
{
|
||||
SessionEntry session = authFilter.handle(request, response);
|
||||
|
||||
if (session == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!configService.setKey(session.getUser(), key, value))
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(path = "/{key:.+}", method = DELETE)
|
||||
public void unsetKey(
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
@PathVariable String key
|
||||
) throws IOException
|
||||
{
|
||||
SessionEntry session = authFilter.handle(request, response);
|
||||
|
||||
if (session == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!configService.unsetKey(session.getUser(), key))
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,341 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2019, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.http.service.config;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import static com.mongodb.client.model.Filters.eq;
|
||||
import com.mongodb.client.model.IndexOptions;
|
||||
import com.mongodb.client.model.Indexes;
|
||||
import com.mongodb.client.model.UpdateOptions;
|
||||
import static com.mongodb.client.model.Updates.combine;
|
||||
import static com.mongodb.client.model.Updates.set;
|
||||
import static com.mongodb.client.model.Updates.unset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Nullable;
|
||||
import net.runelite.http.api.RuneLiteAPI;
|
||||
import net.runelite.http.api.config.ConfigEntry;
|
||||
import net.runelite.http.api.config.Configuration;
|
||||
import org.bson.Document;
|
||||
import org.bson.conversions.Bson;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class ConfigService
|
||||
{
|
||||
private static final int MAX_DEPTH = 8;
|
||||
private static final int MAX_VALUE_LENGTH = 262144;
|
||||
|
||||
private final Gson GSON = RuneLiteAPI.GSON;
|
||||
private final UpdateOptions upsertUpdateOptions = new UpdateOptions().upsert(true);
|
||||
|
||||
private final MongoCollection<Document> mongoCollection;
|
||||
|
||||
@Autowired
|
||||
public ConfigService(
|
||||
MongoClient mongoClient,
|
||||
@Value("${mongo.database}") String databaseName
|
||||
)
|
||||
{
|
||||
|
||||
MongoDatabase database = mongoClient.getDatabase(databaseName);
|
||||
MongoCollection<Document> collection = database.getCollection("config");
|
||||
this.mongoCollection = collection;
|
||||
|
||||
// Create unique index on _userId
|
||||
IndexOptions indexOptions = new IndexOptions().unique(true);
|
||||
collection.createIndex(Indexes.ascending("_userId"), indexOptions);
|
||||
}
|
||||
|
||||
private Document getConfig(int userId)
|
||||
{
|
||||
return mongoCollection.find(eq("_userId", userId)).first();
|
||||
}
|
||||
|
||||
public Configuration get(int userId)
|
||||
{
|
||||
Map<String, Object> configMap = getConfig(userId);
|
||||
|
||||
if (configMap == null || configMap.isEmpty())
|
||||
{
|
||||
return new Configuration(Collections.emptyList());
|
||||
}
|
||||
|
||||
List<ConfigEntry> config = new ArrayList<>();
|
||||
|
||||
for (String group : configMap.keySet())
|
||||
{
|
||||
// Reserved keys
|
||||
if (group.startsWith("_") || group.startsWith("$"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Map<String, Object> groupMap = (Map) configMap.get(group);
|
||||
|
||||
for (Map.Entry<String, Object> entry : groupMap.entrySet())
|
||||
{
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
|
||||
if (value instanceof Map || value instanceof Collection)
|
||||
{
|
||||
value = GSON.toJson(entry.getValue());
|
||||
}
|
||||
else if (value == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ConfigEntry configEntry = new ConfigEntry();
|
||||
configEntry.setKey(group + "." + key.replace(':', '.'));
|
||||
configEntry.setValue(value.toString());
|
||||
config.add(configEntry);
|
||||
}
|
||||
}
|
||||
|
||||
return new Configuration(config);
|
||||
}
|
||||
|
||||
public List<String> patch(int userID, Configuration config)
|
||||
{
|
||||
List<String> failures = new ArrayList<>();
|
||||
List<Bson> sets = new ArrayList<>(config.getConfig().size());
|
||||
for (ConfigEntry entry : config.getConfig())
|
||||
{
|
||||
Bson s = setForKV(entry.getKey(), entry.getValue());
|
||||
if (s == null)
|
||||
{
|
||||
failures.add(entry.getKey());
|
||||
}
|
||||
else
|
||||
{
|
||||
sets.add(s);
|
||||
}
|
||||
}
|
||||
|
||||
if (sets.size() > 0)
|
||||
{
|
||||
mongoCollection.updateOne(
|
||||
eq("_userId", userID),
|
||||
combine(sets),
|
||||
upsertUpdateOptions
|
||||
);
|
||||
}
|
||||
|
||||
return failures;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Bson setForKV(String key, @Nullable String value)
|
||||
{
|
||||
if (key.startsWith("$") || key.startsWith("_"))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String[] split = key.split("\\.", 2);
|
||||
if (split.length != 2)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String dbKey = split[0] + "." + split[1].replace('.', ':');
|
||||
|
||||
if (Strings.isNullOrEmpty(value))
|
||||
{
|
||||
return unset(dbKey);
|
||||
}
|
||||
|
||||
if (!validateJson(value))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
Object jsonValue = parseJsonString(value);
|
||||
return set(dbKey, jsonValue);
|
||||
}
|
||||
|
||||
public boolean setKey(
|
||||
int userId,
|
||||
String key,
|
||||
@Nullable String value
|
||||
)
|
||||
{
|
||||
Bson set = setForKV(key, value);
|
||||
if (set == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
mongoCollection.updateOne(eq("_userId", userId),
|
||||
set,
|
||||
upsertUpdateOptions);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean unsetKey(
|
||||
int userId,
|
||||
String key
|
||||
)
|
||||
{
|
||||
Bson set = setForKV(key, null);
|
||||
if (set == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
mongoCollection.updateOne(eq("_userId", userId), set);
|
||||
return true;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
static Object parseJsonString(String value)
|
||||
{
|
||||
Object jsonValue;
|
||||
try
|
||||
{
|
||||
jsonValue = RuneLiteAPI.GSON.fromJson(value, Object.class);
|
||||
if (jsonValue == null)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
else if (jsonValue instanceof Double || jsonValue instanceof Float)
|
||||
{
|
||||
Number number = (Number) jsonValue;
|
||||
if (Math.floor(number.doubleValue()) == number.doubleValue() && !Double.isInfinite(number.doubleValue()))
|
||||
{
|
||||
// value is an int or long. 'number' might be truncated so parse it from 'value'
|
||||
try
|
||||
{
|
||||
jsonValue = Integer.parseInt(value);
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
jsonValue = Long.parseLong(value);
|
||||
}
|
||||
catch (NumberFormatException ex2)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JsonSyntaxException ex)
|
||||
{
|
||||
jsonValue = value;
|
||||
}
|
||||
return jsonValue;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
static boolean validateJson(String value)
|
||||
{
|
||||
try
|
||||
{
|
||||
// I couldn't figure out a better way to do this than a second json parse
|
||||
JsonElement jsonElement = RuneLiteAPI.GSON.fromJson(value, JsonElement.class);
|
||||
if (jsonElement == null)
|
||||
{
|
||||
return value.length() < MAX_VALUE_LENGTH;
|
||||
}
|
||||
return validateObject(jsonElement, 1);
|
||||
}
|
||||
catch (JsonSyntaxException ex)
|
||||
{
|
||||
// the client submits the string representation of objects which is not always valid json,
|
||||
// eg. a value with a ':' in it. We just ignore it now. We can't json encode the values client
|
||||
// side due to them already being strings, which prevents gson from being able to convert them
|
||||
// to ints/floats/maps etc.
|
||||
return value.length() < MAX_VALUE_LENGTH;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean validateObject(JsonElement jsonElement, int depth)
|
||||
{
|
||||
if (depth >= MAX_DEPTH)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (jsonElement.isJsonObject())
|
||||
{
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
|
||||
for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet())
|
||||
{
|
||||
JsonElement element = entry.getValue();
|
||||
|
||||
if (!validateObject(element, depth + 1))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (jsonElement.isJsonArray())
|
||||
{
|
||||
JsonArray jsonArray = jsonElement.getAsJsonArray();
|
||||
|
||||
for (int i = 0; i < jsonArray.size(); ++i)
|
||||
{
|
||||
JsonElement element = jsonArray.get(i);
|
||||
|
||||
if (!validateObject(element, depth + 1))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (jsonElement.isJsonPrimitive())
|
||||
{
|
||||
JsonPrimitive jsonPrimitive = jsonElement.getAsJsonPrimitive();
|
||||
String value = jsonPrimitive.getAsString();
|
||||
if (value.length() >= MAX_VALUE_LENGTH)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.http.service.ge;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import java.io.IOException;
|
||||
import java.time.Instant;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import net.runelite.http.api.RuneLiteAPI;
|
||||
import net.runelite.http.api.ge.GrandExchangeTrade;
|
||||
import net.runelite.http.service.account.AuthFilter;
|
||||
import net.runelite.http.service.account.beans.SessionEntry;
|
||||
import net.runelite.http.service.util.redis.RedisPool;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import redis.clients.jedis.Jedis;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/ge")
|
||||
public class GrandExchangeController
|
||||
{
|
||||
private static final Gson GSON = RuneLiteAPI.GSON;
|
||||
|
||||
private final GrandExchangeService grandExchangeService;
|
||||
private final AuthFilter authFilter;
|
||||
private final RedisPool redisPool;
|
||||
|
||||
@Autowired
|
||||
public GrandExchangeController(GrandExchangeService grandExchangeService, AuthFilter authFilter, RedisPool redisPool)
|
||||
{
|
||||
this.grandExchangeService = grandExchangeService;
|
||||
this.authFilter = authFilter;
|
||||
this.redisPool = redisPool;
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public void submit(HttpServletRequest request, HttpServletResponse response, @RequestBody GrandExchangeTrade grandExchangeTrade) throws IOException
|
||||
{
|
||||
SessionEntry session = null;
|
||||
if (request.getHeader(RuneLiteAPI.RUNELITE_AUTH) != null)
|
||||
{
|
||||
session = authFilter.handle(request, response);
|
||||
if (session == null)
|
||||
{
|
||||
// error is set here on the response, so we shouldn't continue
|
||||
return;
|
||||
}
|
||||
}
|
||||
Integer userId = session == null ? null : session.getUser();
|
||||
|
||||
// We don't keep track of pending trades in the web UI, so only add cancelled or completed trades
|
||||
if (userId != null &&
|
||||
grandExchangeTrade.getQty() > 0 &&
|
||||
(grandExchangeTrade.isCancel() || grandExchangeTrade.getQty() == grandExchangeTrade.getTotal()))
|
||||
{
|
||||
grandExchangeService.add(userId, grandExchangeTrade);
|
||||
}
|
||||
|
||||
Trade trade = new Trade();
|
||||
trade.setBuy(grandExchangeTrade.isBuy());
|
||||
trade.setCancel(grandExchangeTrade.isCancel());
|
||||
trade.setLogin(grandExchangeTrade.isLogin());
|
||||
trade.setItemId(grandExchangeTrade.getItemId());
|
||||
trade.setQty(grandExchangeTrade.getQty());
|
||||
trade.setDqty(grandExchangeTrade.getDqty());
|
||||
trade.setTotal(grandExchangeTrade.getTotal());
|
||||
trade.setSpent(grandExchangeTrade.getDspent());
|
||||
trade.setOffer(grandExchangeTrade.getOffer());
|
||||
trade.setSlot(grandExchangeTrade.getSlot());
|
||||
trade.setTime((int) (System.currentTimeMillis() / 1000L));
|
||||
trade.setMachineId(request.getHeader(RuneLiteAPI.RUNELITE_MACHINEID));
|
||||
trade.setUserId(userId);
|
||||
trade.setIp(request.getHeader("X-Forwarded-For"));
|
||||
trade.setUa(request.getHeader("User-Agent"));
|
||||
trade.setWorldType(grandExchangeTrade.getWorldType());
|
||||
trade.setSeq(grandExchangeTrade.getSeq());
|
||||
Instant resetTime = grandExchangeTrade.getResetTime();
|
||||
trade.setResetTime(resetTime == null ? 0L : resetTime.getEpochSecond());
|
||||
|
||||
String json = GSON.toJson(trade);
|
||||
try (Jedis jedis = redisPool.getResource())
|
||||
{
|
||||
jedis.publish("ge", json);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public Collection<GrandExchangeTradeHistory> get(HttpServletRequest request, HttpServletResponse response,
|
||||
@RequestParam(required = false, defaultValue = "1024") int limit,
|
||||
@RequestParam(required = false, defaultValue = "0") int offset) throws IOException
|
||||
{
|
||||
SessionEntry session = authFilter.handle(request, response);
|
||||
|
||||
if (session == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return grandExchangeService.get(session.getUser(), limit, offset).stream()
|
||||
.map(GrandExchangeController::convert)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private static GrandExchangeTradeHistory convert(TradeEntry tradeEntry)
|
||||
{
|
||||
GrandExchangeTradeHistory grandExchangeTrade = new GrandExchangeTradeHistory();
|
||||
grandExchangeTrade.setBuy(tradeEntry.getAction() == TradeAction.BUY);
|
||||
grandExchangeTrade.setItemId(tradeEntry.getItem());
|
||||
grandExchangeTrade.setQuantity(tradeEntry.getQuantity());
|
||||
grandExchangeTrade.setPrice(tradeEntry.getPrice());
|
||||
grandExchangeTrade.setTime(tradeEntry.getTime());
|
||||
return grandExchangeTrade;
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void delete(HttpServletRequest request, HttpServletResponse response) throws IOException
|
||||
{
|
||||
SessionEntry session = authFilter.handle(request, response);
|
||||
|
||||
if (session == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
grandExchangeService.delete(session.getUser());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.http.service.config;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ConfigServiceTest
|
||||
{
|
||||
@Test
|
||||
public void testParseJsonString()
|
||||
{
|
||||
assertEquals(1, ConfigService.parseJsonString("1"));
|
||||
assertEquals(3.14, ConfigService.parseJsonString("3.14"));
|
||||
assertEquals(1L << 32, ConfigService.parseJsonString("4294967296"));
|
||||
assertEquals("test", ConfigService.parseJsonString("test"));
|
||||
assertEquals("test", ConfigService.parseJsonString("\"test\""));
|
||||
assertEquals(ImmutableMap.of("key", "value"), ConfigService.parseJsonString("{\"key\": \"value\"}"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testValidateJson()
|
||||
{
|
||||
assertTrue(ConfigService.validateJson("1"));
|
||||
assertTrue(ConfigService.validateJson("3.14"));
|
||||
assertTrue(ConfigService.validateJson("test"));
|
||||
assertTrue(ConfigService.validateJson("\"test\""));
|
||||
assertTrue(ConfigService.validateJson("key:value"));
|
||||
assertTrue(ConfigService.validateJson("{\"key\": \"value\"}"));
|
||||
assertTrue(ConfigService.validateJson("\n"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.http.service.hiscore;
|
||||
|
||||
import java.io.IOException;
|
||||
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
||||
import net.runelite.http.api.hiscore.HiscoreResult;
|
||||
import okhttp3.mockwebserver.MockResponse;
|
||||
import okhttp3.mockwebserver.MockWebServer;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
public class HiscoreServiceTest
|
||||
{
|
||||
private static final String RESPONSE = "654683,705,1304518\n"
|
||||
+ "679419,50,107181\n"
|
||||
+ "550667,48,85764\n"
|
||||
+ "861497,50,101366\n"
|
||||
+ "891591,48,87843\n"
|
||||
+ "-1,1,4\n"
|
||||
+ "840255,27,10073\n"
|
||||
+ "1371912,10,1310\n"
|
||||
+ "432193,56,199795\n"
|
||||
+ "495638,56,198304\n"
|
||||
+ "514466,37,27502\n"
|
||||
+ "456981,54,159727\n"
|
||||
+ "459159,49,93010\n"
|
||||
+ "1028855,8,823\n"
|
||||
+ "862906,29,12749\n"
|
||||
+ "795020,31,16097\n"
|
||||
+ "673591,5,495\n"
|
||||
+ "352676,51,112259\n"
|
||||
+ "428419,40,37235\n"
|
||||
+ "461887,43,51971\n"
|
||||
+ "598582,1,10\n"
|
||||
+ "638177,1,0\n"
|
||||
+ "516239,9,1000\n"
|
||||
+ "492790,1,0\n"
|
||||
+ "2,2460\n" // leagues
|
||||
+ "-1,-1\n"
|
||||
+ "73,1738\n"
|
||||
+ "531,1432\n"
|
||||
+ "324,212\n"
|
||||
+ "8008,131\n"
|
||||
+ "1337,911\n"
|
||||
+ "42,14113\n"
|
||||
+ "1,777\n"
|
||||
+ "254,92\n"
|
||||
+ "-1,-1\n" // lms
|
||||
+ "1,241\n" // soul wars
|
||||
+ "24870,37\n"
|
||||
+ "15020,388\n"
|
||||
+ "50463,147\n"
|
||||
+ "-1,-1\n"
|
||||
+ "92357,1\n"
|
||||
+ "22758,637\n"
|
||||
+ "22744,107\n"
|
||||
+ "-1,-1\n"
|
||||
+ "20150,17\n"
|
||||
+ "29400,18\n"
|
||||
+ "13465,172\n"
|
||||
+ "1889,581\n"
|
||||
+ "42891,11\n"
|
||||
+ "1624,1957\n"
|
||||
+ "1243,2465\n"
|
||||
+ "1548,2020\n"
|
||||
+ "-1,-1\n"
|
||||
+ "16781,327\n"
|
||||
+ "19004,149\n"
|
||||
+ "-1,-1\n"
|
||||
+ "72046,5\n"
|
||||
+ "5158,374\n"
|
||||
+ "20902,279\n"
|
||||
+ "702,6495\n"
|
||||
+ "10170,184\n"
|
||||
+ "8064,202\n"
|
||||
+ "6936,2\n"
|
||||
+ "2335,9\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "19779,22\n"
|
||||
+ "58283,10\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "-1,-1\n"
|
||||
+ "29347,130\n"
|
||||
+ "723,4\n"
|
||||
+ "1264,38\n"
|
||||
+ "44595,4\n"
|
||||
+ "24820,4\n"
|
||||
+ "12116,782\n"
|
||||
+ "2299,724\n"
|
||||
+ "19301,62\n"
|
||||
+ "1498,5847\n";
|
||||
|
||||
private final MockWebServer server = new MockWebServer();
|
||||
|
||||
@Before
|
||||
public void before() throws IOException
|
||||
{
|
||||
server.enqueue(new MockResponse().setBody(RESPONSE));
|
||||
|
||||
server.start();
|
||||
}
|
||||
|
||||
@After
|
||||
public void after() throws IOException
|
||||
{
|
||||
server.shutdown();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNormalLookup() throws Exception
|
||||
{
|
||||
HiscoreTestService hiscores = new HiscoreTestService(server.url("/"));
|
||||
|
||||
HiscoreResult result = hiscores.lookupUsername("zezima", HiscoreEndpoint.NORMAL.getHiscoreURL());
|
||||
|
||||
Assert.assertEquals(50, result.getAttack().getLevel());
|
||||
Assert.assertEquals(159727L, result.getFishing().getExperience());
|
||||
Assert.assertEquals(492790, result.getConstruction().getRank());
|
||||
Assert.assertEquals(1432, result.getClueScrollAll().getLevel());
|
||||
Assert.assertEquals(324, result.getClueScrollBeginner().getRank());
|
||||
Assert.assertEquals(8008, result.getClueScrollEasy().getRank());
|
||||
Assert.assertEquals(911, result.getClueScrollMedium().getLevel());
|
||||
Assert.assertEquals(42, result.getClueScrollHard().getRank());
|
||||
Assert.assertEquals(777, result.getClueScrollElite().getLevel());
|
||||
Assert.assertEquals(254, result.getClueScrollMaster().getRank());
|
||||
Assert.assertEquals(-1, result.getLastManStanding().getLevel());
|
||||
Assert.assertEquals(241, result.getSoulWarsZeal().getLevel());
|
||||
Assert.assertEquals(2460, result.getLeaguePoints().getLevel());
|
||||
Assert.assertEquals(37, result.getAbyssalSire().getLevel());
|
||||
Assert.assertEquals(92357, result.getCallisto().getRank());
|
||||
Assert.assertEquals(5847, result.getZulrah().getLevel());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -438,7 +438,7 @@ public class MixinInjector extends AbstractInjector
|
||||
else if (hasInject)
|
||||
{
|
||||
// Make sure the method doesn't invoke copied methods
|
||||
for (Instruction i : mixinMethod.getCode().getInstructions())
|
||||
/*for (Instruction i : mixinMethod.getCode().getInstructions())
|
||||
{
|
||||
if (i instanceof InvokeInstruction)
|
||||
{
|
||||
@@ -446,10 +446,10 @@ public class MixinInjector extends AbstractInjector
|
||||
|
||||
if (copiedMethods.containsKey(ii.getMethod()))
|
||||
{
|
||||
throw new InjectException("Injected methods cannot invoke copied methods");
|
||||
throw new InjectException("Injected methods cannot invoke copied methods " + ii.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
Method copy = new Method(targetClass, mixinMethod.getName(), mixinMethod.getDescriptor());
|
||||
moveCode(copy, mixinMethod.getCode());
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Noodleeater <noodleeater4@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;
|
||||
|
||||
/**
|
||||
* Represents an archive of data, which is ordered into "groups" of "files".
|
||||
*/
|
||||
public interface AbstractArchive extends IndexDataBase
|
||||
{
|
||||
/**
|
||||
* the methods bellow are usefull for reading byte data from the cache
|
||||
*/
|
||||
int getGroupCount();
|
||||
|
||||
byte[] getConfigData(int archiveId, int fileId);
|
||||
|
||||
int[] getFileIds(int groupId);
|
||||
|
||||
int[][] getFileIds();
|
||||
|
||||
byte[] getFile(int groupId, int fileId);
|
||||
|
||||
int getGroupFileCount(int groupId);
|
||||
|
||||
int[] getFileCounts();
|
||||
}
|
||||
@@ -43,10 +43,11 @@ public final class AnimationID
|
||||
public static final int WOODCUTTING_RUNE = 867;
|
||||
public static final int WOODCUTTING_GILDED = 8303;
|
||||
public static final int WOODCUTTING_DRAGON = 2846;
|
||||
public static final int WOODCUTTING_DRAGON_OR = 24;
|
||||
public static final int WOODCUTTING_INFERNAL = 2117;
|
||||
public static final int WOODCUTTING_3A_AXE = 7264;
|
||||
public static final int WOODCUTTING_CRYSTAL = 8324;
|
||||
public static final int WOODCUTTING_TRAILBLAZER = 8778;
|
||||
public static final int WOODCUTTING_TRAILBLAZER = 8778; // Same animation as Infernal axe (or)
|
||||
public static final int CONSUMING = 829; // consuming consumables
|
||||
public static final int FIREMAKING = 733;
|
||||
public static final int DEATH = 836;
|
||||
@@ -96,6 +97,7 @@ public final class AnimationID
|
||||
public static final int CRAFTING_SPINNING = 894;
|
||||
public static final int CRAFTING_POTTERS_WHEEL = 883;
|
||||
public static final int CRAFTING_POTTERY_OVEN = 24975;
|
||||
public static final int CRAFTING_LOOM = 2270;
|
||||
public static final int SMITHING_SMELTING = 899;
|
||||
public static final int SMITHING_CANNONBALL = 827; //cball smithing uses this and SMITHING_SMELTING
|
||||
public static final int SMITHING_ANVIL = 898;
|
||||
@@ -106,19 +108,10 @@ public final class AnimationID
|
||||
public static final int FISHING_HARPOON = 618;
|
||||
public static final int FISHING_BARBTAIL_HARPOON = 5108;
|
||||
public static final int FISHING_DRAGON_HARPOON = 7401;
|
||||
public static final int FISHING_DRAGON_HARPOON_OR = 88;
|
||||
public static final int FISHING_INFERNAL_HARPOON = 7402;
|
||||
public static final int FISHING_CRYSTAL_HARPOON = 8336;
|
||||
public static final int CRYSTALLINE_RAT_DEATH = 8334;
|
||||
public static final int CRYSTALLINE_BAT_DEATH = 4917;
|
||||
public static final int CRYSTALLINE_WOLF_DEATH = 8335;
|
||||
public static final int CRYSTALLINE_SPIDER_DEATH = 8338;
|
||||
public static final int CRYSTALLINE_UNICORN_DEATH = 6377;
|
||||
public static final int CRYSTALLINE_DRAGON_DEATH = 92;
|
||||
public static final int CRYSTALLINE_BEAR_DEATH = 4929;
|
||||
public static final int CRYSTALLINE_DARK_BEAST_DEATH = 2733;
|
||||
public static final int CORRUPTED_SCORPION_DEATH = 6256;
|
||||
public static final int FISHING_TRAILBLAZER_HARPOON = 8784;
|
||||
public static final int FISHING_TRAILBLAZER_HARPOON_2 = 8785;
|
||||
public static final int FISHING_TRAILBLAZER_HARPOON = 8784; // Same animation as Infernal harpoon (or)
|
||||
public static final int FISHING_OILY_ROD = 622;
|
||||
public static final int FISHING_KARAMBWAN = 1193;
|
||||
public static final int FISHING_CRUSHING_INFERNAL_EELS = 7553;
|
||||
@@ -150,10 +143,11 @@ public final class AnimationID
|
||||
public static final int MINING_DRAGON_PICKAXE = 7139;
|
||||
public static final int MINING_DRAGON_PICKAXE_UPGRADED = 642;
|
||||
public static final int MINING_DRAGON_PICKAXE_OR = 8346;
|
||||
public static final int MINING_DRAGON_PICKAXE_OR_TRAILBLAZER = 8887;
|
||||
public static final int MINING_INFERNAL_PICKAXE = 4482;
|
||||
public static final int MINING_3A_PICKAXE = 7283;
|
||||
public static final int MINING_CRYSTAL_PICKAXE = 8347;
|
||||
public static final int MINING_TRAILBLAZER_PICKAXE = 8787;
|
||||
public static final int MINING_TRAILBLAZER_PICKAXE = 8787; // Same animation as Infernal pickaxe (or)
|
||||
public static final int MINING_TRAILBLAZER_PICKAXE_2 = 8788;
|
||||
public static final int MINING_TRAILBLAZER_PICKAXE_3 = 8789;
|
||||
public static final int MINING_MOTHERLODE_BRONZE = 6753;
|
||||
@@ -167,16 +161,16 @@ public final class AnimationID
|
||||
public static final int MINING_MOTHERLODE_DRAGON = 6758;
|
||||
public static final int MINING_MOTHERLODE_DRAGON_UPGRADED = 335;
|
||||
public static final int MINING_MOTHERLODE_DRAGON_OR = 8344;
|
||||
public static final int MINING_MOTHERLODE_DRAGON_OR_TRAILBLAZER = 8886;
|
||||
public static final int MINING_MOTHERLODE_INFERNAL = 4481;
|
||||
public static final int MINING_MOTHERLODE_3A = 7282;
|
||||
public static final int MINING_MOTHERLODE_CRYSTAL = 8345;
|
||||
public static final int MINING_MOTHERLODE_TRAILBLAZER = 8786;
|
||||
public static final int MINING_MOTHERLODE_TRAILBLAZER = 8786; // Same animation as Infernal pickaxe (or)
|
||||
public static final int DENSE_ESSENCE_CHIPPING = 7201;
|
||||
public static final int DENSE_ESSENCE_CHISELING = 7202;
|
||||
public static final int HERBLORE_POTIONMAKING = 363; //used for both herb and secondary
|
||||
public static final int MAGIC_CHARGING_ORBS = 726;
|
||||
public static final int MAGIC_MAKE_TABLET = 4068;
|
||||
public static final int TABLET_TELEPORT = 4069;
|
||||
public static final int MAGIC_ENCHANTING_JEWELRY = 931;
|
||||
public static final int MAGIC_ENCHANTING_AMULET_1 = 719; // sapphire, opal, diamond
|
||||
public static final int MAGIC_ENCHANTING_AMULET_2 = 720; // emerald, jade, dragonstone
|
||||
@@ -209,81 +203,23 @@ public final class AnimationID
|
||||
public static final int LEAGUE_HOME_TELEPORT_4 = 8803;
|
||||
public static final int LEAGUE_HOME_TELEPORT_5 = 8805;
|
||||
public static final int LEAGUE_HOME_TELEPORT_6 = 8807;
|
||||
|
||||
public static final int CONSTRUCTION = 3676;
|
||||
public static final int SAND_COLLECTION = 895;
|
||||
public static final int PISCARILIUS_CRANE_REPAIR = 7199;
|
||||
public static final int HOME_MAKE_TABLET = 4067;
|
||||
public static final int THIEVING_STALL = 832;
|
||||
public static final int PICKPOCKET_SUCCESS = 881;
|
||||
public static final int PULL_LEVER = 2140;
|
||||
public static final int STANDARD_PURPLE_TELEPORT = 714;
|
||||
public static final int ECTOPHIAL_TELEPORT = 878;
|
||||
public static final int FAIRY_RING_TELEPORT = 3265;
|
||||
public static final int SCROLL_TELEPORT = 3864;
|
||||
public static final int XERICS_TALISMAN_TELEPORT = 3865;
|
||||
public static final int WILDERNESS_OBELISK_TELEPORT = 3945;
|
||||
public static final int SEED_POD_TELEPORT = 4544;
|
||||
|
||||
//block animations for players and perhaps npcs as well?
|
||||
public static final int BLOCK_DEFENDER = 4177;
|
||||
public static final int BLOCK_NO_SHIELD = 420;
|
||||
public static final int BLOCK_SHIELD = 1156;
|
||||
public static final int BLOCK_SWORD = 388;
|
||||
public static final int BLOCK_UNARMED = 424; // Same Animation as failed pickpocked
|
||||
public static final int DRAGONFIRE_SHIELD_SPECIAL = 6696;
|
||||
|
||||
//Player Emotes
|
||||
public static final int YES = 855;
|
||||
public static final int NO = 856;
|
||||
public static final int BOW = 858;
|
||||
public static final int ANGRY = 859;
|
||||
public static final int THINK = 857;
|
||||
public static final int WAVE = 863;
|
||||
public static final int SHRUG = 2113;
|
||||
public static final int CHEER = 862;
|
||||
public static final int BECKON = 864;
|
||||
public static final int LAUGH = 861;
|
||||
public static final int JUMP_FOR_JOY = 2109;
|
||||
public static final int YAWN = 2111;
|
||||
public static final int DANCE = 866;
|
||||
public static final int JIG = 2106;
|
||||
public static final int SPIN = 2107;
|
||||
public static final int HEAD_BANG = 2108;
|
||||
public static final int CRY = 860;
|
||||
public static final int BLOW_KISS = 1374;
|
||||
public static final int PANIC = 2105;
|
||||
public static final int RASPBERRY = 2110;
|
||||
public static final int CLAP = 865;
|
||||
public static final int SALUTE = 2112;
|
||||
public static final int GOBLIN_BOW = 2127;
|
||||
public static final int GOBLIN_SALUTE = 2128;
|
||||
// Ectofuntus animations
|
||||
public static final int ECTOFUNTUS_FILL_SLIME_BUCKET = 4471;
|
||||
public static final int ECTOFUNTUS_GRIND_BONES = 1648;
|
||||
public static final int ECTOFUNTUS_INSERT_BONES = 1649;
|
||||
public static final int ECTOFUNTUS_EMPTY_BIN = 1650;
|
||||
|
||||
// Combat counter
|
||||
public static final int BARRAGE_ANIMATION = 1979;
|
||||
public static final int BLITZ_ANIMATION = 1978;
|
||||
public static final int CHIN_ANIMATION = 7618;
|
||||
|
||||
//Supplies Tracker
|
||||
public static final int ONEHAND_SLASH_SWORD_ANIMATION = 390;
|
||||
public static final int ONEHAND_STAB_SWORD_ANIMATION = 386;
|
||||
public static final int SCYTHE_OF_VITUR_ANIMATION = 8056;
|
||||
public static final int LOW_LEVEL_STANDARD_SPELLS = 711;
|
||||
public static final int WAVE_SPELL_ANIMATION = 727;
|
||||
public static final int SURGE_SPELL_ANIMATION = 7855;
|
||||
public static final int HIGH_ALCH_ANIMATION = 713;
|
||||
public static final int LUNAR_HUMIDIFY = 6294;
|
||||
public static final int PRAY_AT_ALTAR = 645;
|
||||
public static final int ENSOULED_HEADS_ANIMATION = 7198;
|
||||
|
||||
// Weapon attack animations
|
||||
public static final int ONEHAND_SLASH_AXE_ANIMATION = 395;
|
||||
public static final int ONEHAND_CRUSH_PICKAXE_ANIMATION = 400;
|
||||
public static final int ONEHAND_CRUSH_AXE_ANIMATION = 401;
|
||||
public static final int UNARMED_PUNCH_ANIMATION = 422;
|
||||
public static final int UNARMED_KICK_ANIMATION = 423;
|
||||
public static final int BOW_ATTACK_ANIMATION = 426;
|
||||
public static final int ONEHAND_STAB_HALBERD_ANIMATION = 428;
|
||||
public static final int ONEHAND_SLASH_HALBERD_ANIMATION = 440;
|
||||
// NPC animations
|
||||
public static final int TZTOK_JAD_MAGIC_ATTACK = 2656;
|
||||
public static final int TZTOK_JAD_RANGE_ATTACK = 2652;
|
||||
public static final int HELLHOUND_DEFENCE = 6566;
|
||||
|
||||
// Farming
|
||||
public static final int FARMING_HARVEST_FRUIT_TREE = 2280;
|
||||
@@ -319,205 +255,7 @@ public final class AnimationID
|
||||
public static final int ROCKSLUG_DEATH = 1568;
|
||||
public static final int ZYGOMITE_DEATH = 3327;
|
||||
public static final int IMP_DEATH = 172;
|
||||
public static final int NIGHTMARE_DEATH = 8612;
|
||||
|
||||
// POH Animations
|
||||
public static final int INCENSE_BURNER = 3687;
|
||||
public static final int LOW_LEVEL_MAGIC_ATTACK = 1162;
|
||||
public static final int HIGH_LEVEL_MAGIC_ATTACK = 1167;
|
||||
public static final int BLOWPIPE_ATTACK = 5061;
|
||||
|
||||
// NPC animations
|
||||
public static final int HELLHOUND_DEFENCE = 6566;
|
||||
public static final int BLACKJACK_KO = 838;
|
||||
|
||||
// Fight Caves
|
||||
public static final int TZTOK_JAD_RANGE_ATTACK = 2652;
|
||||
public static final int TZTOK_JAD_MELEE_ATTACK = 2655;
|
||||
public static final int TZTOK_JAD_MAGIC_ATTACK = 2656;
|
||||
public static final int TOK_XIL_RANGE_ATTACK = 2633;
|
||||
public static final int TOK_XIL_MELEE_ATTACK = 2628;
|
||||
public static final int KET_ZEK_MELEE_ATTACK = 2644;
|
||||
public static final int KET_ZEK_MAGE_ATTACK = 2647;
|
||||
public static final int MEJ_KOT_MELEE_ATTACK = 2637;
|
||||
public static final int MEJ_KOT_HEAL_ATTACK = 2639;
|
||||
|
||||
// Vorkath
|
||||
public static final int VORKATH_WAKE_UP = 7950;
|
||||
public static final int VORKATH_DEATH = 7949;
|
||||
public static final int VORKATH_SLASH_ATTACK = 7951;
|
||||
public static final int VORKATH_ATTACK = 7952;
|
||||
public static final int VORKATH_FIRE_BOMB_OR_SPAWN_ATTACK = 7960;
|
||||
public static final int VORKATH_ACID_ATTACK = 7957;
|
||||
|
||||
// Tekton
|
||||
public static final int TEKTON_ANVIL = 7475;
|
||||
public static final int TEKTON_AUTO1 = 7482;
|
||||
public static final int TEKTON_AUTO2 = 7483;
|
||||
public static final int TEKTON_AUTO3 = 7484;
|
||||
public static final int TEKTON_FAST_AUTO1 = 7478;
|
||||
public static final int TEKTON_FAST_AUTO2 = 7488;
|
||||
public static final int TEKTON_ENRAGE_AUTO1 = 7492;
|
||||
public static final int TEKTON_ENRAGE_AUTO2 = 7493;
|
||||
public static final int TEKTON_ENRAGE_AUTO3 = 7494;
|
||||
|
||||
// Hydra
|
||||
public static final int HYDRA_WALKING = 8232;
|
||||
public static final int HYDRA_IDLE = 8233;
|
||||
public static final int HYDRA_POISON_1 = 8234;
|
||||
public static final int HYDRA_RANGED_1 = 8235;
|
||||
public static final int HYDRA_MAGIC_1 = 8236;
|
||||
public static final int HYDRA_1_1 = 8237;
|
||||
public static final int HYDRA_1_2 = 8238;
|
||||
public static final int HYDRA_LIGHTNING = 8241;
|
||||
public static final int HYDRA_RANGED_2 = 8242;
|
||||
public static final int HYDRA_MAGIC_2 = 8243;
|
||||
public static final int HYDRA_2_1 = 8244;
|
||||
public static final int HYDRA_2_2 = 8245;
|
||||
public static final int HYDRA_FIRE = 8248;
|
||||
public static final int HYDRA_RANGED_3 = 8249;
|
||||
public static final int HYDRA_MAGIC_3 = 8250;
|
||||
public static final int HYDRA_3_1 = 8251;
|
||||
public static final int HYDRA_3_2 = 8252;
|
||||
public static final int HYDRA_MAGIC_4 = 8254;
|
||||
public static final int HYDRA_POISON_4 = 8254;
|
||||
public static final int HYDRA_RANGED_4 = 8255;
|
||||
public static final int HYDRA_RANGED_OR_POISON_ATTACK = 8256;
|
||||
public static final int HYDRA_4_1 = 8257;
|
||||
public static final int HYDRA_4_2 = 8258;
|
||||
|
||||
// Inferno animations
|
||||
public static final int JAL_NIB = 7574;
|
||||
public static final int JAL_MEJRAH = 7578;
|
||||
public static final int JAL_MEJRAH_STAND = 7577;
|
||||
public static final int JAL_AK_RANGE_ATTACK = 7581;
|
||||
public static final int JAL_AK_MELEE_ATTACK = 7582;
|
||||
public static final int JAL_AK_MAGIC_ATTACK = 7583;
|
||||
public static final int JAL_IMKOT = 7597;
|
||||
public static final int JAL_XIL_MELEE_ATTACK = 7604;
|
||||
public static final int JAL_XIL_RANGE_ATTACK = 7605;
|
||||
public static final int JAL_ZEK_MAGE_ATTACK = 7610;
|
||||
public static final int JAL_ZEK_MELEE_ATTACK = 7612;
|
||||
public static final int JALTOK_JAD_MELEE_ATTACK = 7590;
|
||||
public static final int JALTOK_JAD_MAGE_ATTACK = 7592;
|
||||
public static final int JALTOK_JAD_RANGE_ATTACK = 7593;
|
||||
public static final int TZKAL_ZUK = 7566;
|
||||
public static final int JAL_MEJJAK = 2858;
|
||||
|
||||
// General Graardor
|
||||
public static final int MINION_AUTO1 = 6154;
|
||||
public static final int MINION_AUTO2 = 6156;
|
||||
public static final int MINION_AUTO3 = 7071;
|
||||
public static final int MINION_AUTO4 = 7073;
|
||||
public static final int GENERAL_AUTO1 = 7018;
|
||||
public static final int GENERAL_AUTO2 = 7020;
|
||||
public static final int GENERAL_AUTO3 = 7021;
|
||||
|
||||
// Kr'il Tsutsaroth
|
||||
public static final int ZAMMY_GENERIC_AUTO = 64;
|
||||
public static final int KRIL_AUTO = 6948;
|
||||
public static final int KRIL_SPEC = 6950;
|
||||
public static final int ZAKL_AUTO = 7077;
|
||||
public static final int BALFRUG_AUTO = 4630;
|
||||
|
||||
// Commander Zilyana
|
||||
public static final int ZILYANA_MELEE_AUTO = 6964;
|
||||
public static final int ZILYANA_AUTO = 6967;
|
||||
public static final int ZILYANA_SPEC = 6970;
|
||||
public static final int STARLIGHT_AUTO = 6376;
|
||||
public static final int BREE_AUTO = 7026;
|
||||
public static final int GROWLER_AUTO = 7037;
|
||||
|
||||
// Kree'arra
|
||||
public static final int KREE_RANGED = 6978;
|
||||
public static final int SKREE_AUTO = 6955;
|
||||
public static final int GEERIN_AUTO = 6956;
|
||||
public static final int GEERIN_FLINCH = 6958;
|
||||
public static final int KILISA_AUTO = 6957;
|
||||
|
||||
// Vetion
|
||||
public static final int VETION_EARTHQUAKE = 5507;
|
||||
|
||||
// Zulrah
|
||||
public static final int ZULRAH_DEATH = 5804;
|
||||
public static final int ZULRAH_PHASE = 5072;
|
||||
|
||||
//Dagannoth Kings
|
||||
public static final int DAG_REX = 2853;
|
||||
public static final int DAG_PRIME = 2854;
|
||||
public static final int DAG_SUPREME = 2855;
|
||||
|
||||
// Lizardman shaman
|
||||
public static final int LIZARDMAN_SHAMAN_SPAWN = 7157;
|
||||
public static final int LIZARDMAN_SHAMAN_SPAWN_EXPLOSION = 7159;
|
||||
|
||||
// Cerberus
|
||||
public static final int CERBERUS_MAGIC_ATTACK = 4489;
|
||||
public static final int CERBERUS_RANGED_ATTACK = 4490;
|
||||
public static final int CERBERUS_MELEE_ATTACK = 4491;
|
||||
public static final int CERBERUS_LAVA_ATTACK = 4493;
|
||||
public static final int CERBERUS_SUMMON_GHOSTS = 4494;
|
||||
|
||||
// Gauntlet Hunleff
|
||||
public static final int HUNLEFF_TRAMPLE = 8420;
|
||||
public static final int HUNLEFF_ATTACK = 8419;
|
||||
public static final int HUNLEFF_TORNADO = 8418;
|
||||
public static final int HUNLLEF_SWITCH_TO_MAGIC = 8754;
|
||||
public static final int HUNLLEF_SWITCH_TO_RANGED = 8755;
|
||||
|
||||
//Zalcano
|
||||
public static final int ZALCANO_KNOCKED_DOWN = 8437;
|
||||
public static final int ZALCANO_WAKEUP = 8439;
|
||||
public static final int ZALCANO_ROCK_GLOWING = 8448;
|
||||
|
||||
// Theatre of Blood - Sugadinti Maiden
|
||||
public static final int SUGADINTI_MAIDEN_BLOOD_SPLAT_ATTACK = 8091;
|
||||
public static final int SUGADINTI_MAIDEN_MAGIC_ATTACK = 8092;
|
||||
public static final int SUGADINTI_MAIDEN_DEATH = 8094;
|
||||
|
||||
// Theatre of Blood - Pestilent Bloat
|
||||
public static final int BLOAT_SLEEP = 8082;
|
||||
|
||||
// Theatre of Blood - Sotetseg
|
||||
public static final int SOTETSEG_MELEE_ATTACK = 8138;
|
||||
public static final int SOTETSEG_REGULAR_PROJECTILE_ATTACK = 8139;
|
||||
|
||||
// Theatre of Blood - Verzik Vitur
|
||||
public static final int VERZIK_PHASE_1_MAGIC_ATTACK = 8109;
|
||||
public static final int VERZIK_PHASE_1_MAGIC_ATTACK_CHANNEL = 8110;
|
||||
public static final int VERZIK_CHANGE_TO_PHASE_2 = 8111;
|
||||
public static final int VERZIK_PHASE_2_MAGIC_ATTACK = 8114;
|
||||
public static final int VERZIK_PHASE_2_BELLY_FLOP_ATTACK_1 = 8116;
|
||||
public static final int VERZIK_PHASE_2_HEALING_CHANNEL = 8117;
|
||||
public static final int VERZIK_PHASE_2_BELLY_FLOP_ATTACK_2 = 8118;
|
||||
public static final int VERZIK_CHANGE_TO_PHASE_3 = 8119;
|
||||
public static final int VERZIK_PHASE_3_MELEE_ATTACK = 8123;
|
||||
public static final int VERZIK_PHASE_3_MAGIC_ATTACK = 8124;
|
||||
public static final int VERZIK_PHASE_3_RANGED_ATTACK = 8125;
|
||||
public static final int VERZIK_PHASE_3_GREEN_POOL_ATTACK = 8126;
|
||||
public static final int VERZIK_PHASE_3_WEB_ATTACK = 8127;
|
||||
public static final int VERZIK_DEATH_1 = 8128;
|
||||
public static final int VERZIK_DEATH_2 = 8129;
|
||||
|
||||
// The Nightmare of Ashihama
|
||||
public static final int NIGHTMARE_SPAWN_SLEEPWALKERS = 8572;
|
||||
public static final int NIGHTMARE_FLOATY = 8592;
|
||||
public static final int NIGHTMARE_WALKING = 8592;
|
||||
public static final int NIGHTMARE_IDLE = 8593;
|
||||
public static final int NIGHTMARE_MELEE_ATTACK = 8594;
|
||||
public static final int NIGHTMARE_MAGIC_ATTACK = 8595;
|
||||
public static final int NIGHTMARE_RANGED_ATTACK = 8596;
|
||||
public static final int NIGHTMARE_SURGE_ATTACK = 8597;
|
||||
public static final int NIGHTMARE_GHOST_AOE_ATTACK = 8598;
|
||||
public static final int NIGHTMARE_CURSE_PRAYERS_ATTACK = 8599;
|
||||
public static final int NIGHTMARE_SPAWN_INFECTIOUS_SPORES = 8600;
|
||||
public static final int NIGHTMARE_SPAWN_ROOM_SECTION_FLOWERS = 8601;
|
||||
public static final int NIGHTMARE_CHANNEL_DEVASTATING_ATTACK = 8604;
|
||||
public static final int NIGHTMARE_SWITCH_TO_DEVIL_PHASE = 8605;
|
||||
public static final int NIGHTMARE_PARASITE_ATTACK = 8606;
|
||||
public static final int NIGHTMARE_JUMP_DOWN = 8607;
|
||||
public static final int NIGHTMARE_SINK_DOWN = 8608;
|
||||
public static final int NIGHTMARE_JUMP_UP = 8609;
|
||||
public static final int NIGHTMARE_JUMP_UP_2 = 8610;
|
||||
public static final int NIGHTMARE_WAKE_UP = 8611;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (c) 2020, Noodleeater <noodleeater4@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;
|
||||
|
||||
/**
|
||||
* Represents a byte buffer
|
||||
*/
|
||||
public interface Buffer extends Node
|
||||
{
|
||||
byte[] getPayload();
|
||||
|
||||
int getOffset();
|
||||
|
||||
/**
|
||||
* Use this api to write to byte buffers
|
||||
*/
|
||||
void writeByte(int var1);
|
||||
|
||||
void writeShort(int var1);
|
||||
|
||||
void writeMedium(int var1);
|
||||
|
||||
void writeInt(int var1);
|
||||
|
||||
void writeLong(long var1);
|
||||
|
||||
void writeStringCp1252NullTerminated(String string);
|
||||
}
|
||||
@@ -117,7 +117,7 @@ public enum ChatMessageType
|
||||
*/
|
||||
MODAUTOTYPER(91),
|
||||
/**
|
||||
* A game message (ie. when a setting is changed).
|
||||
* A game message. (ie. when a setting is changed)
|
||||
*/
|
||||
CONSOLE(99),
|
||||
/**
|
||||
|
||||
@@ -47,7 +47,7 @@ import org.slf4j.Logger;
|
||||
/**
|
||||
* Represents the RuneScape client.
|
||||
*/
|
||||
public interface Client extends GameShell
|
||||
public interface Client extends GameEngine
|
||||
{
|
||||
/**
|
||||
* The injected client invokes these callbacks to send events to us
|
||||
@@ -68,6 +68,8 @@ public interface Client extends GameShell
|
||||
*/
|
||||
Logger getLogger();
|
||||
|
||||
String getBuildID();
|
||||
|
||||
/**
|
||||
* Gets a list of all valid players from the player cache.
|
||||
*
|
||||
@@ -122,12 +124,25 @@ public interface Client extends GameShell
|
||||
/**
|
||||
* Adds a new chat message to the chatbox.
|
||||
*
|
||||
* @param type the type of message
|
||||
* @param name the name of the player that sent the message
|
||||
* @param type the type of message
|
||||
* @param name the name of the player that sent the message
|
||||
* @param message the message contents
|
||||
* @param sender the sender/channel name
|
||||
* @param sender the sender/channel name
|
||||
* @return the message node for the message
|
||||
*/
|
||||
void addChatMessage(ChatMessageType type, String name, String message, String sender);
|
||||
MessageNode addChatMessage(ChatMessageType type, String name, String message, String sender);
|
||||
|
||||
/**
|
||||
* Adds a new chat message to the chatbox.
|
||||
*
|
||||
* @param type the type of message
|
||||
* @param name the name of the player that sent the message
|
||||
* @param message the message contents
|
||||
* @param sender the sender/channel name
|
||||
* @param postEvent whether to post the chat message event
|
||||
* @return the message node for the message
|
||||
*/
|
||||
MessageNode addChatMessage(ChatMessageType type, String name, String message, String sender, boolean postEvent);
|
||||
|
||||
/**
|
||||
* Gets the current game state.
|
||||
@@ -457,7 +472,7 @@ public interface Client extends GameShell
|
||||
int getMouseCurrentButton();
|
||||
|
||||
/**
|
||||
* Gets the currently selected tile (ie. last right clicked tile).
|
||||
* Gets the currently selected tile. (ie. last right clicked tile)
|
||||
*
|
||||
* @return the selected tile
|
||||
*/
|
||||
@@ -819,7 +834,7 @@ public interface Client extends GameShell
|
||||
* @param varps passed varps
|
||||
* @param varpId the VarpPlayer id
|
||||
* @return the value
|
||||
* @see VarPlayer#id
|
||||
* @see VarPlayer#getId()
|
||||
*/
|
||||
int getVarpValue(int[] varps, int varpId);
|
||||
|
||||
@@ -1540,15 +1555,15 @@ public interface Client extends GameShell
|
||||
*
|
||||
* @param state the new player hidden state
|
||||
*/
|
||||
void setPlayersHidden(boolean state);
|
||||
void setOthersHidden(boolean state);
|
||||
|
||||
/**
|
||||
* Sets whether 2D sprites (ie. overhead prayers, PK skull) related to
|
||||
* the other players are hidden.
|
||||
* Sets whether 2D sprites related to the other players are hidden.
|
||||
* (ie. overhead prayers, PK skull)
|
||||
*
|
||||
* @param state the new player 2D hidden state
|
||||
*/
|
||||
void setPlayersHidden2D(boolean state);
|
||||
void setOthersHidden2D(boolean state);
|
||||
|
||||
/**
|
||||
* Sets whether or not friends are hidden.
|
||||
@@ -1564,6 +1579,13 @@ public interface Client extends GameShell
|
||||
*/
|
||||
void setFriendsChatMembersHidden(boolean state);
|
||||
|
||||
/**
|
||||
* Sets whether or not ignored players are hidden.
|
||||
*
|
||||
* @param state the new ignored player hidden state
|
||||
*/
|
||||
void setIgnoresHidden(boolean state);
|
||||
|
||||
/**
|
||||
* Sets whether the local player is hidden.
|
||||
*
|
||||
@@ -1572,8 +1594,8 @@ public interface Client extends GameShell
|
||||
void setLocalPlayerHidden(boolean state);
|
||||
|
||||
/**
|
||||
* Sets whether 2D sprites (ie. overhead prayers, PK skull) related to
|
||||
* the local player are hidden.
|
||||
* Sets whether 2D sprites related to the local player are hidden.
|
||||
* (ie. overhead prayers, PK skull)
|
||||
*
|
||||
* @param state new local player 2D hidden state
|
||||
*/
|
||||
@@ -1586,48 +1608,6 @@ public interface Client extends GameShell
|
||||
*/
|
||||
void setNPCsHidden(boolean state);
|
||||
|
||||
/**
|
||||
* Increments the counter for how many times this npc has been selected to be hidden
|
||||
*
|
||||
* @param name npc name
|
||||
*/
|
||||
void addHiddenNpcName(String name);
|
||||
|
||||
/**
|
||||
* Decrements the counter for how many times this npc has been selected to be hidden
|
||||
*
|
||||
* @param name npc name
|
||||
*/
|
||||
void removeHiddenNpcName(String name);
|
||||
|
||||
/**
|
||||
* Forcibly unhides an npc by setting its counter to zero
|
||||
*
|
||||
* @param name npc name
|
||||
*/
|
||||
void forciblyUnhideNpcName(String name);
|
||||
|
||||
/**
|
||||
* Increments the counter for how many times this npc has been selected to be hidden on death
|
||||
*
|
||||
* @param name npc name
|
||||
*/
|
||||
void addHiddenNpcDeath(String name);
|
||||
|
||||
/**
|
||||
* Decrements the counter for how many times this npc has been selected to be hidden on death
|
||||
*
|
||||
* @param name npc name
|
||||
*/
|
||||
void removeHiddenNpcDeath(String name);
|
||||
|
||||
/**
|
||||
* Forcibly unhides a hidden-while-dead npc by setting its counter to zero
|
||||
*
|
||||
* @param name npc name
|
||||
*/
|
||||
void forciblyUnhideNpcDeath(String name);
|
||||
|
||||
/**
|
||||
* Sets whether 2D sprites (ie. overhead prayers) related to
|
||||
* the NPCs are hidden.
|
||||
@@ -2121,4 +2101,34 @@ public interface Client extends GameShell
|
||||
void setOutdatedScript(String outdatedScript);
|
||||
|
||||
List<String> getOutdatedScripts();
|
||||
|
||||
/**
|
||||
* various archives you might want to use for reading data from cache
|
||||
*/
|
||||
AbstractArchive getSequenceDefinition_skeletonsArchive();
|
||||
|
||||
AbstractArchive getSequenceDefinition_archive();
|
||||
|
||||
AbstractArchive getSequenceDefinition_animationsArchive();
|
||||
|
||||
AbstractArchive getNpcDefinition_archive();
|
||||
|
||||
AbstractArchive getObjectDefinition_modelsArchive();
|
||||
|
||||
AbstractArchive getObjectDefinition_archive();
|
||||
|
||||
AbstractArchive getItemDefinition_archive();
|
||||
|
||||
AbstractArchive getKitDefinition_archive();
|
||||
|
||||
AbstractArchive getKitDefinition_modelsArchive();
|
||||
|
||||
AbstractArchive getSpotAnimationDefinition_archive();
|
||||
|
||||
AbstractArchive getSpotAnimationDefinition_modelArchive();
|
||||
|
||||
/**
|
||||
* use createBuffer to create a new byte buffer
|
||||
*/
|
||||
Buffer createBuffer(byte[] initialBytes);
|
||||
}
|
||||
|
||||
@@ -82,6 +82,11 @@ public class Constants
|
||||
|
||||
public static final int TILE_FLAG_BRIDGE = 2;
|
||||
|
||||
/**
|
||||
* The height of the overworld, in tiles. Coordinates above this are in caves and other such zones.
|
||||
*/
|
||||
public static final int OVERWORLD_MAX_Y = 4160;
|
||||
|
||||
/**
|
||||
* The number of milliseconds in a client tick.
|
||||
* <p>
|
||||
@@ -114,9 +119,4 @@ public class Constants
|
||||
* Height of a standard item sprite
|
||||
*/
|
||||
public static final int ITEM_SPRITE_HEIGHT = 32;
|
||||
|
||||
/**
|
||||
* The height of the overworld, in tiles. Coordinates above this are in caves and other such zones.
|
||||
*/
|
||||
public static final int OVERWORLD_MAX_Y = 4160;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package net.runelite.api;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Arrays;
|
||||
|
||||
public enum DialogOption
|
||||
{
|
||||
NPC_CONTINUE(15138819, -1),
|
||||
PLAYER_CONTINUE(14221315, -1),
|
||||
QUEST(12648448, 0),
|
||||
ITEM_ONE(12648448, -1),
|
||||
ITEM_TWO(12648448, 0),
|
||||
CHAT_OPTION_ONE(14352385, 1),
|
||||
CHAT_OPTION_TWO(14352385, 2),
|
||||
CHAT_OPTION_THREE(14352385, 3),
|
||||
CHAT_OPTION_FOUR(14352385, 4),
|
||||
CHAT_OPTION_FIVE(14352385, 5),
|
||||
PLAIN_CONTINUE(15007746, -1),
|
||||
PLAIN_CONTINUE_TWO(720900, -1);
|
||||
|
||||
private final int widgetUid;
|
||||
private final int menuIndex;
|
||||
|
||||
DialogOption(int widgetUid, int menuIndex)
|
||||
{
|
||||
this.widgetUid = widgetUid;
|
||||
this.menuIndex = menuIndex;
|
||||
}
|
||||
|
||||
public int getWidgetUid()
|
||||
{
|
||||
return widgetUid;
|
||||
}
|
||||
|
||||
public int getMenuIndex()
|
||||
{
|
||||
return menuIndex;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static DialogOption of(int widgetUid, int menuIndex)
|
||||
{
|
||||
return Arrays.stream(values())
|
||||
.filter(option -> option.getWidgetUid() == widgetUid && option.getMenuIndex() == menuIndex)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -30,7 +30,7 @@ import java.awt.Canvas;
|
||||
/**
|
||||
* Represents the client game engine.
|
||||
*/
|
||||
public interface GameShell
|
||||
public interface GameEngine
|
||||
{
|
||||
/**
|
||||
* Gets the canvas that contains everything.
|
||||
@@ -54,7 +54,7 @@ public enum HeadIcon
|
||||
*/
|
||||
REDEMPTION,
|
||||
/**
|
||||
* Protect from range and mage (ie. used by Kalphite Queen).
|
||||
* Protect from range and mage. (ie. used by Kalphite Queen)
|
||||
*/
|
||||
RANGE_MAGE
|
||||
}
|
||||
|
||||
@@ -11656,8 +11656,6 @@ public final class ItemID
|
||||
public static final int GIANT_BOULDER = 25314;
|
||||
public static final int GOBLIN_DECORATIONS = 25316;
|
||||
public static final int GNOME_CHILD_ICON = 25319;
|
||||
public static final int GNOME_CHILD = 25320;
|
||||
public static final int GNOME_CHILD_25321 = 25321;
|
||||
public static final int _20TH_ANNIVERSARY_HAT = 25322;
|
||||
public static final int _20TH_ANNIVERSARY_TOP = 25324;
|
||||
public static final int _20TH_ANNIVERSARY_BOTTOM = 25326;
|
||||
@@ -11698,5 +11696,60 @@ public final class ItemID
|
||||
public static final int TRAILBLAZER_RELIC_HUNTER_T1_ARMOUR_SET = 25380;
|
||||
public static final int TRAILBLAZER_RELIC_HUNTER_T2_ARMOUR_SET = 25383;
|
||||
public static final int TRAILBLAZER_RELIC_HUNTER_T3_ARMOUR_SET = 25386;
|
||||
public static final int SWAMPBARK_BODY = 25389;
|
||||
public static final int SWAMPBARK_GAUNTLETS = 25392;
|
||||
public static final int SWAMPBARK_BOOTS = 25395;
|
||||
public static final int SWAMPBARK_HELM = 25398;
|
||||
public static final int SWAMPBARK_LEGS = 25401;
|
||||
public static final int BLOODBARK_BODY = 25404;
|
||||
public static final int BLOODBARK_GAUNTLETS = 25407;
|
||||
public static final int BLOODBARK_BOOTS = 25410;
|
||||
public static final int BLOODBARK_HELM = 25413;
|
||||
public static final int BLOODBARK_LEGS = 25416;
|
||||
public static final int URIUM_REMAINS = 25419;
|
||||
public static final int BLEACHED_BONES = 25422;
|
||||
public static final int GOLD_KEY_RED = 25424;
|
||||
public static final int GOLD_KEY_BROWN = 25426;
|
||||
public static final int GOLD_KEY_CRIMSON = 25428;
|
||||
public static final int GOLD_KEY_BLACK = 25430;
|
||||
public static final int GOLD_KEY_PURPLE = 25432;
|
||||
public static final int ZEALOTS_ROBE_TOP = 25434;
|
||||
public static final int ZEALOTS_ROBE_BOTTOM = 25436;
|
||||
public static final int ZEALOTS_HELM = 25438;
|
||||
public static final int ZEALOTS_BOOTS = 25440;
|
||||
public static final int BRONZE_LOCKS = 25442;
|
||||
public static final int STEEL_LOCKS = 25445;
|
||||
public static final int BLACK_LOCKS = 25448;
|
||||
public static final int SILVER_LOCKS = 25451;
|
||||
public static final int GOLD_LOCKS = 25454;
|
||||
public static final int BROKEN_COFFIN = 25457;
|
||||
public static final int BRONZE_COFFIN = 25459;
|
||||
public static final int STEEL_COFFIN = 25461;
|
||||
public static final int BLACK_COFFIN = 25463;
|
||||
public static final int SILVER_COFFIN = 25465;
|
||||
public static final int GOLD_COFFIN = 25467;
|
||||
public static final int OPEN_BRONZE_COFFIN = 25469;
|
||||
public static final int OPEN_STEEL_COFFIN = 25470;
|
||||
public static final int OPEN_BLACK_COFFIN = 25471;
|
||||
public static final int OPEN_SILVER_COFFIN = 25472;
|
||||
public static final int OPEN_GOLD_COFFIN = 25473;
|
||||
public static final int TREE_WIZARDS_JOURNAL = 25474;
|
||||
public static final int BLOODY_NOTES = 25476;
|
||||
public static final int RUNESCROLL_OF_SWAMPBARK = 25478;
|
||||
public static final int RUNESCROLL_OF_BLOODBARK = 25481;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__BRONZE = 25484;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__IRON = 25485;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__STEEL = 25486;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__BLACK = 25487;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__MITHRIL = 25488;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__ADAMANT = 25489;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__RUNE = 25490;
|
||||
public static final int TOXIC_BLOWPIPE_BETA__DRAGON = 25491;
|
||||
public static final int BLACK_DHIDE_BODY_BETA = 25492;
|
||||
public static final int BLACK_DHIDE_CHAPS_BETA = 25493;
|
||||
public static final int BLACK_DHIDE_VAMBRACES_BETA = 25494;
|
||||
public static final int CRYSTAL_HELM_BETA = 25495;
|
||||
public static final int CRYSTAL_BODY_BETA = 25496;
|
||||
public static final int CRYSTAL_LEGS_BETA = 25497;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
@@ -188,10 +188,6 @@ public enum MenuAction
|
||||
* Fifth menu action for an item.
|
||||
*/
|
||||
ITEM_FIFTH_OPTION(37),
|
||||
/**
|
||||
* Menu action to drop an item (identical to ITEM_FIFTH_OPTION).
|
||||
*/
|
||||
ITEM_DROP(37),
|
||||
/**
|
||||
* Menu action to use an item.
|
||||
*/
|
||||
|
||||
@@ -35,11 +35,11 @@ import lombok.NoArgsConstructor;
|
||||
public class MenuEntry implements Cloneable
|
||||
{
|
||||
/**
|
||||
* The option text added to the menu (ie. "Walk here", "Use").
|
||||
* The option text added to the menu. (ie. "Walk here", "Use")
|
||||
*/
|
||||
private String option;
|
||||
/**
|
||||
* The target of the action (ie. Item or Actor name).
|
||||
* The target of the action. (ie. Item or Actor name)
|
||||
* <p>
|
||||
* If the option does not apply to any target, this field
|
||||
* will be set to empty string.
|
||||
|
||||
@@ -58,7 +58,7 @@ public interface MessageNode extends Node
|
||||
void setName(String name);
|
||||
|
||||
/**
|
||||
* Gets the sender of the message (ie. friends chat name).
|
||||
* Gets the sender of the message. (ie. friends chat name)
|
||||
*
|
||||
* @return the message sender
|
||||
*/
|
||||
|
||||
@@ -2657,9 +2657,8 @@ public final class NpcID
|
||||
public static final int DRYAD = 2828;
|
||||
public static final int FAIRY_2829 = 2829;
|
||||
public static final int MYSTERIOUS_OLD_MAN = 2830;
|
||||
public static final int LIZARD_MAN = 2831;
|
||||
public static final int ORC = 2832;
|
||||
public static final int TROLL_2833 = 2833;
|
||||
public static final int CHAIR = 2832;
|
||||
public static final int LIL_CREATOR = 2833;
|
||||
public static final int GIANT_BAT = 2834;
|
||||
public static final int CAMEL = 2835;
|
||||
public static final int GOLEM = 2836;
|
||||
@@ -3340,9 +3339,9 @@ public final class NpcID
|
||||
public static final int VERONICA = 3561;
|
||||
public static final int PROFESSOR_ODDENSTEIN = 3562;
|
||||
public static final int ERNEST = 3563;
|
||||
public static final int CHICKEN_3564 = 3564;
|
||||
public static final int LIL_DESTRUCTOR = 3564;
|
||||
public static final int SKELETON_3565 = 3565;
|
||||
public static final int WITCH_3566 = 3566;
|
||||
public static final int LIL_CREATOR_3566 = 3566;
|
||||
public static final int PENTYN = 3568;
|
||||
public static final int ARISTARCHUS = 3569;
|
||||
public static final int BONEGUARD = 3570;
|
||||
@@ -4683,7 +4682,7 @@ public final class NpcID
|
||||
public static final int ELEMENTAL_BALANCE_5004 = 5004;
|
||||
public static final int WIZARD_GRAYZAG = 5006;
|
||||
public static final int IMP_5007 = 5007;
|
||||
public static final int IMP_5008 = 5008;
|
||||
public static final int LIL_DESTRUCTOR_5008 = 5008;
|
||||
public static final int ELEMENTAL_BALANCE_5009 = 5009;
|
||||
public static final int ELEMENTAL_BALANCE_5010 = 5010;
|
||||
public static final int ELEMENTAL_BALANCE_5011 = 5011;
|
||||
@@ -5718,6 +5717,7 @@ public final class NpcID
|
||||
public static final int THE_INADEQUACY_HARD = 6119;
|
||||
public static final int THE_EVERLASTING_HARD = 6120;
|
||||
public static final int THE_UNTOUCHABLE_HARD = 6121;
|
||||
public static final int URIUM_SHADOW = 6143;
|
||||
public static final int SCION_6177 = 6177;
|
||||
public static final int JUNGLE_SPIDER_6267 = 6267;
|
||||
public static final int JUNGLE_SPIDER_6271 = 6271;
|
||||
@@ -7708,8 +7708,7 @@ public final class NpcID
|
||||
public static final int CAT_8594 = 8594;
|
||||
public static final int FELFIZ_YARYUS = 8595;
|
||||
public static final int KEITH = 8596;
|
||||
public static final int GORDON = 8597;
|
||||
public static final int MARY_8598 = 8598;
|
||||
public static final int ORNATE_COMBAT_DUMMY = 8598;
|
||||
public static final int SHAYZIEN_SOLDIER_8599 = 8599;
|
||||
public static final int SHAYZIEN_SERGEANT = 8600;
|
||||
public static final int SHAYZIEN_ARCHER = 8601;
|
||||
@@ -8869,5 +8868,68 @@ public final class NpcID
|
||||
public static final int CAPTAIN_SHORACKS_10489 = 10489;
|
||||
public static final int CAPTAIN_SHORACKS_10490 = 10490;
|
||||
public static final int CAPTAIN_SHORACKS_10491 = 10491;
|
||||
public static final int HEADLESS_BEAST_HARD = 10492;
|
||||
public static final int HEADLESS_BEAST = 10493;
|
||||
public static final int CHICKEN_10494 = 10494;
|
||||
public static final int CHICKEN_10495 = 10495;
|
||||
public static final int CHICKEN_10496 = 10496;
|
||||
public static final int CHICKEN_10497 = 10497;
|
||||
public static final int CHICKEN_10498 = 10498;
|
||||
public static final int CHICKEN_10499 = 10499;
|
||||
public static final int GORDON = 10500;
|
||||
public static final int GORDON_10501 = 10501;
|
||||
public static final int MARY_10502 = 10502;
|
||||
public static final int MARY_10503 = 10503;
|
||||
public static final int MARY_10504 = 10504;
|
||||
public static final int SHAYZIEN_SERGEANT_10505 = 10505;
|
||||
public static final int HEADLESS_BEAST_10506 = 10506;
|
||||
public static final int ORNATE_UNDEAD_COMBAT_DUMMY = 10507;
|
||||
public static final int ORNATE_WILDERNESS_COMBAT_DUMMY = 10508;
|
||||
public static final int ORNATE_KALPHITE_COMBAT_DUMMY = 10509;
|
||||
public static final int ORNATE_KURASK_COMBAT_DUMMY = 10510;
|
||||
public static final int ORNATE_UNDEAD_COMBAT_DUMMY_10511 = 10511;
|
||||
public static final int ORNATE_UNDEAD_COMBAT_DUMMY_10512 = 10512;
|
||||
public static final int FISHING_SPOT_10513 = 10513;
|
||||
public static final int FISHING_SPOT_10514 = 10514;
|
||||
public static final int FISHING_SPOT_10515 = 10515;
|
||||
public static final int NOMAD = 10516;
|
||||
public static final int ZIMBERFIZZ = 10517;
|
||||
public static final int ZIMBERFIZZ_10518 = 10518;
|
||||
public static final int ZIMBERFIZZ_10519 = 10519;
|
||||
public static final int AVATAR_OF_CREATION = 10520;
|
||||
public static final int AVATAR_OF_DESTRUCTION = 10521;
|
||||
public static final int WOLF_10522 = 10522;
|
||||
public static final int FORGOTTEN_SOUL = 10523;
|
||||
public static final int FORGOTTEN_SOUL_10524 = 10524;
|
||||
public static final int FORGOTTEN_SOUL_10525 = 10525;
|
||||
public static final int FORGOTTEN_SOUL_10526 = 10526;
|
||||
public static final int NOMAD_10528 = 10528;
|
||||
public static final int NOMAD_10529 = 10529;
|
||||
public static final int ZIMBERFIZZ_10530 = 10530;
|
||||
public static final int AVATAR_OF_CREATION_10531 = 10531;
|
||||
public static final int AVATAR_OF_DESTRUCTION_10532 = 10532;
|
||||
public static final int WOLF_10533 = 10533;
|
||||
public static final int FORGOTTEN_SOUL_10534 = 10534;
|
||||
public static final int FORGOTTEN_SOUL_10535 = 10535;
|
||||
public static final int FORGOTTEN_SOUL_10536 = 10536;
|
||||
public static final int FORGOTTEN_SOUL_10537 = 10537;
|
||||
public static final int GHOST_10538 = 10538;
|
||||
public static final int BARRICADE_10539 = 10539;
|
||||
public static final int BARRICADE_10540 = 10540;
|
||||
public static final int BIRD_10541 = 10541;
|
||||
public static final int FORGOTTEN_SOUL_10544 = 10544;
|
||||
public static final int FORGOTTEN_SOUL_10545 = 10545;
|
||||
public static final int DUCK_10546 = 10546;
|
||||
public static final int DUCK_10547 = 10547;
|
||||
public static final int CHICKEN_10556 = 10556;
|
||||
public static final int SCRUBFOOT = 10559;
|
||||
public static final int RED_FIREFLIES = 10561;
|
||||
public static final int GREEN_FIREFLIES = 10564;
|
||||
public static final int GOBLIN_10566 = 10566;
|
||||
public static final int GOBLIN_10567 = 10567;
|
||||
public static final int URIUM_SHADE = 10589;
|
||||
public static final int DAMPE = 10590;
|
||||
public static final int UNDEAD_ZEALOT = 10591;
|
||||
public static final int UNDEAD_ZEALOT_10592 = 10592;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -2128,6 +2128,7 @@ public final class NullItemID
|
||||
public static final int NULL_5550 = 5550;
|
||||
public static final int NULL_5551 = 5551;
|
||||
public static final int NULL_5552 = 5552;
|
||||
public static final int NULL_5572 = 5572;
|
||||
public static final int NULL_5611 = 5611;
|
||||
public static final int NULL_5612 = 5612;
|
||||
public static final int NULL_5613 = 5613;
|
||||
@@ -13325,6 +13326,7 @@ public final class NullItemID
|
||||
public static final int NULL_25036 = 25036;
|
||||
public static final int NULL_25038 = 25038;
|
||||
public static final int NULL_25039 = 25039;
|
||||
public static final int NULL_25040 = 25040;
|
||||
public static final int NULL_25041 = 25041;
|
||||
public static final int NULL_25043 = 25043;
|
||||
public static final int NULL_25045 = 25045;
|
||||
@@ -13387,5 +13389,152 @@ public final class NullItemID
|
||||
public static final int NULL_25142 = 25142;
|
||||
public static final int NULL_25143 = 25143;
|
||||
public static final int NULL_25144 = 25144;
|
||||
public static final int NULL_25148 = 25148;
|
||||
public static final int NULL_25149 = 25149;
|
||||
public static final int NULL_25150 = 25150;
|
||||
public static final int NULL_25151 = 25151;
|
||||
public static final int NULL_25153 = 25153;
|
||||
public static final int NULL_25156 = 25156;
|
||||
public static final int NULL_25158 = 25158;
|
||||
public static final int NULL_25164 = 25164;
|
||||
public static final int NULL_25166 = 25166;
|
||||
public static final int NULL_25168 = 25168;
|
||||
public static final int NULL_25170 = 25170;
|
||||
public static final int NULL_25172 = 25172;
|
||||
public static final int NULL_25175 = 25175;
|
||||
public static final int NULL_25178 = 25178;
|
||||
public static final int NULL_25180 = 25180;
|
||||
public static final int NULL_25182 = 25182;
|
||||
public static final int NULL_25184 = 25184;
|
||||
public static final int NULL_25186 = 25186;
|
||||
public static final int NULL_25188 = 25188;
|
||||
public static final int NULL_25190 = 25190;
|
||||
public static final int NULL_25192 = 25192;
|
||||
public static final int NULL_25194 = 25194;
|
||||
public static final int NULL_25198 = 25198;
|
||||
public static final int NULL_25200 = 25200;
|
||||
public static final int NULL_25245 = 25245;
|
||||
public static final int NULL_25247 = 25247;
|
||||
public static final int NULL_25249 = 25249;
|
||||
public static final int NULL_25251 = 25251;
|
||||
public static final int NULL_25253 = 25253;
|
||||
public static final int NULL_25255 = 25255;
|
||||
public static final int NULL_25257 = 25257;
|
||||
public static final int NULL_25259 = 25259;
|
||||
public static final int NULL_25261 = 25261;
|
||||
public static final int NULL_25263 = 25263;
|
||||
public static final int NULL_25265 = 25265;
|
||||
public static final int NULL_25277 = 25277;
|
||||
public static final int NULL_25279 = 25279;
|
||||
public static final int NULL_25281 = 25281;
|
||||
public static final int NULL_25291 = 25291;
|
||||
public static final int NULL_25292 = 25292;
|
||||
public static final int NULL_25293 = 25293;
|
||||
public static final int NULL_25294 = 25294;
|
||||
public static final int NULL_25295 = 25295;
|
||||
public static final int NULL_25296 = 25296;
|
||||
public static final int NULL_25297 = 25297;
|
||||
public static final int NULL_25298 = 25298;
|
||||
public static final int NULL_25299 = 25299;
|
||||
public static final int NULL_25300 = 25300;
|
||||
public static final int NULL_25301 = 25301;
|
||||
public static final int NULL_25302 = 25302;
|
||||
public static final int NULL_25303 = 25303;
|
||||
public static final int NULL_25304 = 25304;
|
||||
public static final int NULL_25305 = 25305;
|
||||
public static final int NULL_25306 = 25306;
|
||||
public static final int NULL_25307 = 25307;
|
||||
public static final int NULL_25308 = 25308;
|
||||
public static final int NULL_25309 = 25309;
|
||||
public static final int NULL_25310 = 25310;
|
||||
public static final int NULL_25311 = 25311;
|
||||
public static final int NULL_25312 = 25312;
|
||||
public static final int NULL_25313 = 25313;
|
||||
public static final int NULL_25315 = 25315;
|
||||
public static final int NULL_25317 = 25317;
|
||||
public static final int NULL_25318 = 25318;
|
||||
public static final int NULL_25320 = 25320;
|
||||
public static final int NULL_25321 = 25321;
|
||||
public static final int NULL_25323 = 25323;
|
||||
public static final int NULL_25325 = 25325;
|
||||
public static final int NULL_25327 = 25327;
|
||||
public static final int NULL_25329 = 25329;
|
||||
public static final int NULL_25331 = 25331;
|
||||
public static final int NULL_25333 = 25333;
|
||||
public static final int NULL_25335 = 25335;
|
||||
public static final int NULL_25337 = 25337;
|
||||
public static final int NULL_25339 = 25339;
|
||||
public static final int NULL_25341 = 25341;
|
||||
public static final int NULL_25343 = 25343;
|
||||
public static final int NULL_25345 = 25345;
|
||||
public static final int NULL_25347 = 25347;
|
||||
public static final int NULL_25349 = 25349;
|
||||
public static final int NULL_25368 = 25368;
|
||||
public static final int NULL_25370 = 25370;
|
||||
public static final int NULL_25372 = 25372;
|
||||
public static final int NULL_25374 = 25374;
|
||||
public static final int NULL_25375 = 25375;
|
||||
public static final int NULL_25377 = 25377;
|
||||
public static final int NULL_25379 = 25379;
|
||||
public static final int NULL_25381 = 25381;
|
||||
public static final int NULL_25382 = 25382;
|
||||
public static final int NULL_25384 = 25384;
|
||||
public static final int NULL_25385 = 25385;
|
||||
public static final int NULL_25387 = 25387;
|
||||
public static final int NULL_25388 = 25388;
|
||||
public static final int NULL_25390 = 25390;
|
||||
public static final int NULL_25391 = 25391;
|
||||
public static final int NULL_25393 = 25393;
|
||||
public static final int NULL_25394 = 25394;
|
||||
public static final int NULL_25396 = 25396;
|
||||
public static final int NULL_25397 = 25397;
|
||||
public static final int NULL_25399 = 25399;
|
||||
public static final int NULL_25400 = 25400;
|
||||
public static final int NULL_25402 = 25402;
|
||||
public static final int NULL_25403 = 25403;
|
||||
public static final int NULL_25405 = 25405;
|
||||
public static final int NULL_25406 = 25406;
|
||||
public static final int NULL_25408 = 25408;
|
||||
public static final int NULL_25409 = 25409;
|
||||
public static final int NULL_25411 = 25411;
|
||||
public static final int NULL_25412 = 25412;
|
||||
public static final int NULL_25414 = 25414;
|
||||
public static final int NULL_25415 = 25415;
|
||||
public static final int NULL_25417 = 25417;
|
||||
public static final int NULL_25418 = 25418;
|
||||
public static final int NULL_25420 = 25420;
|
||||
public static final int NULL_25421 = 25421;
|
||||
public static final int NULL_25423 = 25423;
|
||||
public static final int NULL_25425 = 25425;
|
||||
public static final int NULL_25427 = 25427;
|
||||
public static final int NULL_25429 = 25429;
|
||||
public static final int NULL_25431 = 25431;
|
||||
public static final int NULL_25433 = 25433;
|
||||
public static final int NULL_25435 = 25435;
|
||||
public static final int NULL_25437 = 25437;
|
||||
public static final int NULL_25439 = 25439;
|
||||
public static final int NULL_25441 = 25441;
|
||||
public static final int NULL_25443 = 25443;
|
||||
public static final int NULL_25444 = 25444;
|
||||
public static final int NULL_25446 = 25446;
|
||||
public static final int NULL_25447 = 25447;
|
||||
public static final int NULL_25449 = 25449;
|
||||
public static final int NULL_25450 = 25450;
|
||||
public static final int NULL_25452 = 25452;
|
||||
public static final int NULL_25453 = 25453;
|
||||
public static final int NULL_25455 = 25455;
|
||||
public static final int NULL_25456 = 25456;
|
||||
public static final int NULL_25458 = 25458;
|
||||
public static final int NULL_25460 = 25460;
|
||||
public static final int NULL_25462 = 25462;
|
||||
public static final int NULL_25464 = 25464;
|
||||
public static final int NULL_25466 = 25466;
|
||||
public static final int NULL_25468 = 25468;
|
||||
public static final int NULL_25475 = 25475;
|
||||
public static final int NULL_25477 = 25477;
|
||||
public static final int NULL_25479 = 25479;
|
||||
public static final int NULL_25480 = 25480;
|
||||
public static final int NULL_25482 = 25482;
|
||||
public static final int NULL_25483 = 25483;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -173,6 +173,7 @@ public final class NullNpcID
|
||||
public static final int NULL_2779 = 2779;
|
||||
public static final int NULL_2780 = 2780;
|
||||
public static final int NULL_2781 = 2781;
|
||||
public static final int NULL_2831 = 2831;
|
||||
public static final int NULL_2934 = 2934;
|
||||
public static final int NULL_2935 = 2935;
|
||||
public static final int NULL_2936 = 2936;
|
||||
@@ -421,7 +422,6 @@ public final class NullNpcID
|
||||
public static final int NULL_6140 = 6140;
|
||||
public static final int NULL_6141 = 6141;
|
||||
public static final int NULL_6142 = 6142;
|
||||
public static final int NULL_6143 = 6143;
|
||||
public static final int NULL_6144 = 6144;
|
||||
public static final int NULL_6145 = 6145;
|
||||
public static final int NULL_6146 = 6146;
|
||||
@@ -873,6 +873,7 @@ public final class NullNpcID
|
||||
public static final int NULL_8489 = 8489;
|
||||
public static final int NULL_8490 = 8490;
|
||||
public static final int NULL_8516 = 8516;
|
||||
public static final int NULL_8597 = 8597;
|
||||
public static final int NULL_8624 = 8624;
|
||||
public static final int NULL_8625 = 8625;
|
||||
public static final int NULL_8626 = 8626;
|
||||
@@ -1606,5 +1607,16 @@ public final class NullNpcID
|
||||
public static final int NULL_10441 = 10441;
|
||||
public static final int NULL_10474 = 10474;
|
||||
public static final int NULL_10475 = 10475;
|
||||
public static final int NULL_10527 = 10527;
|
||||
public static final int NULL_10542 = 10542;
|
||||
public static final int NULL_10543 = 10543;
|
||||
public static final int NULL_10548 = 10548;
|
||||
public static final int NULL_10549 = 10549;
|
||||
public static final int NULL_10550 = 10550;
|
||||
public static final int NULL_10551 = 10551;
|
||||
public static final int NULL_10552 = 10552;
|
||||
public static final int NULL_10553 = 10553;
|
||||
public static final int NULL_10554 = 10554;
|
||||
public static final int NULL_10555 = 10555;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -879,7 +879,6 @@ public final class NullObjectID
|
||||
public static final int NULL_1793 = 1793;
|
||||
public static final int NULL_1794 = 1794;
|
||||
public static final int NULL_1795 = 1795;
|
||||
public static final int NULL_1796 = 1796;
|
||||
public static final int NULL_1798 = 1798;
|
||||
public static final int NULL_1799 = 1799;
|
||||
public static final int NULL_1800 = 1800;
|
||||
@@ -9386,6 +9385,7 @@ public final class NullObjectID
|
||||
public static final int NULL_20842 = 20842;
|
||||
public static final int NULL_20846 = 20846;
|
||||
public static final int NULL_20857 = 20857;
|
||||
public static final int NULL_20858 = 20858;
|
||||
public static final int NULL_20859 = 20859;
|
||||
public static final int NULL_20860 = 20860;
|
||||
public static final int NULL_20861 = 20861;
|
||||
@@ -19725,9 +19725,307 @@ public final class NullObjectID
|
||||
public static final int NULL_40352 = 40352;
|
||||
public static final int NULL_40353 = 40353;
|
||||
public static final int NULL_40354 = 40354;
|
||||
public static final int NULL_40368 = 40368;
|
||||
public static final int NULL_40369 = 40369;
|
||||
public static final int NULL_40370 = 40370;
|
||||
public static final int NULL_40371 = 40371;
|
||||
public static final int NULL_40372 = 40372;
|
||||
public static final int NULL_40373 = 40373;
|
||||
public static final int NULL_40374 = 40374;
|
||||
public static final int NULL_40375 = 40375;
|
||||
public static final int NULL_40376 = 40376;
|
||||
public static final int NULL_40377 = 40377;
|
||||
public static final int NULL_40378 = 40378;
|
||||
public static final int NULL_40379 = 40379;
|
||||
public static final int NULL_40380 = 40380;
|
||||
public static final int NULL_40392 = 40392;
|
||||
public static final int NULL_40393 = 40393;
|
||||
public static final int NULL_40394 = 40394;
|
||||
public static final int NULL_40395 = 40395;
|
||||
public static final int NULL_40427 = 40427;
|
||||
public static final int NULL_40428 = 40428;
|
||||
public static final int NULL_40429 = 40429;
|
||||
public static final int NULL_40470 = 40470;
|
||||
public static final int NULL_40477 = 40477;
|
||||
public static final int NULL_40478 = 40478;
|
||||
public static final int NULL_40479 = 40479;
|
||||
public static final int NULL_40480 = 40480;
|
||||
public static final int NULL_40481 = 40481;
|
||||
public static final int NULL_40482 = 40482;
|
||||
public static final int NULL_40483 = 40483;
|
||||
public static final int NULL_40484 = 40484;
|
||||
public static final int NULL_40485 = 40485;
|
||||
public static final int NULL_40486 = 40486;
|
||||
public static final int NULL_40487 = 40487;
|
||||
public static final int NULL_40488 = 40488;
|
||||
public static final int NULL_40489 = 40489;
|
||||
public static final int NULL_40490 = 40490;
|
||||
public static final int NULL_40500 = 40500;
|
||||
public static final int NULL_40501 = 40501;
|
||||
public static final int NULL_40502 = 40502;
|
||||
public static final int NULL_40503 = 40503;
|
||||
public static final int NULL_40504 = 40504;
|
||||
public static final int NULL_40505 = 40505;
|
||||
public static final int NULL_40506 = 40506;
|
||||
public static final int NULL_40507 = 40507;
|
||||
public static final int NULL_40508 = 40508;
|
||||
public static final int NULL_40509 = 40509;
|
||||
public static final int NULL_40510 = 40510;
|
||||
public static final int NULL_40511 = 40511;
|
||||
public static final int NULL_40512 = 40512;
|
||||
public static final int NULL_40513 = 40513;
|
||||
public static final int NULL_40514 = 40514;
|
||||
public static final int NULL_40515 = 40515;
|
||||
public static final int NULL_40516 = 40516;
|
||||
public static final int NULL_40517 = 40517;
|
||||
public static final int NULL_40518 = 40518;
|
||||
public static final int NULL_40519 = 40519;
|
||||
public static final int NULL_40520 = 40520;
|
||||
public static final int NULL_40521 = 40521;
|
||||
public static final int NULL_40522 = 40522;
|
||||
public static final int NULL_40523 = 40523;
|
||||
public static final int NULL_40524 = 40524;
|
||||
public static final int NULL_40525 = 40525;
|
||||
public static final int NULL_40526 = 40526;
|
||||
public static final int NULL_40527 = 40527;
|
||||
public static final int NULL_40528 = 40528;
|
||||
public static final int NULL_40529 = 40529;
|
||||
public static final int NULL_40530 = 40530;
|
||||
public static final int NULL_40531 = 40531;
|
||||
public static final int NULL_40532 = 40532;
|
||||
public static final int NULL_40533 = 40533;
|
||||
public static final int NULL_40534 = 40534;
|
||||
public static final int NULL_40535 = 40535;
|
||||
public static final int NULL_40536 = 40536;
|
||||
public static final int NULL_40537 = 40537;
|
||||
public static final int NULL_40538 = 40538;
|
||||
public static final int NULL_40539 = 40539;
|
||||
public static final int NULL_40540 = 40540;
|
||||
public static final int NULL_40541 = 40541;
|
||||
public static final int NULL_40542 = 40542;
|
||||
public static final int NULL_40543 = 40543;
|
||||
public static final int NULL_40552 = 40552;
|
||||
public static final int NULL_40553 = 40553;
|
||||
public static final int NULL_40554 = 40554;
|
||||
public static final int NULL_40555 = 40555;
|
||||
public static final int NULL_40556 = 40556;
|
||||
public static final int NULL_40557 = 40557;
|
||||
public static final int NULL_40558 = 40558;
|
||||
public static final int NULL_40559 = 40559;
|
||||
public static final int NULL_40560 = 40560;
|
||||
public static final int NULL_40561 = 40561;
|
||||
public static final int NULL_40562 = 40562;
|
||||
public static final int NULL_40563 = 40563;
|
||||
public static final int NULL_40564 = 40564;
|
||||
public static final int NULL_40565 = 40565;
|
||||
public static final int NULL_40566 = 40566;
|
||||
public static final int NULL_40567 = 40567;
|
||||
public static final int NULL_40568 = 40568;
|
||||
public static final int NULL_40569 = 40569;
|
||||
public static final int NULL_40570 = 40570;
|
||||
public static final int NULL_40571 = 40571;
|
||||
public static final int NULL_40572 = 40572;
|
||||
public static final int NULL_40573 = 40573;
|
||||
public static final int NULL_40574 = 40574;
|
||||
public static final int NULL_40575 = 40575;
|
||||
public static final int NULL_40576 = 40576;
|
||||
public static final int NULL_40577 = 40577;
|
||||
public static final int NULL_40578 = 40578;
|
||||
public static final int NULL_40579 = 40579;
|
||||
public static final int NULL_40580 = 40580;
|
||||
public static final int NULL_40581 = 40581;
|
||||
public static final int NULL_40582 = 40582;
|
||||
public static final int NULL_40583 = 40583;
|
||||
public static final int NULL_40584 = 40584;
|
||||
public static final int NULL_40585 = 40585;
|
||||
public static final int NULL_40586 = 40586;
|
||||
public static final int NULL_40587 = 40587;
|
||||
public static final int NULL_40591 = 40591;
|
||||
public static final int NULL_40592 = 40592;
|
||||
public static final int NULL_40593 = 40593;
|
||||
public static final int NULL_40594 = 40594;
|
||||
public static final int NULL_40595 = 40595;
|
||||
public static final int NULL_40596 = 40596;
|
||||
public static final int NULL_40597 = 40597;
|
||||
public static final int NULL_40598 = 40598;
|
||||
public static final int NULL_40599 = 40599;
|
||||
public static final int NULL_40600 = 40600;
|
||||
public static final int NULL_40601 = 40601;
|
||||
public static final int NULL_40602 = 40602;
|
||||
public static final int NULL_40603 = 40603;
|
||||
public static final int NULL_40604 = 40604;
|
||||
public static final int NULL_40605 = 40605;
|
||||
public static final int NULL_40606 = 40606;
|
||||
public static final int NULL_40607 = 40607;
|
||||
public static final int NULL_40608 = 40608;
|
||||
public static final int NULL_40609 = 40609;
|
||||
public static final int NULL_40610 = 40610;
|
||||
public static final int NULL_40611 = 40611;
|
||||
public static final int NULL_40612 = 40612;
|
||||
public static final int NULL_40613 = 40613;
|
||||
public static final int NULL_40614 = 40614;
|
||||
public static final int NULL_40615 = 40615;
|
||||
public static final int NULL_40616 = 40616;
|
||||
public static final int NULL_40617 = 40617;
|
||||
public static final int NULL_40618 = 40618;
|
||||
public static final int NULL_40619 = 40619;
|
||||
public static final int NULL_40620 = 40620;
|
||||
public static final int NULL_40621 = 40621;
|
||||
public static final int NULL_40622 = 40622;
|
||||
public static final int NULL_40623 = 40623;
|
||||
public static final int NULL_40624 = 40624;
|
||||
public static final int NULL_40625 = 40625;
|
||||
public static final int NULL_40626 = 40626;
|
||||
public static final int NULL_40627 = 40627;
|
||||
public static final int NULL_40628 = 40628;
|
||||
public static final int NULL_40629 = 40629;
|
||||
public static final int NULL_40630 = 40630;
|
||||
public static final int NULL_40631 = 40631;
|
||||
public static final int NULL_40632 = 40632;
|
||||
public static final int NULL_40633 = 40633;
|
||||
public static final int NULL_40634 = 40634;
|
||||
public static final int NULL_40635 = 40635;
|
||||
public static final int NULL_40636 = 40636;
|
||||
public static final int NULL_40637 = 40637;
|
||||
public static final int NULL_40638 = 40638;
|
||||
public static final int NULL_40639 = 40639;
|
||||
public static final int NULL_40640 = 40640;
|
||||
public static final int NULL_40641 = 40641;
|
||||
public static final int NULL_40642 = 40642;
|
||||
public static final int NULL_40643 = 40643;
|
||||
public static final int NULL_40644 = 40644;
|
||||
public static final int NULL_40645 = 40645;
|
||||
public static final int NULL_40646 = 40646;
|
||||
public static final int NULL_40647 = 40647;
|
||||
public static final int NULL_40648 = 40648;
|
||||
public static final int NULL_40649 = 40649;
|
||||
public static final int NULL_40650 = 40650;
|
||||
public static final int NULL_40651 = 40651;
|
||||
public static final int NULL_40652 = 40652;
|
||||
public static final int NULL_40653 = 40653;
|
||||
public static final int NULL_40654 = 40654;
|
||||
public static final int NULL_40655 = 40655;
|
||||
public static final int NULL_40656 = 40656;
|
||||
public static final int NULL_40657 = 40657;
|
||||
public static final int NULL_40658 = 40658;
|
||||
public static final int NULL_40659 = 40659;
|
||||
public static final int NULL_40660 = 40660;
|
||||
public static final int NULL_40661 = 40661;
|
||||
public static final int NULL_40662 = 40662;
|
||||
public static final int NULL_40663 = 40663;
|
||||
public static final int NULL_40664 = 40664;
|
||||
public static final int NULL_40665 = 40665;
|
||||
public static final int NULL_40666 = 40666;
|
||||
public static final int NULL_40667 = 40667;
|
||||
public static final int NULL_40668 = 40668;
|
||||
public static final int NULL_40669 = 40669;
|
||||
public static final int NULL_40670 = 40670;
|
||||
public static final int NULL_40671 = 40671;
|
||||
public static final int NULL_40672 = 40672;
|
||||
public static final int NULL_40673 = 40673;
|
||||
public static final int NULL_40674 = 40674;
|
||||
public static final int NULL_40675 = 40675;
|
||||
public static final int NULL_40676 = 40676;
|
||||
public static final int NULL_40677 = 40677;
|
||||
public static final int NULL_40678 = 40678;
|
||||
public static final int NULL_40679 = 40679;
|
||||
public static final int NULL_40680 = 40680;
|
||||
public static final int NULL_40681 = 40681;
|
||||
public static final int NULL_40682 = 40682;
|
||||
public static final int NULL_40683 = 40683;
|
||||
public static final int NULL_40684 = 40684;
|
||||
public static final int NULL_40685 = 40685;
|
||||
public static final int NULL_40686 = 40686;
|
||||
public static final int NULL_40687 = 40687;
|
||||
public static final int NULL_40688 = 40688;
|
||||
public static final int NULL_40689 = 40689;
|
||||
public static final int NULL_40690 = 40690;
|
||||
public static final int NULL_40691 = 40691;
|
||||
public static final int NULL_40692 = 40692;
|
||||
public static final int NULL_40693 = 40693;
|
||||
public static final int NULL_40694 = 40694;
|
||||
public static final int NULL_40695 = 40695;
|
||||
public static final int NULL_40696 = 40696;
|
||||
public static final int NULL_40697 = 40697;
|
||||
public static final int NULL_40698 = 40698;
|
||||
public static final int NULL_40699 = 40699;
|
||||
public static final int NULL_40700 = 40700;
|
||||
public static final int NULL_40701 = 40701;
|
||||
public static final int NULL_40702 = 40702;
|
||||
public static final int NULL_40703 = 40703;
|
||||
public static final int NULL_40704 = 40704;
|
||||
public static final int NULL_40705 = 40705;
|
||||
public static final int NULL_40706 = 40706;
|
||||
public static final int NULL_40707 = 40707;
|
||||
public static final int NULL_40708 = 40708;
|
||||
public static final int NULL_40709 = 40709;
|
||||
public static final int NULL_40710 = 40710;
|
||||
public static final int NULL_40711 = 40711;
|
||||
public static final int NULL_40712 = 40712;
|
||||
public static final int NULL_40713 = 40713;
|
||||
public static final int NULL_40714 = 40714;
|
||||
public static final int NULL_40717 = 40717;
|
||||
public static final int NULL_40718 = 40718;
|
||||
public static final int NULL_40719 = 40719;
|
||||
public static final int NULL_40720 = 40720;
|
||||
public static final int NULL_40721 = 40721;
|
||||
public static final int NULL_40722 = 40722;
|
||||
public static final int NULL_40724 = 40724;
|
||||
public static final int NULL_40726 = 40726;
|
||||
public static final int NULL_40727 = 40727;
|
||||
public static final int NULL_40729 = 40729;
|
||||
public static final int NULL_40730 = 40730;
|
||||
public static final int NULL_40740 = 40740;
|
||||
public static final int NULL_40743 = 40743;
|
||||
public static final int NULL_40747 = 40747;
|
||||
public static final int NULL_40748 = 40748;
|
||||
public static final int NULL_40749 = 40749;
|
||||
public static final int NULL_40762 = 40762;
|
||||
public static final int NULL_40763 = 40763;
|
||||
public static final int NULL_40764 = 40764;
|
||||
public static final int NULL_40765 = 40765;
|
||||
public static final int NULL_40766 = 40766;
|
||||
public static final int NULL_40767 = 40767;
|
||||
public static final int NULL_40779 = 40779;
|
||||
public static final int NULL_40862 = 40862;
|
||||
public static final int NULL_40863 = 40863;
|
||||
public static final int NULL_40864 = 40864;
|
||||
public static final int NULL_40865 = 40865;
|
||||
public static final int NULL_40866 = 40866;
|
||||
public static final int NULL_40867 = 40867;
|
||||
public static final int NULL_40868 = 40868;
|
||||
public static final int NULL_40869 = 40869;
|
||||
public static final int NULL_40870 = 40870;
|
||||
public static final int NULL_40890 = 40890;
|
||||
public static final int NULL_40895 = 40895;
|
||||
public static final int NULL_40898 = 40898;
|
||||
public static final int NULL_40907 = 40907;
|
||||
public static final int NULL_40908 = 40908;
|
||||
public static final int NULL_40925 = 40925;
|
||||
public static final int NULL_40926 = 40926;
|
||||
public static final int NULL_40927 = 40927;
|
||||
public static final int NULL_40928 = 40928;
|
||||
public static final int NULL_40934 = 40934;
|
||||
public static final int NULL_40935 = 40935;
|
||||
public static final int NULL_40936 = 40936;
|
||||
public static final int NULL_41022 = 41022;
|
||||
public static final int NULL_41191 = 41191;
|
||||
public static final int NULL_41192 = 41192;
|
||||
public static final int NULL_41193 = 41193;
|
||||
public static final int NULL_41194 = 41194;
|
||||
public static final int NULL_41195 = 41195;
|
||||
public static final int NULL_41196 = 41196;
|
||||
public static final int NULL_41197 = 41197;
|
||||
public static final int NULL_41198 = 41198;
|
||||
public static final int NULL_41201 = 41201;
|
||||
public static final int NULL_41202 = 41202;
|
||||
public static final int NULL_41203 = 41203;
|
||||
public static final int NULL_41204 = 41204;
|
||||
public static final int NULL_41205 = 41205;
|
||||
public static final int NULL_41206 = 41206;
|
||||
public static final int NULL_41207 = 41207;
|
||||
public static final int NULL_41208 = 41208;
|
||||
public static final int NULL_41209 = 41209;
|
||||
public static final int NULL_41211 = 41211;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
|
||||
@@ -928,8 +928,7 @@ public final class ObjectID
|
||||
public static final int DOOR_1805 = 1805;
|
||||
public static final int WEB_1810 = 1810;
|
||||
public static final int SLICED_WEB = 1811;
|
||||
public static final int PORTAL = 1812;
|
||||
public static final int STONE_STAND = 1813;
|
||||
public static final int BANDAGE_TABLE = 1813;
|
||||
public static final int LEVER_1814 = 1814;
|
||||
public static final int LEVER_1816 = 1816;
|
||||
public static final int LEVER_1817 = 1817;
|
||||
@@ -2233,7 +2232,7 @@ public final class ObjectID
|
||||
public static final int SHELF_4062 = 4062;
|
||||
public static final int SINK_4063 = 4063;
|
||||
public static final int SMASHED_TABLE_4064 = 4064;
|
||||
public static final int STONE_STAND_4065 = 4065;
|
||||
public static final int STONE_STAND = 4065;
|
||||
public static final int SIGNPOST_4066 = 4066;
|
||||
public static final int WARNING_SIGN = 4067;
|
||||
public static final int BROKEN_WALL = 4068;
|
||||
@@ -2312,7 +2311,7 @@ public final class ObjectID
|
||||
public static final int CAVE_ENTRANCE_4147 = 4147;
|
||||
public static final int DOOR_4148 = 4148;
|
||||
public static final int LALLIS_STEW = 4149;
|
||||
public static final int PORTAL_4150 = 4150;
|
||||
public static final int PORTAL = 4150;
|
||||
public static final int PORTAL_4151 = 4151;
|
||||
public static final int PORTAL_4152 = 4152;
|
||||
public static final int PORTAL_4153 = 4153;
|
||||
@@ -6988,11 +6987,19 @@ public final class ObjectID
|
||||
public static final int LADDER_12389 = 12389;
|
||||
public static final int LADDER_12390 = 12390;
|
||||
public static final int LADDER_12391 = 12391;
|
||||
public static final int SACKS_12392 = 12392;
|
||||
public static final int SACKS_12393 = 12393;
|
||||
public static final int SACK_PILE = 12394;
|
||||
public static final int SACK_PILE_12395 = 12395;
|
||||
public static final int SACK_12396 = 12396;
|
||||
public static final int SACK_12399 = 12399;
|
||||
public static final int CAULDRON_12400 = 12400;
|
||||
public static final int CAULDRON_12401 = 12401;
|
||||
public static final int EXPLOSION = 12402;
|
||||
public static final int SHELVES_12403 = 12403;
|
||||
public static final int SHELVES_12404 = 12404;
|
||||
public static final int CUPBOARD_12405 = 12405;
|
||||
public static final int CUPBOARD_12406 = 12406;
|
||||
public static final int STOOL_12407 = 12407;
|
||||
public static final int STOOL_12408 = 12408;
|
||||
public static final int STOOL_12409 = 12409;
|
||||
@@ -9024,7 +9031,7 @@ public final class ObjectID
|
||||
public static final int LARGE_DOOR_15758 = 15758;
|
||||
public static final int DOOR_15759 = 15759;
|
||||
public static final int SACK_15760 = 15760;
|
||||
public static final int SACK_PILE = 15761;
|
||||
public static final int SACK_PILE_15761 = 15761;
|
||||
public static final int SACKS_15762 = 15762;
|
||||
public static final int BED_15767 = 15767;
|
||||
public static final int CRATE_15768 = 15768;
|
||||
@@ -18575,7 +18582,7 @@ public final class ObjectID
|
||||
public static final int RUBBLE_34803 = 34803;
|
||||
public static final int RUBBLE_34804 = 34804;
|
||||
public static final int RUBBLE_34805 = 34805;
|
||||
public static final int JADFEST_PORTAL = 34826;
|
||||
public static final int HANDY_PORTAL = 34826;
|
||||
public static final int LARRANS_SMALL_CHEST_34828 = 34828;
|
||||
public static final int LARRANS_BIG_CHEST = 34829;
|
||||
public static final int LARRANS_BIG_CHEST_34830 = 34830;
|
||||
@@ -19612,7 +19619,7 @@ public final class ObjectID
|
||||
public static final int GATE_37954 = 37954;
|
||||
public static final int LADDER_37955 = 37955;
|
||||
public static final int LADDER_37956 = 37956;
|
||||
public static final int HANDY_PORTAL = 37957;
|
||||
public static final int HANDY_PORTAL_37957 = 37957;
|
||||
public static final int BANK_BOOTH_37959 = 37959;
|
||||
public static final int DOOR_37961 = 37961;
|
||||
public static final int DOOR_37963 = 37963;
|
||||
@@ -20674,7 +20681,7 @@ public final class ObjectID
|
||||
public static final int NEUTRAL_BARRIER = 40439;
|
||||
public static final int PORTAL_40440 = 40440;
|
||||
public static final int PORTAL_40441 = 40441;
|
||||
public static final int BANDAGE_TABLE = 40442;
|
||||
public static final int BANDAGE_TABLE_40442 = 40442;
|
||||
public static final int BARRICADE_TABLE = 40443;
|
||||
public static final int BARRICADE_TABLE_40444 = 40444;
|
||||
public static final int EXPLOSIVE_POTION_TABLE = 40445;
|
||||
@@ -20702,9 +20709,8 @@ public final class ObjectID
|
||||
public static final int EXPLOSIVE_POTION_TABLE_40467 = 40467;
|
||||
public static final int POTION_OF_POWER_TABLE_40468 = 40468;
|
||||
public static final int POTION_OF_POWER_TABLE_40469 = 40469;
|
||||
public static final int BLUE_BARRIER_40470 = 40470;
|
||||
public static final int RED_BARRIER_40471 = 40471;
|
||||
public static final int BALANCE_PORTAL = 40472;
|
||||
public static final int GRAVESTONE_40471 = 40471;
|
||||
public static final int COFFIN_40472 = 40472;
|
||||
public static final int BANK_CHEST_40473 = 40473;
|
||||
public static final int SOUL_WARS_PORTAL = 40474;
|
||||
public static final int SOUL_WARS_PORTAL_40475 = 40475;
|
||||
@@ -20746,6 +20752,8 @@ public final class ObjectID
|
||||
public static final int CHEST_40741 = 40741;
|
||||
public static final int LOCKED_CHEST_40742 = 40742;
|
||||
public static final int BARREL_40744 = 40744;
|
||||
public static final int LADDER_40745 = 40745;
|
||||
public static final int LADDER_40746 = 40746;
|
||||
public static final int TREE_40750 = 40750;
|
||||
public static final int TREE_STUMP_40751 = 40751;
|
||||
public static final int TREE_40752 = 40752;
|
||||
@@ -20851,22 +20859,22 @@ public final class ObjectID
|
||||
public static final int DOOR_40859 = 40859;
|
||||
public static final int DOOR_40860 = 40860;
|
||||
public static final int DOOR_40861 = 40861;
|
||||
public static final int SACKS_40871 = 40871;
|
||||
public static final int SACKS_40872 = 40872;
|
||||
public static final int SACKS_40873 = 40873;
|
||||
public static final int SACKS_40874 = 40874;
|
||||
public static final int SACK_PILE_40875 = 40875;
|
||||
public static final int SACK_PILE_40876 = 40876;
|
||||
public static final int SACK_PILE_40877 = 40877;
|
||||
public static final int SACK_PILE_40878 = 40878;
|
||||
public static final int SHELVES_40879 = 40879;
|
||||
public static final int SHELVES_40880 = 40880;
|
||||
public static final int SHELVES_40881 = 40881;
|
||||
public static final int SHELVES_40882 = 40882;
|
||||
public static final int CUPBOARD_40883 = 40883;
|
||||
public static final int CUPBOARD_40884 = 40884;
|
||||
public static final int CUPBOARD_40885 = 40885;
|
||||
public static final int CUPBOARD_40886 = 40886;
|
||||
public static final int ICON_OF_GNOME_CHILD = 40871;
|
||||
public static final int ALTAR_40872 = 40872;
|
||||
public static final int ALTAR_40873 = 40873;
|
||||
public static final int ALTAR_40874 = 40874;
|
||||
public static final int ALTAR_40875 = 40875;
|
||||
public static final int ALTAR_40876 = 40876;
|
||||
public static final int ALTAR_40877 = 40877;
|
||||
public static final int ALTAR_40878 = 40878;
|
||||
public static final int DECORATIVE_WINDOW_40879 = 40879;
|
||||
public static final int STAINEDGLASS_WINDOW_40880 = 40880;
|
||||
public static final int DECORATIVE_WINDOW_40881 = 40881;
|
||||
public static final int STAINEDGLASS_WINDOW_40882 = 40882;
|
||||
public static final int DECORATIVE_WINDOW_40883 = 40883;
|
||||
public static final int STAINEDGLASS_WINDOW_40884 = 40884;
|
||||
public static final int DECORATIVE_WINDOW_40885 = 40885;
|
||||
public static final int STAINEDGLASS_WINDOW_40886 = 40886;
|
||||
public static final int CAVE_ENTRANCE_40887 = 40887;
|
||||
public static final int CAVE_EXIT_40888 = 40888;
|
||||
public static final int CREVICE_40889 = 40889;
|
||||
@@ -20876,19 +20884,206 @@ public final class ObjectID
|
||||
public static final int SLOPE_END = 40894;
|
||||
public static final int PEBBLES = 40896;
|
||||
public static final int BOULDER_40897 = 40897;
|
||||
public static final int BOULDER_40899 = 40899;
|
||||
public static final int STICK_40901 = 40901;
|
||||
public static final int STICK_40902 = 40902;
|
||||
public static final int CAULDRON_40903 = 40903;
|
||||
public static final int TREASURE_CHEST_40904 = 40904;
|
||||
public static final int DECORATIVE_WINDOW_40899 = 40899;
|
||||
public static final int STAINEDGLASS_WINDOW_40900 = 40900;
|
||||
public static final int DECORATIVE_WINDOW_40901 = 40901;
|
||||
public static final int STAINEDGLASS_WINDOW_40902 = 40902;
|
||||
public static final int DECORATIVE_WINDOW_40903 = 40903;
|
||||
public static final int STAINEDGLASS_WINDOW_40904 = 40904;
|
||||
public static final int ROCKS_40905 = 40905;
|
||||
public static final int ROCKS_40906 = 40906;
|
||||
public static final int SOCKING = 40909;
|
||||
public static final int SOCKING_40910 = 40910;
|
||||
public static final int SOCKING_40911 = 40911;
|
||||
public static final int DECORATIVE_WINDOW_40909 = 40909;
|
||||
public static final int STAINEDGLASS_WINDOW_40910 = 40910;
|
||||
public static final int DECORATIVE_WINDOW_40911 = 40911;
|
||||
public static final int STAINEDGLASS_WINDOW_40912 = 40912;
|
||||
public static final int DECORATIVE_WINDOW_40913 = 40913;
|
||||
public static final int STAINEDGLASS_WINDOW_40914 = 40914;
|
||||
public static final int STATUE_40915 = 40915;
|
||||
public static final int STATUE_40916 = 40916;
|
||||
public static final int STATUE_40917 = 40917;
|
||||
public static final int EVERGREEN_40932 = 40932;
|
||||
public static final int EVERGREEN_40933 = 40933;
|
||||
public static final int TREE_40937 = 40937;
|
||||
public static final int TREE_40938 = 40938;
|
||||
public static final int POTION_OF_POWER_TABLE_41023 = 41023;
|
||||
public static final int PEDESTAL_SPACE = 41024;
|
||||
public static final int PEDESTAL_SPACE_41025 = 41025;
|
||||
public static final int PEDESTAL_SPACE_41026 = 41026;
|
||||
public static final int TROPHY_CASE_SPACE = 41027;
|
||||
public static final int BANNER_STAND_SPACE = 41028;
|
||||
public static final int OUTFIT_STAND_SPACE = 41029;
|
||||
public static final int STATUE_SPACE_41030 = 41030;
|
||||
public static final int RUG_SPACE_41031 = 41031;
|
||||
public static final int RUG_SPACE_41032 = 41032;
|
||||
public static final int RUG_SPACE_41033 = 41033;
|
||||
public static final int ACCOMPLISHMENT_SCROLL_SPACE = 41034;
|
||||
public static final int TROPHY_PEDESTAL = 41035;
|
||||
public static final int TROPHY_PEDESTAL_41036 = 41036;
|
||||
public static final int TROPHY_PEDESTAL_41037 = 41037;
|
||||
public static final int TROPHY_PEDESTAL_41038 = 41038;
|
||||
public static final int TROPHY_PEDESTAL_41039 = 41039;
|
||||
public static final int TROPHY_PEDESTAL_41040 = 41040;
|
||||
public static final int TROPHY_PEDESTAL_41041 = 41041;
|
||||
public static final int TROPHY_PEDESTAL_41042 = 41042;
|
||||
public static final int TROPHY_PEDESTAL_41043 = 41043;
|
||||
public static final int TROPHY_PEDESTAL_41044 = 41044;
|
||||
public static final int TROPHY_PEDESTAL_41045 = 41045;
|
||||
public static final int TROPHY_PEDESTAL_41046 = 41046;
|
||||
public static final int TROPHY_PEDESTAL_41047 = 41047;
|
||||
public static final int TROPHY_PEDESTAL_41048 = 41048;
|
||||
public static final int TROPHY_PEDESTAL_41049 = 41049;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL = 41050;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41051 = 41051;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41052 = 41052;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41053 = 41053;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41054 = 41054;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41055 = 41055;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41056 = 41056;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41057 = 41057;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41058 = 41058;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41059 = 41059;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41060 = 41060;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41061 = 41061;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41062 = 41062;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41063 = 41063;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41064 = 41064;
|
||||
public static final int TROPHY_PEDESTAL_41065 = 41065;
|
||||
public static final int TROPHY_PEDESTAL_41066 = 41066;
|
||||
public static final int TROPHY_PEDESTAL_41067 = 41067;
|
||||
public static final int TROPHY_PEDESTAL_41068 = 41068;
|
||||
public static final int TROPHY_PEDESTAL_41069 = 41069;
|
||||
public static final int TROPHY_PEDESTAL_41070 = 41070;
|
||||
public static final int TROPHY_PEDESTAL_41071 = 41071;
|
||||
public static final int TROPHY_PEDESTAL_41072 = 41072;
|
||||
public static final int TROPHY_PEDESTAL_41073 = 41073;
|
||||
public static final int TROPHY_PEDESTAL_41074 = 41074;
|
||||
public static final int TROPHY_PEDESTAL_41075 = 41075;
|
||||
public static final int TROPHY_PEDESTAL_41076 = 41076;
|
||||
public static final int TROPHY_PEDESTAL_41077 = 41077;
|
||||
public static final int TROPHY_PEDESTAL_41078 = 41078;
|
||||
public static final int TROPHY_PEDESTAL_41079 = 41079;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41080 = 41080;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41081 = 41081;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41082 = 41082;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41083 = 41083;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41084 = 41084;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41085 = 41085;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41086 = 41086;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41087 = 41087;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41088 = 41088;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41089 = 41089;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41090 = 41090;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41091 = 41091;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41092 = 41092;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41093 = 41093;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41094 = 41094;
|
||||
public static final int TROPHY_PEDESTAL_41095 = 41095;
|
||||
public static final int TROPHY_PEDESTAL_41096 = 41096;
|
||||
public static final int TROPHY_PEDESTAL_41097 = 41097;
|
||||
public static final int TROPHY_PEDESTAL_41098 = 41098;
|
||||
public static final int TROPHY_PEDESTAL_41099 = 41099;
|
||||
public static final int TROPHY_PEDESTAL_41100 = 41100;
|
||||
public static final int TROPHY_PEDESTAL_41101 = 41101;
|
||||
public static final int TROPHY_PEDESTAL_41102 = 41102;
|
||||
public static final int TROPHY_PEDESTAL_41103 = 41103;
|
||||
public static final int TROPHY_PEDESTAL_41104 = 41104;
|
||||
public static final int TROPHY_PEDESTAL_41105 = 41105;
|
||||
public static final int TROPHY_PEDESTAL_41106 = 41106;
|
||||
public static final int TROPHY_PEDESTAL_41107 = 41107;
|
||||
public static final int TROPHY_PEDESTAL_41108 = 41108;
|
||||
public static final int TROPHY_PEDESTAL_41109 = 41109;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41110 = 41110;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41111 = 41111;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41112 = 41112;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41113 = 41113;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41114 = 41114;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41115 = 41115;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41116 = 41116;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41117 = 41117;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41118 = 41118;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41119 = 41119;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41120 = 41120;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41121 = 41121;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41122 = 41122;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41123 = 41123;
|
||||
public static final int ORNATE_TROPHY_PEDESTAL_41124 = 41124;
|
||||
public static final int RUG_41125 = 41125;
|
||||
public static final int OPULENT_RUG = 41126;
|
||||
public static final int RUG_41127 = 41127;
|
||||
public static final int OPULENT_RUG_41128 = 41128;
|
||||
public static final int RUG_41129 = 41129;
|
||||
public static final int OPULENT_RUG_41130 = 41130;
|
||||
public static final int TRAILBLAZER_RUG = 41131;
|
||||
public static final int TRAILBLAZER_RUG_41132 = 41132;
|
||||
public static final int TRAILBLAZER_RUG_41133 = 41133;
|
||||
public static final int TRAILBLAZER_RUG_41134 = 41134;
|
||||
public static final int TRAILBLAZER_RUG_41135 = 41135;
|
||||
public static final int TRAILBLAZER_RUG_41136 = 41136;
|
||||
public static final int TRAILBLAZER_RUG_41137 = 41137;
|
||||
public static final int TRAILBLAZER_RUG_41138 = 41138;
|
||||
public static final int TRAILBLAZER_RUG_41139 = 41139;
|
||||
public static final int TRAILBLAZER_RUG_41140 = 41140;
|
||||
public static final int TRAILBLAZER_RUG_41141 = 41141;
|
||||
public static final int TRAILBLAZER_RUG_41142 = 41142;
|
||||
public static final int TRAILBLAZER_RUG_41143 = 41143;
|
||||
public static final int TRAILBLAZER_RUG_41144 = 41144;
|
||||
public static final int TRAILBLAZER_RUG_41145 = 41145;
|
||||
public static final int TRAILBLAZER_RUG_41146 = 41146;
|
||||
public static final int TRAILBLAZER_RUG_41147 = 41147;
|
||||
public static final int TRAILBLAZER_RUG_41148 = 41148;
|
||||
public static final int TRAILBLAZER_RUG_41149 = 41149;
|
||||
public static final int TRAILBLAZER_RUG_41150 = 41150;
|
||||
public static final int TRAILBLAZER_RUG_41151 = 41151;
|
||||
public static final int TRAILBLAZER_RUG_41152 = 41152;
|
||||
public static final int TRAILBLAZER_RUG_41153 = 41153;
|
||||
public static final int TRAILBLAZER_RUG_41154 = 41154;
|
||||
public static final int OAK_TROPHY_CASE = 41155;
|
||||
public static final int OAK_TROPHY_CASE_41156 = 41156;
|
||||
public static final int MAHOGANY_TROPHY_CASE = 41157;
|
||||
public static final int MAHOGANY_TROPHY_CASE_41158 = 41158;
|
||||
public static final int BANNER_STAND = 41159;
|
||||
public static final int BANNER_STAND_41160 = 41160;
|
||||
public static final int BANNER_STAND_41161 = 41161;
|
||||
public static final int ORNATE_BANNER_STAND = 41162;
|
||||
public static final int ORNATE_BANNER_STAND_41163 = 41163;
|
||||
public static final int ORNATE_BANNER_STAND_41164 = 41164;
|
||||
public static final int OAK_OUTFIT_STAND = 41165;
|
||||
public static final int OAK_OUTFIT_STAND_41166 = 41166;
|
||||
public static final int OAK_OUTFIT_STAND_41167 = 41167;
|
||||
public static final int OAK_OUTFIT_STAND_41168 = 41168;
|
||||
public static final int OAK_OUTFIT_STAND_41169 = 41169;
|
||||
public static final int OAK_OUTFIT_STAND_41170 = 41170;
|
||||
public static final int OAK_OUTFIT_STAND_41171 = 41171;
|
||||
public static final int MAHOGANY_OUTFIT_STAND = 41172;
|
||||
public static final int MAHOGANY_OUTFIT_STAND_41173 = 41173;
|
||||
public static final int MAHOGANY_OUTFIT_STAND_41174 = 41174;
|
||||
public static final int MAHOGANY_OUTFIT_STAND_41175 = 41175;
|
||||
public static final int MAHOGANY_OUTFIT_STAND_41176 = 41176;
|
||||
public static final int MAHOGANY_OUTFIT_STAND_41177 = 41177;
|
||||
public static final int MAHOGANY_OUTFIT_STAND_41178 = 41178;
|
||||
public static final int LEAGUE_STATUE = 41179;
|
||||
public static final int ORNATE_LEAGUE_STATUE = 41180;
|
||||
public static final int TRAILBLAZER_GLOBE = 41181;
|
||||
public static final int LEAGUE_ACCOMPLISHMENT_SCROLL = 41182;
|
||||
public static final int ANCIENT_BRAZIER = 41183;
|
||||
public static final int ANCIENT_BRAZIER_41184 = 41184;
|
||||
public static final int ANCIENT_BRAZIER_41185 = 41185;
|
||||
public static final int ANCIENT_BRAZIER_41186 = 41186;
|
||||
public static final int ANCIENT_BRAZIER_41187 = 41187;
|
||||
public static final int ANCIENT_BRAZIER_41188 = 41188;
|
||||
public static final int ANCIENT_BRAZIER_41189 = 41189;
|
||||
public static final int ANCIENT_BRAZIER_41190 = 41190;
|
||||
public static final int BARRIER_41199 = 41199;
|
||||
public static final int BARRIER_41200 = 41200;
|
||||
public static final int SOLID_GOLD_DOOR = 41210;
|
||||
public static final int GOLD_CHEST = 41212;
|
||||
public static final int GOLD_CHEST_41213 = 41213;
|
||||
public static final int GOLD_CHEST_41214 = 41214;
|
||||
public static final int GOLD_CHEST_41215 = 41215;
|
||||
public static final int GOLD_CHEST_41216 = 41216;
|
||||
public static final int GOLD_CHEST_41217 = 41217;
|
||||
public static final int GOLD_CHEST_41218 = 41218;
|
||||
public static final int GOLD_CHEST_41219 = 41219;
|
||||
public static final int GOLD_CHEST_41220 = 41220;
|
||||
public static final int GOLD_CHEST_41221 = 41221;
|
||||
public static final int ALTAR_41222 = 41222;
|
||||
/* This file is automatically generated. Do not edit. */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,4 +54,4 @@ public interface ParamHolder
|
||||
* Sets the value of a given {@link ParamID}
|
||||
*/
|
||||
void setValue(int paramID, String value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,4 +45,4 @@ public class ParamID
|
||||
public static final int SETTING_SLIDER_IS_DRAGGABLE = 1108;
|
||||
public static final int SETTING_SLIDER_DEADZONE = 1109;
|
||||
public static final int SETTING_SLIDER_DEADTIME = 1110;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -376,7 +376,7 @@ public class Perspective
|
||||
*/
|
||||
public static Polygon getCanvasTilePoly(@Nonnull Client client, @Nonnull LocalPoint localLocation, int zOffset)
|
||||
{
|
||||
return getCanvasTileAreaPoly(client, localLocation, 1, zOffset);
|
||||
return getCanvasTileAreaPoly(client, localLocation, 1, 1, zOffset);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -389,7 +389,7 @@ public class Perspective
|
||||
*/
|
||||
public static Polygon getCanvasTileAreaPoly(@Nonnull Client client, @Nonnull LocalPoint localLocation, int size)
|
||||
{
|
||||
return getCanvasTileAreaPoly(client, localLocation, size, 0);
|
||||
return getCanvasTileAreaPoly(client, localLocation, size, size, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -397,23 +397,25 @@ public class Perspective
|
||||
*
|
||||
* @param client the game client
|
||||
* @param localLocation the center location of the AoE
|
||||
* @param size the size of the area (ie. 3x3 AoE evaluates to size 3)
|
||||
* @param sizeX the size of the area in tiles on the x axis
|
||||
* @param sizeY the size of the area in tiles on the y axis
|
||||
* @param zOffset offset from ground plane
|
||||
* @return a polygon representing the tiles in the area
|
||||
*/
|
||||
public static Polygon getCanvasTileAreaPoly(
|
||||
@Nonnull Client client,
|
||||
@Nonnull LocalPoint localLocation,
|
||||
int size,
|
||||
int sizeX,
|
||||
int sizeY,
|
||||
int zOffset)
|
||||
{
|
||||
final int plane = client.getPlane();
|
||||
|
||||
final int swX = localLocation.getX() - (size * LOCAL_TILE_SIZE / 2);
|
||||
final int swY = localLocation.getY() - (size * LOCAL_TILE_SIZE / 2);
|
||||
final int swX = localLocation.getX() - (sizeX * LOCAL_TILE_SIZE / 2);
|
||||
final int swY = localLocation.getY() - (sizeY * LOCAL_TILE_SIZE / 2);
|
||||
|
||||
final int neX = localLocation.getX() + (size * LOCAL_TILE_SIZE / 2);
|
||||
final int neY = localLocation.getY() + (size * LOCAL_TILE_SIZE / 2);
|
||||
final int neX = localLocation.getX() + (sizeX * LOCAL_TILE_SIZE / 2);
|
||||
final int neY = localLocation.getY() + (sizeY * LOCAL_TILE_SIZE / 2);
|
||||
|
||||
final byte[][][] tileSettings = client.getTileSettings();
|
||||
|
||||
@@ -683,6 +685,7 @@ public class Perspective
|
||||
{
|
||||
int[] x2d = new int[m.getVerticesCount()];
|
||||
int[] y2d = new int[m.getVerticesCount()];
|
||||
final int[] faceColors3 = m.getFaceColors3();
|
||||
|
||||
Perspective.modelToCanvas(client,
|
||||
m.getVerticesCount(),
|
||||
@@ -709,6 +712,11 @@ public class Perspective
|
||||
nextTri:
|
||||
for (int tri = 0; tri < m.getTrianglesCount(); tri++)
|
||||
{
|
||||
if (faceColors3[tri] == -2)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int
|
||||
minX = Integer.MAX_VALUE,
|
||||
minY = Integer.MAX_VALUE,
|
||||
|
||||
@@ -66,4 +66,9 @@ public interface Preferences
|
||||
* @param volume 0-127 inclusive
|
||||
*/
|
||||
void setAreaSoundEffectVolume(int volume);
|
||||
|
||||
/**
|
||||
* Gets if the login name should be replaced with asterisks
|
||||
*/
|
||||
boolean getHideUsername();
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
package net.runelite.api;
|
||||
|
||||
/**
|
||||
* Represents a projectile entity (ie. cannonball, arrow).
|
||||
* Represents a projectile entity. (ie. cannonball, arrow)
|
||||
*/
|
||||
public interface Projectile extends Renderable
|
||||
{
|
||||
|
||||
@@ -36,7 +36,7 @@ public enum Quest
|
||||
THE_CORSAIR_CURSE(301, "The Corsair Curse"),
|
||||
DEMON_SLAYER(302, "Demon Slayer"),
|
||||
DORICS_QUEST(303, "Doric's Quest"),
|
||||
DRAGON_SLAYER(304, "Dragon Slayer"),
|
||||
DRAGON_SLAYER_I(304, "Dragon Slayer I"),
|
||||
ERNEST_THE_CHICKEN(305, "Ernest the Chicken"),
|
||||
GOBLIN_DIPLOMACY(306, "Goblin Diplomacy"),
|
||||
IMP_CATCHER(307, "Imp Catcher"),
|
||||
@@ -133,7 +133,7 @@ public enum Quest
|
||||
PLAGUE_CITY(407, "Plague City"),
|
||||
PRIEST_IN_PERIL(408, "Priest in Peril"),
|
||||
THE_QUEEN_OF_THIEVES(409, "The Queen of Thieves"),
|
||||
RAG_AND_BONE_MAN(410, "Rag and Bone Man"),
|
||||
RAG_AND_BONE_MAN_I(410, "Rag and Bone Man I"),
|
||||
RAG_AND_BONE_MAN_II(411, "Rag and Bone Man II"),
|
||||
RATCATCHERS(412, "Ratcatchers"),
|
||||
RECIPE_FOR_DISASTER(413, "Recipe for Disaster"),
|
||||
|
||||
@@ -93,4 +93,4 @@ public interface ScriptEvent
|
||||
* This method must be ran on the client thread and is not reentrant
|
||||
*/
|
||||
void run();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,4 +370,4 @@ public final class ScriptID
|
||||
*/
|
||||
@ScriptArguments(integer = 4)
|
||||
public static final int WIKI_ICON_UPDATE = 3306;
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,9 @@
|
||||
*/
|
||||
package net.runelite.api;
|
||||
|
||||
/**
|
||||
* @see ParamID#SETTING_ID
|
||||
*/
|
||||
public class SettingID
|
||||
{
|
||||
public static final int CAMERA_ZOOM = 14;
|
||||
@@ -31,4 +34,4 @@ public class SettingID
|
||||
public static final int MUSIC_VOLUME = 30;
|
||||
public static final int EFFECT_VOLUME = 31;
|
||||
public static final int AREA_VOLUME = 32;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,4 +35,4 @@ package net.runelite.api;
|
||||
public interface StructComposition extends ParamHolder
|
||||
{
|
||||
int getId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,4 +34,4 @@ public class StructID
|
||||
public static final int SETTINGS_MUSIC_VOLUME = 2753;
|
||||
public static final int SETTINGS_EFFECT_VOLUME = 2754;
|
||||
public static final int SETTINGS_AREA_VOLUME = 2755;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,13 @@ public interface Tile extends TileObject
|
||||
*/
|
||||
GroundObject getGroundObject();
|
||||
|
||||
/**
|
||||
* Sets the object on the ground layer of the tile.
|
||||
*
|
||||
* @param groundObject the ground object
|
||||
*/
|
||||
void setGroundObject(GroundObject groundObject);
|
||||
|
||||
/**
|
||||
* Gets the wall of the tile.
|
||||
*
|
||||
|
||||
@@ -42,11 +42,6 @@ import lombok.Getter;
|
||||
@Getter
|
||||
public enum Varbits
|
||||
{
|
||||
/*
|
||||
* Kharedst's Memoirs Teleport Item
|
||||
*/
|
||||
KHAREDSTS_MEMOIRS_CHARGES(6035),
|
||||
|
||||
/*
|
||||
* If chatbox is transparent or not
|
||||
*/
|
||||
@@ -62,11 +57,6 @@ public enum Varbits
|
||||
*/
|
||||
CHAT_SCROLLBAR_ON_LEFT(6374),
|
||||
|
||||
/**
|
||||
* Grand Exchange
|
||||
*/
|
||||
GRAND_EXCHANGE_PRICE_PER_ITEM(4398),
|
||||
|
||||
/**
|
||||
* Runepouch
|
||||
*/
|
||||
@@ -110,19 +100,6 @@ public enum Varbits
|
||||
PRAYER_PRESERVE(5466),
|
||||
PRAYER_RIGOUR(5464),
|
||||
PRAYER_AUGURY(5465),
|
||||
|
||||
/**
|
||||
* Locked Prayers
|
||||
* 0-7 = Locked
|
||||
* 8 = Unlocked
|
||||
*/
|
||||
CHIVPIETY_UNLOCKED(3909),
|
||||
|
||||
/**
|
||||
* Locked Prayers
|
||||
* 0 = Locked
|
||||
* 1 = Unlocked
|
||||
*/
|
||||
|
||||
RIGOUR_UNLOCKED(5451),
|
||||
AUGURY_UNLOCKED(5452),
|
||||
@@ -209,6 +186,10 @@ public enum Varbits
|
||||
* Defensive casting mode
|
||||
*/
|
||||
DEFENSIVE_CASTING_MODE(2668),
|
||||
/**
|
||||
* Spells being auto-casted
|
||||
*/
|
||||
AUTO_CAST_SPELL(276),
|
||||
|
||||
/**
|
||||
* Options
|
||||
@@ -275,12 +256,12 @@ public enum Varbits
|
||||
|
||||
/**
|
||||
* Blast Furnace Bar Dispenser
|
||||
* <p>
|
||||
*
|
||||
* These are the expected values:
|
||||
* 0 = No bars being processed
|
||||
* 1 = Ores are being processed on the conveyor belt, bar dispenser cannot be checked
|
||||
* 2 = Bars are cooling down
|
||||
* 3 = Bars can be collected
|
||||
* 0 = No bars being processed
|
||||
* 1 = Ores are being processed on the conveyor belt, bar dispenser cannot be checked
|
||||
* 2 = Bars are cooling down
|
||||
* 3 = Bars can be collected
|
||||
*/
|
||||
BAR_DISPENSER(936),
|
||||
|
||||
@@ -292,11 +273,11 @@ public enum Varbits
|
||||
|
||||
/**
|
||||
* Experience tracker
|
||||
* <p>
|
||||
*
|
||||
* EXPERIENCE_TRACKER_POSITION expected values:
|
||||
* 0 = Right
|
||||
* 1 = Middle
|
||||
* 2 = Left
|
||||
* 0 = Right
|
||||
* 1 = Middle
|
||||
* 2 = Left
|
||||
*/
|
||||
EXPERIENCE_TRACKER_POSITION(4692),
|
||||
EXPERIENCE_TRACKER_COUNTER(4697),
|
||||
@@ -349,23 +330,12 @@ public enum Varbits
|
||||
* Theatre of Blood 1=In Party, 2=Inside/Spectator, 3=Dead Spectating
|
||||
*/
|
||||
THEATRE_OF_BLOOD(6440),
|
||||
BLOAT_DOOR(6447),
|
||||
|
||||
/**
|
||||
* Theatre of Blood orb varbits each number stands for the player's health on a scale of 1-27 (I think), 0 hides the orb
|
||||
*/
|
||||
THEATRE_OF_BLOOD_ORB_1(6442),
|
||||
THEATRE_OF_BLOOD_ORB_2(6443),
|
||||
THEATRE_OF_BLOOD_ORB_3(6444),
|
||||
THEATRE_OF_BLOOD_ORB_4(6445),
|
||||
THEATRE_OF_BLOOD_ORB_5(6446),
|
||||
|
||||
/**
|
||||
* Nightmare Zone
|
||||
*/
|
||||
NMZ_ABSORPTION(3956),
|
||||
NMZ_POINTS(3949),
|
||||
NMZ_OVERLOAD(3955),
|
||||
|
||||
/**
|
||||
* Blast Furnace
|
||||
@@ -394,8 +364,6 @@ public enum Varbits
|
||||
/**
|
||||
* Pyramid plunder
|
||||
*/
|
||||
PYRAMID_PLUNDER_SARCO_OPEN(2362),
|
||||
PYRAMID_PLUNDER_CHEST_OPEN(2363),
|
||||
PYRAMID_PLUNDER_ROOM_LOCATION(2365),
|
||||
PYRAMID_PLUNDER_TIMER(2375),
|
||||
PYRAMID_PLUNDER_THIEVING_LEVEL(2376),
|
||||
@@ -426,31 +394,30 @@ public enum Varbits
|
||||
*/
|
||||
MULTICOMBAT_AREA(4605),
|
||||
|
||||
/**
|
||||
* In the Wilderness
|
||||
*/
|
||||
IN_THE_WILDERNESS(5963),
|
||||
|
||||
/**
|
||||
* Kingdom Management
|
||||
*/
|
||||
KINGDOM_FAVOR(72),
|
||||
KINGDOM_COFFER(74),
|
||||
KINGDOM_WORKERS_WOOD(81),
|
||||
KINGDOM_WORKERS_HERBS(82),
|
||||
KINGDOM_WORKERS_FISHING(83),
|
||||
KINGDOM_WORKERS_MINING(84),
|
||||
KINGDOM_WORKERS_FISH_COOKED_BUTTON(135), // 0 - Raw, 1 - Cooked
|
||||
KINGDOM_WORKERS_HARDWOOD(2131),
|
||||
KINGDOM_WORKERS_FARM(2132),
|
||||
KINGDOM_WORKERS_HARDWOOD_BUTTON(2133), // 0 - Mahogany, 1 - Teak, 2 - Both
|
||||
KINGDOM_WORKERS_HERBS_BUTTON(2134), // 0 - Herbs, 1 - Flax
|
||||
|
||||
/**
|
||||
* The Hand in the Sand quest status
|
||||
*/
|
||||
QUEST_THE_HAND_IN_THE_SAND(1527),
|
||||
|
||||
/**
|
||||
* 0 = Sir Bedivere
|
||||
* 1 = Sir Pelleas
|
||||
* 2 = Sir Tristram
|
||||
* 3 = Sir Palomedes
|
||||
* 4 = Sir Lucan
|
||||
* 5 = Sir Gawain
|
||||
* 6 = Sir Kay
|
||||
* 7 = Sir Lancelot
|
||||
* 8 = Completed (Chivalry and Piety are unlocked)
|
||||
*/
|
||||
CAMELOT_TRAINING_ROOM_STATUS(3909),
|
||||
|
||||
/**
|
||||
* Daily Tasks (Collection availability)
|
||||
*/
|
||||
@@ -464,7 +431,7 @@ public enum Varbits
|
||||
/**
|
||||
* This varbit tracks how much bonemeal has been redeemed from Robin
|
||||
* The player gets 13 for each diary completed above and including Medium, for a maxiumum of 39
|
||||
*/
|
||||
*/
|
||||
DAILY_BONEMEAL_STATE(4543),
|
||||
|
||||
DAILY_DYNAMITE_COLLECTED(7939),
|
||||
@@ -521,11 +488,6 @@ public enum Varbits
|
||||
*/
|
||||
ACCOUNT_TYPE(1777),
|
||||
|
||||
/**
|
||||
* Varbit used for Slayer reward points
|
||||
*/
|
||||
SLAYER_REWARD_POINTS(4068),
|
||||
|
||||
/**
|
||||
* The varbit that stores the oxygen percentage for player
|
||||
*/
|
||||
@@ -586,20 +548,6 @@ public enum Varbits
|
||||
*/
|
||||
VENGEANCE_COOLDOWN(2451),
|
||||
|
||||
/**
|
||||
* 0 = standard
|
||||
* 1 = ancients
|
||||
* 2 = lunars
|
||||
* 3 = arrceus
|
||||
**/
|
||||
SPELLBOOK(4070),
|
||||
|
||||
/**
|
||||
* Bank settings/flags
|
||||
**/
|
||||
BANK_NOTE_FLAG(3958),
|
||||
|
||||
|
||||
/**
|
||||
* Amount of items in each bank tab
|
||||
*/
|
||||
@@ -619,13 +567,7 @@ public enum Varbits
|
||||
* 1 = sell
|
||||
*/
|
||||
GE_OFFER_CREATION_TYPE(4397),
|
||||
|
||||
|
||||
/**
|
||||
* Spells being auto-casted
|
||||
*/
|
||||
AUTO_CAST_SPELL(276),
|
||||
|
||||
GE_OFFER_PRICE_PER_ITEM(4398),
|
||||
|
||||
/**
|
||||
* The active tab within the quest interface
|
||||
@@ -640,140 +582,8 @@ public enum Varbits
|
||||
EXPLORER_RING_ALCHS(4554),
|
||||
EXPLORER_RING_RUNENERGY(4553),
|
||||
|
||||
/**
|
||||
* Temple Trekking
|
||||
*/
|
||||
TREK_POINTS(1955),
|
||||
TREK_STARTED(1956),
|
||||
TREK_EVENT(1958),
|
||||
TREK_STATUS(6719),
|
||||
BLOAT_ENTERED_ROOM(6447),
|
||||
|
||||
/**
|
||||
* f2p Quest varbits, these don't hold the completion value.
|
||||
*/
|
||||
QUEST_DEMON_SLAYER(2561),
|
||||
QUEST_GOBLIN_DIPLOMACY(2378),
|
||||
QUEST_MISTHALIN_MYSTERY(3468),
|
||||
QUEST_THE_CORSAIR_CURSE(6071),
|
||||
QUEST_X_MARKS_THE_SPOT(8063),
|
||||
QUEST_ERNEST_LEVER_A(1788),
|
||||
QUEST_ERNEST_LEVER_B(1789),
|
||||
QUEST_ERNEST_LEVER_C(1790),
|
||||
QUEST_ERNEST_LEVER_D(1791),
|
||||
QUEST_ERNEST_LEVER_E(1792),
|
||||
QUEST_ERNEST_LEVER_F(1793),
|
||||
|
||||
/**
|
||||
* member Quest varbits, these don't hold the completion value.
|
||||
*/
|
||||
QUEST_ANIMAL_MAGNETISM(3185),
|
||||
QUEST_BETWEEN_A_ROCK(299),
|
||||
QUEST_CONTACT(3274),
|
||||
QUEST_ZOGRE_FLESH_EATERS(487),
|
||||
QUEST_DARKNESS_OF_HALLOWVALE(2573),
|
||||
QUEST_DEATH_TO_THE_DORGESHUUN(2258),
|
||||
QUEST_DESERT_TREASURE(358),
|
||||
QUEST_DEVIOUS_MINDS(1465),
|
||||
QUEST_EAGLES_PEAK(2780),
|
||||
QUEST_ELEMENTAL_WORKSHOP_II(2639),
|
||||
QUEST_ENAKHRAS_LAMENT(1560),
|
||||
QUEST_ENLIGHTENED_JOURNEY(2866),
|
||||
QUEST_THE_EYES_OF_GLOUPHRIE(2497),
|
||||
QUEST_FAIRYTALE_I_GROWING_PAINS(1803),
|
||||
QUEST_FAIRYTALE_II_CURE_A_QUEEN(2326),
|
||||
QUEST_THE_FEUD(334), // 14 = able to pickpocket
|
||||
QUEST_FORGETTABLE_TALE(822),
|
||||
QUEST_GARDEN_OF_TRANQUILLITY(961),
|
||||
QUEST_GHOSTS_AHOY(217),
|
||||
QUEST_THE_GIANT_DWARF(571),
|
||||
QUEST_THE_GOLEM(346),
|
||||
QUEST_HORROR_FROM_THE_DEEP(34),
|
||||
QUEST_ICTHLARINS_LITTLE_HELPER(418),
|
||||
QUEST_IN_AID_OF_THE_MYREQUE(1990),
|
||||
QUEST_THE_LOST_TRIBE(532),
|
||||
QUEST_LUNAR_DIPLOMACY(2448),
|
||||
QUEST_MAKING_HISTORY(1383),
|
||||
QUEST_MOUNTAIN_DAUGHTER(260),
|
||||
QUEST_MOURNINGS_END_PART_II(1103),
|
||||
QUEST_MY_ARMS_BIG_ADVENTURE(2790),
|
||||
QUEST_RATCATCHERS(1404),
|
||||
QUEST_RECIPE_FOR_DISASTER(1850),
|
||||
QUEST_RECRUITMENT_DRIVE(657),
|
||||
QUEST_ROYAL_TROUBLE(2140),
|
||||
QUEST_THE_SLUG_MENACE(2610),
|
||||
QUEST_SHADOW_OF_THE_STORM(1372),
|
||||
QUEST_A_SOULS_BANE(2011),
|
||||
QUEST_SPIRITS_OF_THE_ELID(1444),
|
||||
QUEST_SWAN_SONG(2098),
|
||||
QUEST_A_TAIL_OF_TWO_CATS(1028),
|
||||
QUEST_TEARS_OF_GUTHIX(451),
|
||||
QUEST_WANTED(1051),
|
||||
QUEST_COLD_WAR(3293),
|
||||
QUEST_THE_FREMENNIK_ISLES(3311),
|
||||
QUEST_TOWER_OF_LIFE(3337),
|
||||
QUEST_WHAT_LIES_BELOW(3523),
|
||||
QUEST_OLAFS_QUEST(3534),
|
||||
QUEST_ANOTHER_SLICE_OF_HAM(3550),
|
||||
QUEST_DREAM_MENTOR(3618),
|
||||
QUEST_GRIM_TALES(2783),
|
||||
QUEST_KINGS_RANSOM(3888),
|
||||
QUEST_MONKEY_MADNESS_II(5027),
|
||||
QUEST_CLIENT_OF_KOUREND(5619),
|
||||
QUEST_BONE_VOYAGE(5795),
|
||||
QUEST_THE_QUEEN_OF_THIEVES(6037),
|
||||
QUEST_THE_DEPTHS_OF_DESPAIR(6027),
|
||||
QUEST_DRAGON_SLAYER_II(6104),
|
||||
QUEST_TALE_OF_THE_RIGHTEOUS(6358),
|
||||
QUEST_A_TASTE_OF_HOPE(6396),
|
||||
QUEST_MAKING_FRIENDS_WITH_MY_ARM(6528),
|
||||
QUEST_THE_ASCENT_OF_ARCEUUS(7856),
|
||||
QUEST_THE_FORSAKEN_TOWER(7796),
|
||||
//TODO
|
||||
QUEST_SONG_OF_THE_ELVES(7796),
|
||||
|
||||
/**
|
||||
* mini-quest varbits, these don't hold the completion value.
|
||||
*/
|
||||
QUEST_ARCHITECTURAL_ALLIANCE(4982),
|
||||
QUEST_BEAR_YOUR_SOUL(5078),
|
||||
QUEST_CURSE_OF_THE_EMPTY_LORD(821),
|
||||
QUEST_ENCHANTED_KEY(1391),
|
||||
QUEST_THE_GENERALS_SHADOW(3330),
|
||||
QUEST_SKIPPY_AND_THE_MOGRES(1344),
|
||||
QUEST_LAIR_OF_TARN_RAZORLOR(3290),
|
||||
QUEST_FAMILY_PEST(5347),
|
||||
QUEST_THE_MAGE_ARENA_II(6067),
|
||||
//TODO
|
||||
QUEST_IN_SEARCH_OF_KNOWLEDGE(6067),
|
||||
|
||||
/**
|
||||
* Spellbook filtering (1 = unfiltered, 0 = filtered)
|
||||
*/
|
||||
FILTER_SPELLBOOK(6718),
|
||||
|
||||
/**
|
||||
* POH Building mode (1 = yes, 0 = no)
|
||||
*/
|
||||
BUILDING_MODE(2176),
|
||||
|
||||
WINTERTODT_TIMER(7980),
|
||||
|
||||
/**
|
||||
* 1 if in game, 0 if not
|
||||
*/
|
||||
LMS_IN_GAME(5314),
|
||||
|
||||
/**
|
||||
* Amount of pvp kills in current game
|
||||
*/
|
||||
LMS_KILLS(5315),
|
||||
|
||||
/**
|
||||
* The x coordinate of the final safespace (world coord)
|
||||
*/
|
||||
LMS_SAFE_X(5316),
|
||||
|
||||
/**
|
||||
* League relics
|
||||
*/
|
||||
@@ -791,6 +601,15 @@ public enum Varbits
|
||||
MUTED_SOUND_EFFECT_VOLUME(9674),
|
||||
MUTED_AREA_EFFECT_VOLUME(9675),
|
||||
|
||||
/**
|
||||
* Parasite infection status during nightmare of ashihama bossfight
|
||||
*
|
||||
* 0 = not infected
|
||||
* 1 = infected
|
||||
*
|
||||
*/
|
||||
PARASITE(10151),
|
||||
|
||||
/**
|
||||
* Whether the Special Attack orb is disabled due to being in a PvP area
|
||||
*
|
||||
@@ -799,69 +618,7 @@ public enum Varbits
|
||||
*
|
||||
* @see <a href="https://oldschool.runescape.wiki/w/Minimap#Special_attack_orb">The OSRS Wiki's Minimap page</a>
|
||||
*/
|
||||
PVP_SPEC_ORB(8121),
|
||||
|
||||
LMS_POISON_PROGRESS(5317),
|
||||
|
||||
/**
|
||||
* The y coordinate of the final safespace (world coord)
|
||||
*/
|
||||
LMS_SAFE_Y(5320),
|
||||
|
||||
/**
|
||||
* 1 is true, 0 is false.
|
||||
*/
|
||||
GAUNTLET_FINAL_ROOM_ENTERED(9177),
|
||||
|
||||
/**
|
||||
* 1 is true, 0 is false.
|
||||
*/
|
||||
GAUNTLET_ENTERED(9178),
|
||||
|
||||
WITHDRAW_X_AMOUNT(3960),
|
||||
|
||||
IN_PVP_AREA(8121),
|
||||
|
||||
/**
|
||||
* 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),
|
||||
|
||||
/**
|
||||
* Chat Notifications settings
|
||||
* <br>
|
||||
* LOOT_DROP_NOTIFICATIONS: 1 is true, 0 is false
|
||||
* LOOT_DROP_NOTIFICATIONS_VALUE: gp value
|
||||
* UNTRADEABLE_LOOT_NOTIFICATIONS: 1 is true, 0 is false
|
||||
* BOSS_KILL_COUNT_UPDATES: 1 is filtered, 0 is unfiltered
|
||||
* DROP_ITEM_WARNINGS: 1 is true, 0 is false
|
||||
* DROP_ITEM_WARNINGS_VALUE: gp value
|
||||
*/
|
||||
LOOT_DROP_NOTIFICATIONS(5399),
|
||||
LOOT_DROP_NOTIFICATIONS_VALUE(5400),
|
||||
UNTRADEABLE_LOOT_NOTIFICATIONS(5402),
|
||||
BOSS_KILL_COUNT_UPDATES(4930),
|
||||
DROP_ITEM_WARNINGS(5411),
|
||||
DROP_ITEM_WARNINGS_VALUE(5412),
|
||||
|
||||
PARASITE(10151),
|
||||
;
|
||||
PVP_SPEC_ORB(8121);
|
||||
|
||||
/**
|
||||
* The raw varbit ID.
|
||||
|
||||
@@ -31,7 +31,7 @@ import net.runelite.api.Actor;
|
||||
* An event fired when an actor dies.
|
||||
*/
|
||||
@Value
|
||||
public class ActorDeath implements Event
|
||||
public class ActorDeath
|
||||
{
|
||||
Actor actor;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import lombok.Data;
|
||||
* @see net.runelite.api.AnimationID
|
||||
*/
|
||||
@Data
|
||||
public class AnimationChanged implements Event
|
||||
public class AnimationChanged
|
||||
{
|
||||
/**
|
||||
* The actor that has entered a new animation.
|
||||
|
||||
@@ -29,7 +29,7 @@ import lombok.Data;
|
||||
import net.runelite.api.Actor;
|
||||
|
||||
@Data
|
||||
public class AreaSoundEffectPlayed implements Event
|
||||
public class AreaSoundEffectPlayed
|
||||
{
|
||||
@Nullable
|
||||
private final Actor source;
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BeforeMenuRender implements Event
|
||||
public class BeforeMenuRender
|
||||
{
|
||||
private boolean consumed;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
/**
|
||||
* Posted at the start of every frame
|
||||
*/
|
||||
public class BeforeRender implements Event
|
||||
public class BeforeRender
|
||||
{
|
||||
public static final BeforeRender INSTANCE = new BeforeRender();
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Value;
|
||||
* an event posted when a cannonball is fired
|
||||
*/
|
||||
@Value
|
||||
public class CannonChanged implements Event
|
||||
public class CannonChanged
|
||||
{
|
||||
/**
|
||||
* The projectile id.
|
||||
|
||||
@@ -33,7 +33,7 @@ import net.runelite.api.coords.WorldPoint;
|
||||
* an event posted when a cannonball is fired
|
||||
*/
|
||||
@Value
|
||||
public class CannonPlaced implements Event
|
||||
public class CannonPlaced
|
||||
{
|
||||
/**
|
||||
* Cannon placed or picked up.
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
/**
|
||||
* An event posted when the canvas size might have changed.
|
||||
*/
|
||||
public class CanvasSizeChanged implements Event
|
||||
public class CanvasSizeChanged
|
||||
{
|
||||
public static final CanvasSizeChanged INSTANCE = new CanvasSizeChanged();
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ import lombok.NoArgsConstructor;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ChatMessage implements Event
|
||||
public class ChatMessage
|
||||
{
|
||||
/**
|
||||
* The underlying MessageNode for the message.
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
/**
|
||||
* Posted every client tick
|
||||
*/
|
||||
public class ClientTick implements Event
|
||||
public class ClientTick
|
||||
{
|
||||
public static final ClientTick INSTANCE = new ClientTick();
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ import lombok.Value;
|
||||
* will set command to "" and arguments to ["hello", "world!"].
|
||||
*/
|
||||
@Value
|
||||
public class CommandExecuted implements Event
|
||||
public class CommandExecuted
|
||||
{
|
||||
/**
|
||||
* The name of the command entered.
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.events.Event;
|
||||
|
||||
@Data
|
||||
public class ConfigButtonClicked implements Event
|
||||
public class ConfigButtonClicked
|
||||
{
|
||||
private String group, key;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ import lombok.Data;
|
||||
* has been modified.
|
||||
*/
|
||||
@Data
|
||||
public class DecorativeObjectChanged implements Event
|
||||
public class DecorativeObjectChanged
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -33,7 +33,7 @@ import lombok.Data;
|
||||
* is removed.
|
||||
*/
|
||||
@Data
|
||||
public class DecorativeObjectDespawned implements Event
|
||||
public class DecorativeObjectDespawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link DecorativeObject} is attached to a {@link Tile}.
|
||||
*/
|
||||
@Data
|
||||
public class DecorativeObjectSpawned implements Event
|
||||
public class DecorativeObjectSpawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.Value;
|
||||
import net.runelite.api.DialogOption;
|
||||
|
||||
@Value
|
||||
public class DialogProcessed
|
||||
{
|
||||
DialogOption dialogOption;
|
||||
}
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* the cursor.
|
||||
*/
|
||||
@Data
|
||||
public class DraggingWidgetChanged implements Event
|
||||
public class DraggingWidgetChanged
|
||||
{
|
||||
/**
|
||||
* Whether a widget is currently being dragged.
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package net.runelite.api.events;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DynamicObjectAnimationChanged implements Event
|
||||
public class DynamicObjectAnimationChanged
|
||||
{
|
||||
/**
|
||||
* The object that has entered a new animation.
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
public interface Event {}
|
||||
@@ -28,7 +28,7 @@ import lombok.Value;
|
||||
import net.runelite.api.Skill;
|
||||
|
||||
@Value
|
||||
public class FakeXpDrop implements Event
|
||||
public class FakeXpDrop
|
||||
{
|
||||
Skill skill;
|
||||
int xp;
|
||||
|
||||
@@ -37,7 +37,7 @@ import lombok.Data;
|
||||
* </ul>
|
||||
*/
|
||||
@Data
|
||||
public class FocusChanged implements Event
|
||||
public class FocusChanged
|
||||
{
|
||||
/**
|
||||
* The new focus state.
|
||||
|
||||
@@ -6,7 +6,7 @@ import lombok.Value;
|
||||
* An event where a request to add a friend is sent to the server.
|
||||
*/
|
||||
@Value
|
||||
public class FriendAdded implements Event
|
||||
public class FriendAdded
|
||||
{
|
||||
/**
|
||||
* The name of the added friend.
|
||||
|
||||
@@ -30,7 +30,7 @@ import lombok.Value;
|
||||
* An event where the client has joined or left a friends chat.
|
||||
*/
|
||||
@Value
|
||||
public class FriendsChatChanged implements Event
|
||||
public class FriendsChatChanged
|
||||
{
|
||||
/**
|
||||
* Whether or not the client is now in a friends chat.
|
||||
|
||||
@@ -28,7 +28,7 @@ import lombok.Value;
|
||||
import net.runelite.api.FriendsChatMember;
|
||||
|
||||
@Value
|
||||
public class FriendsChatMemberJoined implements Event
|
||||
public class FriendsChatMemberJoined
|
||||
{
|
||||
/**
|
||||
* The member that joined
|
||||
|
||||
@@ -28,7 +28,7 @@ import lombok.Value;
|
||||
import net.runelite.api.FriendsChatMember;
|
||||
|
||||
@Value
|
||||
public class FriendsChatMemberLeft implements Event
|
||||
public class FriendsChatMemberLeft
|
||||
{
|
||||
/**
|
||||
* The member that left
|
||||
|
||||
@@ -32,7 +32,7 @@ import net.runelite.api.Tile;
|
||||
* An event where a {@link GameObject} on a {@link Tile} has been replaced.
|
||||
*/
|
||||
@Data
|
||||
public class GameObjectChanged implements Event
|
||||
public class GameObjectChanged
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link GameObject} on a {@link Tile} is removed.
|
||||
*/
|
||||
@Data
|
||||
public class GameObjectDespawned implements Event
|
||||
public class GameObjectDespawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import net.runelite.api.Tile;
|
||||
* An event where a {@link GameObject} is added to a {@link Tile}.
|
||||
*/
|
||||
@Data
|
||||
public class GameObjectSpawned implements Event
|
||||
public class GameObjectSpawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* An event where the clients game state has changed.
|
||||
*/
|
||||
@Data
|
||||
public class GameStateChanged implements Event
|
||||
public class GameStateChanged
|
||||
{
|
||||
/**
|
||||
* The new game state.
|
||||
|
||||
@@ -41,7 +41,7 @@ package net.runelite.api.events;
|
||||
* Note that occurrences that take place purely on the client, such as right
|
||||
* click menus, are independent of the game tick.
|
||||
*/
|
||||
public class GameTick implements Event
|
||||
public class GameTick
|
||||
{
|
||||
public static final GameTick INSTANCE = new GameTick();
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ import lombok.Data;
|
||||
* can change into.
|
||||
*/
|
||||
@Data
|
||||
public class GrandExchangeOfferChanged implements Event
|
||||
public class GrandExchangeOfferChanged
|
||||
{
|
||||
/**
|
||||
* The offer that has been modified.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* An event where the Grand Exchange has been searched.
|
||||
*/
|
||||
@Data
|
||||
public class GrandExchangeSearched implements Event
|
||||
public class GrandExchangeSearched
|
||||
{
|
||||
/**
|
||||
* Whether or not the event has been consumed by a subscriber.
|
||||
|
||||
@@ -19,7 +19,7 @@ import net.runelite.api.Actor;
|
||||
* @see net.runelite.api.GraphicID
|
||||
*/
|
||||
@Data
|
||||
public class GraphicChanged implements Event
|
||||
public class GraphicChanged
|
||||
{
|
||||
/**
|
||||
* The actor that has had their graphic changed.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Value;
|
||||
* An event where a new {@link GraphicsObject} has been created.
|
||||
*/
|
||||
@Value
|
||||
public class GraphicsObjectCreated implements Event
|
||||
public class GraphicsObjectCreated
|
||||
{
|
||||
/**
|
||||
* The newly created graphics object.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where the {@link GroundObject} on a {@link Tile} has been changed.
|
||||
*/
|
||||
@Data
|
||||
public class GroundObjectChanged implements Event
|
||||
public class GroundObjectChanged
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link GroundObject} on a {@link Tile} has been removed.
|
||||
*/
|
||||
@Data
|
||||
public class GroundObjectDespawned implements Event
|
||||
public class GroundObjectDespawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link GroundObject} is added to a {@link Tile}.
|
||||
*/
|
||||
@Data
|
||||
public class GroundObjectSpawned implements Event
|
||||
public class GroundObjectSpawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -36,7 +36,7 @@ import lombok.Data;
|
||||
* visible hitsplats.
|
||||
*/
|
||||
@Data
|
||||
public class HitsplatApplied implements Event
|
||||
public class HitsplatApplied
|
||||
{
|
||||
/**
|
||||
* The actor the hitsplat was applied to.
|
||||
|
||||
@@ -28,7 +28,7 @@ import net.runelite.api.Actor;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class InteractChanged implements Event
|
||||
public class InteractChanged
|
||||
{
|
||||
private Actor actor;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import lombok.Value;
|
||||
* An event called when the actor an actor is interacting with changes
|
||||
*/
|
||||
@Value
|
||||
public class InteractingChanged implements Event
|
||||
public class InteractingChanged
|
||||
{
|
||||
Actor source;
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ import lombok.Value;
|
||||
* </ul>
|
||||
*/
|
||||
@Value
|
||||
public class ItemContainerChanged implements Event
|
||||
public class ItemContainerChanged
|
||||
{
|
||||
/**
|
||||
* The modified container's ID.
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.Value;
|
||||
* all item piles are implicitly despawned, and despawn events will not be sent.
|
||||
*/
|
||||
@Value
|
||||
public class ItemDespawned implements Event
|
||||
public class ItemDespawned
|
||||
{
|
||||
Tile tile;
|
||||
TileItem item;
|
||||
|
||||
@@ -33,7 +33,7 @@ import lombok.Value;
|
||||
* Called when the quantity of an item pile changes.
|
||||
*/
|
||||
@Value
|
||||
public class ItemQuantityChanged implements Event
|
||||
public class ItemQuantityChanged
|
||||
{
|
||||
TileItem item;
|
||||
Tile tile;
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.Value;
|
||||
* all item piles are implicitly reset and a new spawn event will be sent.
|
||||
*/
|
||||
@Value
|
||||
public class ItemSpawned implements Event
|
||||
public class ItemSpawned
|
||||
{
|
||||
Tile tile;
|
||||
TileItem item;
|
||||
|
||||
@@ -4,7 +4,7 @@ package net.runelite.api.events;
|
||||
* Gets sent before menu handling code is ran, once per client tick.
|
||||
* Can be consumed, skipping this method this tick.
|
||||
*/
|
||||
public class Menu implements Event
|
||||
public class Menu
|
||||
{
|
||||
public static final Menu MENU = new Menu();
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import net.runelite.api.MenuEntry;
|
||||
/**
|
||||
* An event when a new entry is added to a right-click menu.
|
||||
*/
|
||||
public class MenuEntryAdded extends MenuEntry implements Event
|
||||
public class MenuEntryAdded extends MenuEntry
|
||||
{
|
||||
public MenuEntryAdded(String option, String target, int identifier, int opcode, int param0, int param1, boolean forceLeftClick)
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.Data;
|
||||
* An event where a menu has been opened.
|
||||
*/
|
||||
@Data
|
||||
public class MenuOpened implements Event, Iterable<MenuEntry>
|
||||
public class MenuOpened implements Iterable<MenuEntry>
|
||||
{
|
||||
/**
|
||||
* This should be set to true if anything about the menu
|
||||
|
||||
@@ -24,9 +24,8 @@
|
||||
*/
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.Data;
|
||||
import net.runelite.api.MenuAction;
|
||||
import net.runelite.api.MenuEntry;
|
||||
|
||||
/**
|
||||
@@ -40,32 +39,44 @@ import net.runelite.api.MenuEntry;
|
||||
* By default, when there is no action performed when left-clicking,
|
||||
* it seems that this event still triggers with the "Cancel" action.
|
||||
*/
|
||||
@Getter
|
||||
public class MenuOptionClicked extends MenuEntry implements Event
|
||||
@Data
|
||||
public class MenuOptionClicked
|
||||
{
|
||||
public MenuOptionClicked(String option, String target, int identifier, int opcode, int param0, int param1, boolean forceLeftClick)
|
||||
{
|
||||
super(option, target, identifier, opcode, param0, param1, forceLeftClick);
|
||||
authentic = true;
|
||||
}
|
||||
|
||||
public MenuOptionClicked(String option, String target, int identifier, int opcode, int param0, int param1, boolean forceLeftClick, boolean authentic, int mouseButton)
|
||||
{
|
||||
super(option, target, identifier, opcode, param0, param1, forceLeftClick);
|
||||
this.authentic = authentic;
|
||||
this.mouseButton = mouseButton;
|
||||
}
|
||||
|
||||
/**
|
||||
* The action parameter used in the click.
|
||||
*/
|
||||
private int actionParam;
|
||||
/**
|
||||
* The option text added to the menu.
|
||||
*/
|
||||
private String menuOption;
|
||||
/**
|
||||
* The target of the action.
|
||||
*/
|
||||
private String menuTarget;
|
||||
/**
|
||||
* The action performed.
|
||||
*/
|
||||
private MenuAction menuAction;
|
||||
/**
|
||||
* The ID of the object, actor, or item that the interaction targets.
|
||||
*/
|
||||
private int id;
|
||||
/**
|
||||
* The ID of the widget where the menu was clicked.
|
||||
*
|
||||
* @see net.runelite.api.widgets.WidgetID
|
||||
*/
|
||||
private int widgetId;
|
||||
/**
|
||||
* The selected item index at the time of the option click.
|
||||
*/
|
||||
private int selectedItemIndex;
|
||||
/**
|
||||
* Whether or not the event has been consumed by a subscriber.
|
||||
*/
|
||||
private boolean consumed;
|
||||
|
||||
/**
|
||||
* The mouse button will be 1 if a non draggable widget was clicked,
|
||||
*/
|
||||
private int mouseButton;
|
||||
|
||||
/**
|
||||
* Marks the event as having been consumed.
|
||||
* <p>
|
||||
@@ -78,35 +89,13 @@ public class MenuOptionClicked extends MenuEntry implements Event
|
||||
this.consumed = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not the event is authentic.
|
||||
*/
|
||||
@Setter(AccessLevel.NONE)
|
||||
private final boolean authentic;
|
||||
|
||||
public void setMenuEntry(MenuEntry e)
|
||||
public void setMenuEntry(MenuEntry entry)
|
||||
{
|
||||
setOption(e.getOption());
|
||||
setTarget(e.getTarget());
|
||||
setIdentifier(e.getIdentifier());
|
||||
setOpcode(e.getOpcode());
|
||||
setActionParam(e.getActionParam());
|
||||
setActionParam1(e.getActionParam1());
|
||||
setForceLeftClick(e.isForceLeftClick());
|
||||
}
|
||||
|
||||
public int getWidgetId()
|
||||
{
|
||||
return getActionParam1();
|
||||
}
|
||||
|
||||
public String getMenuTarget()
|
||||
{
|
||||
return getTarget();
|
||||
}
|
||||
|
||||
public String getMenuOption()
|
||||
{
|
||||
return getOption();
|
||||
this.setMenuOption(entry.getOption());
|
||||
this.setMenuTarget(entry.getTarget());
|
||||
this.setId(entry.getId());
|
||||
this.setMenuAction(MenuAction.of(entry.getOpcode()));
|
||||
this.setActionParam(entry.getActionParam());
|
||||
this.setWidgetId(entry.getActionParam1());
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user