Remove object wrappers and use mixins to inject functionality

This causes hierarchy to be runelite-client -> runelite-api and
injected-client -> runescape-api -> runelite-api. The mixin injector
fufills the runelite-api interface with access to the runescape-api
interfaces. The mixins live in runelite-mixins and are not loaded within
the client.

Note the obfuscated client classes do not pass JVM verification on 7+,
so the mixins are currently set to target Java 6.
This commit is contained in:
Adam
2017-08-19 13:58:06 -04:00
parent 07c8442f22
commit 59552896ed
124 changed files with 2257 additions and 1814 deletions

View File

@@ -22,7 +22,6 @@
* (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;
@@ -31,7 +30,10 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
@Target(
{
ElementType.FIELD, ElementType.METHOD
})
public @interface Export
{
String value();

View File

@@ -30,7 +30,10 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR})
@Target(
{
ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR
})
public @interface Hook
{
String value();

View File

@@ -22,7 +22,6 @@
* (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;

View File

@@ -22,7 +22,6 @@
* (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;
@@ -31,7 +30,10 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
@Target(
{
ElementType.FIELD, ElementType.METHOD
})
public @interface Import
{
String value();

View File

@@ -22,7 +22,6 @@
* (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;
@@ -35,6 +34,6 @@ import java.lang.annotation.Target;
public @interface ObfuscatedGetter
{
int intValue() default 0;
long longValue() default 0L;
}

View File

@@ -22,7 +22,6 @@
* (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;
@@ -31,7 +30,10 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
@Target(
{
ElementType.FIELD, ElementType.METHOD, ElementType.TYPE
})
public @interface ObfuscatedName
{
String value();

View File

@@ -22,7 +22,6 @@
* (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;

View File

@@ -30,7 +30,10 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD})
@Target(
{
ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD
})
public @interface ObfuscatedSignature
{
String signature();

View File

@@ -22,7 +22,6 @@
* (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;

View File

@@ -1,90 +0,0 @@
/*
* Copyright (c) 2016-2017, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.rs.api;
import net.runelite.mapping.Import;
/**
* ItemComposition is an interface that represents the various properties
* of an item. Imports several values from rs-client/ItemComposition,
* and allows direct access to them by calling these methods.
*/
public interface ItemComposition
{
/**
* Returns the item's name as a string.
* @return the name of the item
*/
@Import("name")
String getName();
/**
* Returns the item's ID. A list of item IDs can be
* found in net.runelite.api.ItemID.
* @return the item's ID as an integer
*/
@Import("id")
int getId();
/**
* Returns a result that depends on whether the item
* is in noted form or not.
* @return 799 if noted, -1 if unnoted
*/
@Import("notedTemplate")
int getNote();
/**
* Returns the item ID of the noted/unnoted counterpart.
* For example, if you call this on an unnoted monkfish(ID 7946),
* this method will return the ID of a noted monkfish(ID 7947),
* and vice versa.
* @return the ID that is linked to this item in noted/unnoted form.
*/
@Import("note")
int getLinkedNoteId();
/**
* Returns the store price of the item. Even if the item cannot
* be found in a store, all items have a store price from which the
* High and Low Alchemy values are calculated. Multiply the price by
* 0.6 to get the High Alchemy value, or 0.4 to get the Low Alchemy
* value.
* @return the general store value of the item
*/
@Import("price")
int getPrice();
/**
* Returns whether or not the item is members-only.
* @return true if members-only, false otherwise.
*/
@Import("isMembers")
boolean isMembers();
@Import("maleModel")
int getMaleModel();
}

View File

@@ -22,15 +22,15 @@
* (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.rs.api;
import net.runelite.api.Actor;
import net.runelite.mapping.Import;
public interface Actor extends Renderable
public interface RSActor extends RSRenderable, Actor
{
@Import("interacting")
int getInteracting();
int getRSInteracting();
@Import("inSequence")
boolean inSequence();
@@ -45,14 +45,17 @@ public interface Actor extends Renderable
int getY();
@Import("animation")
@Override
int getAnimation();
@Import("graphic")
@Override
int getGraphic();
@Import("combatInfoList")
CombatInfoList getCombatInfoList();
RSCombatInfoList getCombatInfoList();
@Import("orientation")
@Override
int getOrientation();
}

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface Buffer
public interface RSBuffer
{
@Import("payload")
byte[] getPayload();

View File

@@ -22,16 +22,15 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface CacheableNode
public interface RSCacheableNode
{
@Import("next")
CacheableNode getNext();
RSCacheableNode getNext();
@Import("previous")
CacheableNode getPrevious();
RSCacheableNode getPrevious();
}

View File

@@ -22,7 +22,6 @@
* (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.rs.api;
public interface RSCanvas

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface XClanMember
public interface RSClanMember
{
@Import("username")
String getUsernameName();

View File

@@ -22,14 +22,13 @@
* (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.rs.api;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.runelite.mapping.Import;
public interface ClassInfo
public interface RSClassInfo
{
@Import("methods")
Method[] getMethods();

View File

@@ -24,47 +24,60 @@
*/
package net.runelite.rs.api;
import net.runelite.api.Client;
import net.runelite.mapping.Import;
public interface Client extends GameEngine
public interface RSClient extends RSGameEngine, Client
{
@Import("cameraX")
@Override
int getCameraX();
@Import("cameraY")
@Override
int getCameraY();
@Import("cameraZ")
@Override
int getCameraZ();
@Import("plane")
@Override
int getPlane();
@Import("cameraPitch")
@Override
int getCameraPitch();
@Import("cameraYaw")
@Override
int getCameraYaw();
@Import("world")
int getWorld();
@Import("FPS")
@Override
int getFPS();
@Import("mapAngle")
@Override
int getMapAngle();
@Import("tileHeights")
@Override
int[][][] getTileHeights();
@Import("tileSettings")
@Override
byte[][][] getTileSettings();
@Import("settings")
@Override
int[] getSettings();
@Import("widgetSettings")
@Override
int[] getWidgetSettings();
@Import("energy")
@@ -74,9 +87,11 @@ public interface Client extends GameEngine
int getWeight();
@Import("baseX")
@Override
int getBaseX();
@Import("baseY")
@Override
int getBaseY();
@Import("boostedSkillLevels")
@@ -89,48 +104,59 @@ public interface Client extends GameEngine
int[] getSkillExperiences();
@Import("gameState")
int getGameState();
int getRSGameState();
@Import("widgets")
Widget[][] getWidgets();
RSWidget[][] getWidgets();
@Import("region")
Region getRegion();
@Override
RSRegion getRegion();
@Import("localPlayer")
Player getLocalPlayer();
@Override
RSPlayer getLocalPlayer();
@Import("cachedNPCs")
NPC[] getCachedNPCs();
@Override
RSNPC[] getCachedNPCs();
@Import("collisionMaps")
CollisionData[] getCollisionMaps();
RSCollisionData[] getCollisionMaps();
@Import("cachedPlayers")
Player[] getCachedPlayers();
@Override
RSPlayer[] getCachedPlayers();
@Import("groundItemDeque")
Deque[][][] getGroundItemDeque();
RSDeque[][][] getGroundItemDeque();
@Import("username")
@Override
String getUsername();
@Import(value = "username", setter = true)
@Override
void setUsername(String username);
@Import("playerOptions")
@Override
String[] getPlayerOptions();
@Import("playerOptionsPriorities")
@Override
boolean[] getPlayerOptionsPriorities();
@Import("playerMenuTypes")
@Override
int[] getPlayerMenuTypes();
@Import("menuTargets")
@Override
String[] getMenuTargets();
@Import("menuOptions")
@Override
String[] getMenuOptions();
@Import("mouseX")
@@ -149,57 +175,67 @@ public interface Client extends GameEngine
int[] getMenuIdentifiers();
@Import("friends")
Friend[] getFriends();
RSFriend[] getFriends();
@Import("ignores")
Ignore[] getIgnores();
RSIgnore[] getIgnores();
@Import("worldList")
World[] getWorldList();
RSWorld[] getWorldList();
@Import("sendGameMessage")
void sendGameMessage(int var1, String var2, String var3);
@Import("getObjectDefinition")
ObjectComposition getObjectDefinition(int objectId);
RSObjectComposition getObjectDefinition(int objectId);
@Import("scale")
@Override
int getScale();
@Import("viewportHeight")
@Override
int getViewportHeight();
@Import("viewportWidth")
@Override
int getViewportWidth();
@Import("isResized")
@Override
boolean isResized();
@Import("widgetPositionX")
@Override
int[] getWidgetPositionsX();
@Import("widgetPositionY")
@Override
int[] getWidgetPositionsY();
@Import("itemContainers")
XHashTable getItemContainers();
RSHashTable getItemContainers();
@Import("getItemDefinition")
ItemComposition getItemDefinition(int itemId);
@Override
RSItemComposition getItemDefinition(int itemId);
@Import("componentTable")
XHashTable getComponentTable();
@Override
RSHashTable getComponentTable();
@Import("grandExchangeOffers")
XGrandExchangeOffer[] getGrandExchangeOffers();
RSGrandExchangeOffer[] getGrandExchangeOffers();
@Import("clanChatCount")
@Override
int getClanChatCount();
@Import("clanMembers")
XClanMember[] getClanMembers();
RSClanMember[] getClanMembers();
@Import("isMenuOpen")
@Override
boolean isMenuOpen();
@Import("gameCycle")
@@ -209,21 +245,26 @@ public interface Client extends GameEngine
void packetHandler();
@Import("revision")
@Override
int getRevision();
@Import("mapRegions")
@Override
int[] getMapRegions();
@Import("xteaKeys")
@Override
int[][] getXteaKeys();
@Import("gameDrawingMode")
@Override
int getGameDrawingMode();
@Import(
value = "gameDrawingMode",
setter = true
)
@Override
void setGameDrawingMode(int gameDrawingMode);
@Import("cycleCntr")
@@ -235,6 +276,7 @@ public interface Client extends GameEngine
/**
* Get the widget top group. widgets[topGroup] contains widgets with
* parentId -1, which are the widget roots.
*
* @return
*/
@Import("widgetRoot")

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface CollisionData
public interface RSCollisionData
{
@Import("flags")
int[][] getFlags();

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface CombatInfo1
public interface RSCombatInfo1
{
@Import("healthRatio")
int getHealthRatio();

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface CombatInfo2
public interface RSCombatInfo2
{
@Import("healthScale")
int getHealthScale();

View File

@@ -22,7 +22,6 @@
* (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.rs.api;
import net.runelite.mapping.Import;
@@ -30,8 +29,8 @@ import net.runelite.mapping.Import;
/**
* Created by bold on 2/2/17.
*/
public interface CombatInfoList
public interface RSCombatInfoList
{
@Import("node")
Node getNode();
RSNode getNode();
}

View File

@@ -22,16 +22,15 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface CombatInfoListHolder extends Node
public interface RSCombatInfoListHolder extends RSNode
{
@Import("combatInfo1")
CombatInfoList getCombatInfo1();
RSCombatInfoList getCombatInfo1();
@Import("combatInfo2")
CombatInfo2 getCombatInfo2();
RSCombatInfo2 getCombatInfo2();
}

View File

@@ -24,11 +24,14 @@
*/
package net.runelite.rs.api;
import net.runelite.api.DecorativeObject;
import net.runelite.api.Renderable;
import net.runelite.mapping.Import;
public interface DecorativeObject
public interface RSDecorativeObject extends DecorativeObject
{
@Import("hash")
@Override
int getHash();
@Import("x")

View File

@@ -22,16 +22,15 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface Deque
public interface RSDeque
{
@Import("current")
Node getCurrent();
RSNode getCurrent();
@Import("head")
Node getHead();
RSNode getHead();
}

View File

@@ -22,13 +22,12 @@
* (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.rs.api;
import java.io.RandomAccessFile;
import net.runelite.mapping.Import;
public interface FileOnDisk
public interface RSFileOnDisk
{
@Import("file")
RandomAccessFile getFile();

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface Friend
public interface RSFriend
{
@Import("name")
String getName();

View File

@@ -27,7 +27,7 @@ package net.runelite.rs.api;
import java.awt.Canvas;
import net.runelite.mapping.Import;
public interface GameEngine
public interface RSGameEngine
{
@Import("canvas")
Canvas getCanvas();

View File

@@ -22,12 +22,13 @@
* (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.rs.api;
import net.runelite.api.GameObject;
import net.runelite.api.Renderable;
import net.runelite.mapping.Import;
public interface GameObject
public interface RSGameObject extends GameObject
{
@Import("renderable")
Renderable getRenderable();
@@ -48,9 +49,11 @@ public interface GameObject
int getOffsetY();
@Import("x")
@Override
int getX();
@Import("y")
@Override
int getY();
@Import("height")
@@ -60,6 +63,7 @@ public interface GameObject
int getOrientation();
@Import("hash")
@Override
int getHash();
@Import("flags")

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface XGrandExchangeOffer
public interface RSGrandExchangeOffer
{
@Import("quantitySold")
int getQuantitySold();

View File

@@ -24,11 +24,13 @@
*/
package net.runelite.rs.api;
import net.runelite.api.GroundObject;
import net.runelite.mapping.Import;
public interface GroundObject
public interface RSGroundObject extends GroundObject
{
@Import("hash")
@Override
int getHash();
@Import("x")

View File

@@ -22,16 +22,16 @@
* (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.rs.api;
import net.runelite.api.HashTable;
import net.runelite.mapping.Import;
public interface XHashTable
public interface RSHashTable extends HashTable
{
@Import("size")
int getSize();
@Import("buckets")
Node[] getBuckets();
RSNode[] getBuckets();
}

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface Ignore
public interface RSIgnore
{
@Import("name")
String getName();

View File

@@ -22,16 +22,18 @@
* (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.rs.api;
import net.runelite.api.Item;
import net.runelite.mapping.Import;
public interface Item extends Renderable
public interface RSItem extends RSRenderable, Item
{
@Import("id")
@Override
int getId();
@Import("quantity")
@Override
int getQuantity();
}

View File

@@ -0,0 +1,63 @@
/*
* Copyright (c) 2016-2017, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.rs.api;
import net.runelite.api.ItemComposition;
import net.runelite.mapping.Import;
/**
* ItemComposition is an interface that represents the various properties of an
* item. Imports several values from runescape-client/ItemComposition, and allows
* direct access to them by calling these methods.
*/
public interface RSItemComposition extends ItemComposition
{
@Import("name")
@Override
String getName();
@Import("id")
@Override
int getId();
@Import("notedTemplate")
@Override
int getNote();
@Import("note")
@Override
int getLinkedNoteId();
@Import("price")
@Override
int getPrice();
@Import("isMembers")
@Override
boolean isMembers();
@Import("maleModel")
int getMaleModel();
}

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface XItemContainer extends Node
public interface RSItemContainer extends RSNode
{
@Import("itemIds")
int[] getItemIds();

View File

@@ -22,12 +22,12 @@
* (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.rs.api;
import net.runelite.api.ItemLayer;
import net.runelite.mapping.Import;
public interface ItemLayer
public interface RSItemLayer extends ItemLayer
{
@Import("x")
int getX();
@@ -36,6 +36,7 @@ public interface ItemLayer
int getY();
@Import("hash")
@Override
int getHash();
@Import("flags")
@@ -45,11 +46,14 @@ public interface ItemLayer
int getHeight();
@Import("bottom")
Renderable getBottom();
@Override
RSRenderable getBottom();
@Import("middle")
Renderable getMiddle();
@Override
RSRenderable getMiddle();
@Import("top")
Renderable getTop();
@Override
RSRenderable getTop();
}

View File

@@ -25,10 +25,12 @@
package net.runelite.rs.api;
import java.awt.Image;
import net.runelite.api.MainBufferProvider;
import net.runelite.mapping.Import;
public interface MainBufferProvider
public interface RSMainBufferProvider extends MainBufferProvider
{
@Import("image")
@Override
Image getImage();
}

View File

@@ -24,22 +24,26 @@
*/
package net.runelite.rs.api;
import net.runelite.api.MessageNode;
import net.runelite.mapping.Import;
public interface MessageNode
public interface RSMessageNode extends MessageNode
{
@Import("type")
int getType();
int getRSType();
@Import("sender")
@Override
String getSender();
@Import("value")
@Override
String getValue();
@Import(
value = "value",
setter = true
)
@Override
void setValue(String value);
}

View File

@@ -22,12 +22,12 @@
* (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.rs.api;
import net.runelite.api.Model;
import net.runelite.mapping.Import;
public interface Model extends Renderable
public interface RSModel extends RSRenderable, Model
{
@Import("verticesX")
int[] getVerticesX();

View File

@@ -22,13 +22,13 @@
* (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.rs.api;
import net.runelite.api.NPC;
import net.runelite.mapping.Import;
public interface NPC extends Actor
public interface RSNPC extends RSActor, NPC
{
@Import("composition")
NPCComposition getComposition();
RSNPCComposition getComposition();
}

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface NPCComposition
public interface RSNPCComposition
{
@Import("name")
String getName();

View File

@@ -22,19 +22,22 @@
* (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.rs.api;
import net.runelite.api.Node;
import net.runelite.mapping.Import;
public interface Node
public interface RSNode extends Node
{
@Import("next")
Node getNext();
@Override
RSNode getNext();
@Import("hash")
@Override
long getHash();
@Import("previous")
Node getPrevious();
@Override
RSNode getPrevious();
}

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface ObjectComposition
public interface RSObjectComposition
{
@Import("name")
String getName();

View File

@@ -22,20 +22,22 @@
* (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.rs.api;
import net.runelite.api.Player;
import net.runelite.mapping.Import;
public interface Player extends Actor
public interface RSPlayer extends RSActor, Player
{
@Import("composition")
PlayerComposition getComposition();
@Override
RSPlayerComposition getPlayerComposition();
@Import("name")
String getName();
String getRSName();
@Import("combatLevel")
@Override
int getCombatLevel();
@Import("totalLevel")

View File

@@ -22,12 +22,12 @@
* (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.rs.api;
import net.runelite.api.PlayerComposition;
import net.runelite.mapping.Import;
public interface PlayerComposition
public interface RSPlayerComposition extends PlayerComposition
{
@Import("isFemale")
boolean isFemale();
@@ -36,5 +36,6 @@ public interface PlayerComposition
int[] getBodyPartColours();
@Import("equipmentIds")
@Override
int[] getEquipmentIds();
}

View File

@@ -22,18 +22,17 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface Projectile
public interface RSProjectile
{
@Import("isMoving")
boolean isMoving();
@Import("animationSequence")
Sequence getAnimationSequence();
RSSequence getAnimationSequence();
@Import("velocityY")
double getVelocityY();

View File

@@ -22,16 +22,18 @@
* (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.rs.api;
import net.runelite.api.Region;
import net.runelite.api.Tile;
import net.runelite.mapping.Import;
public interface Region
public interface RSRegion extends Region
{
@Import("objects")
GameObject[] getObjects();
RSGameObject[] getObjects();
@Import("tiles")
@Override
Tile[][][] getTiles();
}

View File

@@ -22,16 +22,18 @@
* (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.rs.api;
import net.runelite.api.Model;
import net.runelite.api.Renderable;
import net.runelite.mapping.Import;
public interface Renderable extends Node
public interface RSRenderable extends RSNode, Renderable
{
@Import("modelHeight")
int getModelHeight();
@Import("getModel")
@Override
Model getModel();
}

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface Sequence
public interface RSSequence
{
@Import("stretches")
boolean getStretches();

View File

@@ -22,9 +22,8 @@
* (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.rs.api;
public interface XSprite
public interface RSSprite
{
}

View File

@@ -22,9 +22,8 @@
* (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.rs.api;
public interface SpritePixels
public interface RSSpritePixels
{
}

View File

@@ -24,23 +24,34 @@
*/
package net.runelite.rs.api;
import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject;
import net.runelite.api.GroundObject;
import net.runelite.api.ItemLayer;
import net.runelite.api.Tile;
import net.runelite.api.WallObject;
import net.runelite.mapping.Import;
public interface Tile
public interface RSTile extends Tile
{
@Import("objects")
GameObject[] getObjects();
@Override
GameObject[] getGameObjects();
@Import("itemLayer")
@Override
ItemLayer getItemLayer();
@Import("decorativeObject")
@Override
DecorativeObject getDecorativeObject();
@Import("groundObject")
@Override
GroundObject getGroundObject();
@Import("wallObject")
@Override
WallObject getWallObject();
@Import("x")

View File

@@ -24,16 +24,20 @@
*/
package net.runelite.rs.api;
import net.runelite.api.WallObject;
import net.runelite.mapping.Import;
public interface WallObject
public interface RSWallObject extends WallObject
{
@Import("hash")
@Override
int getHash();
@Import("x")
@Override
int getX();
@Import("y")
@Override
int getY();
}

View File

@@ -24,26 +24,29 @@
*/
package net.runelite.rs.api;
import net.runelite.api.widgets.Widget;
import net.runelite.mapping.Import;
public interface Widget
public interface RSWidget extends Widget
{
@Import("dynamicValues")
int[][] getDynamicValues();
@Import("children")
Widget[] getChildren();
RSWidget[] getChildren();
@Import("id")
@Override
int getId();
@Import("parentId")
int getParentId();
int getRSParentId();
@Import("boundsIndex")
int getBoundsIndex();
@Import("modelId")
@Override
int getModelId();
@Import("itemIds")
@@ -59,34 +62,40 @@ public interface Widget
String[] getActions();
@Import("text")
String getText();
String getRSText();
@Import("name")
String getName();
String getRSName();
@Import(value = "text", setter = true)
@Override
void setText(String text);
@Import("textColor")
@Override
int getTextColor();
@Import("opacity")
int getOpacity();
@Import("relativeX")
@Override
int getRelativeX();
@Import("relativeY")
@Override
int getRelativeY();
@Import("width")
@Override
int getWidth();
@Import("height")
@Override
int getHeight();
@Import("isHidden")
boolean isHidden();
boolean isRSHidden();
@Import("index")
int getIndex();
@@ -101,9 +110,11 @@ public interface Widget
int getRotationZ();
@Import("contentType")
@Override
int getContentType();
@Import("type")
@Override
int getType();
@Import("scrollX")
@@ -113,15 +124,18 @@ public interface Widget
int getScrollY();
@Import("spriteId")
@Override
int getSpriteId();
@Import("borderThickness")
int getBorderThickness();
@Import("itemId")
@Override
int getItemId();
@Import("itemQuantity")
@Override
int getItemQuantity();
@Import("originalX")

View File

@@ -22,13 +22,14 @@
* (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.rs.api;
import net.runelite.api.WidgetNode;
import net.runelite.mapping.Import;
public interface WidgetNode extends Node
public interface RSWidgetNode extends RSNode, WidgetNode
{
@Import("id")
@Override
int getId();
}

View File

@@ -22,12 +22,11 @@
* (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.rs.api;
import net.runelite.mapping.Import;
public interface World
public interface RSWorld
{
@Import("mask")
int getMask();