+ * 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.injector.raw;
+
+import net.runelite.asm.ClassFile;
+import net.runelite.asm.ClassGroup;
+import net.runelite.asm.ClassUtil;
+import net.runelite.injector.Inject;
+import org.junit.Test;
+
+public class DrawAfterWidgetsTest
+{
+ @Test
+ public void testInjectDrawWidgetsRev160() throws Exception
+ {
+ // Rev 160 does not have the drawWidgets call inlined
+
+ ClassFile deobClient = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Client_deob160.class"));
+ ClassFile deobRasterizer = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Rasterizer2D_deob160.class"));
+
+ ClassGroup deob = new ClassGroup();
+ deob.addClass(deobClient);
+ deob.addClass(deobRasterizer);
+
+ ClassFile obClient = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Client_ob160.class"));
+ ClassFile obRasterizer = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Rasterizer2D_ob160.class"));
+
+ ClassGroup vanilla = new ClassGroup();
+ vanilla.addClass(obClient);
+ vanilla.addClass(obRasterizer);
+
+ Inject inject = new Inject(deob, vanilla);
+ new DrawAfterWidgets(inject).inject();
+ }
+
+ @Test
+ public void testInjectDrawWidgetsRev153() throws Exception
+ {
+ // Rev 153 has the drawWidgets call inlined
+
+ ClassFile deobClient = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Client_deob153.class"));
+ ClassFile deobRasterizer = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Rasterizer2D_deob153.class"));
+
+ ClassGroup deob = new ClassGroup();
+ deob.addClass(deobClient);
+ deob.addClass(deobRasterizer);
+
+ ClassFile obClient = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Client_ob153.class"));
+ ClassFile obRasterizer = ClassUtil.loadClass(getClass().getResourceAsStream("/drawafterwidgets/Rasterizer2D_ob153.class"));
+
+ ClassGroup vanilla = new ClassGroup();
+ vanilla.addClass(obClient);
+ vanilla.addClass(obRasterizer);
+
+ Inject inject = new Inject(deob, vanilla);
+ new DrawAfterWidgets(inject).inject();
+ }
+}
diff --git a/pom.xml b/pom.xml
index 6c0603c754..b404ec6e40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -141,8 +141,8 @@
runelite-script-assembler-plugin
runescape-api
runescape-client
- injected-client
injector-plugin
+ injected-client
runelite-plugin-archetype
http-api
http-service
diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java
index b33dfa3862..2fa6ceeed8 100644
--- a/runelite-api/src/main/java/net/runelite/api/Actor.java
+++ b/runelite-api/src/main/java/net/runelite/api/Actor.java
@@ -24,13 +24,13 @@
*/
package net.runelite.api;
-import net.runelite.api.coords.LocalPoint;
-import net.runelite.api.coords.WorldArea;
-import net.runelite.api.coords.WorldPoint;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.image.BufferedImage;
import javax.annotation.Nullable;
+import net.runelite.api.coords.LocalPoint;
+import net.runelite.api.coords.WorldArea;
+import net.runelite.api.coords.WorldPoint;
/**
* Represents a RuneScape actor/entity.
@@ -208,7 +208,7 @@ public interface Actor extends Renderable
* Gets the convex hull of the actors model.
*
* @return the convex hull
- * @see //net.runelite.api.model.Jarvis
+ * @see net.runelite.api.model.Jarvis
*/
Polygon getConvexHull();
diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java
index ce1a827e80..9fc9317a5e 100644
--- a/runelite-api/src/main/java/net/runelite/api/Client.java
+++ b/runelite-api/src/main/java/net/runelite/api/Client.java
@@ -24,19 +24,19 @@
*/
package net.runelite.api;
-import net.runelite.api.coords.LocalPoint;
-import net.runelite.api.coords.WorldPoint;
-import net.runelite.api.hooks.Callbacks;
-import net.runelite.api.hooks.DrawCallbacks;
-import api.vars.AccountType;
-import net.runelite.api.widgets.Widget;
-import net.runelite.api.widgets.WidgetInfo;
import java.awt.Canvas;
import java.awt.Dimension;
import java.util.EnumSet;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
+import net.runelite.api.coords.LocalPoint;
+import net.runelite.api.coords.WorldPoint;
+import net.runelite.api.hooks.Callbacks;
+import net.runelite.api.hooks.DrawCallbacks;
+import net.runelite.api.vars.AccountType;
+import net.runelite.api.widgets.Widget;
+import net.runelite.api.widgets.WidgetInfo;
import org.slf4j.Logger;
/**
@@ -148,6 +148,13 @@ public interface Client extends GameShell
*/
void setPassword(String password);
+ /**
+ * Sets the 6 digit pin used for authenticator on login screen.
+ *
+ * @param otp one time password
+ */
+ void setOtp(String otp);
+
/**
* Gets currently selected login field. 0 is username, and 1 is password.
*
@@ -155,6 +162,13 @@ public interface Client extends GameShell
*/
int getCurrentLoginField();
+ /**
+ * Gets index of current login state. 2 is username/password form, 4 is authenticator form
+ *
+ * @return current login state index
+ */
+ int getLoginIndex();
+
/**
* Gets the account type of the logged in player.
*
@@ -355,10 +369,6 @@ public interface Client extends GameShell
*/
Sprite[] getSprites(IndexDataBase source, int archiveId, int fileId);
- byte[][] getSpritePixels();
-
- void setSpritePixels(byte[][] pixels);
-
/**
* Gets the sprite index.
*/
@@ -702,7 +712,7 @@ public interface Client extends GameShell
* @param varps passed varbits
* @param varbitId the variable ID
* @return the value
- * @see //Varbits#id
+ * @see Varbits#id
*/
int getVarbitValue(int[] varps, int varbitId);
@@ -732,7 +742,7 @@ public interface Client extends GameShell
* @param varps passed varbits
* @param varbit the variable
* @param value the value
- * @see //Varbits#id
+ * @see Varbits#id
*/
void setVarbitValue(int[] varps, int varbit, int value);
@@ -1346,6 +1356,13 @@ public interface Client extends GameShell
*/
boolean isInInstancedRegion();
+ /**
+ * Get the number of client ticks an item has been pressed
+ *
+ * @return the number of client ticks an item has been pressed
+ */
+ int getItemPressedDuration();
+
/**
* Sets whether the client is hiding entities.
*
@@ -1387,7 +1404,6 @@ public interface Client extends GameShell
*/
void setClanMatesHidden(boolean state);
-
/**
* Sets whether the local player is hidden.
*
@@ -1589,6 +1605,19 @@ public interface Client extends GameShell
void checkClickbox(Model model, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash);
+ /**
+ * Get the if1 widget whose item is being dragged
+ *
+ * @return
+ */
+ Widget getIf1DraggedWidget();
+
+ /**
+ * Get the item index of the item being dragged on an if1 widget
+ * @return
+ */
+ int getIf1DraggedItemIndex();
+
/**
* Sets if a widget is in target mode
*/
diff --git a/runelite-api/src/main/java/net/runelite/api/CollisionData.java b/runelite-api/src/main/java/net/runelite/api/CollisionData.java
index b7af82375d..5db393f743 100644
--- a/runelite-api/src/main/java/net/runelite/api/CollisionData.java
+++ b/runelite-api/src/main/java/net/runelite/api/CollisionData.java
@@ -40,7 +40,7 @@ public interface CollisionData
* values can be obtained and used with the {@link CollisionDataFlag} class.
*
* @return all collision flags for the tiles in the scene
- * @see api.config.Constants#SCENE_SIZE
+ * @see net.runelite.api.Constants#SCENE_SIZE
*/
int[][] getFlags();
}
\ No newline at end of file
diff --git a/runelite-api/src/main/java/net/runelite/api/EquipmentInventorySlot.java b/runelite-api/src/main/java/net/runelite/api/EquipmentInventorySlot.java
index c09abcf9e3..301aefecb4 100644
--- a/runelite-api/src/main/java/net/runelite/api/EquipmentInventorySlot.java
+++ b/runelite-api/src/main/java/net/runelite/api/EquipmentInventorySlot.java
@@ -29,7 +29,7 @@ package net.runelite.api;
*
* These values are intended for use with the local players equipment
* {@link ItemContainer} corresponding. For obtaining information about equipment
- * in the {@link PlayerAppearance}, use {@link api.kit.KitType}.
+ * in the {@link PlayerAppearance}, use {@link net.runelite.api.kit.KitType}.
*
* @see Client#getItemContainer(InventoryID)
* @see InventoryID#EQUIPMENT
diff --git a/runelite-api/src/main/java/net/runelite/api/GameShell.java b/runelite-api/src/main/java/net/runelite/api/GameShell.java
index 84e4e99b65..02802e3b76 100644
--- a/runelite-api/src/main/java/net/runelite/api/GameShell.java
+++ b/runelite-api/src/main/java/net/runelite/api/GameShell.java
@@ -26,6 +26,7 @@ package net.runelite.api;
import net.runelite.api.hooks.DrawCallbacks;
import java.awt.Canvas;
+import net.runelite.api.hooks.DrawCallbacks;
/**
* Represents the client game engine.
diff --git a/runelite-api/src/main/java/net/runelite/api/GameState.java b/runelite-api/src/main/java/net/runelite/api/GameState.java
index 0751fe0e71..5f9083f9ca 100644
--- a/runelite-api/src/main/java/net/runelite/api/GameState.java
+++ b/runelite-api/src/main/java/net/runelite/api/GameState.java
@@ -41,6 +41,10 @@ public enum GameState
* The client is at the login screen.
*/
LOGIN_SCREEN(10),
+ /**
+ * The client is at the login screen entering authenticator code.
+ */
+ LOGIN_SCREEN_AUTHENTICATOR(11),
/**
* There is a player logging in.
*/
diff --git a/runelite-api/src/main/java/net/runelite/api/GraphicID.java b/runelite-api/src/main/java/net/runelite/api/GraphicID.java
index 25b527c8a2..17b47c4224 100644
--- a/runelite-api/src/main/java/net/runelite/api/GraphicID.java
+++ b/runelite-api/src/main/java/net/runelite/api/GraphicID.java
@@ -27,6 +27,7 @@ package net.runelite.api;
public class GraphicID
{
+ public static final int WINE_MAKE = 47;
public static final int SPLASH = 85;
public static final int GREY_BUBBLE_TELEPORT = 86;
public static final int TELEPORT = 111;
diff --git a/runelite-api/src/main/java/net/runelite/api/MessageNode.java b/runelite-api/src/main/java/net/runelite/api/MessageNode.java
index 3419d955ac..3d8097c7bb 100644
--- a/runelite-api/src/main/java/net/runelite/api/MessageNode.java
+++ b/runelite-api/src/main/java/net/runelite/api/MessageNode.java
@@ -116,4 +116,14 @@ public interface MessageNode
* @param timestamp
*/
void setTimestamp(int timestamp);
+
+ /**
+ * Returns yes if the message is from a friend
+ */
+ boolean isFromFriend();
+
+ /**
+ * Returns yes if the message is from a clanmate
+ */
+ boolean isFromClanMate();
}
diff --git a/runelite-api/src/main/java/net/runelite/api/NPCDefinition.java b/runelite-api/src/main/java/net/runelite/api/NPCDefinition.java
index 8d8ad2fab5..fa70c5051e 100644
--- a/runelite-api/src/main/java/net/runelite/api/NPCDefinition.java
+++ b/runelite-api/src/main/java/net/runelite/api/NPCDefinition.java
@@ -1,3 +1,27 @@
+/*
+ * Copyright (c) 2018, Adam
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
package net.runelite.api;
public interface NPCDefinition
diff --git a/runelite-api/src/main/java/net/runelite/api/Perspective.java b/runelite-api/src/main/java/net/runelite/api/Perspective.java
index a7c799eaf0..4d3f312386 100644
--- a/runelite-api/src/main/java/net/runelite/api/Perspective.java
+++ b/runelite-api/src/main/java/net/runelite/api/Perspective.java
@@ -24,14 +24,7 @@
*/
package net.runelite.api;
-import net.runelite.api.config.Constants;
-import static net.runelite.api.config.Constants.TILE_FLAG_BRIDGE;
-import net.runelite.api.coords.LocalPoint;
-import net.runelite.api.model.Jarvis;
-import net.runelite.api.model.Triangle;
-import net.runelite.api.model.Vertex;
-import net.runelite.api.widgets.Widget;
-import net.runelite.api.widgets.WidgetInfo;
+import static net.runelite.api.Constants.TILE_FLAG_BRIDGE;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.Polygon;
@@ -44,7 +37,12 @@ import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import net.runelite.api.Point;
+import net.runelite.api.coords.LocalPoint;
+import net.runelite.api.model.Jarvis;
+import net.runelite.api.model.Triangle;
+import net.runelite.api.model.Vertex;
+import net.runelite.api.widgets.Widget;
+import net.runelite.api.widgets.WidgetInfo;
/**
* A utility class containing methods to help with conversion between
@@ -557,7 +555,7 @@ public class Perspective
for (Triangle triangle : triangles)
{
- Vertex _a = triangle.getA();
+ net.runelite.api.model.Vertex _a = triangle.getA();
Point a = localToCanvas(client,
point.getX() - _a.getX(),
point.getY() - _a.getZ(),
diff --git a/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java b/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java
index a4364aceeb..105bf9fa89 100644
--- a/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java
+++ b/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java
@@ -24,16 +24,16 @@
*/
package net.runelite.api.coords;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Predicate;
+import lombok.Getter;
import net.runelite.api.Client;
import net.runelite.api.CollisionData;
import net.runelite.api.CollisionDataFlag;
import net.runelite.api.Point;
import net.runelite.api.Tile;
-import net.runelite.api.config.Constants;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.function.Predicate;
-import lombok.Getter;
+import net.runelite.api.Constants;
/**
* Represents an area on the world.
diff --git a/runelite-api/src/main/java/net/runelite/api/coords/WorldPoint.java b/runelite-api/src/main/java/net/runelite/api/coords/WorldPoint.java
index 72c52eb522..acd9b74c54 100644
--- a/runelite-api/src/main/java/net/runelite/api/coords/WorldPoint.java
+++ b/runelite-api/src/main/java/net/runelite/api/coords/WorldPoint.java
@@ -25,14 +25,14 @@
*/
package net.runelite.api.coords;
-import net.runelite.api.Client;
-import net.runelite.api.Perspective;
-import static net.runelite.api.config.Constants.CHUNK_SIZE;
+import static net.runelite.api.Constants.CHUNK_SIZE;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import lombok.Value;
+import net.runelite.api.Client;
+import net.runelite.api.Perspective;
/**
* A three-dimensional point representing the coordinate of a Tile.
diff --git a/runelite-api/src/main/java/net/runelite/api/events/MenuOptionClicked.java b/runelite-api/src/main/java/net/runelite/api/events/MenuOptionClicked.java
index 5845752f6b..a2ded77511 100644
--- a/runelite-api/src/main/java/net/runelite/api/events/MenuOptionClicked.java
+++ b/runelite-api/src/main/java/net/runelite/api/events/MenuOptionClicked.java
@@ -24,8 +24,8 @@
*/
package net.runelite.api.events;
-import net.runelite.api.MenuAction;
import lombok.Data;
+import net.runelite.api.MenuAction;
/**
* An event where a menu option has been clicked.
@@ -64,7 +64,7 @@ public class MenuOptionClicked
/**
* The ID of the widget where the menu was clicked.
*
- * @see api.WidgetID
+ * @see net.runelite.api.WidgetID
*/
private int widgetId;
/**
diff --git a/runelite-api/src/main/java/net/runelite/api/events/NpcActionChanged.java b/runelite-api/src/main/java/net/runelite/api/events/NpcActionChanged.java
index bc3b89fe8b..35838e067c 100644
--- a/runelite-api/src/main/java/net/runelite/api/events/NpcActionChanged.java
+++ b/runelite-api/src/main/java/net/runelite/api/events/NpcActionChanged.java
@@ -24,8 +24,8 @@
*/
package net.runelite.api.events;
-import net.runelite.api.NPCDefinition;
import lombok.Data;
+import net.runelite.api.NPCDefinition;
/**
* An event where an action of an {@link NPCDefinition} has changed.
diff --git a/runelite-api/src/main/java/net/runelite/api/events/PostItemDefinition.java b/runelite-api/src/main/java/net/runelite/api/events/PostItemDefinition.java
index f7bb863a35..35718b5ea9 100644
--- a/runelite-api/src/main/java/net/runelite/api/events/PostItemDefinition.java
+++ b/runelite-api/src/main/java/net/runelite/api/events/PostItemDefinition.java
@@ -24,8 +24,8 @@
*/
package net.runelite.api.events;
-import net.runelite.api.ItemDefinition;
import lombok.Data;
+import net.runelite.api.ItemDefinition;
/**
* An event called after a new {@link ItemDefinition} is created and
diff --git a/runelite-api/src/main/java/net/runelite/api/events/SpotAnimationChanged.java b/runelite-api/src/main/java/net/runelite/api/events/SpotAnimationChanged.java
index ef459d1dbb..79b8643d2c 100644
--- a/runelite-api/src/main/java/net/runelite/api/events/SpotAnimationChanged.java
+++ b/runelite-api/src/main/java/net/runelite/api/events/SpotAnimationChanged.java
@@ -1,7 +1,7 @@
package net.runelite.api.events;
-import net.runelite.api.Actor;
import lombok.Data;
+import net.runelite.api.Actor;
/**
* An event where the graphic of an {@link Actor} has changed.
@@ -16,7 +16,7 @@ import lombok.Data;
* Breaking a teleport tab
*
*
- * @see api.GraphicID
+ * @see net.runelite.api.GraphicID
*/
@Data
public class SpotAnimationChanged
diff --git a/runelite-api/src/main/java/net/runelite/api/geometry/Geometry.java b/runelite-api/src/main/java/net/runelite/api/geometry/Geometry.java
index 7b042fbdf4..39efa74afa 100644
--- a/runelite-api/src/main/java/net/runelite/api/geometry/Geometry.java
+++ b/runelite-api/src/main/java/net/runelite/api/geometry/Geometry.java
@@ -22,7 +22,7 @@
* (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 api.geometry;
+package net.runelite.api.geometry;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
diff --git a/runelite-api/src/main/java/net/runelite/api/overlay/OverlayIndex.java b/runelite-api/src/main/java/net/runelite/api/overlay/OverlayIndex.java
index b588aa0d33..6aec875181 100644
--- a/runelite-api/src/main/java/net/runelite/api/overlay/OverlayIndex.java
+++ b/runelite-api/src/main/java/net/runelite/api/overlay/OverlayIndex.java
@@ -22,7 +22,7 @@
* (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 api.overlay;
+package net.runelite.api.overlay;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/runelite-api/src/main/java/net/runelite/api/vars/AccountType.java b/runelite-api/src/main/java/net/runelite/api/vars/AccountType.java
index 6e8c2de5b6..63c5e953f7 100644
--- a/runelite-api/src/main/java/net/runelite/api/vars/AccountType.java
+++ b/runelite-api/src/main/java/net/runelite/api/vars/AccountType.java
@@ -1,4 +1,28 @@
-package api.vars;
+/*
+ * Copyright (c) 2018, Joshua Filby
+ * 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.vars;
/**
* An enumeration of possible account types.
@@ -32,4 +56,4 @@ public enum AccountType
return this.ordinal() >= IRONMAN.ordinal() && this.ordinal() <= HARDCORE_IRONMAN.ordinal();
}
-}
\ No newline at end of file
+}
diff --git a/runelite-api/src/main/java/net/runelite/api/vars/Autoweed.java b/runelite-api/src/main/java/net/runelite/api/vars/Autoweed.java
index 276033ffd1..e4da031363 100644
--- a/runelite-api/src/main/java/net/runelite/api/vars/Autoweed.java
+++ b/runelite-api/src/main/java/net/runelite/api/vars/Autoweed.java
@@ -22,7 +22,7 @@
* (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 api.vars;
+package net.runelite.api.vars;
/**
* An enumeration of possible autoweed settings.
diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml
index 0994f067ac..b05967307e 100644
--- a/runelite-client/pom.xml
+++ b/runelite-client/pom.xml
@@ -232,11 +232,11 @@
${runelite.orange.extensions.version}
provided
-
+
+ net.runelite.rs
+ runescape-api
+ ${project.version}
+
junit
junit
@@ -344,6 +344,12 @@
**
+
+ net.runelite.rs:runescape-api
+
+ **
+
+
net.runelit:client-patch
diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java
index e301335a4f..bcf91bc46d 100644
--- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java
+++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java
@@ -87,7 +87,7 @@ public class RuneLite
public static final File PROFILES_DIR = new File(RUNELITE_DIR, "profiles");
public static final File PLUGIN_DIR = new File(RUNELITE_DIR, "plugins");
public static final File SCREENSHOT_DIR = new File(RUNELITE_DIR, "screenshots");
- static final RuneLiteSplashScreen splashScreen = new RuneLiteSplashScreen();
+ private static final RuneLiteSplashScreen splashScreen = new RuneLiteSplashScreen();
@Getter
diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java
index 61b8ae4e17..44a47789d7 100644
--- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java
+++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java
@@ -196,7 +196,7 @@ public class ItemManager
private Map itemPrices = Collections.emptyMap();
private Map itemStats = Collections.emptyMap();
private final LoadingCache itemImages;
- private final LoadingCache ItemDefinitions;
+ private final LoadingCache itemDefinitions;
private final LoadingCache itemOutlines;
// Worn items with weight reducing property have a different worn and inventory ItemID
@@ -284,7 +284,7 @@ public class ItemManager
}
});
- ItemDefinitions = CacheBuilder.newBuilder()
+ itemDefinitions = CacheBuilder.newBuilder()
.maximumSize(1024L)
.expireAfterAccess(1, TimeUnit.HOURS)
.build(new CacheLoader()
@@ -356,14 +356,14 @@ public class ItemManager
{
if (event.getGameState() == GameState.HOPPING || event.getGameState() == GameState.LOGIN_SCREEN)
{
- ItemDefinitions.invalidateAll();
+ itemDefinitions.invalidateAll();
}
}
@Subscribe
public void onPostItemDefinition(PostItemDefinition event)
{
- ItemDefinitions.put(event.getItemDefinition().getId(), event.getItemDefinition());
+ itemDefinitions.put(event.getItemDefinition().getId(), event.getItemDefinition());
}
/**
@@ -373,7 +373,7 @@ public class ItemManager
*/
public void invalidateItemDefinitionCache()
{
- ItemDefinitions.invalidateAll();
+ itemDefinitions.invalidateAll();
}
/**
@@ -449,9 +449,9 @@ public class ItemManager
@Nullable
public ItemStats getItemStats(int itemId, boolean allowNote)
{
- ItemDefinition ItemDefinition = getItemDefinition(itemId);
+ ItemDefinition itemDefinition = getItemDefinition(itemId);
- if (ItemDefinition == null || ItemDefinition.getName() == null || (!allowNote && ItemDefinition.getNote() != -1))
+ if (itemDefinition == null || itemDefinition.getName() == null || (!allowNote && itemDefinition.getNote() != -1))
{
return null;
}
@@ -490,7 +490,7 @@ public class ItemManager
public ItemDefinition getItemDefinition(int itemId)
{
assert client.isClientThread() : "getItemDefinition must be called on client thread";
- return ItemDefinitions.getUnchecked(itemId);
+ return itemDefinitions.getUnchecked(itemId);
}
/**
@@ -498,16 +498,16 @@ public class ItemManager
*/
public int canonicalize(int itemID)
{
- ItemDefinition ItemDefinition = getItemDefinition(itemID);
+ ItemDefinition itemDefinition = getItemDefinition(itemID);
- if (ItemDefinition.getNote() != -1)
+ if (itemDefinition.getNote() != -1)
{
- return ItemDefinition.getLinkedNoteId();
+ return itemDefinition.getLinkedNoteId();
}
- if (ItemDefinition.getPlaceholderTemplateId() != -1)
+ if (itemDefinition.getPlaceholderTemplateId() != -1)
{
- return ItemDefinition.getPlaceholderId();
+ return itemDefinition.getPlaceholderId();
}
return WORN_ITEMS.getOrDefault(itemID, itemID);
diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java
index 7ab04e9e62..2743d01b25 100644
--- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java
+++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java
@@ -709,7 +709,7 @@ public class MenuManager
}
/**
- * Adds to the map of swaps - Pre-baked Abstract entry
+ * Adds to the map of swaps - Pre-baked entry
*/
public void addSwap(ComparableEntry swapFrom, ComparableEntry swapTo)
{
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java
index 5bde28e231..11d3ac84a8 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java
@@ -344,8 +344,8 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
}
int itemId = item.getId();
- ItemDefinition ItemDefinition = itemManager.getItemDefinition(itemId);
- String name = ItemDefinition.getName();
+ ItemDefinition itemDefinition = itemManager.getItemDefinition(itemId);
+ String name = itemDefinition.getName();
// Get both tags and vartags and append * to end of vartags name
Collection tags = tagManager.getTags(itemId, false);
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java
index 7f7c3fa5eb..8e668d1697 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java
@@ -34,7 +34,6 @@ import net.runelite.api.Client;
import net.runelite.api.GameObject;
import net.runelite.api.NPC;
import net.runelite.api.NPCDefinition;
-import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition;
import net.runelite.api.Perspective;
import net.runelite.api.Player;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java
index 868fca439e..269c116c76 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java
@@ -25,7 +25,7 @@
*/
package net.runelite.client.plugins.chatcommands;
-import api.vars.AccountType;
+import net.runelite.api.vars.AccountType;
import com.google.inject.Provides;
import java.io.IOException;
import java.util.List;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java
index 1c1b4c5f75..8413b0e67a 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java
@@ -120,8 +120,10 @@ public class ChatFilterPlugin extends Plugin
}
MessageNode messageNode = (MessageNode) client.getMessages().get(messageId);
- String name = messageNode.getName();
- if (!shouldFilterPlayerMessage(name))
+
+ if (client.getLocalPlayer().getName().equals(messageNode.getName()) ||
+ !config.filterFriends() && messageNode.isFromFriend() ||
+ !config.filterClan() && messageNode.isFromClanMate())
{
return;
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java
index 03e08244d6..bfa694d73b 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java
@@ -50,7 +50,6 @@ import net.runelite.api.Item;
import net.runelite.api.ItemDefinition;
import net.runelite.api.ItemID;
import net.runelite.api.NPC;
-import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition;
import net.runelite.api.Point;
import net.runelite.api.Scene;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java
index d9a69f0db6..7fff693bcf 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java
@@ -31,10 +31,8 @@ import java.util.Set;
import lombok.Getter;
import net.runelite.api.NPC;
import static net.runelite.api.NullObjectID.NULL_1293;
-import net.runelite.api.NPCDefinition;
-import static net.runelite.api.ObjectID.*;
-
import net.runelite.api.ObjectDefinition;
+import static net.runelite.api.ObjectID.*;
import net.runelite.api.TileObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java
index 23e0466257..0d1793d656 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java
@@ -30,14 +30,12 @@ import java.awt.Graphics2D;
import java.util.Set;
import lombok.Getter;
import static net.runelite.api.ItemID.*;
-import net.runelite.api.NPCDefinition;
+import net.runelite.api.ObjectDefinition;
import static net.runelite.api.ObjectID.CRATE_18506;
import static net.runelite.api.ObjectID.CRATE_2620;
import static net.runelite.api.ObjectID.CRATE_354;
import static net.runelite.api.ObjectID.CRATE_357;
import static net.runelite.api.ObjectID.CRATE_6616;
-
-import net.runelite.api.ObjectDefinition;
import net.runelite.api.TileObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java
index 807a3c91fc..c2fca071ff 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java
@@ -39,7 +39,7 @@ import net.runelite.api.ItemID;
import net.runelite.api.Player;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.GameTick;
-import net.runelite.api.events.GraphicChanged;
+import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.game.ItemManager;
@@ -118,7 +118,7 @@ public class CookingPlugin extends Plugin
}
@Subscribe
- public void onGraphicChanged(GraphicChanged graphicChanged)
+ public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged)
{
Player player = client.getLocalPlayer();
@@ -126,8 +126,8 @@ public class CookingPlugin extends Plugin
{
return;
}
-/*TODO FIXME
- if (player.getGraphic() == GraphicID.WINE_MAKE && config.fermentTimer())
+
+ if (player.getSpotAnimation() == GraphicID.WINE_MAKE && config.fermentTimer())
{
Optional fermentTimerOpt = infoBoxManager.getInfoBoxes().stream()
.filter(FermentTimer.class::isInstance)
@@ -145,7 +145,6 @@ public class CookingPlugin extends Plugin
infoBoxManager.addInfoBox(fermentTimer);
}
}
- */
}
@Subscribe
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java
index be4ed87f81..b75dfe3e34 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java
@@ -54,7 +54,7 @@ import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.AnimationChanged;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.GameTick;
-import net.runelite.api.events.GraphicChanged;
+import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.NpcSpawned;
import net.runelite.api.events.ProjectileMoved;
@@ -396,7 +396,7 @@ public class CoxPlugin extends Plugin
}
@Subscribe
- public void onGraphicChanged(GraphicChanged graphicChanged)
+ public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged)
{
if (inRaid())
{
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java
index 405cf016e6..4e9c86df1d 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java
@@ -26,7 +26,7 @@
package net.runelite.client.plugins.dailytaskindicators;
-import api.vars.AccountType;
+import net.runelite.api.vars.AccountType;
import com.google.inject.Provides;
import javax.inject.Inject;
import net.runelite.api.ChatMessageType;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java
index 52f2471207..d85f8127ac 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java
@@ -195,8 +195,8 @@ public class EquipmentInspectorPlugin extends Plugin
int itemId = p.getPlayerAppearance().getEquipmentId(kitType);
if (itemId != -1)
{
- ItemDefinition ItemDefinition = client.getItemDefinition(itemId);
- playerEquipment.put(kitType, ItemDefinition);
+ ItemDefinition itemComposition = client.getItemDefinition(itemId);
+ playerEquipment.put(kitType, itemComposition);
int ItemPrice = itemManager.getItemPrice(itemId);
TotalPrice += ItemPrice;
if (ItemPrice > Prot1)
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java
index 2f905fe0aa..389fbdfc81 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java
@@ -199,26 +199,26 @@ public class ExaminePlugin extends Plugin
log.debug("Got examine for {} {}: {}", pendingExamine.getType(), pendingExamine.getId(), event.getMessage());
// If it is an item, show the price of it
- final ItemDefinition ItemDefinition;
+ final ItemDefinition itemComposition;
if (pendingExamine.getType() == ExamineType.ITEM || pendingExamine.getType() == ExamineType.ITEM_BANK_EQ)
{
final int itemId = pendingExamine.getId();
final int itemQuantity = pendingExamine.getQuantity();
- ItemDefinition = itemManager.getItemDefinition(itemId);
+ itemComposition = itemManager.getItemDefinition(itemId);
- if (ItemDefinition != null)
+ if (itemComposition != null)
{
- final int id = itemManager.canonicalize(ItemDefinition.getId());
- executor.submit(() -> getItemPrice(id, ItemDefinition, itemQuantity));
+ final int id = itemManager.canonicalize(itemComposition.getId());
+ executor.submit(() -> getItemPrice(id, itemComposition, itemQuantity));
}
}
else
{
- ItemDefinition = null;
+ itemComposition = null;
}
// Don't submit examine info for tradeable items, which we already have from the RS item api
- if (ItemDefinition != null && ItemDefinition.isTradeable())
+ if (itemComposition != null && itemComposition.isTradeable())
{
return;
}
@@ -316,13 +316,13 @@ public class ExaminePlugin extends Plugin
return null;
}
- private void getItemPrice(int id, ItemDefinition ItemDefinition, int quantity)
+ private void getItemPrice(int id, ItemDefinition itemComposition, int quantity)
{
// quantity is at least 1
quantity = Math.max(1, quantity);
- int ItemDefinitionPrice = ItemDefinition.getPrice();
+ int itemCompositionPrice = itemComposition.getPrice();
final int gePrice = itemManager.getItemPrice(id);
- final int alchPrice = ItemDefinitionPrice <= 0 ? 0 : itemManager.getAlchValue(ItemDefinition);
+ final int alchPrice = itemCompositionPrice <= 0 ? 0 : itemManager.getAlchValue(itemComposition);
if (gePrice > 0 || alchPrice > 0)
{
@@ -339,7 +339,7 @@ public class ExaminePlugin extends Plugin
}
message
- .append(ItemDefinition.getName())
+ .append(itemComposition.getName())
.append(ChatColorType.NORMAL)
.append(":");
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java
index e3d241102e..e66279aa4d 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java
@@ -32,7 +32,7 @@ import net.runelite.api.Actor;
import net.runelite.api.Client;
import net.runelite.api.Player;
import net.runelite.api.events.GameTick;
-import net.runelite.api.events.GraphicChanged;
+import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.api.events.PlayerDespawned;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
@@ -86,7 +86,7 @@ public class FreezeTimersPlugin extends Plugin
}
@Subscribe
- public void onGraphicChanged(GraphicChanged graphicChanged)
+ public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged)
{
int oldGraphic = prayerTracker.getSpotanimLastTick(graphicChanged.getActor());
int newGraphic = graphicChanged.getActor().getSpotAnimation();
@@ -121,7 +121,7 @@ public class FreezeTimersPlugin extends Plugin
{
if (prayerTracker.getSpotanimLastTick(actor) != actor.getSpotAnimation())
{
- GraphicChanged callback = new GraphicChanged();
+ SpotAnimationChanged callback = new SpotAnimationChanged();
callback.setActor(actor);
client.getCallbacks().post(callback);
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java
index b20a2cc750..191b7c9cf9 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java
@@ -119,10 +119,10 @@ public class HighAlchemyOverlay extends WidgetItemOverlay
private int getNotedId(int id)
{
int noteID = id;
- ItemDefinition ItemDefinition = itemManager.getItemDefinition(noteID);
- if (ItemDefinition.getNote() != -1)
+ ItemDefinition itemComposition = itemManager.getItemDefinition(noteID);
+ if (itemComposition.getNote() != -1)
{
- noteID = ItemDefinition.getLinkedNoteId();
+ noteID = itemComposition.getLinkedNoteId();
}
return noteID;
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java
index b3abfd956a..d43ef4bdc2 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java
@@ -138,7 +138,7 @@ import net.runelite.api.WorldType;
import net.runelite.api.events.AnimationChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
-import net.runelite.api.events.GraphicChanged;
+import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.api.events.HitsplatApplied;
import net.runelite.api.events.InteractingChanged;
import net.runelite.api.events.PlayerSpawned;
@@ -462,7 +462,7 @@ public class IdleNotifierPlugin extends Plugin
}
@Subscribe
- public void onGraphicChanged(GraphicChanged event)
+ public void onSpotAnimationChanged(SpotAnimationChanged event)
{
Actor actor = event.getActor();
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java
index 6fde7a0c10..87d164b78f 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java
@@ -240,11 +240,11 @@ class InstanceMapOverlay extends Overlay
mapImage = null;
}
- private static BufferedImage minimapToBufferedImage(Sprite Sprite)
+ private static BufferedImage minimapToBufferedImage(Sprite spritePixels)
{
- int width = Sprite.getWidth();
- int height = Sprite.getHeight();
- int[] pixels = Sprite.getPixels();
+ int width = spritePixels.getWidth();
+ int height = spritePixels.getHeight();
+ int[] pixels = spritePixels.getPixels();
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
img.setRGB(0, 0, width, height, pixels, 0, width);
// 24624 / 512 and 24624 % 512 are both 48
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java
index bd5c35f323..78a82431c1 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java
@@ -162,15 +162,15 @@ public class InterfaceStylesPlugin extends Plugin
if (skin == config.skin())
{
String file = config.skin().toString() + "/" + spriteOverride.getSpriteID() + ".png";
- Sprite Sprite = getFileSprite(file);
+ Sprite spritePixels = getFileSprite(file);
if (spriteOverride.getSpriteID() == SpriteID.COMPASS_TEXTURE)
{
- client.setCompass(Sprite);
+ client.setCompass(spritePixels);
}
else
{
- client.getSpriteOverrides().put(spriteOverride.getSpriteID(), Sprite);
+ client.getSpriteOverrides().put(spriteOverride.getSpriteID(), spritePixels);
}
}
}
@@ -194,13 +194,13 @@ public class InterfaceStylesPlugin extends Plugin
if (widgetOverride.getSkin() == config.skin())
{
String file = config.skin().toString() + "/widget/" + widgetOverride.getName() + ".png";
- Sprite Sprite = getFileSprite(file);
+ Sprite spritePixels = getFileSprite(file);
- if (Sprite != null)
+ if (spritePixels != null)
{
for (WidgetInfo widgetInfo : widgetOverride.getWidgetInfo())
{
- client.getWidgetSpriteOverrides().put(widgetInfo.getPackedId(), Sprite);
+ client.getWidgetSpriteOverrides().put(widgetInfo.getPackedId(), spritePixels);
}
}
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridOverlay.java
new file mode 100644
index 0000000000..f628f007c6
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridOverlay.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2018, Jeremy Plsek
+ * Copyright (c) 2019, Adam
+ * 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.client.plugins.inventorygrid;
+
+import com.google.inject.Inject;
+import java.awt.AlphaComposite;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.image.BufferedImage;
+import net.runelite.api.Client;
+import net.runelite.api.widgets.Widget;
+import net.runelite.api.widgets.WidgetInfo;
+import net.runelite.api.widgets.WidgetItem;
+import net.runelite.client.game.ItemManager;
+import net.runelite.client.ui.overlay.Overlay;
+import net.runelite.client.ui.overlay.OverlayLayer;
+import net.runelite.client.ui.overlay.OverlayPosition;
+
+class InventoryGridOverlay extends Overlay
+{
+ private static final int INVENTORY_SIZE = 28;
+ private static final int DRAG_DELAY = 5;
+
+ private static final Color HIGHLIGHT = new Color(0, 255, 0, 45);
+ private static final Color GRID = new Color(255, 255, 255, 45);
+
+ private final InventoryGridConfig config;
+ private final Client client;
+ private final ItemManager itemManager;
+
+ @Inject
+ private InventoryGridOverlay(InventoryGridConfig config, Client client, ItemManager itemManager)
+ {
+ this.itemManager = itemManager;
+ this.client = client;
+ this.config = config;
+
+ setPosition(OverlayPosition.DYNAMIC);
+ setLayer(OverlayLayer.ABOVE_WIDGETS);
+ }
+
+ @Override
+ public Dimension render(Graphics2D graphics)
+ {
+ final Widget if1DraggingWidget = client.getIf1DraggedWidget();
+ final Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY);
+
+ if (if1DraggingWidget == null || if1DraggingWidget != inventoryWidget
+ || client.getItemPressedDuration() < DRAG_DELAY)
+ {
+ return null;
+ }
+
+ final net.runelite.api.Point mouse = client.getMouseCanvasPosition();
+ final Point mousePoint = new Point(mouse.getX(), mouse.getY());
+
+ for (int i = 0; i < INVENTORY_SIZE; ++i)
+ {
+ WidgetItem widgetItem = inventoryWidget.getWidgetItem(i);
+
+ final Rectangle bounds = widgetItem.getCanvasBounds();
+ boolean inBounds = bounds.contains(mousePoint);
+
+ if (config.showItem() && inBounds)
+ {
+ final WidgetItem draggedItem = inventoryWidget.getWidgetItem(client.getIf1DraggedItemIndex());
+ final BufferedImage draggedItemImage = itemManager.getImage(draggedItem.getId());
+ final int x = (int) bounds.getX();
+ final int y = (int) bounds.getY();
+
+ graphics.setComposite(AlphaComposite.SrcOver.derive(0.3f));
+ graphics.drawImage(draggedItemImage, x, y, null);
+ graphics.setComposite(AlphaComposite.SrcOver);
+ }
+
+ if (config.showHighlight() && inBounds)
+ {
+ graphics.setColor(HIGHLIGHT);
+ graphics.fill(bounds);
+ }
+ else if (config.showGrid())
+ {
+ graphics.setColor(GRID);
+ graphics.fill(bounds);
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java
index ffe2afa0b4..afc8bc8e36 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java
@@ -415,11 +415,11 @@ public class InventorySetupPlugin extends Plugin
for (InventorySetupItem item : items)
{
int id = item.getId();
- ItemDefinition ItemDefinition = itemManager.getItemDefinition(id);
+ ItemDefinition itemComposition = itemManager.getItemDefinition(id);
if (id > 0)
{
itemIds.add(ItemVariationMapping.map(id));
- itemIds.add(ItemDefinition.getPlaceholderId());
+ itemIds.add(itemComposition.getPlaceholderId());
}
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java
index 2d8de3d3c8..0396ab98de 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java
@@ -186,7 +186,7 @@ class InventoryViewerOverlay extends Overlay
private BufferedImage getImage(Item item)
{
- ItemDefinition ItemDefinition = itemManager.getItemDefinition(item.getId());
- return itemManager.getImage(item.getId(), item.getQuantity(), ItemDefinition.isStackable());
+ ItemDefinition itemComposition = itemManager.getItemDefinition(item.getId());
+ return itemManager.getImage(item.getId(), item.getQuantity(), itemComposition.isStackable());
}
}
\ No newline at end of file
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java
index 04a9dc94c0..5267d8c0f4 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java
@@ -46,7 +46,7 @@ import net.runelite.api.Varbits;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameTick;
-import net.runelite.api.events.GraphicChanged;
+import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.api.events.ItemContainerChanged;
import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.events.VarbitChanged;
@@ -500,7 +500,7 @@ public class ItemChargePlugin extends Plugin
}
@Subscribe
- public void onGraphicChanged(GraphicChanged event)
+ public void onSpotAnimationChanged(SpotAnimationChanged event)
{
if (event.getActor() == client.getLocalPlayer())
{
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java
index 4f9ab9ffa0..b99efb6e62 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java
@@ -36,9 +36,9 @@ import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.events.GameStateChanged;
+import net.runelite.client.events.SessionOpen;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
-import net.runelite.client.events.SessionOpen;
import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin;
@@ -46,14 +46,15 @@ import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.util.OSType;
@PluginDescriptor(
- name = "Login Screen",
- description = "Provides various enhancements for login screen"
+ name = "Login Screen",
+ description = "Provides various enhancements for login screen"
)
@Slf4j
public class LoginScreenPlugin extends Plugin implements KeyListener
{
private static final int MAX_USERNAME_LENGTH = 254;
private static final int MAX_PASSWORD_LENGTH = 20;
+ private static final int MAX_PIN_LENGTH = 6;
@Inject
private Client client;
@@ -163,7 +164,9 @@ public class LoginScreenPlugin extends Plugin implements KeyListener
@Override
public void keyPressed(KeyEvent e)
{
- if (!config.pasteEnabled() || client.getGameState() != GameState.LOGIN_SCREEN)
+ if (!config.pasteEnabled() || (
+ client.getGameState() != GameState.LOGIN_SCREEN &&
+ client.getGameState() != GameState.LOGIN_SCREEN_AUTHENTICATOR))
{
return;
}
@@ -176,22 +179,33 @@ public class LoginScreenPlugin extends Plugin implements KeyListener
try
{
final String data = Toolkit
- .getDefaultToolkit()
- .getSystemClipboard()
- .getData(DataFlavor.stringFlavor)
- .toString()
- .trim();
+ .getDefaultToolkit()
+ .getSystemClipboard()
+ .getData(DataFlavor.stringFlavor)
+ .toString()
+ .trim();
- // 0 is username, 1 is password
- if (client.getCurrentLoginField() == 0)
+ switch (client.getLoginIndex())
{
- // Truncate data to maximum username length if necessary
- client.setUsername(data.substring(0, Math.min(data.length(), MAX_USERNAME_LENGTH)));
- }
- else
- {
- // Truncate data to maximum password length if necessary
- client.setPassword(data.substring(0, Math.min(data.length(), MAX_PASSWORD_LENGTH)));
+ // Username/password form
+ case 2:
+ if (client.getCurrentLoginField() == 0)
+ {
+ // Truncate data to maximum username length if necessary
+ client.setUsername(data.substring(0, Math.min(data.length(), MAX_USERNAME_LENGTH)));
+ }
+ else
+ {
+ // Truncate data to maximum password length if necessary
+ client.setPassword(data.substring(0, Math.min(data.length(), MAX_PASSWORD_LENGTH)));
+ }
+
+ break;
+ // Authenticator form
+ case 4:
+ // Truncate data to maximum OTP code length if necessary
+ client.setOtp(data.substring(0, Math.min(data.length(), MAX_PIN_LENGTH)));
+ break;
}
}
catch (UnsupportedFlavorException | IOException ex)
@@ -206,4 +220,4 @@ public class LoginScreenPlugin extends Plugin implements KeyListener
{
}
-}
\ No newline at end of file
+}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsMinimapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsMinimapOverlay.java
index f8c73bc190..8fd85bd934 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsMinimapOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsMinimapOverlay.java
@@ -31,7 +31,7 @@ import java.awt.Rectangle;
import java.awt.geom.GeneralPath;
import javax.inject.Inject;
-import api.geometry.Geometry;
+import net.runelite.api.geometry.Geometry;
import net.runelite.api.Client;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java
index 3ab191a1bc..73985fd08e 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java
@@ -31,8 +31,7 @@ import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.GeneralPath;
import javax.inject.Inject;
-
-import api.geometry.Geometry;
+import net.runelite.api.geometry.Geometry;
import net.runelite.api.Client;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java
index 1e98a4789d..8568d26fb1 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java
@@ -24,7 +24,6 @@
*/
package net.runelite.client.plugins.multiindicators;
-import api.geometry.Geometry;
import com.google.inject.Provides;
import java.awt.Rectangle;
import java.awt.geom.GeneralPath;
@@ -34,7 +33,6 @@ import lombok.Getter;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.GameState;
-import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition;
import net.runelite.api.Perspective;
import net.runelite.api.Tile;
@@ -45,6 +43,7 @@ import net.runelite.api.coords.WorldArea;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged;
+import net.runelite.api.geometry.Geometry;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaOverlay.java
index aa1b162212..2090fca5c2 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaOverlay.java
@@ -24,6 +24,7 @@
*/
package net.runelite.client.plugins.npcunaggroarea;
+import net.runelite.api.geometry.Geometry;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
@@ -32,8 +33,6 @@ import java.awt.Rectangle;
import java.awt.geom.GeneralPath;
import java.time.Instant;
import javax.inject.Inject;
-
-import api.geometry.Geometry;
import net.runelite.api.Client;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java
index 06f45e806f..d7aede1a4f 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java
@@ -24,7 +24,7 @@
*/
package net.runelite.client.plugins.npcunaggroarea;
-import api.geometry.Geometry;
+import net.runelite.api.geometry.Geometry;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.inject.Provides;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java
index 791b668017..4b0bdd9ffd 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java
@@ -48,7 +48,6 @@ import net.runelite.api.GameObject;
import net.runelite.api.GameState;
import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry;
-import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition;
import net.runelite.api.Scene;
import net.runelite.api.Tile;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java
index 0a81a9a56b..3af467f3c6 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java
@@ -170,7 +170,7 @@ public class PvpToolsPlugin extends Plugin
};
private final HotkeyListener renderselfHotkeyListener = new HotkeyListener(() -> config.renderSelf())
- {//TODO FIX
+ { //TODO FIX
public void hotkeyPressed()
{
//client.toggleRenderSelf();
@@ -561,10 +561,10 @@ public class PvpToolsPlugin extends Plugin
{
int value = (itemManager.getItemPrice(i.getId()) * i.getQuantity());
- final ItemDefinition ItemDefinition = itemManager.getItemDefinition(i.getId());
- if (!ItemDefinition.isTradeable() && value == 0)
+ final ItemDefinition itemComposition = itemManager.getItemDefinition(i.getId());
+ if (!itemComposition.isTradeable() && value == 0)
{
- value = ItemDefinition.getPrice() * i.getQuantity();
+ value = itemComposition.getPrice() * i.getQuantity();
priceMap.put(value, i);
}
else
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java
index 54570b4ceb..684f289ee3 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java
@@ -31,7 +31,6 @@ import java.awt.geom.Area;
import java.util.Map;
import javax.inject.Inject;
import net.runelite.api.Client;
-import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition;
import net.runelite.api.Point;
import net.runelite.api.Tile;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java
index cbe6d3f968..51dfe6a9dc 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java
@@ -152,34 +152,24 @@ public class RuneLitePlusPlugin extends Plugin
return configManager.getConfig(RuneLitePlusConfig.class);
}
- private RuneLitePlusKeyListener keyListener;
+ private RuneLitePlusKeyListener keyListener = new RuneLitePlusKeyListener();
private int entered = -1;
private int enterIdx;
@Override
protected void startUp() throws Exception
{
- entered = -1;
- enterIdx = 0;
-
- if (getConfig(configManager).customPresence())
+ if (config.customPresence())
{
ClientUI.currentPresenceName = ("RuneLitePlus");
ClientUI.frame.setTitle(ClientUI.currentPresenceName);
- }
-
- if (config.customPresence())
- {
RuneLiteProperties.discordAppID = rlPlusDiscordApp;
discordService.close();
discordService.init();
}
- else
- {
- RuneLiteProperties.discordAppID = rlDiscordApp;
- discordService.close();
- discordService.init();
- }
+
+ entered = -1;
+ enterIdx = 0;
}
@Subscribe
@@ -196,26 +186,20 @@ public class RuneLitePlusPlugin extends Plugin
{
ClientUI.currentPresenceName = ("RuneLitePlus");
ClientUI.frame.setTitle(ClientUI.currentPresenceName);
- }
- else
- {
- ClientUI.currentPresenceName = ("RuneLite");
- ClientUI.frame.setTitle(ClientUI.currentPresenceName);
- }
-
- if (config.customPresence())
- {
RuneLiteProperties.discordAppID = rlPlusDiscordApp;
discordService.close();
discordService.init();
}
else
{
+ ClientUI.currentPresenceName = ("RuneLite");
+ ClientUI.frame.setTitle(ClientUI.currentPresenceName);
RuneLiteProperties.discordAppID = rlDiscordApp;
discordService.close();
discordService.init();
}
}
+
else if (!config.keyboardPin())
{
entered = -1;
@@ -253,7 +237,6 @@ public class RuneLitePlusPlugin extends Plugin
}
// log.debug("Registering key listener");
- keyListener = new RuneLitePlusKeyListener();
keyManager.registerKeyListener(keyListener);
}
@@ -266,7 +249,6 @@ public class RuneLitePlusPlugin extends Plugin
entered = -1;
enterIdx = 0;
keyManager.unregisterKeyListener(keyListener);
- keyListener = null;
return;
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/CriticalItem.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/CriticalItem.java
index 2971c0bc5e..688a00d3c6 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/CriticalItem.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/CriticalItem.java
@@ -296,7 +296,7 @@ public enum CriticalItem
private boolean ignoreBonus;
@Getter
- private ItemDefinition composition;
+ private ItemDefinition definition;
CriticalItem(int itemID, String category, Skill skill, int linkedItem)
{
@@ -304,7 +304,7 @@ public enum CriticalItem
this.category = category;
this.skill = skill;
this.linkedItemId = linkedItem;
- this.composition = null;
+ this.definition = null;
this.ignoreBonus = false;
}
@@ -405,7 +405,7 @@ public enum CriticalItem
{
for (CriticalItem i : values())
{
- i.composition = m.getItemDefinition(i.getItemID());
+ i.definition = m.getItemDefinition(i.getItemID());
}
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/ui/CriticalItemPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/ui/CriticalItemPanel.java
index 1a3ac2d643..5de2acfee0 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/ui/CriticalItemPanel.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/ui/CriticalItemPanel.java
@@ -126,7 +126,7 @@ public class CriticalItemPanel extends JPanel
infoContainer.setBorder(new MatteBorder(1, 0, 0, 0, Color.GRAY));
// Icon
- AsyncBufferedImage icon = itemManager.getImage(item.getItemID(), amount, item.getComposition().isStackable() || amount > 1);
+ AsyncBufferedImage icon = itemManager.getImage(item.getItemID(), amount, item.getDefinition().isStackable() || amount > 1);
image = new JLabel();
image.setMinimumSize(ICON_SIZE);
image.setMaximumSize(ICON_SIZE);
@@ -144,7 +144,7 @@ public class CriticalItemPanel extends JPanel
uiInfo.setBorder(new EmptyBorder(0, 5, 0, 0));
uiInfo.setBackground(BACKGROUND_COLOR);
- JShadowedLabel labelName = new JShadowedLabel(item.getComposition().getName());
+ JShadowedLabel labelName = new JShadowedLabel(item.getDefinition().getName());
labelName.setForeground(Color.WHITE);
labelName.setVerticalAlignment(SwingUtilities.BOTTOM);
@@ -201,7 +201,7 @@ public class CriticalItemPanel extends JPanel
panel.add(settingsButton, BorderLayout.LINE_END);
}
- panel.setToolTipText("" + item.getComposition().getName()
+ panel.setToolTipText("" + item.getDefinition().getName()
+ "
xp: " + xp
+ "
Total: " + StackFormatter.quantityToStackSize((long) total) + " e : linkedMap.entrySet())
{
// Icon
- AsyncBufferedImage icon = itemManager.getImage(e.getKey().getItemID(), e.getValue(), e.getKey().getComposition().isStackable() || e.getValue() > 1);
+ AsyncBufferedImage icon = itemManager.getImage(e.getKey().getItemID(), e.getValue(), e.getKey().getDefinition().isStackable() || e.getValue() > 1);
JLabel image = new JLabel();
image.setMinimumSize(ICON_SIZE);
image.setMaximumSize(ICON_SIZE);
@@ -282,7 +282,7 @@ public class CriticalItemPanel extends JPanel
icon.onChanged(resize);
resize.run();
- image.setToolTipText(e.getKey().getComposition().getName());
+ image.setToolTipText(e.getKey().getDefinition().getName());
con.add(image, c);
c.gridx++;
@@ -366,7 +366,7 @@ public class CriticalItemPanel extends JPanel
{
this.setVisible(newAmount > 0 || forceVisible);
this.amount = newAmount;
- AsyncBufferedImage icon = itemManager.getImage(item.getItemID(), amount, item.getComposition().isStackable() || amount > 1);
+ AsyncBufferedImage icon = itemManager.getImage(item.getItemID(), amount, item.getDefinition().isStackable() || amount > 1);
Runnable resize = () ->
image.setIcon(new ImageIcon(icon.getScaledInstance((int) ICON_SIZE.getWidth(), (int) ICON_SIZE.getHeight(), Image.SCALE_SMOOTH)));
icon.onChanged(resize);
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java
index b1e8df31e3..d0e166492c 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java
@@ -56,7 +56,7 @@ import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
-import net.runelite.api.events.GraphicChanged;
+import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.api.events.ItemContainerChanged;
import net.runelite.api.events.LocalPlayerDeath;
import net.runelite.api.events.MenuOptionClicked;
@@ -736,7 +736,7 @@ public class TimersPlugin extends Plugin
}
@Subscribe
- public void onGraphicChanged(GraphicChanged event)
+ public void onSpotAnimationChanged(SpotAnimationChanged event)
{
Actor actor = event.getActor();
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java
index 633253bcd5..276e50a658 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java
@@ -24,7 +24,7 @@
*/
package net.runelite.client.plugins.timetracking.farming;
-import api.vars.Autoweed;
+import net.runelite.api.vars.Autoweed;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.time.Instant;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java
index 6583f3c8b0..7e32f9382b 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java
@@ -36,7 +36,6 @@ import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry;
import net.runelite.api.NPC;
import net.runelite.api.NPCDefinition;
-import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.MenuEntryAdded;
diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java
index b82a331cce..55f658feac 100644
--- a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java
+++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java
@@ -26,23 +26,20 @@
*/
package net.runelite.client.rs;
-import net.runelite.api.Client;
import com.google.common.io.ByteStreams;
+import io.sigpipe.jbsdiff.Diff;
import io.sigpipe.jbsdiff.InvalidHeaderException;
import io.sigpipe.jbsdiff.Patch;
import java.applet.Applet;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
-import java.nio.channels.Channels;
-import java.nio.channels.FileChannel;
import java.nio.channels.ReadableByteChannel;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
@@ -54,16 +51,17 @@ import java.util.Map;
import java.util.jar.Attributes;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
+import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
-
import static net.runelite.client.RuneLite.RUNELITE_DIR;
import static net.runelite.client.rs.ClientUpdateCheckMode.AUTO;
import static net.runelite.client.rs.ClientUpdateCheckMode.CUSTOM;
import static net.runelite.client.rs.ClientUpdateCheckMode.NONE;
+import static net.runelite.client.rs.ClientUpdateCheckMode.PATCH;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.Request;
import okhttp3.Response;
@@ -73,14 +71,16 @@ import org.apache.commons.compress.compressors.CompressorException;
@Singleton
public class ClientLoader
{
- private static final File CUSTOMFILE = new File("./injected-client/target/injected-client-1.0-SNAPSHOT.jar");
+ private static final File CUSTOMFILE = new File("./injected-client/target/injected-client-1.5.27-SNAPSHOT.jar");
+ private static final File PATCHFILE = new File("replace me!");
+ private static final File OUTPUT = new File("replace me!");
private final ClientConfigLoader clientConfigLoader;
private ClientUpdateCheckMode updateCheckMode;
@Inject
private ClientLoader(
- @Named("updateCheckMode") final ClientUpdateCheckMode updateCheckMode,
- final ClientConfigLoader clientConfigLoader)
+ @Named("updateCheckMode") final ClientUpdateCheckMode updateCheckMode,
+ final ClientConfigLoader clientConfigLoader)
{
this.updateCheckMode = updateCheckMode;
this.clientConfigLoader = clientConfigLoader;
@@ -92,7 +92,7 @@ public class ClientLoader
{
return null;
}
- updateCheckMode = CUSTOM;
+
try
{
Manifest manifest = new Manifest();
@@ -106,8 +106,8 @@ public class ClientLoader
String initialJar = config.getInitialJar();
URL url = new URL(codebase + initialJar);
Request request = new Request.Builder()
- .url(url)
- .build();
+ .url(url)
+ .build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
{
@@ -154,6 +154,44 @@ public class ClientLoader
}
}
+ if (updateCheckMode == PATCH)
+ {
+ log.debug("Creating patches");
+ int patchCount = 0;
+
+ Map injectedFile = new HashMap<>();
+
+ loadJar(injectedFile, CUSTOMFILE);
+
+ ByteArrayOutputStream patchOs = new ByteArrayOutputStream(756 * 1024);
+ Map patchJar = new HashMap<>();
+
+ for (Map.Entry file : zipFile.entrySet())
+ {
+ byte[] gamepackBytes = file.getValue();
+ byte[] injectedBytes = injectedFile.get(file.getKey());
+ byte[] patchBytes;
+
+ if (Arrays.equals(gamepackBytes, injectedBytes))
+ {
+ continue;
+ }
+
+ Diff.diff(gamepackBytes, injectedBytes, patchOs);
+ patchBytes = patchOs.toByteArray();
+ String patchName = file.getKey() + ".bs";
+
+ patchJar.put(patchName, patchBytes);
+ patchCount++;
+
+ patchOs.reset();
+ }
+
+ log.debug("Created patch files for {} files", patchCount);
+ saveJar(patchJar, PATCHFILE);
+
+ System.exit(0);
+ }
if (updateCheckMode == AUTO)
{
@@ -185,46 +223,49 @@ public class ClientLoader
if (updateCheckMode == CUSTOM)
{
- URL url = new URL("https://raw.githubusercontent.com/runelite-extended/maven-repo/master/artifacts/injected-client.jar");
- ReadableByteChannel readableByteChannel = Channels.newChannel(url.openStream());
- File INJECTED_CLIENT = new File(RUNELITE_DIR+"/injected-client.jar");
- INJECTED_CLIENT.mkdirs();
- if (INJECTED_CLIENT.exists()) {
- if (getFileSize(INJECTED_CLIENT.toURI().toURL())!= getFileSize(url)) {
- INJECTED_CLIENT.delete();
- INJECTED_CLIENT.createNewFile();
- System.out.println("Updating Injected Client");
- updateInjectedClient(readableByteChannel);
- }
- } else {
- INJECTED_CLIENT.createNewFile();
- System.out.println("Initializing Inject Client");
- updateInjectedClient(readableByteChannel);
- }
-
- JarInputStream fis = new JarInputStream(new FileInputStream(INJECTED_CLIENT));
- byte[] tmp = new byte[4096];
- ByteArrayOutputStream buffer = new ByteArrayOutputStream(756 * 1024);
- for (; ; )
- {
- JarEntry metadata = fis.getNextJarEntry();
- if (metadata == null)
- {
- break;
- }
-
- buffer.reset();
- for (; ; )
- {
- int n = fis.read(tmp);
- if (n <= -1)
- {
- break;
- }
- buffer.write(tmp, 0, n);
- }
- zipFile.replace(metadata.getName(), buffer.toByteArray());
- }
+ loadJar(zipFile, CUSTOMFILE);
+//TODO: Change this URL url = new URL("https://raw.githubusercontent.com/runelite-extended/maven-repo/master/artifacts/injected-client.jar");
+//TODO: Change this ReadableByteChannel readableByteChannel = Channels.newChannel(url.openStream());
+//TODO: Change this File INJECTED_CLIENT = new File(RUNELITE_DIR+"/injected-client.jar");
+//TODO: Change this INJECTED_CLIENT.mkdirs();
+//TODO: Change this if (INJECTED_CLIENT.exists())
+// {
+//TODO: Change this if (getFileSize(INJECTED_CLIENT.toURI().toURL())!= getFileSize(url))
+// {
+//TODO: Change this INJECTED_CLIENT.delete();
+//TODO: Change this INJECTED_CLIENT.createNewFile();
+//TODO: Change this System.out.println("Updating Injected Client");
+//TODO: Change this updateInjectedClient(readableByteChannel);
+//TODO: Change this }
+//TODO: Change this } else {
+//TODO: Change this INJECTED_CLIENT.createNewFile();
+//TODO: Change this System.out.println("Initializing Inject Client");
+//TODO: Change this updateInjectedClient(readableByteChannel);
+//TODO: Change this }
+//TODO: Change this
+//TODO: Change this JarInputStream fis = new JarInputStream(new FileInputStream(INJECTED_CLIENT));
+//TODO: Change this byte[] tmp = new byte[4096];
+//TODO: Change this ByteArrayOutputStream buffer = new ByteArrayOutputStream(756 * 1024);
+//TODO: Change this for (; ; )
+//TODO: Change this {
+//TODO: Change this JarEntry metadata = fis.getNextJarEntry();
+//TODO: Change this if (metadata == null)
+//TODO: Change this {
+//TODO: Change this break;
+//TODO: Change this }
+//TODO: Change this
+//TODO: Change this buffer.reset();
+//TODO: Change this for (; ; )
+//TODO: Change this {
+//TODO: Change this int n = fis.read(tmp);
+//TODO: Change this if (n <= -1)
+//TODO: Change this {
+//TODO: Change this break;
+//TODO: Change this }
+//TODO: Change this buffer.write(tmp, 0, n);
+//TODO: Change this }
+//TODO: Change this zipFile.replace(metadata.getName(), buffer.toByteArray());
+// }
}
String initialClass = config.getInitialClass();
@@ -250,11 +291,6 @@ public class ClientLoader
Applet rs = (Applet) clientClass.newInstance();
rs.setStub(new RSAppletStub(config));
- if (rs instanceof Client)
- {
- log.info("client-patch {}", "420 blaze it RL pricks");
- }
-
return rs;
}
catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException | SecurityException | VerificationException | CertificateException | CompressorException | InvalidHeaderException e)
@@ -262,8 +298,8 @@ public class ClientLoader
if (e instanceof ClassNotFoundException)
{
log.error("Unable to load client - class not found. This means you"
- + " are not running RuneLite with Maven as the client patch"
- + " is not in your classpath.");
+ + " are not running RuneLite with Maven as the client patch"
+ + " is not in your classpath.");
}
log.error("Error loading RS!", e);
@@ -271,35 +307,44 @@ public class ClientLoader
}
}
- private static int getFileSize(URL url) {
+ private static int getFileSize(URL url)
+ {
URLConnection conn = null;
- try {
+ try
+ {
conn = url.openConnection();
- if(conn instanceof HttpURLConnection) {
+ if (conn instanceof HttpURLConnection)
+ {
((HttpURLConnection)conn).setRequestMethod("HEAD");
}
conn.getInputStream();
return conn.getContentLength();
- } catch (IOException e) {
+ }
+ catch (IOException e)
+ {
throw new RuntimeException(e);
- } finally {
- if(conn instanceof HttpURLConnection) {
+ }
+ finally
+ {
+ if (conn instanceof HttpURLConnection)
+ {
((HttpURLConnection)conn).disconnect();
}
}
}
- private void updateInjectedClient(ReadableByteChannel readableByteChannel) {
- File INJECTED_CLIENT = new File(RUNELITE_DIR,"injected-client.jar");
- FileOutputStream fileOutputStream = null;
- try {
+ private void updateInjectedClient(ReadableByteChannel readableByteChannel)
+ {
+ File INJECTED_CLIENT = new File(RUNELITE_DIR, "injected-client.jar");
+ FileOutputStream fileOutputStream;
+ try
+ {
fileOutputStream = new FileOutputStream(INJECTED_CLIENT);
- FileChannel fileChannel = fileOutputStream.getChannel();
fileOutputStream.getChannel()
.transferFrom(readableByteChannel, 0, Long.MAX_VALUE);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
+ }
+ catch (IOException e)
+ {
e.printStackTrace();
}
}
@@ -310,4 +355,48 @@ public class ClientLoader
Collection extends Certificate> certificates = certificateFactory.generateCertificates(ClientLoader.class.getResourceAsStream("jagex.crt"));
return certificates.toArray(new Certificate[0]);
}
+
+ private static void saveJar(Map fileMap, File toFile) throws IOException
+ {
+ try (JarOutputStream jout = new JarOutputStream(new FileOutputStream(toFile), new Manifest()))
+ {
+ for (Map.Entry entry : fileMap.entrySet())
+ {
+ JarEntry e = new JarEntry(entry.getKey());
+ jout.putNextEntry(e);
+
+ byte[] data = entry.getValue();
+
+ jout.write(data);
+ jout.closeEntry();
+ }
+ }
+ }
+
+ private static void loadJar(Map toMap, File fromFile) throws IOException
+ {
+ JarInputStream fis = new JarInputStream(new FileInputStream(fromFile));
+ byte[] tmp = new byte[4096];
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream(756 * 1024);
+ for (; ; )
+ {
+ JarEntry metadata = fis.getNextJarEntry();
+ if (metadata == null)
+ {
+ break;
+ }
+
+ buffer.reset();
+ for (; ; )
+ {
+ int n = fis.read(tmp);
+ if (n <= -1)
+ {
+ break;
+ }
+ buffer.write(tmp, 0, n);
+ }
+ toMap.put(metadata.getName(), buffer.toByteArray());
+ }
+ }
}
diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientUpdateCheckMode.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientUpdateCheckMode.java
index 4d810019ff..4d1dd55796 100644
--- a/runelite-client/src/main/java/net/runelite/client/rs/ClientUpdateCheckMode.java
+++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientUpdateCheckMode.java
@@ -29,5 +29,6 @@ public enum ClientUpdateCheckMode
AUTO,
NONE,
VANILLA,
- CUSTOM
+ CUSTOM,
+ PATCH
}
diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/arrow/ArrowUtil.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/arrow/ArrowUtil.java
index 671e76d025..a4380ae9a4 100644
--- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/arrow/ArrowUtil.java
+++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/arrow/ArrowUtil.java
@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.HashSet;
import net.runelite.api.Client;
import net.runelite.api.GameObject;
-import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition;
import net.runelite.api.Scene;
import net.runelite.api.Tile;
diff --git a/runelite-client/src/main/java/net/runelite/client/util/PvPUtil.java b/runelite-client/src/main/java/net/runelite/client/util/PvPUtil.java
index 4ae34f10e6..53672490ac 100644
--- a/runelite-client/src/main/java/net/runelite/client/util/PvPUtil.java
+++ b/runelite-client/src/main/java/net/runelite/client/util/PvPUtil.java
@@ -90,10 +90,10 @@ public class PvPUtil
{
int value = (itemManager.getItemPrice(i.getId()) * i.getQuantity());
- final ItemDefinition ItemDefinition = itemManager.getItemDefinition(i.getId());
- if (!ItemDefinition.isTradeable() && value == 0)
+ final ItemDefinition itemComposition = itemManager.getItemDefinition(i.getId());
+ if (!itemComposition.isTradeable() && value == 0)
{
- value = ItemDefinition.getPrice() * i.getQuantity();
+ value = itemComposition.getPrice() * i.getQuantity();
priceMap.put(value, i);
}
else
diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java
index 7460c6368c..6b8334e99d 100644
--- a/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java
+++ b/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java
@@ -33,7 +33,7 @@ import net.runelite.api.Client;
import net.runelite.api.GraphicID;
import net.runelite.api.Player;
import net.runelite.api.events.ChatMessage;
-import net.runelite.api.events.GraphicChanged;
+import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
@@ -110,17 +110,17 @@ public class CookingPluginTest
}
@Test
- public void testOnGraphicChanged()
+ public void testOnSpotAnimationChanged()
{
Player player = mock(Player.class);
- //when(player.getSpotAnimation()).thenReturn(GraphicID.WINE_MAKE);
+ when(player.getSpotAnimation()).thenReturn(GraphicID.WINE_MAKE);
when(config.fermentTimer()).thenReturn(true);
when(client.getLocalPlayer()).thenReturn(player);
- GraphicChanged graphicChanged = new GraphicChanged();
+ SpotAnimationChanged graphicChanged = new SpotAnimationChanged();
graphicChanged.setActor(player);
- cookingPlugin.onGraphicChanged(graphicChanged);
+ cookingPlugin.onSpotAnimationChanged(graphicChanged);
verify(infoBoxManager).addInfoBox(any(FermentTimer.class));
}
diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractIndexCacheMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractIndexCacheMixin.java
index cdc0034366..444be65691 100644
--- a/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractIndexCacheMixin.java
+++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractIndexCacheMixin.java
@@ -1,6 +1,6 @@
package net.runelite.mixins;
-import api.overlay.OverlayIndex;
+import net.runelite.api.overlay.OverlayIndex;
import com.google.common.hash.HashCode;
import com.google.common.hash.Hashing;
import com.google.common.io.BaseEncoding;
diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java
index c7d202689b..f25c98e263 100644
--- a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java
+++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java
@@ -119,8 +119,6 @@ public abstract class RSActorMixin implements RSActor
if (healthBars != null)
{
RSNode current = healthBars.getCurrent();
- if (current == null)
- return 0;
RSNode next = current.getNext();
if (next instanceof RSHealthBar)
{
diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java
index 34928694fd..94b18b3dbf 100644
--- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java
+++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java
@@ -24,7 +24,6 @@
*/
package net.runelite.mixins;
-import api.vars.AccountType;
import net.runelite.api.ChatMessageType;
import net.runelite.api.ClanMember;
import net.runelite.api.EnumDefinition;
@@ -90,6 +89,7 @@ import net.runelite.api.events.VarbitChanged;
import net.runelite.api.events.WidgetLoaded;
import net.runelite.api.hooks.Callbacks;
import net.runelite.api.hooks.DrawCallbacks;
+import net.runelite.api.vars.AccountType;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.api.widgets.WidgetItem;
@@ -187,8 +187,8 @@ public abstract class RSClientMixin implements RSClient
@Inject
private final Cache enumCache = CacheBuilder.newBuilder()
- .maximumSize(64)
- .build();
+ .maximumSize(64)
+ .build();
@Inject
private static HealthBarOverride healthBarOverride;
@@ -196,9 +196,6 @@ public abstract class RSClientMixin implements RSClient
@Inject
private static boolean printMenuActions;
- @Inject
- private byte[][] spritePixels;
-
@Inject
@Override
public void setPrintMenuActions(boolean yes)
@@ -652,12 +649,12 @@ public abstract class RSClientMixin implements RSClient
if (newCount == oldCount + 1)
{
MenuEntryAdded event = new MenuEntryAdded(
- client.getMenuOptions()[newCount - 1],
- client.getMenuTargets()[newCount - 1],
- client.getMenuTypes()[newCount - 1],
- client.getMenuIdentifiers()[newCount - 1],
- client.getMenuActionParams0()[newCount - 1],
- client.getMenuActionParams1()[newCount - 1]
+ client.getMenuOptions()[newCount - 1],
+ client.getMenuTargets()[newCount - 1],
+ client.getMenuTypes()[newCount - 1],
+ client.getMenuIdentifiers()[newCount - 1],
+ client.getMenuActionParams0()[newCount - 1],
+ client.getMenuActionParams1()[newCount - 1]
);
client.getCallbacks().post(event);
@@ -865,7 +862,7 @@ public abstract class RSClientMixin implements RSClient
return clanMemberManager != null && clanMemberManager.isMember(createName(name, getLoginType()));
}
- @FieldHook("clickedWidget")
+ @FieldHook("isDraggingWidget")
@Inject
public static void draggingWidgetChanged(int idx)
{
@@ -972,7 +969,7 @@ public abstract class RSClientMixin implements RSClient
{
// Reset the menu type
MenuAction[] playerActions = {PLAYER_FIRST_OPTION, PLAYER_SECOND_OPTION, PLAYER_THIRD_OPTION, PLAYER_FOURTH_OPTION,
- PLAYER_FIFTH_OPTION, PLAYER_SIXTH_OPTION, PLAYER_SEVENTH_OPTION, PLAYER_EIGTH_OPTION};
+ PLAYER_FIFTH_OPTION, PLAYER_SIXTH_OPTION, PLAYER_SEVENTH_OPTION, PLAYER_EIGTH_OPTION};
if (idx >= 0 && idx < playerActions.length)
{
MenuAction playerAction = playerActions[idx];
@@ -1499,18 +1496,6 @@ public abstract class RSClientMixin implements RSClient
return array;
}
- @Inject
- @Override
- public byte[][] getSpritePixels() {
- return spritePixels;
- }
-
- @Inject
- @Override
- public void setSpritePixels(byte[][] sprites) {
- spritePixels = sprites;
- }
-
@Inject
@Override
public void setSkyboxColor(int newSkyboxColor)
diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java
index 9b1d039c5b..d514f859eb 100644
--- a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java
+++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java
@@ -5,6 +5,7 @@ import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.MethodHook;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow;
+import net.runelite.rs.api.RSClanChat;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSMessage;
@@ -70,4 +71,13 @@ public abstract class RSMessageMixin implements RSMessage
runeLiteFormatMessage = null;
rl$timestamp = (int) (System.currentTimeMillis() / 1000L);
}
+
+ @Inject
+ @Override
+ public boolean isFromClanMate()
+ {
+ RSClanChat cc = client.getClanMemberManager();
+
+ return cc != null && cc.isMember(this.getSenderUsername());
+ }
}
diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java
index 55371c413f..b88684fc6b 100644
--- a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java
+++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java
@@ -135,7 +135,7 @@ public abstract class RSTileMixin implements RSTile
wallObjectSpawned.setWallObject(current);
client.getCallbacks().post(wallObjectSpawned);
}
- else if (current != null && previous != null)
+ else if (current != null)
{
WallObjectChanged wallObjectChanged = new WallObjectChanged();
wallObjectChanged.setTile(this);
@@ -168,7 +168,7 @@ public abstract class RSTileMixin implements RSTile
decorativeObjectSpawned.setDecorativeObject(current);
client.getCallbacks().post(decorativeObjectSpawned);
}
- else if (current != null && previous != null)
+ else if (current != null)
{
DecorativeObjectChanged decorativeObjectChanged = new DecorativeObjectChanged();
decorativeObjectChanged.setTile(this);
@@ -201,7 +201,7 @@ public abstract class RSTileMixin implements RSTile
groundObjectSpawned.setGroundObject(current);
client.getCallbacks().post(groundObjectSpawned);
}
- else if (current != null && previous != null)
+ else if (current != null)
{
GroundObjectChanged groundObjectChanged = new GroundObjectChanged();
groundObjectChanged.setTile(this);
@@ -263,7 +263,7 @@ public abstract class RSTileMixin implements RSTile
gameObjectSpawned.setGameObject(current);
client.getCallbacks().post(gameObjectSpawned);
}
- else if (current != null && previous != null)
+ else if (current != null)
{
GameObjectChanged gameObjectsChanged = new GameObjectChanged();
gameObjectsChanged.setTile(this);
diff --git a/runescape-api/src/main/java/net/runelite/mapping/Export.java b/runescape-api/src/main/java/net/runelite/mapping/Export.java
new file mode 100644
index 0000000000..cd789618cd
--- /dev/null
+++ b/runescape-api/src/main/java/net/runelite/mapping/Export.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2016-2017, Adam
+ * 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.mapping;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(
+{
+ ElementType.FIELD, ElementType.METHOD
+})
+public @interface Export
+{
+ String value();
+}
diff --git a/runelite-api/src/main/java/net/runelite/mapping/Implements.java b/runescape-api/src/main/java/net/runelite/mapping/Implements.java
similarity index 100%
rename from runelite-api/src/main/java/net/runelite/mapping/Implements.java
rename to runescape-api/src/main/java/net/runelite/mapping/Implements.java
diff --git a/runelite-api/src/main/java/net/runelite/mapping/Construct.java b/runescape-api/src/main/java/net/runelite/mapping/ObfuscatedGetter.java
similarity index 79%
rename from runelite-api/src/main/java/net/runelite/mapping/Construct.java
rename to runescape-api/src/main/java/net/runelite/mapping/ObfuscatedGetter.java
index a5b5b2541a..b8e2873006 100644
--- a/runelite-api/src/main/java/net/runelite/mapping/Construct.java
+++ b/runescape-api/src/main/java/net/runelite/mapping/ObfuscatedGetter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Adam
+ * Copyright (c) 2016-2017, Adam
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -24,28 +24,16 @@
*/
package net.runelite.mapping;
-import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-/**
- * Inject a method to create and construct an object.
- * The object type is inferred from the return value
- * of the method.
- *
- * {@code
- * {@literal @}Construct
- * RSIndexedImage createIndexedImage();
- * }
- *
- * @author Adam
- */
@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
-@Documented
-public @interface Construct
+@Target(ElementType.FIELD)
+public @interface ObfuscatedGetter
{
+ int intValue() default 0;
+ long longValue() default 0L;
}
diff --git a/runelite-api/src/main/java/net/runelite/mapping/Hook.java b/runescape-api/src/main/java/net/runelite/mapping/ObfuscatedName.java
similarity index 88%
rename from runelite-api/src/main/java/net/runelite/mapping/Hook.java
rename to runescape-api/src/main/java/net/runelite/mapping/ObfuscatedName.java
index 6fa13fb8d5..10ccf9ecd4 100644
--- a/runelite-api/src/main/java/net/runelite/mapping/Hook.java
+++ b/runescape-api/src/main/java/net/runelite/mapping/ObfuscatedName.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Adam
+ * Copyright (c) 2016-2017, Adam
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -24,7 +24,6 @@
*/
package net.runelite.mapping;
-import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -33,12 +32,9 @@ import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(
{
- ElementType.METHOD, ElementType.CONSTRUCTOR
+ ElementType.FIELD, ElementType.METHOD, ElementType.TYPE
})
-@Documented
-public @interface Hook
+public @interface ObfuscatedName
{
String value();
-
- boolean end() default false;
}
diff --git a/runelite-api/src/main/java/net/runelite/mapping/ObfuscatedSignature.java b/runescape-api/src/main/java/net/runelite/mapping/ObfuscatedSignature.java
similarity index 100%
rename from runelite-api/src/main/java/net/runelite/mapping/ObfuscatedSignature.java
rename to runescape-api/src/main/java/net/runelite/mapping/ObfuscatedSignature.java
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java
index ef55c5a6fc..8eb95392de 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java
@@ -193,7 +193,7 @@ public interface RSClient extends RSGameShell, Client
*
* @param groupId the group ID
* @return the widget group
- * @see //api.widgets.WidgetID
+ * @see net.runelite.api.widgets.WidgetID
*/
RSWidget[] getGroup(int groupId);
@@ -252,10 +252,18 @@ public interface RSClient extends RSGameShell, Client
@Override
void setPassword(String password);
+ @Import("otp")
+ @Override
+ void setOtp(String otp);
+
@Import("currentLoginField")
@Override
int getCurrentLoginField();
+ @Import("loginIndex")
+ @Override
+ int getLoginIndex();
+
@Import("playerMenuActions")
@Override
String[] getPlayerOptions();
@@ -419,11 +427,9 @@ public interface RSClient extends RSGameShell, Client
void setIndexedSpriteHeights(int[] indexedSpriteHeights);
@Import("spritePixels")
- @Override
byte[][] getSpritePixels();
@Import("spritePixels")
- @Override
void setSpritePixels(byte[][] spritePixels);
@Import("indexedSpritePalette")
@@ -504,8 +510,6 @@ public interface RSClient extends RSGameShell, Client
/**
* Get the widget top group. widgets[topGroup] contains widgets with
* parentId -1, which are the widget roots.
- *
- * @return
*/
@Import("rootWidgetGroup")
int getWidgetRoot();
@@ -780,6 +784,7 @@ public interface RSClient extends RSGameShell, Client
boolean isInInstancedRegion();
@Import("itemDragDuration")
+ @Override
int getItemPressedDuration();
@Import("itemDragDuration")
@@ -932,6 +937,14 @@ public interface RSClient extends RSGameShell, Client
@Import("Rasterizer2D_yClipEnd")
int getEndY();
+ @Import("dragInventoryWidget")
+ @Override
+ RSWidget getIf1DraggedWidget();
+
+ @Import("dragItemSlotSource")
+ @Override
+ int getIf1DraggedItemIndex();
+
@Import("isSpellSelected")
@Override
void setSpellSelected(boolean selected);
@@ -977,6 +990,7 @@ public interface RSClient extends RSGameShell, Client
RSEvictingDualNodeHashTable getHealthBarCache();
@Import("renderSelf")
+ @Override
void setRenderSelf(boolean enabled);
@Import("mouseRecorder")
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSGameShell.java b/runescape-api/src/main/java/net/runelite/rs/api/RSGameShell.java
index 0ea770a01d..969e4f4cb3 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSGameShell.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSGameShell.java
@@ -24,9 +24,8 @@
*/
package net.runelite.rs.api;
-import java.awt.Canvas;
-
import net.runelite.api.GameShell;
+import java.awt.Canvas;
import net.runelite.mapping.Import;
public interface RSGameShell extends GameShell
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSIterableNodeDeque.java b/runescape-api/src/main/java/net/runelite/rs/api/RSIterableNodeDeque.java
index 6068b7380a..31f039d181 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSIterableNodeDeque.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSIterableNodeDeque.java
@@ -4,6 +4,6 @@ import net.runelite.mapping.Import;
public interface RSIterableNodeDeque
{
- @Import("current")
+ @Import("sentinel")
RSNode getCurrent();
}
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSKeyHandler.java b/runescape-api/src/main/java/net/runelite/rs/api/RSKeyHandler.java
index 941bd861cd..c683aa129a 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSKeyHandler.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSKeyHandler.java
@@ -1,7 +1,6 @@
package net.runelite.rs.api;
import net.runelite.api.KeyFocusListener;
-
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSMessage.java b/runescape-api/src/main/java/net/runelite/rs/api/RSMessage.java
index 4bbbfb74a0..21cd87e54a 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSMessage.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSMessage.java
@@ -35,4 +35,11 @@ public interface RSMessage extends MessageNode
@Import("text")
@Override
void setValue(String value);
+
+ @Import("isFromFriend")
+ @Override
+ boolean isFromFriend();
+
+ @Import("senderUsername")
+ RSUsername getSenderUsername();
}
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSModel.java b/runescape-api/src/main/java/net/runelite/rs/api/RSModel.java
index 870add633d..ef9887279c 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSModel.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSModel.java
@@ -24,9 +24,8 @@
*/
package net.runelite.rs.api;
-import java.awt.Polygon;
-
import net.runelite.api.Model;
+import java.awt.Polygon;
import net.runelite.mapping.Import;
public interface RSModel extends RSEntity, Model
@@ -158,8 +157,7 @@ public interface RSModel extends RSEntity, Model
@Override
int getXYZMag();
- void interpolateFrames(RSFrames frames, int frameId, RSFrames nextFrames, int nextFrameId, int interval,
- int intervalCount);
+ void interpolateFrames(RSFrames frames, int frameId, RSFrames nextFrames, int nextFrameId, int interval, int intervalCount);
/**
* Compute the convex hull of this model
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSRasterProvider.java b/runescape-api/src/main/java/net/runelite/rs/api/RSRasterProvider.java
index d4c49263ba..5ef9913681 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSRasterProvider.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSRasterProvider.java
@@ -28,10 +28,9 @@
package net.runelite.rs.api;
+import net.runelite.api.MainBufferProvider;
import java.awt.Component;
import java.awt.Image;
-
-import net.runelite.api.MainBufferProvider;
import net.runelite.mapping.Import;
public interface RSRasterProvider extends RSAbstractRasterProvider, MainBufferProvider
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSSequenceDefinition.java b/runescape-api/src/main/java/net/runelite/rs/api/RSSequenceDefinition.java
index f5b00b5787..97c8d9a91a 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSSequenceDefinition.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSSequenceDefinition.java
@@ -4,7 +4,6 @@ import net.runelite.mapping.Import;
public interface RSSequenceDefinition
{
- //TODO:Finish
// @Import("stretches")
// boolean getStretches();
//
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java
index 527e50b0e3..f8134a75b5 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java
@@ -217,11 +217,11 @@ public interface RSWidget extends Widget
@Override
void setScrollHeight(int height);
- @Import("spriteId")
+ @Import("spriteId2")
@Override
int getSpriteId();
- @Import("spriteId")
+ @Import("spriteId2")
@Override
void setSpriteId(int spriteId);
diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSWorldMap.java b/runescape-api/src/main/java/net/runelite/rs/api/RSWorldMap.java
index c8f1fec91e..ae6b8a4365 100644
--- a/runescape-api/src/main/java/net/runelite/rs/api/RSWorldMap.java
+++ b/runescape-api/src/main/java/net/runelite/rs/api/RSWorldMap.java
@@ -20,7 +20,7 @@ public interface RSWorldMap extends RenderOverview
@Import("worldMapTargetY")
int getWorldMapTargetY();
- //TODO fix this
+
//@Import("worldMapDisplayWidth")
//int getWorldMapDisplayWidth();
//Both unused
diff --git a/runescape-client/pom.xml b/runescape-client/pom.xml
index b084827ebb..b5dc6838ee 100644
--- a/runescape-client/pom.xml
+++ b/runescape-client/pom.xml
@@ -1,67 +1,63 @@
- 4.0.0
+ 4.0.0
-
- net.runelite
- runelite-parent
- 1.5.27-SNAPSHOT
-
+
+ net.runelite
+ runelite-parent
+ 1.5.27-SNAPSHOT
+
- runescape-client
- RuneScape Client
+ net.runelite.rs
+ rs-client
+ RuneScape Client
-
-
- net.runelite
- runelite-api
- ${project.version}
-
-
- net.runelite.rs
- runescape-api
- ${project.version}
-
+
+
+ net.runelite.rs
+ runescape-api
+ 1.5.27-SNAPSHOT
+
-
- junit
- junit
- 4.12
- test
-
-
- org.slf4j
- slf4j-api
- 1.7.12
- test
-
-
- org.slf4j
- slf4j-simple
- 1.7.12
- test
-
-
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.12
+ test
+
+
+ org.slf4j
+ slf4j-simple
+ 1.7.12
+ test
+
+
-
-
-
- org.apache.maven.plugins
- maven-checkstyle-plugin
-
-
- true
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- -parameters
-
-
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ -parameters
+
+
+
+
+
\ No newline at end of file
diff --git a/runescape-client/src/main/java/Client.java b/runescape-client/src/main/java/Client.java
index cf7667e30a..1cd0f225ca 100644
--- a/runescape-client/src/main/java/Client.java
+++ b/runescape-client/src/main/java/Client.java
@@ -1736,7 +1736,7 @@ public final class Client extends GameShell implements Usernamed {
class214.__hf_u = null;
}
- class13.method163();
+ class13.playPcmPlayers();
class171.method3498();
MouseHandler var47 = MouseHandler.MouseHandler_instance;
synchronized(MouseHandler.MouseHandler_instance) {
@@ -1820,7 +1820,7 @@ public final class Client extends GameShell implements Usernamed {
class68.drawLoadingMessage("Loading - please wait." + "
" + " (" + 100 + "%" + ")", true);
}
- class13.method163();
+ class13.playPcmPlayers();
class65.scene.clear();
for(var48 = 0; var48 < 4; ++var48) {
@@ -1836,7 +1836,7 @@ public final class Client extends GameShell implements Usernamed {
}
}
- class13.method163();
+ class13.playPcmPlayers();
Tiles.Tiles_minPlane = 99;
Tiles.__bq_w = new byte[4][104][104];
Fonts.__kz_o = new byte[4][104][104];
@@ -1874,7 +1874,7 @@ public final class Client extends GameShell implements Usernamed {
var5 = (class308.regions[var49] & 255) * 64 - GraphicsObject.baseY;
var6 = class40.regionLandArchives[var49];
if(var6 != null) {
- class13.method163();
+ class13.playPcmPlayers();
Varcs.method2166(var6, var4, var5, GameObject.__eh_fy * 8 - 48, WorldMapLabelSize.__s_fi * 8 - 48, collisionMaps);
}
}
@@ -1884,7 +1884,7 @@ public final class Client extends GameShell implements Usernamed {
var5 = (class308.regions[var49] & 255) * 64 - GraphicsObject.baseY;
var6 = class40.regionLandArchives[var49];
if(var6 == null && WorldMapLabelSize.__s_fi < 800) {
- class13.method163();
+ class13.playPcmPlayers();
UserComparator6.method3390(var4, var5, 64, 64);
}
}
@@ -1896,7 +1896,7 @@ public final class Client extends GameShell implements Usernamed {
if(var50 != null) {
var5 = (class308.regions[var49] >> 8) * 64 - class50.baseX;
var51 = (class308.regions[var49] & 255) * 64 - GraphicsObject.baseY;
- class13.method163();
+ class13.playPcmPlayers();
Scene var7 = class65.scene;
CollisionMap[] var8 = collisionMaps;
Buffer var9 = new Buffer(var50);
@@ -1971,7 +1971,7 @@ public final class Client extends GameShell implements Usernamed {
break label1186;
}
- class13.method163();
+ class13.playPcmPlayers();
for(var4 = 0; var4 < 13; ++var4) {
for(var5 = 0; var5 < 13; ++var5) {
@@ -1997,7 +1997,7 @@ public final class Client extends GameShell implements Usernamed {
}
}
- class13.method163();
+ class13.playPcmPlayers();
for(var4 = 0; var4 < 13; ++var4) {
for(var5 = 0; var5 < 13; ++var5) {
@@ -2058,7 +2058,7 @@ public final class Client extends GameShell implements Usernamed {
}
UserComparator10.method3352(true);
- class13.method163();
+ class13.playPcmPlayers();
Scene var65 = class65.scene;
CollisionMap[] var71 = collisionMaps;
@@ -2548,7 +2548,7 @@ public final class Client extends GameShell implements Usernamed {
}
}
- class13.method163();
+ class13.playPcmPlayers();
ScriptEvent.method1179();
ObjectDefinition.__jr_o.clear();
PacketBufferNode var67;
@@ -2575,7 +2575,7 @@ public final class Client extends GameShell implements Usernamed {
}
GameShell.updateGameState(30);
- class13.method163();
+ class13.playPcmPlayers();
BufferedSink.method3603();
var67 = Interpreter.method1915(ClientPacket.__gs_bv, packetWriter.isaacCipher);
packetWriter.__q_167(var67);
@@ -4717,7 +4717,7 @@ public final class Client extends GameShell implements Usernamed {
var2 = GameShell.menuY;
var3 = class214.menuWidth;
var4 = AbstractWorldMapIcon.menuHeight;
- int var5 = 6116423;
+ int var5 = 0x5d5447;
Rasterizer2D.Rasterizer2D_fillRectangle(var1, var2, var3, var4, var5);
Rasterizer2D.Rasterizer2D_fillRectangle(var1 + 1, var2 + 1, var3 - 2, 16, 0);
Rasterizer2D.Rasterizer2D_drawRectangle(var1 + 1, var2 + 18, var3 - 2, var4 - 19, 0);
@@ -4729,9 +4729,9 @@ public final class Client extends GameShell implements Usernamed {
int var10;
for(var8 = 0; var8 < menuOptionsCount; ++var8) {
var9 = var2 + (menuOptionsCount - 1 - var8) * 15 + 31;
- var10 = 16777215;
+ var10 = 0xffffff;
if(var6 > var1 && var6 < var3 + var1 && var7 > var9 - 13 && var7 < var9 + 3) {
- var10 = 16776960;
+ var10 = 0xffff00;
}
Font var11 = class2.fontBold12;
@@ -4762,9 +4762,9 @@ public final class Client extends GameShell implements Usernamed {
if(gameDrawingMode == 3) {
for(var1 = 0; var1 < rootWidgetCount; ++var1) {
if(__client_oq[var1]) {
- Rasterizer2D.Rasterizer2D_moreAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 16711935, 128);
+ Rasterizer2D.Rasterizer2D_moreAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 0xff00ff, 128);
} else if(__client_ot[var1]) {
- Rasterizer2D.Rasterizer2D_moreAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 16711680, 128);
+ Rasterizer2D.Rasterizer2D_moreAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 0xff0000, 128);
}
}
}
diff --git a/runescape-client/src/main/java/DevicePcmPlayerProvider.java b/runescape-client/src/main/java/DevicePcmPlayerProvider.java
index e61e674421..b5bda991c5 100644
--- a/runescape-client/src/main/java/DevicePcmPlayerProvider.java
+++ b/runescape-client/src/main/java/DevicePcmPlayerProvider.java
@@ -76,7 +76,7 @@ public class DevicePcmPlayerProvider implements PcmPlayerProvider {
class328.indexedSpriteOffsetYs = new int[class328.indexedSpriteCount];
VarbitDefinition.indexedSpriteWidths = new int[class328.indexedSpriteCount];
SecureRandomCallable.indexedSpriteHeights = new int[class328.indexedSpriteCount];
- class328.Sprite = new byte[class328.indexedSpriteCount][];
+ class328.spritePixels = new byte[class328.indexedSpriteCount][];
var1.index = var0.length - 7 - class328.indexedSpriteCount * 8;
class328.indexedSpriteWidth = var1.__ag_302();
class328.indexedSpriteHeight = var1.__ag_302();
@@ -116,7 +116,7 @@ public class DevicePcmPlayerProvider implements PcmPlayerProvider {
int var5 = SecureRandomCallable.indexedSpriteHeights[var3];
int var6 = var4 * var5;
byte[] var7 = new byte[var6];
- class328.Sprite[var3] = var7;
+ class328.spritePixels[var3] = var7;
int var8 = var1.readUnsignedByte();
int var9;
if(var8 == 0) {
diff --git a/runescape-client/src/main/java/FontName.java b/runescape-client/src/main/java/FontName.java
index 621620cf0b..749e57c1b8 100644
--- a/runescape-client/src/main/java/FontName.java
+++ b/runescape-client/src/main/java/FontName.java
@@ -581,7 +581,7 @@ public class FontName {
static final void method5635() {
for(int var0 = 0; var0 < Players.Players_count; ++var0) {
Player var1 = Client.players[Players.Players_indices[var0]];
- var1.__u_128();
+ var1.clearIsInClanChat();
}
}
diff --git a/runescape-client/src/main/java/GrandExchangeOffer.java b/runescape-client/src/main/java/GrandExchangeOffer.java
index 9afb606857..93636a2511 100644
--- a/runescape-client/src/main/java/GrandExchangeOffer.java
+++ b/runescape-client/src/main/java/GrandExchangeOffer.java
@@ -163,7 +163,7 @@ public class GrandExchangeOffer {
static final void method121() {
for(int var0 = 0; var0 < Players.Players_count; ++var0) {
Player var1 = Client.players[Players.Players_indices[var0]];
- var1.__q_125();
+ var1.clearIsFriend();
}
Iterator var2 = Messages.Messages_hashTable.iterator();
diff --git a/runescape-client/src/main/java/IndexCacheLoader.java b/runescape-client/src/main/java/IndexCacheLoader.java
index 54d9978e81..d623810bfd 100644
--- a/runescape-client/src/main/java/IndexCacheLoader.java
+++ b/runescape-client/src/main/java/IndexCacheLoader.java
@@ -384,7 +384,7 @@ public class IndexCacheLoader {
var0.drawCentered(Login.Login_response3, Login.__cu_y + 180, var48, 16776960, 0);
var48 += 15;
var48 += 7;
- if(Login.__cu_aw != 4) {
+ if(Login.loginIndex != 4) {
var0.draw("Login: ", Login.__cu_y + 180 - 110, var48, 16777215, 0);
var49 = 200;
if(ReflectionCheck.clientPreferences.hideUsername) {
@@ -412,7 +412,7 @@ public class IndexCacheLoader {
if(Client.gameState == 10 || Client.gameState == 11) {
Login.__cu_o.__q_496(Login.__cu_y, 171);
short var5;
- if(Login.__cu_aw == 0) {
+ if(Login.loginIndex == 0) {
var47 = 251;
var0.drawCentered("Welcome to RuneScape", Login.__cu_y + 180, var47, 16776960, 0);
var48 = var47 + 30;
@@ -423,7 +423,7 @@ public class IndexCacheLoader {
var24 = Login.__cu_y + 180 + 80;
__bd_u.__q_496(var24 - 73, var5 - 20);
var0.drawLines("Existing User", var24 - 73, var5 - 20, 144, 40, 16777215, 0, 1, 1, 0);
- } else if(Login.__cu_aw == 1) {
+ } else if(Login.loginIndex == 1) {
var0.drawCentered(Login.Login_response0, Login.__cu_y + 180, 201, 16776960, 0);
var47 = 236;
var0.drawCentered(Login.Login_response1, Login.__cu_y + 180, var47, 16777215, 0);
@@ -439,7 +439,7 @@ public class IndexCacheLoader {
var24 = Login.__cu_y + 180 + 80;
__bd_u.__q_496(var24 - 73, var5 - 20);
var0.drawCentered("Cancel", var24, var5 + 5, 16777215, 0);
- } else if(Login.__cu_aw == 2) {
+ } else if(Login.loginIndex == 2) {
var47 = 201;
var0.drawCentered(Login.Login_response1, Varps.__hv_h, var47, 16776960, 0);
var48 = var47 + 15;
@@ -504,7 +504,7 @@ public class IndexCacheLoader {
TilePaint.__eb_ah = new Bounds(Varps.__hv_h, var47, var1.stringWidth(AttackOption.__cj_ay), 11);
UrlRequester.__eo_ak = new Bounds(Varps.__hv_h, var47, var1.stringWidth("Still having trouble logging in?"), 11);
var1.drawCentered(AttackOption.__cj_ay, Varps.__hv_h, var47, 16777215, 0);
- } else if(Login.__cu_aw == 3) {
+ } else if(Login.loginIndex == 3) {
var47 = 201;
var0.drawCentered("Invalid credentials.", Login.__cu_y + 180, var47, 16776960, 0);
var48 = var47 + 20;
@@ -522,7 +522,7 @@ public class IndexCacheLoader {
var2.drawCentered("Forgotten password?", var24, var5 + 5, 16777215, 0);
} else {
String var26;
- if(Login.__cu_aw == 4) {
+ if(Login.loginIndex == 4) {
var0.drawCentered("Authenticator", Login.__cu_y + 180, 201, 16776960, 0);
var47 = 236;
var0.drawCentered(Login.Login_response1, Login.__cu_y + 180, var47, 16777215, 0);
@@ -532,7 +532,7 @@ public class IndexCacheLoader {
var0.drawCentered(Login.Login_response3, Login.__cu_y + 180, var48, 16777215, 0);
var48 += 15;
var26 = "PIN: ";
- var7 = Login.__cu_ai;
+ var7 = Login.otp;
var25 = class168.method3450('*', var7.length());
var0.draw(var26 + var25 + (Client.cycle % 40 < 20?BufferedFile.colorStartTag(16776960) + "|":""), Login.__cu_y + 180 - 108, var48, 16777215, 0);
var48 -= 8;
@@ -560,7 +560,7 @@ public class IndexCacheLoader {
var1.drawCentered("Can\'t Log In?", Login.__cu_y + 180, var12 + 36, 255, 0);
} else {
short var50;
- if(Login.__cu_aw == 5) {
+ if(Login.loginIndex == 5) {
var0.drawCentered("Forgotten your password?", Login.__cu_y + 180, 201, 16776960, 0);
var47 = 221;
var2.drawCentered(Login.Login_response1, Login.__cu_y + 180, var47, 16776960, 0);
@@ -595,7 +595,7 @@ public class IndexCacheLoader {
var0.drawCentered("Back", var27, var50 + 5, 16777215, 0);
var50 = 356;
var1.drawCentered("Still having trouble logging in?", Varps.__hv_h, var50, 268435455, 0);
- } else if(Login.__cu_aw == 6) {
+ } else if(Login.loginIndex == 6) {
var47 = 201;
var0.drawCentered(Login.Login_response1, Login.__cu_y + 180, var47, 16776960, 0);
var48 = var47 + 15;
@@ -607,7 +607,7 @@ public class IndexCacheLoader {
var5 = 321;
__bd_u.__q_496(var24 - 73, var5 - 20);
var0.drawCentered("Back", var24, var5 + 5, 16777215, 0);
- } else if(Login.__cu_aw == 7) {
+ } else if(Login.loginIndex == 7) {
var47 = 216;
var0.drawCentered("Your date of birth isn\'t set.", Login.__cu_y + 180, var47, 16776960, 0);
var48 = var47 + 15;
@@ -622,7 +622,7 @@ public class IndexCacheLoader {
var24 = Login.__cu_y + 180 + 80;
__bd_u.__q_496(var24 - 73, var5 - 20);
var0.drawCentered("Back", var24, var5 + 5, 16777215, 0);
- } else if(Login.__cu_aw == 8) {
+ } else if(Login.loginIndex == 8) {
var47 = 216;
var0.drawCentered("Sorry, but your account is not eligible to play.", Login.__cu_y + 180, var47, 16776960, 0);
var48 = var47 + 15;
@@ -637,7 +637,7 @@ public class IndexCacheLoader {
var24 = Login.__cu_y + 180 + 80;
__bd_u.__q_496(var24 - 73, var5 - 20);
var0.drawCentered("Back", var24, var5 + 5, 16777215, 0);
- } else if(Login.__cu_aw == 12) {
+ } else if(Login.loginIndex == 12) {
var47 = 201;
String var4 = "";
var26 = "";
diff --git a/runescape-client/src/main/java/IsaacCipher.java b/runescape-client/src/main/java/IsaacCipher.java
index e10d46a0f7..d6005e0f59 100644
--- a/runescape-client/src/main/java/IsaacCipher.java
+++ b/runescape-client/src/main/java/IsaacCipher.java
@@ -267,7 +267,7 @@ public final class IsaacCipher {
} else if(var0 == -1) {
class54.method1089("No response from server.", "Please try using a different world.", "");
} else if(var0 == 3) {
- Login.__cu_aw = 3;
+ Login.loginIndex = 3;
Login.__cu_ac = 1;
} else if(var0 == 4) {
class32.method578(0);
@@ -322,7 +322,7 @@ public final class IsaacCipher {
} else if(var0 == 38) {
class54.method1089("You need to vote to play!", "Visit runescape.com and vote,", "and then come back here!");
} else if(var0 == 55) {
- Login.__cu_aw = 8;
+ Login.loginIndex = 8;
} else {
if(var0 == 56) {
class54.method1089("Enter the 6-digit code generated by your", "authenticator app.", "");
@@ -337,7 +337,7 @@ public final class IsaacCipher {
}
if(var0 == 61) {
- Login.__cu_aw = 7;
+ Login.loginIndex = 7;
} else {
class54.method1089("Unexpected server response", "Please try using a different world.", "");
}
diff --git a/runescape-client/src/main/java/Login.java b/runescape-client/src/main/java/Login.java
index 0a0af83959..ea3111c177 100644
--- a/runescape-client/src/main/java/Login.java
+++ b/runescape-client/src/main/java/Login.java
@@ -72,8 +72,8 @@ public class Login {
@ObfuscatedGetter(
intValue = 1861681835
)
- @Export("__cu_aw")
- static int __cu_aw;
+ @Export("loginIndex")
+ static int loginIndex;
@ObfuscatedName("al")
@Export("Login_response0")
static String Login_response0;
@@ -99,8 +99,8 @@ public class Login {
@Export("__cu_ax")
static boolean __cu_ax;
@ObfuscatedName("ai")
- @Export("__cu_ai")
- static String __cu_ai;
+ @Export("otp")
+ static String otp;
@ObfuscatedName("ba")
@Export("__cu_ba")
static boolean __cu_ba;
@@ -157,7 +157,7 @@ public class Login {
Login_loadingText = "";
__cu_aj = -1;
__cu_ac = 1;
- __cu_aw = 0;
+ loginIndex = 0;
Login_response0 = "";
Login_response1 = "";
Login_response2 = "";
diff --git a/runescape-client/src/main/java/MouseHandler.java b/runescape-client/src/main/java/MouseHandler.java
index 549ad14fbe..e43304e3e5 100644
--- a/runescape-client/src/main/java/MouseHandler.java
+++ b/runescape-client/src/main/java/MouseHandler.java
@@ -282,7 +282,7 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi
Login.Login_response1 = "";
Login.Login_response2 = "Enter your username/email & password.";
Login.Login_response3 = "";
- Login.__cu_aw = 2;
+ Login.loginIndex = 2;
if(var0) {
Login.Login_password = "";
}
diff --git a/runescape-client/src/main/java/MouseRecorder.java b/runescape-client/src/main/java/MouseRecorder.java
index 9833fbf167..24c1743159 100644
--- a/runescape-client/src/main/java/MouseRecorder.java
+++ b/runescape-client/src/main/java/MouseRecorder.java
@@ -265,7 +265,7 @@ public class MouseRecorder implements Runnable {
garbageValue = "-335916694"
)
static final void method1189(Widget var0, int var1, int var2, int var3) {
- class13.method163();
+ class13.playPcmPlayers();
SpriteMask var4 = var0.getSpriteMask(false);
if(var4 != null) {
Rasterizer2D.Rasterizer2D_setClip(var1, var2, var4.width + var1, var2 + var4.height);
diff --git a/runescape-client/src/main/java/NpcDefinition.java b/runescape-client/src/main/java/NpcDefinition.java
index c46fbb587d..3a2e339a5b 100644
--- a/runescape-client/src/main/java/NpcDefinition.java
+++ b/runescape-client/src/main/java/NpcDefinition.java
@@ -705,7 +705,7 @@ public class NpcDefinition extends DualNode {
switch(var0) {
case 2:
class54.method1089(Strings.__id_jr, Strings.__id_jv, Strings.__id_ju);
- Login.__cu_aw = 6;
+ Login.loginIndex = 6;
break;
case 3:
class54.method1089("", "Error connecting to server.", "");
diff --git a/runescape-client/src/main/java/Player.java b/runescape-client/src/main/java/Player.java
index bbd168853c..155afecb84 100644
--- a/runescape-client/src/main/java/Player.java
+++ b/runescape-client/src/main/java/Player.java
@@ -277,8 +277,8 @@ public final class Player extends Actor {
}
this.username = new Username(var1.readStringCp1252NullTerminated(), KeyHandler.loginType);
- this.__q_125();
- this.__u_128();
+ this.clearIsFriend();
+ this.clearIsInClanChat();
if(this == Canvas.localPlayer) {
RunException.localPlayerName = this.username.getName();
}
@@ -305,7 +305,7 @@ public final class Player extends Actor {
@Export("isFriend")
boolean isFriend() {
if(this.isFriendTriBool == TriBool.TriBool_unknown) {
- this.__w_126();
+ this.checkIsFriend();
}
return this.isFriendTriBool == TriBool.TriBool_true;
@@ -316,8 +316,8 @@ public final class Player extends Actor {
signature = "(I)V",
garbageValue = "-2059706128"
)
- @Export("__q_125")
- void __q_125() {
+ @Export("clearIsFriend")
+ void clearIsFriend() {
this.isFriendTriBool = TriBool.TriBool_unknown;
}
@@ -326,8 +326,8 @@ public final class Player extends Actor {
signature = "(I)V",
garbageValue = "2126310249"
)
- @Export("__w_126")
- void __w_126() {
+ @Export("checkIsFriend")
+ void checkIsFriend() {
this.isFriendTriBool = WorldMapArea.friendSystem.__t_161(this.username)?TriBool.TriBool_true:TriBool.TriBool_false;
}
@@ -339,7 +339,7 @@ public final class Player extends Actor {
@Export("isClanMember")
boolean isClanMember() {
if(this.isInClanChat == TriBool.TriBool_unknown) {
- this.__g_129();
+ this.updateIsInClanChat();
}
return this.isInClanChat == TriBool.TriBool_true;
@@ -350,8 +350,8 @@ public final class Player extends Actor {
signature = "(I)V",
garbageValue = "1982407728"
)
- @Export("__u_128")
- void __u_128() {
+ @Export("clearIsInClanChat")
+ void clearIsInClanChat() {
this.isInClanChat = TriBool.TriBool_unknown;
}
@@ -360,8 +360,8 @@ public final class Player extends Actor {
signature = "(I)V",
garbageValue = "833825629"
)
- @Export("__g_129")
- void __g_129() {
+ @Export("updateIsInClanChat")
+ void updateIsInClanChat() {
this.isInClanChat = PacketWriter.clanChat != null && PacketWriter.clanChat.contains(this.username)?TriBool.TriBool_true:TriBool.TriBool_false;
}
diff --git a/runescape-client/src/main/java/ServerPacket.java b/runescape-client/src/main/java/ServerPacket.java
index 057b4c2010..ec2fe9dc64 100644
--- a/runescape-client/src/main/java/ServerPacket.java
+++ b/runescape-client/src/main/java/ServerPacket.java
@@ -643,13 +643,13 @@ public class ServerPacket {
var0.subWidth = VarbitDefinition.indexedSpriteWidths[0];
var0.subHeight = SecureRandomCallable.indexedSpriteHeights[0];
var0.palette = class328.indexedSpritePalette;
- var0.pixels = class328.Sprite[0];
+ var0.pixels = class328.spritePixels[0];
class328.indexedSpriteOffsetXs = null;
class328.indexedSpriteOffsetYs = null;
VarbitDefinition.indexedSpriteWidths = null;
SecureRandomCallable.indexedSpriteHeights = null;
class328.indexedSpritePalette = null;
- class328.Sprite = null;
+ class328.spritePixels = null;
return var0;
}
diff --git a/runescape-client/src/main/java/Sprite.java b/runescape-client/src/main/java/Sprite.java
index c833d79b09..cf227899b3 100644
--- a/runescape-client/src/main/java/Sprite.java
+++ b/runescape-client/src/main/java/Sprite.java
@@ -473,7 +473,7 @@ public final class Sprite extends Rasterizer2D {
}
if(var7 > 0 && var6 > 0) {
- method6070(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var5, var4, var7, var6, var8, var9, var3);
+ Sprite_alpha1(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var5, var4, var7, var6, var8, var9, var3);
}
}
@@ -538,7 +538,7 @@ public final class Sprite extends Rasterizer2D {
var15 += var16;
}
- method6072(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var8, var9, var14, var15, var3, var4, var12, var13, var6, var5);
+ Sprite_alpha2(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var8, var9, var14, var15, var3, var4, var12, var13, var6, var5);
}
}
@@ -1515,7 +1515,8 @@ public final class Sprite extends Rasterizer2D {
}
@ObfuscatedName("b")
- static void method6070(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
+ @Export("Sprite_alpha1")
+ static void Sprite_alpha1(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
int var10 = 256 - var9;
for(int var11 = -var6; var11 < 0; ++var11) {
@@ -1536,7 +1537,8 @@ public final class Sprite extends Rasterizer2D {
}
@ObfuscatedName("p")
- static void method6072(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12) {
+ @Export("Sprite_alpha2")
+ static void Sprite_alpha2(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12) {
int var13 = 256 - var12;
int var14 = var3;
diff --git a/runescape-client/src/main/java/SpriteIds.java b/runescape-client/src/main/java/SpriteIds.java
index c67adb4a1c..e621c81af8 100644
--- a/runescape-client/src/main/java/SpriteIds.java
+++ b/runescape-client/src/main/java/SpriteIds.java
@@ -138,13 +138,13 @@ public class SpriteIds {
if(var5 == null) {
var4 = null;
} else {
- Font var6 = new Font(var5, class328.indexedSpriteOffsetXs, class328.indexedSpriteOffsetYs, VarbitDefinition.indexedSpriteWidths, SecureRandomCallable.indexedSpriteHeights, class328.indexedSpritePalette, class328.Sprite);
+ Font var6 = new Font(var5, class328.indexedSpriteOffsetXs, class328.indexedSpriteOffsetYs, VarbitDefinition.indexedSpriteWidths, SecureRandomCallable.indexedSpriteHeights, class328.indexedSpritePalette, class328.spritePixels);
class328.indexedSpriteOffsetXs = null;
class328.indexedSpriteOffsetYs = null;
VarbitDefinition.indexedSpriteWidths = null;
SecureRandomCallable.indexedSpriteHeights = null;
class328.indexedSpritePalette = null;
- class328.Sprite = null;
+ class328.spritePixels = null;
var4 = var6;
}
diff --git a/runescape-client/src/main/java/UserComparator10.java b/runescape-client/src/main/java/UserComparator10.java
index 332af67291..a0b5d7b61c 100644
--- a/runescape-client/src/main/java/UserComparator10.java
+++ b/runescape-client/src/main/java/UserComparator10.java
@@ -37,7 +37,7 @@ public class UserComparator10 extends AbstractUserComparator {
garbageValue = "653874364"
)
static final void method3352(boolean var0) {
- class13.method163();
+ class13.playPcmPlayers();
++Client.packetWriter.__d;
if(Client.packetWriter.__d >= 50 || var0) {
Client.packetWriter.__d = 0;
diff --git a/runescape-client/src/main/java/UserComparator9.java b/runescape-client/src/main/java/UserComparator9.java
index 5e6665b8e0..561e9e45aa 100644
--- a/runescape-client/src/main/java/UserComparator9.java
+++ b/runescape-client/src/main/java/UserComparator9.java
@@ -74,7 +74,7 @@ public class UserComparator9 extends AbstractUserComparator {
var2.subWidth = VarbitDefinition.indexedSpriteWidths[var1];
var2.subHeight = SecureRandomCallable.indexedSpriteHeights[var1];
int var3 = var2.subHeight * var2.subWidth;
- byte[] var4 = class328.Sprite[var1];
+ byte[] var4 = class328.spritePixels[var1];
var2.pixels = new int[var3];
for(int var5 = 0; var5 < var3; ++var5) {
@@ -87,7 +87,7 @@ public class UserComparator9 extends AbstractUserComparator {
VarbitDefinition.indexedSpriteWidths = null;
SecureRandomCallable.indexedSpriteHeights = null;
class328.indexedSpritePalette = null;
- class328.Sprite = null;
+ class328.spritePixels = null;
return var0;
}
}
diff --git a/runescape-client/src/main/java/WorldMapLabel.java b/runescape-client/src/main/java/WorldMapLabel.java
index 674bb116f0..f73b839a03 100644
--- a/runescape-client/src/main/java/WorldMapLabel.java
+++ b/runescape-client/src/main/java/WorldMapLabel.java
@@ -181,7 +181,7 @@ public class WorldMapLabel {
var2.subWidth = VarbitDefinition.indexedSpriteWidths[var1];
var2.subHeight = SecureRandomCallable.indexedSpriteHeights[var1];
var2.palette = class328.indexedSpritePalette;
- var2.pixels = class328.Sprite[var1];
+ var2.pixels = class328.spritePixels[var1];
}
class328.indexedSpriteOffsetXs = null;
@@ -189,7 +189,7 @@ public class WorldMapLabel {
VarbitDefinition.indexedSpriteWidths = null;
SecureRandomCallable.indexedSpriteHeights = null;
class328.indexedSpritePalette = null;
- class328.Sprite = null;
+ class328.spritePixels = null;
return var0;
}
diff --git a/runescape-client/src/main/java/class13.java b/runescape-client/src/main/java/class13.java
index bf78e4c305..67e7d98362 100644
--- a/runescape-client/src/main/java/class13.java
+++ b/runescape-client/src/main/java/class13.java
@@ -35,7 +35,8 @@ public class class13 {
signature = "(B)V",
garbageValue = "63"
)
- static final void method163() {
+ @Export("playPcmPlayers")
+ static final void playPcmPlayers() {
if(AbstractIndexCache.pcmPlayer1 != null) {
AbstractIndexCache.pcmPlayer1.run();
}
diff --git a/runescape-client/src/main/java/class2.java b/runescape-client/src/main/java/class2.java
index 7cbac1fdf0..9b9c0e10ea 100644
--- a/runescape-client/src/main/java/class2.java
+++ b/runescape-client/src/main/java/class2.java
@@ -59,11 +59,11 @@ final class class2 implements class0 {
static void method27(AbstractIndexCache var0, AbstractIndexCache var1, boolean var2, int var3) {
if(Login.__cu_f) {
if(var3 == 4) {
- Login.__cu_aw = 4;
+ Login.loginIndex = 4;
}
} else {
- Login.__cu_aw = var3;
+ Login.loginIndex = var3;
Rasterizer2D.Rasterizer2D_clear();
byte[] var4 = var0.takeRecordByNames("title.jpg", "");
Login.__cu_g = class27.method438(var4);
@@ -109,7 +109,7 @@ final class class2 implements class0 {
}
class13.__i_af = 0;
- Login.__cu_ai = "";
+ Login.otp = "";
Login.__cu_ba = true;
Login.__cu_bk = false;
if(!ReflectionCheck.clientPreferences.titleMusicDisabled) {
diff --git a/runescape-client/src/main/java/class258.java b/runescape-client/src/main/java/class258.java
index db08d15424..94185ddd44 100644
--- a/runescape-client/src/main/java/class258.java
+++ b/runescape-client/src/main/java/class258.java
@@ -17,7 +17,7 @@ public class class258 {
var0.subWidth = VarbitDefinition.indexedSpriteWidths[0];
var0.subHeight = SecureRandomCallable.indexedSpriteHeights[0];
int var1 = var0.subHeight * var0.subWidth;
- byte[] var2 = class328.Sprite[0];
+ byte[] var2 = class328.spritePixels[0];
var0.pixels = new int[var1];
for(int var3 = 0; var3 < var1; ++var3) {
@@ -29,7 +29,7 @@ public class class258 {
VarbitDefinition.indexedSpriteWidths = null;
SecureRandomCallable.indexedSpriteHeights = null;
class328.indexedSpritePalette = null;
- class328.Sprite = null;
+ class328.spritePixels = null;
return var0;
}
diff --git a/runescape-client/src/main/java/class32.java b/runescape-client/src/main/java/class32.java
index 0397ba9999..d43fd91322 100644
--- a/runescape-client/src/main/java/class32.java
+++ b/runescape-client/src/main/java/class32.java
@@ -78,7 +78,7 @@ public class class32 {
garbageValue = "972977798"
)
static void method578(int var0) {
- Login.__cu_aw = 12;
+ Login.loginIndex = 12;
Login.__cu_aj = var0;
}
diff --git a/runescape-client/src/main/java/class328.java b/runescape-client/src/main/java/class328.java
index a665e6cb7d..9de036e0ec 100644
--- a/runescape-client/src/main/java/class328.java
+++ b/runescape-client/src/main/java/class328.java
@@ -32,6 +32,6 @@ public class class328 {
@Export("indexedSpritePalette")
static int[] indexedSpritePalette;
@ObfuscatedName("e")
- @Export("Sprite")
- static byte[][] Sprite;
+ @Export("spritePixels")
+ static byte[][] spritePixels;
}
diff --git a/runescape-client/src/main/java/class40.java b/runescape-client/src/main/java/class40.java
index d8e3457f5d..ad1e35f2a5 100644
--- a/runescape-client/src/main/java/class40.java
+++ b/runescape-client/src/main/java/class40.java
@@ -835,14 +835,14 @@ public class class40 {
ViewportMouse.ViewportMouse_entityCount = 0;
}
- class13.method163();
+ class13.playPcmPlayers();
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var2, var3, 0);
- class13.method163();
+ class13.playPcmPlayers();
var12 = Rasterizer3D.Rasterizer3D_zoom;
Rasterizer3D.Rasterizer3D_zoom = Client.viewportZoom;
class65.scene.draw(WorldMapSection1.cameraX, GrandExchangeEvents.cameraY, class11.cameraZ, WorldMapIcon1.cameraPitch, MusicPatchNode.cameraYaw, var4);
Rasterizer3D.Rasterizer3D_zoom = var12;
- class13.method163();
+ class13.playPcmPlayers();
class65.scene.clearTempGameObjects();
UrlRequester.method3258(var0, var1, var2, var3);
UnitPriceComparator.method136(var0, var1);
diff --git a/runescape-client/src/main/java/class54.java b/runescape-client/src/main/java/class54.java
index e468e14b19..fd27d24a95 100644
--- a/runescape-client/src/main/java/class54.java
+++ b/runescape-client/src/main/java/class54.java
@@ -190,7 +190,7 @@ public final class class54 {
int var7;
short var8;
- if(Login.__cu_aw == 0) {
+ if(Login.loginIndex == 0) {
boolean var17 = false;
while(Decimator.method2490()) {
@@ -212,7 +212,7 @@ public final class class54 {
Login.Login_response1 = "This is a Beta world.";
Login.Login_response2 = "Your normal account will not be affected.";
Login.Login_response3 = "";
- Login.__cu_aw = 1;
+ Login.loginIndex = 1;
class196.method3740();
} else if((Client.worldProperties & 4) != 0) {
if((Client.worldProperties & 1024) != 0) {
@@ -226,14 +226,14 @@ public final class class54 {
}
Login.Login_response0 = "Warning!";
- Login.__cu_aw = 1;
+ Login.loginIndex = 1;
class196.method3740();
} else if((Client.worldProperties & 1024) != 0) {
Login.Login_response1 = "This is a High Risk world.";
Login.Login_response2 = "The Protect Item prayer will";
Login.Login_response3 = "not work on this world.";
Login.Login_response0 = "Warning!";
- Login.__cu_aw = 1;
+ Login.loginIndex = 1;
class196.method3740();
} else {
MouseHandler.method1084(false);
@@ -242,11 +242,11 @@ public final class class54 {
} else {
int var18;
short var20;
- if(Login.__cu_aw != 1) {
+ if(Login.loginIndex != 1) {
boolean var9;
int var10;
short var19;
- if(Login.__cu_aw == 2) {
+ if(Login.loginIndex == 2) {
var19 = 201;
var18 = var19 + 52;
if(var3 == 1 && var16 >= var18 - 12 && var16 < var18 + 2) {
@@ -266,7 +266,7 @@ public final class class54 {
switch(Login.__cu_ac) {
case 1:
method1089("Please enter your username.", "If you created your account after November", "2010, this will be the creation email address.");
- Login.__cu_aw = 5;
+ Login.loginIndex = 5;
return;
case 2:
WorldMapCacheName.method635("https://support.runescape.com/hc/en-gb", true, false);
@@ -296,11 +296,11 @@ public final class class54 {
var7 = Login.__cu_y + 180 + 80;
if(var3 == 1 && var15 >= var7 - 75 && var15 <= var7 + 75 && var16 >= var8 - 20 && var16 <= var8 + 20) {
- Login.__cu_aw = 0;
+ Login.loginIndex = 0;
Login.Login_username = "";
Login.Login_password = "";
class13.__i_af = 0;
- Login.__cu_ai = "";
+ Login.otp = "";
Login.__cu_ba = true;
}
@@ -341,11 +341,11 @@ public final class class54 {
}
if(IndexStoreAction.__ik_cn == 13) {
- Login.__cu_aw = 0;
+ Login.loginIndex = 0;
Login.Login_username = "";
Login.Login_password = "";
class13.__i_af = 0;
- Login.__cu_ai = "";
+ Login.otp = "";
Login.__cu_ba = true;
} else if(Login.currentLoginField == 0) {
if(IndexStoreAction.__ik_cn == 85 && Login.Login_username.length() > 0) {
@@ -394,7 +394,7 @@ public final class class54 {
return;
}
- } else if(Login.__cu_aw == 3) {
+ } else if(Login.loginIndex == 3) {
var18 = Login.__cu_y + 180;
var20 = 276;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
@@ -405,23 +405,23 @@ public final class class54 {
var20 = 326;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
method1089("Please enter your username.", "If you created your account after November", "2010, this will be the creation email address.");
- Login.__cu_aw = 5;
+ Login.loginIndex = 5;
return;
}
} else {
int var22;
- if(Login.__cu_aw == 4) {
+ if(Login.loginIndex == 4) {
var18 = Login.__cu_y + 180 - 80;
var20 = 321;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
- Login.__cu_ai.trim();
- if(Login.__cu_ai.length() != 6) {
+ Login.otp.trim();
+ if(Login.otp.length() != 6) {
method1089("", "Please enter a 6-digit PIN.", "");
return;
}
- class13.__i_af = Integer.parseInt(Login.__cu_ai);
- Login.__cu_ai = "";
+ class13.__i_af = Integer.parseInt(Login.otp);
+ Login.otp = "";
class15.method184(true);
method1089("", "Connecting to server...", "");
GameShell.updateGameState(20);
@@ -438,11 +438,11 @@ public final class class54 {
var18 = Login.__cu_y + 180 + 80;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
- Login.__cu_aw = 0;
+ Login.loginIndex = 0;
Login.Login_username = "";
Login.Login_password = "";
class13.__i_af = 0;
- Login.__cu_ai = "";
+ Login.otp = "";
}
while(Decimator.method2490()) {
@@ -456,37 +456,37 @@ public final class class54 {
}
if(IndexStoreAction.__ik_cn == 13) {
- Login.__cu_aw = 0;
+ Login.loginIndex = 0;
Login.Login_username = "";
Login.Login_password = "";
class13.__i_af = 0;
- Login.__cu_ai = "";
+ Login.otp = "";
} else {
- if(IndexStoreAction.__ik_cn == 85 && Login.__cu_ai.length() > 0) {
- Login.__cu_ai = Login.__cu_ai.substring(0, Login.__cu_ai.length() - 1);
+ if(IndexStoreAction.__ik_cn == 85 && Login.otp.length() > 0) {
+ Login.otp = Login.otp.substring(0, Login.otp.length() - 1);
}
if(IndexStoreAction.__ik_cn == 84) {
- Login.__cu_ai.trim();
- if(Login.__cu_ai.length() != 6) {
+ Login.otp.trim();
+ if(Login.otp.length() != 6) {
method1089("", "Please enter a 6-digit PIN.", "");
return;
}
- class13.__i_af = Integer.parseInt(Login.__cu_ai);
- Login.__cu_ai = "";
+ class13.__i_af = Integer.parseInt(Login.otp);
+ Login.otp = "";
class15.method184(true);
method1089("", "Connecting to server...", "");
GameShell.updateGameState(20);
return;
}
- if(var21 && Login.__cu_ai.length() < 6) {
- Login.__cu_ai = Login.__cu_ai + GzipDecompressor.__go_ck;
+ if(var21 && Login.otp.length() < 6) {
+ Login.otp = Login.otp + GzipDecompressor.__go_ck;
}
}
}
- } else if(Login.__cu_aw == 5) {
+ } else if(Login.loginIndex == 5) {
var18 = Login.__cu_y + 180 - 80;
var20 = 321;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
@@ -534,7 +534,7 @@ public final class class54 {
}
}
}
- } else if(Login.__cu_aw == 6) {
+ } else if(Login.loginIndex == 6) {
while(true) {
do {
if(!Decimator.method2490()) {
@@ -549,13 +549,13 @@ public final class class54 {
MouseHandler.method1084(true);
}
- } else if(Login.__cu_aw == 7) {
+ } else if(Login.loginIndex == 7) {
var18 = Login.__cu_y + 180 - 80;
var20 = 321;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
WorldMapCacheName.method635(Message.method1227("secure", true) + "m=dob/set_dob.ws", true, false);
method1089("", "Page has opened in a new window.", "(Please check your popup blocker.)");
- Login.__cu_aw = 6;
+ Login.loginIndex = 6;
return;
}
@@ -563,13 +563,13 @@ public final class class54 {
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
MouseHandler.method1084(true);
}
- } else if(Login.__cu_aw == 8) {
+ } else if(Login.loginIndex == 8) {
var18 = Login.__cu_y + 180 - 80;
var20 = 321;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
WorldMapCacheName.method635("https://www.jagex.com/terms/privacy/#eight", true, false);
method1089("", "Page has opened in a new window.", "(Please check your popup blocker.)");
- Login.__cu_aw = 6;
+ Login.loginIndex = 6;
return;
}
@@ -577,7 +577,7 @@ public final class class54 {
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
MouseHandler.method1084(true);
}
- } else if(Login.__cu_aw == 12) {
+ } else if(Login.loginIndex == 12) {
String var14 = "";
switch(Login.__cu_aj) {
case 0:
@@ -595,7 +595,7 @@ public final class class54 {
if(var3 == 1 && var15 >= var7 - 75 && var15 <= var7 + 75 && var16 >= var8 - 20 && var16 <= var8 + 20) {
WorldMapCacheName.method635(var14, true, false);
method1089("", "Page has opened in a new window.", "(Please check your popup blocker.)");
- Login.__cu_aw = 6;
+ Login.loginIndex = 6;
return;
}
@@ -611,7 +611,7 @@ public final class class54 {
if(IndexStoreAction.__ik_cn == 84) {
MouseHandler.method1084(false);
} else if(IndexStoreAction.__ik_cn == 13) {
- Login.__cu_aw = 0;
+ Login.loginIndex = 0;
}
}
@@ -623,7 +623,7 @@ public final class class54 {
var18 = Varps.__hv_h + 80;
if(var3 == 1 && var15 >= var18 - 75 && var15 <= var18 + 75 && var16 >= var20 - 20 && var16 <= var20 + 20) {
- Login.__cu_aw = 0;
+ Login.loginIndex = 0;
}
}
}
diff --git a/travis/settings.xml b/travis/settings.xml
index 99ee60758a..84b8566464 100644
--- a/travis/settings.xml
+++ b/travis/settings.xml
@@ -132,11 +132,11 @@ under the License.
-->
-
+