@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
* list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
package net.runelite.api;
|
|
||||||
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A query to search the game for objects that match.
|
|
||||||
*
|
|
||||||
* @param <EntityType> the returned object type
|
|
||||||
* @param <QueryType> the query type
|
|
||||||
*/
|
|
||||||
public abstract class Query<EntityType, QueryType>
|
|
||||||
{
|
|
||||||
protected Predicate<EntityType> predicate = x -> true;
|
|
||||||
|
|
||||||
protected Query()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Executes the query and filters through possible objects, returning only
|
|
||||||
* those who evaluate true using {@link #predicate}.
|
|
||||||
*
|
|
||||||
* @param client the game client
|
|
||||||
* @return the matching objects
|
|
||||||
*/
|
|
||||||
public abstract EntityType[] result(Client client);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs and returns a predicate that will evaluate {@link #predicate}
|
|
||||||
* and the passed value.
|
|
||||||
*
|
|
||||||
* @param other the passed predicate
|
|
||||||
* @return the combined predicate
|
|
||||||
*/
|
|
||||||
protected Predicate<EntityType> and(Predicate<EntityType> other)
|
|
||||||
{
|
|
||||||
if (predicate == null)
|
|
||||||
{
|
|
||||||
return other;
|
|
||||||
}
|
|
||||||
return predicate.and(other);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -725,7 +725,7 @@ public final class SpriteID
|
|||||||
public static final int EMOTE_GOBLIN_SALUTE = 727;
|
public static final int EMOTE_GOBLIN_SALUTE = 727;
|
||||||
public static final int EMOTE_SCARED = 728;
|
public static final int EMOTE_SCARED = 728;
|
||||||
public static final int EMOTE_SLAP_HEAD = 729;
|
public static final int EMOTE_SLAP_HEAD = 729;
|
||||||
public static final int EMOTE_STOMP = 730;
|
public static final int EMOTE_STAMP = 730;
|
||||||
public static final int EMOTE_FLAP = 731;
|
public static final int EMOTE_FLAP = 731;
|
||||||
public static final int EMOTE_IDEA = 732;
|
public static final int EMOTE_IDEA = 732;
|
||||||
public static final int EMOTE_ZOMBIE_WALK = 733;
|
public static final int EMOTE_ZOMBIE_WALK = 733;
|
||||||
@@ -745,7 +745,7 @@ public final class SpriteID
|
|||||||
public static final int EMOTE_GOBLIN_SALUTE_LOCKED = 747;
|
public static final int EMOTE_GOBLIN_SALUTE_LOCKED = 747;
|
||||||
public static final int EMOTE_SCARED_LOCKED = 748;
|
public static final int EMOTE_SCARED_LOCKED = 748;
|
||||||
public static final int EMOTE_SLAP_HEAD_LOCKED = 749;
|
public static final int EMOTE_SLAP_HEAD_LOCKED = 749;
|
||||||
public static final int EMOTE_STOMP_LOCKED = 750;
|
public static final int EMOTE_STAMP_LOCKED = 750;
|
||||||
public static final int EMOTE_FLAP_LOCKED = 751;
|
public static final int EMOTE_FLAP_LOCKED = 751;
|
||||||
public static final int EMOTE_IDEA_LOCKED = 752;
|
public static final int EMOTE_IDEA_LOCKED = 752;
|
||||||
public static final int EMOTE_ZOMBIE_WALK_LOCKED = 753;
|
public static final int EMOTE_ZOMBIE_WALK_LOCKED = 753;
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class CommandManager
|
|||||||
{
|
{
|
||||||
private static final String RUNELITE_COMMAND = "runeliteCommand";
|
private static final String RUNELITE_COMMAND = "runeliteCommand";
|
||||||
private static final String CHATBOX_INPUT = "chatboxInput";
|
private static final String CHATBOX_INPUT = "chatboxInput";
|
||||||
private static final String PRIVMATE_MESSAGE = "privateMessage";
|
private static final String PRIVATE_MESSAGE = "privateMessage";
|
||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final EventBus eventBus;
|
private final EventBus eventBus;
|
||||||
@@ -95,7 +95,7 @@ public class CommandManager
|
|||||||
case CHATBOX_INPUT:
|
case CHATBOX_INPUT:
|
||||||
handleInput(event);
|
handleInput(event);
|
||||||
break;
|
break;
|
||||||
case PRIVMATE_MESSAGE:
|
case PRIVATE_MESSAGE:
|
||||||
handlePrivateMessage(event);
|
handlePrivateMessage(event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public @interface ConfigGroup
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The key name of the config group used for storing configuration within the config group.
|
* The key name of the config group used for storing configuration within the config group.
|
||||||
* This should typically be a lowercased version of your plugin name, with all spaces removed.
|
* This should typically be a lowercase version of your plugin name, with all spaces removed.
|
||||||
* <p>
|
* <p>
|
||||||
* For example, the {@code Grand Exchange} plugin uses the key name {@code grandexchange}.
|
* For example, the {@code Grand Exchange} plugin uses the key name {@code grandexchange}.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class Keybind
|
|||||||
.put(InputEvent.META_DOWN_MASK, KeyEvent.VK_META)
|
.put(InputEvent.META_DOWN_MASK, KeyEvent.VK_META)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Bitmask of all supported modifers
|
// Bitmask of all supported modifiers
|
||||||
private static final int KEYBOARD_MODIFIER_MASK = MODIFIER_TO_KEY_CODE.keySet().stream()
|
private static final int KEYBOARD_MODIFIER_MASK = MODIFIER_TO_KEY_CODE.keySet().stream()
|
||||||
.reduce((a, b) -> a | b).get();
|
.reduce((a, b) -> a | b).get();
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ public class Keybind
|
|||||||
modifiers &= KEYBOARD_MODIFIER_MASK;
|
modifiers &= KEYBOARD_MODIFIER_MASK;
|
||||||
|
|
||||||
// If the keybind is just modifiers we don't want the keyCode to contain the modifier too,
|
// If the keybind is just modifiers we don't want the keyCode to contain the modifier too,
|
||||||
// becasue this breaks if you do the keycode backwards
|
// because this breaks if you do the keycode backwards
|
||||||
Integer mf = getModifierForKeyCode(keyCode);
|
Integer mf = getModifierForKeyCode(keyCode);
|
||||||
if (mf != null)
|
if (mf != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -225,7 +225,10 @@ public enum ItemMapping
|
|||||||
ITEM_BLADE_OF_SAELDOR(BLADE_OF_SAELDOR_INACTIVE, BLADE_OF_SAELDOR),
|
ITEM_BLADE_OF_SAELDOR(BLADE_OF_SAELDOR_INACTIVE, BLADE_OF_SAELDOR),
|
||||||
ITEM_CRYSTAL_BOW(CRYSTAL_WEAPON_SEED, CRYSTAL_BOW, CRYSTAL_BOW_24123, CRYSTAL_BOW_INACTIVE),
|
ITEM_CRYSTAL_BOW(CRYSTAL_WEAPON_SEED, CRYSTAL_BOW, CRYSTAL_BOW_24123, CRYSTAL_BOW_INACTIVE),
|
||||||
ITEM_CRYSTAL_HALBERD(CRYSTAL_WEAPON_SEED, CRYSTAL_HALBERD, CRYSTAL_HALBERD_24125, CRYSTAL_HALBERD_INACTIVE),
|
ITEM_CRYSTAL_HALBERD(CRYSTAL_WEAPON_SEED, CRYSTAL_HALBERD, CRYSTAL_HALBERD_24125, CRYSTAL_HALBERD_INACTIVE),
|
||||||
ITEM_CRYSTAL_SHIELD(CRYSTAL_WEAPON_SEED, CRYSTAL_SHIELD, CRYSTAL_SHIELD_24127, CRYSTAL_SHIELD_INACTIVE);
|
ITEM_CRYSTAL_SHIELD(CRYSTAL_WEAPON_SEED, CRYSTAL_SHIELD, CRYSTAL_SHIELD_24127, CRYSTAL_SHIELD_INACTIVE),
|
||||||
|
|
||||||
|
// Bird nests
|
||||||
|
ITEM_BIRD_NEST(BIRD_NEST, BIRD_NEST_5071, BIRD_NEST_5072, BIRD_NEST_5073, BIRD_NEST_5074, BIRD_NEST_5075, BIRD_NEST_7413, BIRD_NEST_13653, BIRD_NEST_22798, BIRD_NEST_22800);
|
||||||
|
|
||||||
private static final Multimap<Integer, Integer> MAPPINGS = HashMultimap.create();
|
private static final Multimap<Integer, Integer> MAPPINGS = HashMultimap.create();
|
||||||
private final int tradeableItem;
|
private final int tradeableItem;
|
||||||
|
|||||||
@@ -168,14 +168,14 @@ public class LootManager
|
|||||||
final LocalPoint location = tile.getLocalLocation();
|
final LocalPoint location = tile.getLocalLocation();
|
||||||
final int packed = location.getSceneX() << 8 | location.getSceneY();
|
final int packed = location.getSceneX() << 8 | location.getSceneY();
|
||||||
itemSpawns.put(packed, new ItemStack(item.getId(), item.getQuantity(), location));
|
itemSpawns.put(packed, new ItemStack(item.getId(), item.getQuantity(), location));
|
||||||
log.debug("Item spawn {} ({}) location {},{}", item.getId(), item.getQuantity(), location);
|
log.debug("Item spawn {} ({}) location {}", item.getId(), item.getQuantity(), location);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onItemDespawned(ItemDespawned itemDespawned)
|
private void onItemDespawned(ItemDespawned itemDespawned)
|
||||||
{
|
{
|
||||||
final TileItem item = itemDespawned.getItem();
|
final TileItem item = itemDespawned.getItem();
|
||||||
final LocalPoint location = itemDespawned.getTile().getLocalLocation();
|
final LocalPoint location = itemDespawned.getTile().getLocalLocation();
|
||||||
log.debug("Item despawn {} ({}) location {},{}", item.getId(), item.getQuantity(), location);
|
log.debug("Item despawn {} ({}) location {}", item.getId(), item.getQuantity(), location);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged)
|
private void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged)
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ class Obstacles
|
|||||||
STEPPING_STONE_11643, HURDLE, HURDLE_11639, HURDLE_11640, PIPE_11657, SKULL_SLOPE, ZIP_LINE,
|
STEPPING_STONE_11643, HURDLE, HURDLE_11639, HURDLE_11640, PIPE_11657, SKULL_SLOPE, ZIP_LINE,
|
||||||
ZIP_LINE_11645, ZIP_LINE_11646,
|
ZIP_LINE_11645, ZIP_LINE_11646,
|
||||||
// Prifddinas
|
// Prifddinas
|
||||||
LADDER_36221, TIGHTROPE_36225, CHIMNEY_36227, ROOF_EDGE, DARK_HOLE_36229, LADDER_36231, ROPE_BRIDGE_36233,
|
LADDER_36221, TIGHTROPE_36225, CHIMNEY_36227, ROOF_EDGE, DARK_HOLE_36229, LADDER_36231, LADDER_36232,
|
||||||
TIGHTROPE_36234, ROPE_BRIDGE_36235, TIGHTROPE_36236, TIGHTROPE_36237, DARK_HOLE_36238,
|
ROPE_BRIDGE_36233, TIGHTROPE_36234, ROPE_BRIDGE_36235, TIGHTROPE_36236, TIGHTROPE_36237, DARK_HOLE_36238,
|
||||||
// Prifddinas portals
|
// Prifddinas portals
|
||||||
NULL_36241, NULL_36242, NULL_36243, NULL_36244, NULL_36245, NULL_36246
|
NULL_36241, NULL_36242, NULL_36243, NULL_36244, NULL_36245, NULL_36246
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ public class EmoteClue extends ClueScroll implements TextClueScroll, LocationClu
|
|||||||
new EmoteClue("Spin in the Varrock Castle courtyard. Equip a black axe, a coif and a ruby ring.", "Varrock Castle", OUTSIDE_VARROCK_PALACE_COURTYARD, new WorldPoint(3213, 3463, 0), SPIN, item(BLACK_AXE), item(COIF), item(RUBY_RING)),
|
new EmoteClue("Spin in the Varrock Castle courtyard. Equip a black axe, a coif and a ruby ring.", "Varrock Castle", OUTSIDE_VARROCK_PALACE_COURTYARD, new WorldPoint(3213, 3463, 0), SPIN, item(BLACK_AXE), item(COIF), item(RUBY_RING)),
|
||||||
new EmoteClue("Spin in West Ardougne Church. Equip a dragon spear and red dragonhide chaps.", "Ardougne", CHAPEL_IN_WEST_ARDOUGNE, new WorldPoint(2530, 3290, 0), SPIN, item(DRAGON_SPEAR), item(RED_DHIDE_CHAPS)),
|
new EmoteClue("Spin in West Ardougne Church. Equip a dragon spear and red dragonhide chaps.", "Ardougne", CHAPEL_IN_WEST_ARDOUGNE, new WorldPoint(2530, 3290, 0), SPIN, item(DRAGON_SPEAR), item(RED_DHIDE_CHAPS)),
|
||||||
new EmoteClue("Spin on the bridge by the Barbarian Village. Salute before you talk to me. Equip purple gloves, a steel kiteshield and a mithril full helmet.", "Barbarian Village", EAST_OF_THE_BARBARIAN_VILLAGE_BRIDGE, new WorldPoint(3105, 3420, 0), SPIN, SALUTE, item(PURPLE_GLOVES), item(STEEL_KITESHIELD), item(MITHRIL_FULL_HELM)),
|
new EmoteClue("Spin on the bridge by the Barbarian Village. Salute before you talk to me. Equip purple gloves, a steel kiteshield and a mithril full helmet.", "Barbarian Village", EAST_OF_THE_BARBARIAN_VILLAGE_BRIDGE, new WorldPoint(3105, 3420, 0), SPIN, SALUTE, item(PURPLE_GLOVES), item(STEEL_KITESHIELD), item(MITHRIL_FULL_HELM)),
|
||||||
new EmoteClue("Stamp in the Enchanted valley west of the waterfall. Beware of double agents! Equip a dragon axe.", "Enchanted Valley", NORTHWESTERN_CORNER_OF_THE_ENCHANTED_VALLEY, new WorldPoint(3030, 4522, 0), STOMP, item(DRAGON_AXE)),
|
new EmoteClue("Stamp in the Enchanted valley west of the waterfall. Beware of double agents! Equip a dragon axe.", "Enchanted Valley", NORTHWESTERN_CORNER_OF_THE_ENCHANTED_VALLEY, new WorldPoint(3030, 4522, 0), STAMP, item(DRAGON_AXE)),
|
||||||
new EmoteClue("Think in middle of the wheat field by the Lumbridge mill. Equip a blue gnome robetop, a turquoise gnome robe bottom and an oak shortbow.", "Lumbridge mill", WHEAT_FIELD_NEAR_THE_LUMBRIDGE_WINDMILL, new WorldPoint(3159, 3298, 0), THINK, item(BLUE_ROBE_TOP), item(TURQUOISE_ROBE_BOTTOMS), item(OAK_SHORTBOW)),
|
new EmoteClue("Think in middle of the wheat field by the Lumbridge mill. Equip a blue gnome robetop, a turquoise gnome robe bottom and an oak shortbow.", "Lumbridge mill", WHEAT_FIELD_NEAR_THE_LUMBRIDGE_WINDMILL, new WorldPoint(3159, 3298, 0), THINK, item(BLUE_ROBE_TOP), item(TURQUOISE_ROBE_BOTTOMS), item(OAK_SHORTBOW)),
|
||||||
new EmoteClue("Think in the centre of the Observatory. Spin before you talk to me. Equip a mithril chain body, green dragonhide chaps and a ruby amulet.", "Observatory", OBSERVATORY, new WorldPoint(2439, 3161, 0), THINK, SPIN, item(MITHRIL_CHAINBODY), item(GREEN_DHIDE_CHAPS), item(RUBY_AMULET)),
|
new EmoteClue("Think in the centre of the Observatory. Spin before you talk to me. Equip a mithril chain body, green dragonhide chaps and a ruby amulet.", "Observatory", OBSERVATORY, new WorldPoint(2439, 3161, 0), THINK, SPIN, item(MITHRIL_CHAINBODY), item(GREEN_DHIDE_CHAPS), item(RUBY_AMULET)),
|
||||||
new EmoteClue("Wave along the south fence of the Lumber Yard. Equip a hard leather body, leather chaps and a bronze axe.", "Lumber Yard", NEAR_THE_SAWMILL_OPERATORS_BOOTH, new WorldPoint(3307, 3491, 0), WAVE, item(HARDLEATHER_BODY), item(LEATHER_CHAPS), item(BRONZE_AXE)),
|
new EmoteClue("Wave along the south fence of the Lumber Yard. Equip a hard leather body, leather chaps and a bronze axe.", "Lumber Yard", NEAR_THE_SAWMILL_OPERATORS_BOOTH, new WorldPoint(3307, 3491, 0), WAVE, item(HARDLEATHER_BODY), item(LEATHER_CHAPS), item(BRONZE_AXE)),
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public enum Emote
|
|||||||
BLOW_KISS("Blow Kiss", EMOTE_BLOW_KISS),
|
BLOW_KISS("Blow Kiss", EMOTE_BLOW_KISS),
|
||||||
GOBLIN_SALUTE("Goblin Salute", EMOTE_GOBLIN_SALUTE),
|
GOBLIN_SALUTE("Goblin Salute", EMOTE_GOBLIN_SALUTE),
|
||||||
SLAP_HEAD("Slap Head", EMOTE_SLAP_HEAD),
|
SLAP_HEAD("Slap Head", EMOTE_SLAP_HEAD),
|
||||||
STOMP("Stomp", EMOTE_STOMP),
|
STAMP("Stamp", EMOTE_STAMP),
|
||||||
FLAP("Flap", EMOTE_FLAP),
|
FLAP("Flap", EMOTE_FLAP),
|
||||||
PUSH_UP("Push up", EMOTE_PUSH_UP);
|
PUSH_UP("Push up", EMOTE_PUSH_UP);
|
||||||
|
|
||||||
|
|||||||
@@ -74,10 +74,10 @@ public class ColorUtil
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a given color to it's hexidecimal equivalent.
|
* Converts a given color to it's hexadecimal equivalent.
|
||||||
*
|
*
|
||||||
* @param color Color to get hexidecimal string from.
|
* @param color Color to get hexadecimal string from.
|
||||||
* @return Hexidecimal string representing the given color, in the form "#abcdef".
|
* @return Hexadecimal string representing the given color, in the form "#abcdef".
|
||||||
*/
|
*/
|
||||||
public static String toHexColor(final Color color)
|
public static String toHexColor(final Color color)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user