diff --git a/runelite-api/src/main/java/net/runelite/api/ItemDefinition.java b/runelite-api/src/main/java/net/runelite/api/ItemDefinition.java index 891fdeec9c..d215589a07 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemDefinition.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemDefinition.java @@ -1,5 +1,7 @@ package net.runelite.api; +import javax.annotation.Nullable; + /** * Represents the template of a specific item type. */ @@ -127,4 +129,29 @@ public interface ItemDefinition * @param id The itemID of the item with desired model */ void setModelOverride(int id); + + /** + * Gets the model ID of the inventory item. + * + * @return the model ID + */ + int getInventoryModel(); + + /** + * Since the client reuses item models, it stores colors that can be replaced. + * This returns what colors the item model will be replaced with. + * + * @return the colors to replace with + */ + @Nullable + short[] getColorToReplaceWith(); + + /** + * Since the client reuses item models, it stores textures that can be replaced. + * This returns what textures the item model will be replaced with. + * + * @return the textures to replace with + */ + @Nullable + short[] getTextureToReplaceWith(); } 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 3d8097c7bb..7a5194142d 100644 --- a/runelite-api/src/main/java/net/runelite/api/MessageNode.java +++ b/runelite-api/src/main/java/net/runelite/api/MessageNode.java @@ -27,7 +27,7 @@ package net.runelite.api; /** * Represents a message in the chatbox. */ -public interface MessageNode +public interface MessageNode extends Node { /** * Get the id for this message node diff --git a/runelite-api/src/main/java/net/runelite/api/ScriptID.java b/runelite-api/src/main/java/net/runelite/api/ScriptID.java index 34f2fb198c..8fd2255bdf 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -241,5 +241,34 @@ public final class ScriptID @ScriptArguments(integer = 18) public static final int BANKMAIN_SEARCH_TOGGLE = 281; + /** + * Builds the items kept on death widget + */ + @ScriptArguments(integer = 4, string = 2) + public static final int DEATH_KEEP_BUILD = 1601; + + /** + * Builds the widget that holds all of the players inside a clan chat + */ + @ScriptArguments(integer = 15) + public static final int CLAN_CHAT_CHANNEL_BUILD = 1658; + + /** + * Builds the widget for making an offer in Grand Exchange + */ + @ScriptArguments(integer = 15) + public static final int GE_OFFERS_SETUP_BUILD = 779; + + /** + * Builds the quest list inside the quest tab that shows each quest's progress + */ + @ScriptArguments(integer = 3) + public static final int QUESTLIST_PROGRESS_LIST_SHOW = 1354; + + /** + * Procedure called when the toplevel interface is resized + */ + @ScriptArguments(integer = 2) + public static final int TOPLEVEL_RESIZE = 909; } diff --git a/runelite-api/src/main/java/net/runelite/api/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/SpriteID.java index 839fbb1afb..93d9272468 100644 --- a/runelite-api/src/main/java/net/runelite/api/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/SpriteID.java @@ -1293,7 +1293,7 @@ public final class SpriteID public static final int SPELL_REANIMATE_CROPS_DISABLED = 1327; /* Unmapped: 1328~1337 */ public static final int WORLD_SWITCHER_WORLD_STAR_BLUE = 1338; - public static final int GAMEBLAST16_PROMO_BANNER = 1339; + public static final int HITSPLAT_DARK_GREEN_VENOM = 1339; public static final int FAIRY_RING_REMOVE_FAVOURITE = 1340; public static final int FAIRY_RING_ADD_FAVOURITE = 1341; public static final int BANK_PLACEHOLDERS_LOCK = 1342; @@ -1317,7 +1317,7 @@ public final class SpriteID public static final int HITSPLAT_GREEN_POISON = 1360; public static final int HITSPLAT_ORANGE = 1361; public static final int HITSPLAT_ORANGE_DISEASE = 1362; - public static final int HITSPLAT_DARK_GREEN_VENOM = 1363; + public static final int HITSPLAT_GREY = 1363; public static final int BOUNTY_HUNTER_SKIP_TARGET = 1364; public static final int BOUNTY_HUNTER_SKIP_TARGET_HOVERED = 1365; public static final int HOUSE_VIEWER_ROTATE_CLOCKWISE = 1366; diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index b665a86032..3fc639992a 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -167,6 +167,7 @@ public class WidgetID public static final int GWD_KC_GROUP_ID = 406; public static final int ADVENTURE_LOG_ID = 187; public static final int COUNTERS_LOG_GROUP_ID = 625; + public static final int GAUNTLET_TIMER_GROUP_ID = 637; static class WorldMap { @@ -1228,7 +1229,7 @@ public class WidgetID static class LmsKDA { - static final int INFO = 4; + static final int INFO = 5; } static class AdventureLog @@ -1241,4 +1242,9 @@ public class WidgetID static final int OWNER = 4; static final int TEXT = 6; } + + static class GauntletTimer + { + static final int CONTAINER = 2; + } } diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index 42f40005ea..80c38aec6e 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -797,7 +797,9 @@ public enum WidgetInfo SKILLS_CONTAINER(WidgetID.SKILLS_GROUP_ID, WidgetID.Skills.CONTAINER), - TRADING_WITH(WidgetID.PLAYER_TRADE_SCREEN_GROUP_ID, WidgetID.TradeScreen.FIRST_TRADING_WITH); + TRADING_WITH(WidgetID.PLAYER_TRADE_SCREEN_GROUP_ID, WidgetID.TradeScreen.FIRST_TRADING_WITH), + + GAUNTLET_TIMER_CONTAINER(WidgetID.GAUNTLET_TIMER_GROUP_ID, WidgetID.GauntletTimer.CONTAINER); private final int groupId; private final int childId; 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 b4a091c102..8053bf9b36 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -39,6 +39,7 @@ import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.net.Authenticator; import java.net.PasswordAuthentication; +import java.nio.file.Paths; import java.util.Locale; import java.util.Optional; import javax.annotation.Nullable; @@ -48,6 +49,8 @@ import joptsimple.ArgumentAcceptingOptionSpec; import joptsimple.OptionException; import joptsimple.OptionParser; import joptsimple.OptionSet; +import joptsimple.ValueConversionException; +import joptsimple.ValueConverter; import joptsimple.util.EnumConverter; import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -107,6 +110,7 @@ public class RuneLite public static final File SCREENSHOT_DIR = new File(RUNELITE_DIR, "screenshots"); public static final File LOGS_DIR = new File(RUNELITE_DIR, "logs"); public static final File PLUGINS_DIR = new File(RUNELITE_DIR, "plugins"); + public static final File DEFAULT_CONFIG_FILE = new File(RUNELITE_DIR, "runeliteplus.properties"); public static final Locale SYSTEM_LOCALE = Locale.getDefault(); public static boolean allowPrivateServer = false; @@ -220,6 +224,11 @@ public class RuneLite final ArgumentAcceptingOptionSpec worldInfo = parser .accepts("world") .withRequiredArg().ofType(Integer.class); + final ArgumentAcceptingOptionSpec configfile = parser.accepts("config", "Use a specified config file") + .withRequiredArg() + .withValuesConvertedBy(new ConfigFileConverter()) + .defaultsTo(DEFAULT_CONFIG_FILE); + final ArgumentAcceptingOptionSpec updateMode = parser .accepts("rs", "Select client type") .withRequiredArg() @@ -313,18 +322,6 @@ public class RuneLite RuneLiteSplashScreen.init(); } - final boolean developerMode = options.has("developer-mode"); - - if (developerMode) - { - boolean assertions = false; - assert assertions = true; - if (!assertions) - { - log.warn("Developers should enable assertions; Add `-ea` to your JVM arguments`"); - } - } - Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> { log.error("Uncaught exception:", throwable); @@ -343,7 +340,7 @@ public class RuneLite injector = Guice.createInjector(new RuneLiteModule( clientLoader, - true)); + options.valueOf(configfile))); injector.getInstance(RuneLite.class).start(); final long end = System.currentTimeMillis(); @@ -505,9 +502,47 @@ public class RuneLite public void shutdown() { - configManager.sendConfig(); clientSessionManager.shutdown(); discordService.close(); appLock.release(); } + + private static class ConfigFileConverter implements ValueConverter + { + @Override + public File convert(String fileName) + { + final File file; + + if (Paths.get(fileName).isAbsolute() + || fileName.startsWith("./") + || fileName.startsWith(".\\")) + { + file = new File(fileName); + } + else + { + file = new File(RuneLite.RUNELITE_DIR, fileName); + } + + if (file.exists() && (!file.isFile() || !file.canWrite())) + { + throw new ValueConversionException(String.format("File %s is not accessible", file.getAbsolutePath())); + } + + return file; + } + + @Override + public Class valueType() + { + return File.class; + } + + @Override + public String valuePattern() + { + return null; + } + } } diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java index 01b40e724e..d6417c0a00 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java @@ -62,18 +62,18 @@ public class RuneLiteModule extends AbstractModule private static final int MAX_OKHTTP_CACHE_SIZE = 20 * 1024 * 1024; // 20mb private final Supplier clientLoader; - private final boolean developerMode; + private final File config; - public RuneLiteModule(final Supplier clientLoader, boolean developerMode) + public RuneLiteModule(final Supplier clientLoader, File config) { this.clientLoader = clientLoader; - this.developerMode = developerMode; + this.config = config; } @Override protected void configure() { - bindConstant().annotatedWith(Names.named("developerMode")).to(developerMode); + bind(File.class).annotatedWith(Names.named("config")).toInstance(config); bind(ScheduledExecutorService.class).toInstance(new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor())); bind(OkHttpClient.class).toInstance(RuneLiteAPI.CLIENT.newBuilder() .cache(new Cache(new File(RuneLite.CACHE_DIR, "okhttp"), MAX_OKHTTP_CACHE_SIZE)) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index 77a4d6f15c..c8857739b9 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -59,6 +59,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import javax.inject.Inject; +import javax.inject.Named; import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.coords.WorldPoint; @@ -75,20 +76,20 @@ import org.apache.commons.lang3.StringUtils; @Slf4j public class ConfigManager { - private static final String SETTINGS_FILE_NAME = "runeliteplus.properties"; private static final String STANDARD_SETTINGS_FILE_NAME = "settings.properties"; - private static final File SETTINGS_FILE = new File(RuneLite.RUNELITE_DIR, SETTINGS_FILE_NAME); private static final File STANDARD_SETTINGS_FILE = new File(RuneLite.RUNELITE_DIR, STANDARD_SETTINGS_FILE_NAME); private final ConfigInvocationHandler handler = new ConfigInvocationHandler(this); private final Properties properties = new Properties(); private final Map pendingChanges = new HashMap<>(); + private final File settingsFileInput; @Inject EventBus eventBus; @Inject - public ConfigManager(ScheduledExecutorService scheduledExecutorService) + public ConfigManager(@Named("config") File config, ScheduledExecutorService scheduledExecutorService) { + this.settingsFileInput = config; scheduledExecutorService.scheduleWithFixedDelay(this::sendConfig, 30, 30, TimeUnit.SECONDS); } @@ -414,7 +415,7 @@ public class ConfigManager handler.invalidate(); properties.clear(); - try (FileInputStream in = new FileInputStream(SETTINGS_FILE)) + try (FileInputStream in = new FileInputStream(settingsFileInput)) { properties.load(new InputStreamReader(in, StandardCharsets.UTF_8)); } @@ -460,9 +461,9 @@ public class ConfigManager private void saveToFile() throws IOException { - ConfigManager.SETTINGS_FILE.getParentFile().mkdirs(); + settingsFileInput.getParentFile().mkdirs(); - File tempFile = new File(RuneLite.RUNELITE_DIR, SETTINGS_FILE_NAME + ".tmp"); + File tempFile = new File(RuneLite.RUNELITE_DIR, RuneLite.DEFAULT_CONFIG_FILE.getName() + ".tmp"); try (FileOutputStream out = new FileOutputStream(tempFile)) { @@ -473,12 +474,12 @@ public class ConfigManager try { - Files.move(tempFile.toPath(), ConfigManager.SETTINGS_FILE.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE); + Files.move(tempFile.toPath(), settingsFileInput.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE); } catch (AtomicMoveNotSupportedException ex) { log.debug("atomic move not supported", ex); - Files.move(tempFile.toPath(), ConfigManager.SETTINGS_FILE.toPath(), StandardCopyOption.REPLACE_EXISTING); + Files.move(tempFile.toPath(), settingsFileInput.toPath(), StandardCopyOption.REPLACE_EXISTING); } } diff --git a/runelite-client/src/main/java/net/runelite/client/discord/DiscordPresence.java b/runelite-client/src/main/java/net/runelite/client/discord/DiscordPresence.java index fd444e8929..66bb52fb5d 100644 --- a/runelite-client/src/main/java/net/runelite/client/discord/DiscordPresence.java +++ b/runelite-client/src/main/java/net/runelite/client/discord/DiscordPresence.java @@ -31,7 +31,7 @@ import lombok.Value; /** * Represents Discord Rich Presence RPC data */ -@Builder +@Builder(toBuilder = true) @Value public class DiscordPresence { diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java index d474aca6a8..54fa32a74d 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java @@ -28,11 +28,14 @@ package net.runelite.client.game.chatbox; import com.google.common.primitives.Ints; import com.google.inject.Inject; import java.awt.event.KeyEvent; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Set; import java.util.function.Consumer; import javax.inject.Singleton; import lombok.Getter; +import lombok.Value; import net.runelite.api.Client; import net.runelite.api.ItemDefinition; import net.runelite.api.widgets.ItemQuantityMode; @@ -66,6 +69,14 @@ public class ChatboxItemSearch extends ChatboxTextInput @Getter private Consumer onItemSelected; + @Value + private static class ItemIcon + { + private final int modelId; + private final short[] colorsToReplace; + private final short[] texturesToReplace; + } + @Inject private ChatboxItemSearch(ChatboxPanelManager chatboxPanelManager, ClientThread clientThread, ItemManager itemManager, Client client) @@ -287,15 +298,26 @@ public class ChatboxItemSearch extends ChatboxTextInput return; } + Set itemIcons = new HashSet<>(); for (int i = 0; i < client.getItemCount() && results.size() < MAX_RESULTS; i++) { ItemDefinition itemComposition = itemManager.getItemDefinition(itemManager.canonicalize(i)); String name = itemComposition.getName().toLowerCase(); + // The client assigns "null" to item names of items it doesn't know about - if (!name.equals("null") && name.contains(search)) + // and the item might already be in the results from canonicalize + if (!name.equals("null") && name.contains(search) && !results.containsKey(itemComposition.getId())) { - // This may already be in the map due to canonicalize mapping the item to something we've already seen - results.putIfAbsent(itemComposition.getId(), itemComposition); + // Check if the results already contain the same item image + ItemIcon itemIcon = new ItemIcon(itemComposition.getInventoryModel(), + itemComposition.getColorToReplaceWith(), itemComposition.getTextureToReplaceWith()); + if (itemIcons.contains(itemIcon)) + { + continue; + } + + itemIcons.add(itemIcon); + results.put(itemComposition.getId(), itemComposition); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java index 677cffb585..2ae64bf887 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java @@ -53,8 +53,6 @@ public @interface PluginDescriptor */ boolean hidden() default false; - boolean developerPlugin() default false; - boolean loadWhenOutdated() default false; PluginType type() default PluginType.UNCATEGORIZED; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index bd6a7076fe..7f50d54254 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -56,7 +56,6 @@ import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; import javax.inject.Inject; -import javax.inject.Named; import javax.inject.Provider; import javax.inject.Singleton; import javax.swing.SwingUtilities; @@ -87,7 +86,6 @@ public class PluginManager */ private static final String PLUGIN_PACKAGE = "net.runelite.client.plugins"; - private final boolean developerMode; private final EventBus eventBus; private final Scheduler scheduler; private final ConfigManager configManager; @@ -108,13 +106,11 @@ public class PluginManager @Inject @VisibleForTesting PluginManager( - @Named("developerMode") final boolean developerMode, final EventBus eventBus, final Scheduler scheduler, final ConfigManager configManager, final Provider sceneTileManager) { - this.developerMode = developerMode; this.eventBus = eventBus; this.scheduler = scheduler; this.configManager = configManager; @@ -355,11 +351,6 @@ public class PluginManager continue; } - if (pluginDescriptor.developerPlugin() && !developerMode) - { - continue; - } - @SuppressWarnings("unchecked") Class pluginClass = (Class) clazz; graph.addNode(pluginClass); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index de4d89ce35..31b0e65fdd 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -667,7 +667,7 @@ public class ClientUI return; } - final java.awt.Point hotspot = new java.awt.Point(container.getX(), container.getY()); + final java.awt.Point hotspot = new java.awt.Point(0, 0); final Cursor cursorAwt = Toolkit.getDefaultToolkit().createCustomCursor(image, hotspot, name); container.setCursor(cursorAwt); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java index fff07dae0f..2f51a2f1ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java @@ -63,6 +63,7 @@ public class WidgetOverlay extends Overlay .put(WidgetInfo.LMS_INFO, OverlayPosition.TOP_CENTER) .put(WidgetInfo.LMS_KDA, OverlayPosition.TOP_CENTER) .put(WidgetInfo.THEATRE_OF_BLOOD_HEALTH_ORBS, OverlayPosition.TOP_LEFT) + .put(WidgetInfo.GAUNTLET_TIMER_CONTAINER, OverlayPosition.TOP_LEFT) .build(); public static Collection createOverlays(final Client client) diff --git a/runelite-client/src/main/scripts/ClanChatChannelRebuild.hash b/runelite-client/src/main/scripts/ClanChatChannelRebuild.hash deleted file mode 100644 index e9601457f1..0000000000 --- a/runelite-client/src/main/scripts/ClanChatChannelRebuild.hash +++ /dev/null @@ -1 +0,0 @@ -C70BDF62710D9FC0EB6707BD94FC0C4335B428DEDD1B52DD51776F811F32C9CF \ No newline at end of file diff --git a/runelite-client/src/main/scripts/ClanChatChannelRebuild.rs2asm b/runelite-client/src/main/scripts/ClanChatChannelRebuild.rs2asm deleted file mode 100644 index 0724ae0048..0000000000 --- a/runelite-client/src/main/scripts/ClanChatChannelRebuild.rs2asm +++ /dev/null @@ -1,802 +0,0 @@ -.id 1658 -.int_stack_count 15 -.string_stack_count 0 -.int_var_count 25 -.string_var_count 1 -; Callback "clanChatChannelRebuild" for whenever clan chat is done being built, used inside ClanChatPlugin for ignores - iload 3 - iconst 6 - iconst 7 - iconst 6 - sconst "Sort by rank" - iload 0 - iload 1 - iload 2 - iload 3 - iload 4 - iload 5 - iload 6 - iload 7 - iload 8 - iload 9 - iload 10 - iload 11 - iload 12 - iload 13 - iload 14 - invoke 1659 - iload 4 - iconst 2 - iconst 3 - iconst 2 - sconst "Sort by name" - iload 0 - iload 1 - iload 2 - iload 3 - iload 4 - iload 5 - iload 6 - iload 7 - iload 8 - iload 9 - iload 10 - iload 11 - iload 12 - iload 13 - iload 14 - invoke 1659 - iload 5 - iconst 8 - iconst 9 - iconst 9 - sconst "Sort by last world change" - iload 0 - iload 1 - iload 2 - iload 3 - iload 4 - iload 5 - iload 6 - iload 7 - iload 8 - iload 9 - iload 10 - iload 11 - iload 12 - iload 13 - iload 14 - invoke 1659 - iload 6 - iconst 4 - iconst 5 - iconst 4 - sconst "Sort by world" - iload 0 - iload 1 - iload 2 - iload 3 - iload 4 - iload 5 - iload 6 - iload 7 - iload 8 - iload 9 - iload 10 - iload 11 - iload 12 - iload 13 - iload 14 - invoke 1659 - iload 7 - iconst 0 - iconst 1 - iconst 0 - sconst "Legacy sort" - iload 0 - iload 1 - iload 2 - iload 3 - iload 4 - iload 5 - iload 6 - iload 7 - iload 8 - iload 9 - iload 10 - iload 11 - iload 12 - iload 13 - iload 14 - invoke 1659 - 3644 - get_varc_int 185 - switch - 1: LABEL109 - 2: LABEL112 - 3: LABEL115 - 4: LABEL184 - 5: LABEL212 - 6: LABEL118 - 7: LABEL148 - 8: LABEL178 - 9: LABEL181 - jump LABEL239 -LABEL109: - iconst 0 - 3645 - jump LABEL239 -LABEL112: - iconst 1 - 3646 - jump LABEL239 -LABEL115: - iconst 0 - 3646 - jump LABEL239 -LABEL118: - iconst 1 - 3657 - get_varc_int 206 - switch - 3: LABEL125 - 4: LABEL128 - 5: LABEL135 - 8: LABEL142 - 9: LABEL145 - iconst 1 - 3646 - jump LABEL147 -LABEL125: - iconst 0 - 3646 - jump LABEL147 -LABEL128: - iconst 1 - 3652 - iconst 1 - 3647 - iconst 1 - 3646 - jump LABEL147 -LABEL135: - iconst 1 - 3652 - iconst 0 - 3647 - iconst 1 - 3646 - jump LABEL147 -LABEL142: - iconst 1 - 3648 - jump LABEL147 -LABEL145: - iconst 0 - 3648 -LABEL147: - jump LABEL239 -LABEL148: - iconst 0 - 3657 - get_varc_int 206 - switch - 3: LABEL155 - 4: LABEL158 - 5: LABEL165 - 8: LABEL172 - 9: LABEL175 - iconst 1 - 3646 - jump LABEL177 -LABEL155: - iconst 0 - 3646 - jump LABEL177 -LABEL158: - iconst 1 - 3652 - iconst 1 - 3647 - iconst 1 - 3646 - jump LABEL177 -LABEL165: - iconst 1 - 3652 - iconst 0 - 3647 - iconst 1 - 3646 - jump LABEL177 -LABEL172: - iconst 1 - 3648 - jump LABEL177 -LABEL175: - iconst 0 - 3648 -LABEL177: - jump LABEL239 -LABEL178: - iconst 1 - 3648 - jump LABEL239 -LABEL181: - iconst 0 - 3648 - jump LABEL239 -LABEL184: - iconst 1 - 3652 - iconst 1 - 3647 - get_varc_int 206 - switch - 3: LABEL193 - 6: LABEL196 - 7: LABEL201 - 8: LABEL206 - 9: LABEL209 - iconst 1 - 3646 - jump LABEL211 -LABEL193: - iconst 0 - 3646 - jump LABEL211 -LABEL196: - iconst 1 - 3657 - iconst 1 - 3646 - jump LABEL211 -LABEL201: - iconst 0 - 3657 - iconst 1 - 3646 - jump LABEL211 -LABEL206: - iconst 1 - 3648 - jump LABEL211 -LABEL209: - iconst 0 - 3648 -LABEL211: - jump LABEL239 -LABEL212: - iconst 1 - 3652 - iconst 0 - 3647 - get_varc_int 206 - switch - 3: LABEL221 - 6: LABEL224 - 7: LABEL229 - 8: LABEL234 - 9: LABEL237 - iconst 1 - 3646 - jump LABEL239 -LABEL221: - iconst 0 - 3646 - jump LABEL239 -LABEL224: - iconst 1 - 3657 - iconst 1 - 3646 - jump LABEL239 -LABEL229: - iconst 0 - 3657 - iconst 1 - 3646 - jump LABEL239 -LABEL234: - iconst 1 - 3648 - jump LABEL239 -LABEL237: - iconst 0 - 3648 -LABEL239: - 3655 - iload 8 - cc_deleteall - clan_getchatcount - istore 15 - get_varbit 6363 - iconst 1 - if_icmpeq LABEL248 - jump LABEL296 -LABEL248: - iload 15 - iconst 0 - if_icmpgt LABEL252 - jump LABEL253 -LABEL252: - clan_leavechat -LABEL253: - iconst 0 - istore 15 - iconst 0 - iload 2 - if_sethide - iconst 1 - iload 9 - if_sethide - iload 11 - invoke 2067 - pop_int - iconst -1 - sconst "" - iload 11 - if_setonmouserepeat - iconst -1 - sconst "" - iload 11 - if_setonmouseleave - iload 13 - invoke 2067 - pop_int - iconst -1 - sconst "" - iload 13 - if_setonmouserepeat - iconst -1 - sconst "" - iload 13 - if_setonmouseleave - sconst "" - sconst "---" - sconst "" - join_string 3 - iload 12 - if_settext - iload 12 - if_clearops - iconst -1 - sconst "" - iload 12 - if_setonop - jump LABEL341 -LABEL296: - iconst 1 - iload 2 - if_sethide - iconst 0 - iload 9 - if_sethide - iload 11 - invoke 486 - pop_int - iconst 94 - iconst -2147483645 - sconst "I" - iload 11 - if_setonmouserepeat - iconst 92 - iconst -2147483645 - sconst "I" - iload 11 - if_setonmouseleave - iload 13 - invoke 486 - pop_int - iconst 94 - iconst -2147483645 - sconst "I" - iload 13 - if_setonmouserepeat - iconst 92 - iconst -2147483645 - sconst "I" - iload 13 - if_setonmouseleave - sconst "Clan Setup" - iload 12 - if_settext - iconst 1 - sconst "Clan Setup" - iload 12 - if_setop - iconst 489 - iconst -2147483644 - iconst 1 - sconst "ii" - iload 12 - if_setonop -LABEL341: - sconst "" - sstore 0 - iconst -1 - istore 16 - iconst -1 - istore 17 - clan_getchatrank - istore 18 - clan_getchatminkick - istore 19 - iload 3 - if_getwidth - istore 20 - iconst 0 - istore 21 - iconst 0 - istore 22 - iconst 15 - istore 23 - invoke 1972 - iconst 1 - if_icmpeq LABEL364 - jump LABEL369 -LABEL364: - iconst 8 - iconst 5 - iload 23 - scale - istore 23 -LABEL369: - iconst 0 - istore 24 -LABEL371: - iload 24 - iload 15 - if_icmplt LABEL375 - jump LABEL572 -LABEL375: - iload 24 - clan_getchatusername - iload 24 - clan_getchatuserworld - iload 24 - clan_getchatuserrank - istore 17 - istore 16 - sstore 0 - iload 8 - iconst 4 - iload 21 - cc_create - iload 21 - iconst 1 - add - istore 21 - iload 20 - iload 23 - iconst 1 - iconst 0 - cc_setsize - iconst 0 - iload 22 - iconst 2 - iconst 0 - cc_setposition - iconst 494 - cc_settextfont - iconst 0 - iconst 1 - iconst 0 - cc_settextalign - sload 0 - cc_settext - iconst 16777215 - cc_setcolour - iconst 0 - cc_settextshadow - iload 8 - iconst 4 - iload 21 - cc_create 1 - iload 21 - iconst 1 - add - istore 21 - iload 20 - iload 23 - iconst 1 - iconst 0 - cc_setsize 1 - iconst 0 - iload 22 - iconst 2 - iconst 0 - cc_setposition 1 - iconst 494 - cc_settextfont 1 - iconst 2 - iconst 1 - iconst 0 - cc_settextalign 1 - sconst "World " - iload 16 - tostring - join_string 2 - cc_settext 1 - iload 16 - map_world - if_icmpeq LABEL447 - jump LABEL450 -LABEL447: - iconst 901389 - cc_setcolour 1 - jump LABEL452 -LABEL450: - iconst 16777060 - cc_setcolour 1 -LABEL452: - iconst 0 - cc_settextshadow 1 - iload 8 - iconst 5 - iload 21 - cc_create 1 - iload 21 - iconst 1 - add - istore 21 - iconst 9 - iconst 9 - iconst 0 - iconst 0 - cc_setsize 1 - iconst 1 - iload 22 - iload 23 - iconst 9 - sub - iconst 2 - div - add - iconst 0 - iconst 0 - cc_setposition 1 - iconst 105 - iconst 100 - iconst 706 - iload 17 - enum - cc_setgraphic 1 - iload 24 - clan_isself - iconst 0 - if_icmpeq LABEL489 - jump LABEL525 -LABEL489: - iload 24 - clan_isfriend - iconst 1 - if_icmpeq LABEL494 - jump LABEL501 -LABEL494: - iconst 9 - sconst "Remove friend" - cc_setop - iconst 9 - sconst "Remove friend" - cc_setop 1 - jump LABEL525 -LABEL501: - iload 24 - clan_isignore - iconst 1 - if_icmpeq LABEL506 - jump LABEL513 -LABEL506: - iconst 10 - sconst "Remove ignore" - cc_setop - iconst 10 - sconst "Remove ignore" - cc_setop 1 - jump LABEL525 -LABEL513: - iconst 7 - sconst "Add friend" - cc_setop - iconst 7 - sconst "Add friend" - cc_setop 1 - iconst 8 - sconst "Add ignore" - cc_setop - iconst 8 - sconst "Add ignore" - cc_setop 1 -LABEL525: - invoke 1942 - iconst 0 - if_icmpeq LABEL529 - jump LABEL543 -LABEL529: - iload 18 - iload 19 - if_icmpge LABEL533 - jump LABEL543 -LABEL533: - iload 18 - iload 17 - if_icmpgt LABEL537 - jump LABEL543 -LABEL537: - iconst 6 - sconst "Kick user" - cc_setop - iconst 6 - sconst "Kick user" - cc_setop 1 -LABEL543: - sconst "" - sload 0 - sconst "" - join_string 3 - cc_setopbase - sconst "" - sload 0 - sconst "" - join_string 3 - cc_setopbase 1 - iconst 214 - sconst "event_opbase" - iconst -2147483644 - sconst "si" - cc_setonop - iconst 214 - sconst "event_opbase" - iconst -2147483644 - sconst "si" - cc_setonop 1 - iload 24 - iconst 1 - add - iload 22 - iload 23 - add - istore 22 - istore 24 - jump LABEL371 -LABEL572: - iload 15 - iconst 1 - if_icmpge LABEL576 - jump LABEL580 -LABEL576: - iload 22 - iconst 5 - add - istore 22 -LABEL580: - iload 10 - if_clearops - get_varbit 6363 - iconst 1 - if_icmpeq LABEL586 - jump LABEL605 -LABEL586: - sconst "" - iload 0 - if_settext - sconst "" - iload 1 - if_settext - sconst "" - sconst "---" - sconst "" - join_string 3 - iload 10 - if_settext - iload 10 - if_clearops - iconst -1 - sconst "" - iload 10 - if_setonop - jump LABEL672 -LABEL605: - iload 15 - iconst 0 - if_icmpgt LABEL609 - jump LABEL653 -LABEL609: - sconst "" - clan_getchatdisplayname - sconst "" - join_string 3 - iload 0 - if_settext - sconst "" - clan_getchatownername - sconst "" - join_string 3 - iload 1 - if_settext - sconst "Leave Chat" - iload 10 - if_settext - get_varbit 5432 - iconst 1 - if_icmpeq LABEL631 - get_varbit 4289 - iconst 0 - if_icmpne LABEL631 - jump LABEL642 -LABEL631: - iconst 6 - sconst "Leave Chat" - iload 10 - if_setop - iconst 194 - iconst -2147483644 - iconst 6 - sconst "ii" - iload 10 - if_setonop - jump LABEL652 -LABEL642: - iconst 1 - sconst "Leave Chat" - iload 10 - if_setop - iconst 194 - iconst -2147483644 - iconst 1 - sconst "ii" - iload 10 - if_setonop -LABEL652: - jump LABEL672 -LABEL653: - sconst "Not in chat" - iload 0 - if_settext - sconst "None" - iload 1 - if_settext - sconst "Join Chat" - iload 10 - if_settext - iconst 1 - sconst "Join Chat" - iload 10 - if_setop - iconst 194 - iconst -2147483644 - iconst 1 - sconst "ii" - iload 10 - if_setonop -LABEL672: - iload 22 - iload 8 - if_getheight - if_icmpgt LABEL677 - jump LABEL687 -LABEL677: - iconst 0 - iload 22 - iload 8 - if_setscrollsize - iload 9 - iload 8 - iload 8 - if_getscrolly - invoke 72 - jump LABEL695 -LABEL687: - iconst 0 - iconst 0 - iload 8 - if_setscrollsize - iload 9 - iload 8 - iconst 0 - invoke 72 -LABEL695: - sconst "clanChatChannelRebuild" - runelite_callback - return diff --git a/runelite-client/src/main/scripts/DeathkeepBuild.hash b/runelite-client/src/main/scripts/DeathkeepBuild.hash deleted file mode 100644 index 18f92dce5c..0000000000 --- a/runelite-client/src/main/scripts/DeathkeepBuild.hash +++ /dev/null @@ -1 +0,0 @@ -15F58F5939D9311F3D76FA2F0F3441B7B0DA1E8EAE23C654948095A7D51E07F0 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/DeathkeepBuild.rs2asm b/runelite-client/src/main/scripts/DeathkeepBuild.rs2asm deleted file mode 100644 index 75ade43db2..0000000000 --- a/runelite-client/src/main/scripts/DeathkeepBuild.rs2asm +++ /dev/null @@ -1,634 +0,0 @@ -.id 1601 -.int_stack_count 4 -.string_stack_count 2 -.int_var_count 14 -.string_var_count 3 -; callback "itemsKeptOnDeath" -; Used by the ItemsKepthOnDeath plugin to edit the interface -; Put a rune pouch in your inventory and it shouldn't have a white outline -; in the Items kept on death screen - sload 1 - iconst 262167 - if_settext - iconst 0 - istore 4 - iconst 0 - istore 5 - iconst -1 - istore 6 - iconst 0 - istore 7 - sconst "" - sstore 2 - iconst 0 - istore 8 - iconst 0 - istore 9 - iconst 0 - istore 10 - iconst 0 - istore 11 - iload 1 - define_array 111 - iconst 0 - istore 12 - iconst 0 - istore 13 - iload 0 - iconst 0 - if_icmpeq LABEL31 - jump LABEL525 -LABEL31: - iconst 93 - iconst 13190 - inv_total - iconst 0 - if_icmpgt LABEL42 - iconst 93 - iconst 13192 - inv_total - iconst 0 - if_icmpgt LABEL42 - jump LABEL44 -LABEL42: - iconst 1 - istore 9 -LABEL44: - iload 10 - iload 1 - if_icmplt LABEL48 - jump LABEL88 -LABEL48: - iconst 584 - iload 11 - inv_getobj - istore 6 - iload 6 - iconst -1 - if_icmpne LABEL56 - jump LABEL85 -LABEL56: - iconst 584 - iload 11 - inv_getnum - istore 7 -LABEL60: - iload 10 - iload 1 - if_icmplt LABEL64 - jump LABEL80 -LABEL64: - iload 7 - iconst 0 - if_icmpgt LABEL68 - jump LABEL80 -LABEL68: - iload 10 - iload 6 - set_array_int - iload 7 - iconst 1 - sub - istore 7 - iload 10 - iconst 1 - add - istore 10 - jump LABEL60 -LABEL80: - iload 11 - iconst 1 - add - istore 11 - jump LABEL87 -LABEL85: - iload 1 - istore 10 -LABEL87: - jump LABEL44 -LABEL88: - iload 4 - iload 1 - if_icmplt LABEL92 - jump LABEL147 -LABEL92: - iconst 262162 - iconst 5 - iload 4 - cc_create - iconst 36 - iconst 32 - iconst 0 - iconst 0 - cc_setsize - iconst 5 - iload 4 - iconst 40 - multiply - add - iconst 25 - iconst 0 - iconst 0 - cc_setposition - iload 4 - get_array_int - istore 6 - iload 6 - iconst -1 - if_icmpne LABEL117 - jump LABEL144 -LABEL117: - iload 6 - iconst 1 - cc_setobject - sconst "" - iload 6 - oc_name - join_string 2 - cc_setopbase - iconst 1 - sconst "Item:" - cc_setop - iconst 1603 - iconst 1 - iconst 1 - iload 6 - oc_name - sconst "1is" - cc_setonop - iconst 1118481 - cc_setgraphicshadow - iconst 1 - cc_setoutline - iload 4 - iconst 1 - add - istore 4 - jump LABEL146 -LABEL144: - iload 1 - istore 4 -LABEL146: - jump LABEL88 -LABEL147: - iconst 0 - istore 4 -LABEL149: - iload 4 - iconst 468 - inv_size - if_icmplt LABEL154 - jump LABEL350 -LABEL154: - iconst 468 - iload 4 - inv_getobj - istore 6 - iload 6 - iconst -1 - if_icmpne LABEL162 - jump LABEL345 -LABEL162: - iconst 262165 - iconst 5 - iload 5 - cc_create - iconst 36 - iconst 32 - iconst 0 - iconst 0 - cc_setsize - iconst 5 - iload 5 - iconst 8 - mod - iconst 38 - multiply - add - iconst 25 - iconst 38 - iload 5 - iconst 8 - div - multiply - add - iconst 0 - iconst 0 - cc_setposition - iload 6 - iconst 468 - iload 4 - inv_getnum - cc_setobject - sconst "" - iload 6 - oc_name - join_string 2 - cc_setopbase - iconst 1 - sconst "Item:" - cc_setop - iconst 1603 - iconst 0 - iconst 468 - iload 4 - inv_getnum - iload 6 - oc_name - sconst "1is" - cc_setonop - iconst 1118481 - cc_setgraphicshadow - iconst 111 - iconst 49 - iconst 879 - iload 6 - oc_uncert - enum - iconst 1 - if_icmpeq LABEL221 - jump LABEL226 -LABEL221: - iconst 2 - cc_setoutline - iconst 1 - istore 8 - jump LABEL228 -LABEL226: - iconst 1 - cc_setoutline -LABEL228: - iload 5 - iconst 1 - add - istore 5 - iload 6 - oc_stackable - iconst 1 - if_icmpeq LABEL237 - jump LABEL345 -LABEL237: - iconst 0 - istore 10 - iconst 0 - istore 13 -LABEL241: - iload 10 - iload 1 - if_icmplt LABEL245 - jump LABEL259 -LABEL245: - iload 10 - get_array_int - iload 6 - if_icmpeq LABEL250 - jump LABEL254 -LABEL250: - iload 13 - iconst 1 - add - istore 13 -LABEL254: - iload 10 - iconst 1 - add - istore 10 - jump LABEL241 -LABEL259: - iconst 2147483647 - iconst 94 - iload 6 - inv_total - sub - iconst 93 - iload 6 - inv_total - sub - iload 13 - add - istore 12 - iconst 0 - iload 12 - sub - istore 12 - iload 12 - iconst 0 - if_icmpgt LABEL279 - jump LABEL345 -LABEL279: - iconst 262165 - iconst 5 - iload 5 - cc_create - iconst 36 - iconst 32 - iconst 0 - iconst 0 - cc_setsize - iconst 5 - iload 5 - iconst 8 - mod - iconst 38 - multiply - add - iconst 25 - iconst 38 - iload 5 - iconst 8 - div - multiply - add - iconst 0 - iconst 0 - cc_setposition - iload 6 - iload 12 - cc_setobject - sconst "" - iload 6 - oc_name - join_string 2 - cc_setopbase - iconst 1 - sconst "Item:" - cc_setop - iconst 1603 - iconst 0 - iload 12 - iload 6 - oc_name - sconst "1is" - cc_setonop - iconst 1118481 - cc_setgraphicshadow - iconst 111 - iconst 49 - iconst 879 - iload 6 - oc_uncert - enum - iconst 1 - if_icmpeq LABEL334 - jump LABEL339 -LABEL334: - iconst 2 - cc_setoutline - iconst 1 - istore 8 - jump LABEL341 -LABEL339: - iconst 1 - cc_setoutline -LABEL341: - iload 5 - iconst 1 - add - istore 5 -LABEL345: - iload 4 - iconst 1 - add - istore 4 - jump LABEL149 -LABEL350: - sconst "The normal amount of items kept is " - sconst "three" - sconst "." - sconst "
" - sconst "
" - join_string 5 - sstore 2 - iload 3 - iconst 1 - if_icmpeq LABEL361 - jump LABEL371 -LABEL361: - sload 2 - sconst "You're an " - sconst "" - sconst "Ultimate Iron Man" - sconst "" - sconst ", so you will always keep zero items." - join_string 5 - append - sstore 2 - jump LABEL434 -LABEL371: - iload 1 - iconst 0 - if_icmpeq LABEL375 - jump LABEL387 -LABEL375: - sload 2 - sconst "You're marked with a " - sconst "" - sconst "PK skull" - sconst "" - sconst ". This reduces the items you keep from " - sconst "three" - sconst " to zero!" - join_string 7 - append - sstore 2 - jump LABEL434 -LABEL387: - iload 1 - iconst 1 - if_icmpeq LABEL391 - jump LABEL410 -LABEL391: - sload 2 - sconst "You're marked with a " - sconst "" - sconst "PK skull" - sconst "" - sconst ". This reduces the items you keep from " - sconst "three" - sconst " to zero!" - sconst "
" - sconst "
" - sconst "However, you also have the " - sconst "" - sconst "Protect Items" - sconst "" - sconst " prayer active, which saves you one extra item!" - join_string 14 - append - sstore 2 - jump LABEL434 -LABEL410: - iload 1 - iconst 3 - if_icmpeq LABEL414 - jump LABEL419 -LABEL414: - sload 2 - sconst "You have no factors affecting the items you keep." - append - sstore 2 - jump LABEL434 -LABEL419: - iload 1 - iconst 3 - iconst 1 - add - if_icmpeq LABEL425 - jump LABEL434 -LABEL425: - sload 2 - sconst "You have the " - sconst "" - sconst "Protect Items" - sconst "" - sconst " prayer active, which saves you one extra item!" - join_string 5 - append - sstore 2 -LABEL434: - iload 8 - iconst 1 - if_icmpeq LABEL441 - iload 9 - iconst 1 - if_icmpeq LABEL441 - jump LABEL492 -LABEL441: - iload 8 - iconst 1 - if_icmpeq LABEL445 - jump LABEL466 -LABEL445: - iload 9 - iconst 1 - if_icmpeq LABEL449 - jump LABEL466 -LABEL449: - sload 2 - sconst "
" - sconst "
" - sconst "Items with a " - sconst "" - sconst "white outline" - sconst "" - sconst " will always be lost." - sconst "
" - sconst "" - sconst "Bonds" - sconst "" - sconst " are always protected." - join_string 12 - append - sstore 2 - jump LABEL492 -LABEL466: - iload 8 - iconst 1 - if_icmpeq LABEL470 - jump LABEL482 -LABEL470: - sload 2 - sconst "
" - sconst "
" - sconst "Items with a " - sconst "" - sconst "white outline" - sconst "" - sconst " will always be lost." - join_string 7 - append - sstore 2 - jump LABEL492 -LABEL482: - sload 2 - sconst "
" - sconst "
" - sconst "" - sconst "Bonds" - sconst "" - sconst " are always protected, so are not shown here." - join_string 6 - append - sstore 2 -LABEL492: - sload 2 - iconst 262173 - if_settext - sconst "" - sconst "Max items kept on death :" - sconst "
" - sconst "
" - sconst "" - sconst "~ " - iload 1 - tostring - sconst " ~" - join_string 8 - iconst 262174 - if_settext - iload 2 - iconst 0 - if_icmpgt LABEL511 - jump LABEL518 -LABEL511: - sconst "Items you will keep on death:" - iconst 262161 - if_settext - sconst "Items you will lose on death:" - iconst 262164 - if_settext - jump LABEL524 -LABEL518: - sconst "Items you will keep on death if not skulled:" - iconst 262161 - if_settext - sconst "Items you will lose on death if not skulled:" - iconst 262164 - if_settext -LABEL524: - jump LABEL565 -LABEL525: - iconst 1 - iconst 262165 - if_sethide - iconst 1 - iconst 262162 - if_sethide - iconst 0 - iconst 262175 - if_sethide - sload 0 - iconst 262176 - if_settext - sconst "The normal amount of items kept is " - sconst "three" - sconst "." - sconst "
" - sconst "
" - join_string 5 - sstore 2 - sload 2 - sconst "You're in a " - sconst "" - sconst "safe area" - sconst "" - sconst ". See information to the left for a more detailed description." - join_string 5 - append - sstore 2 - sload 2 - iconst 262173 - if_settext - sconst "" - sconst "Max items kept on death :" - sconst "
" - sconst "
" - sconst "" - sconst "All items!" - join_string 6 - iconst 262174 - if_settext -LABEL565: - sconst "itemsKeptOnDeath" ; push event name - runelite_callback ; invoke callback - return diff --git a/runelite-client/src/main/scripts/GEOffersSetupInit.hash b/runelite-client/src/main/scripts/GEOffersSetupInit.hash deleted file mode 100644 index 689d72d678..0000000000 --- a/runelite-client/src/main/scripts/GEOffersSetupInit.hash +++ /dev/null @@ -1 +0,0 @@ -B370DDEEF61E0F420C1990DDA4FBBEDCEE8324F3750ABAC79B072A27268D887B \ No newline at end of file diff --git a/runelite-client/src/main/scripts/GEOffersSetupInit.rs2asm b/runelite-client/src/main/scripts/GEOffersSetupInit.rs2asm deleted file mode 100644 index e884731804..0000000000 --- a/runelite-client/src/main/scripts/GEOffersSetupInit.rs2asm +++ /dev/null @@ -1,394 +0,0 @@ -.id 779 -.int_stack_count 15 -.string_stack_count 0 -.int_var_count 16 -.string_var_count 1 - get_varbit 4397 - iconst 1 - if_icmpeq LABEL4 - jump LABEL65 -LABEL4: - iload 0 - iload 1 - cc_find - iconst 1 - if_icmpeq LABEL10 - jump LABEL12 -LABEL10: - iconst 1 - cc_sethide -LABEL12: - iload 0 - iload 6 - cc_find - iconst 1 - if_icmpeq LABEL18 - jump LABEL23 -LABEL18: - iconst 0 - cc_settrans - iconst -1 - sconst "" - cc_setontimer -LABEL23: - iload 0 - iload 12 - cc_find - iconst 1 - if_icmpeq LABEL29 - jump LABEL31 -LABEL29: - iconst 1 - cc_sethide -LABEL31: - iload 0 - iload 4 - cc_find - iconst 1 - if_icmpeq LABEL37 - jump LABEL39 -LABEL37: - sconst "Sell offer" - cc_settext -LABEL39: - iload 0 - iload 5 - cc_find - iconst 1 - if_icmpeq LABEL45 - jump LABEL47 -LABEL45: - iconst 1119 - cc_setgraphic -LABEL47: - iload 0 - iload 2 - cc_find - iconst 1 - if_icmpeq LABEL53 - jump LABEL56 -LABEL53: - iconst 1 - sconst "All" - cc_setop -LABEL56: - iload 0 - iload 3 - cc_find - iconst 1 - if_icmpeq LABEL62 - jump LABEL64 -LABEL62: - sconst "All" - cc_settext -LABEL64: - jump LABEL130 -LABEL65: - iload 0 - iload 1 - cc_find - iconst 1 - if_icmpeq LABEL71 - jump LABEL73 -LABEL71: - iconst 0 - cc_sethide -LABEL73: - iload 0 - iload 6 - cc_find - iconst 1 - if_icmpeq LABEL79 - jump LABEL89 -LABEL79: - iconst 100 - cc_settrans - iconst 811 - iconst -2147483645 - iconst -2147483643 - clientclock - iconst 100 - iconst 250 - sconst "Iiiii" - cc_setontimer -LABEL89: - iload 0 - iload 12 - cc_find - iconst 1 - if_icmpeq LABEL95 - jump LABEL97 -LABEL95: - iconst 0 - cc_sethide -LABEL97: - iload 0 - iload 4 - cc_find - iconst 1 - if_icmpeq LABEL103 - jump LABEL105 -LABEL103: - sconst "Buy offer" - cc_settext -LABEL105: - iload 0 - iload 5 - cc_find - iconst 1 - if_icmpeq LABEL111 - jump LABEL113 -LABEL111: - iconst 1118 - cc_setgraphic -LABEL113: - iload 0 - iload 2 - cc_find - iconst 1 - if_icmpeq LABEL119 - jump LABEL122 -LABEL119: - iconst 1 - sconst "+1K" - cc_setop -LABEL122: - iload 0 - iload 3 - cc_find - iconst 1 - if_icmpeq LABEL128 - jump LABEL130 -LABEL128: - sconst "+1K" - cc_settext -LABEL130: - sconst "," - sstore 0 - iconst 0 - istore 15 - get_varp 1151 - iconst -1 - if_icmpne LABEL138 - jump LABEL274 -LABEL138: - iload 0 - iload 7 - cc_find - iconst 1 - if_icmpeq LABEL144 - jump LABEL147 -LABEL144: - get_varp 1151 - get_varbit 4396 - cc_setobject_nonum -LABEL147: - iload 0 - iload 8 - cc_find - iconst 1 - if_icmpeq LABEL153 - jump LABEL156 -LABEL153: - get_varp 1151 - oc_name - cc_settext -LABEL156: - iload 0 - iload 9 - cc_find - iconst 1 - if_icmpeq LABEL162 - jump LABEL166 -LABEL162: - get_varbit 4396 - sload 0 - invoke 46 - cc_settext -LABEL166: - iload 0 - iload 10 - cc_find - iconst 1 - if_icmpeq LABEL172 - jump LABEL185 -LABEL172: - get_varbit 4398 - iconst 1 - if_icmpeq LABEL176 - jump LABEL179 -LABEL176: - sconst "1 coin" - cc_settext - jump LABEL185 -LABEL179: - get_varbit 4398 - sload 0 - invoke 46 - sconst " coins" - join_string 2 - cc_settext -LABEL185: - get_varbit 4396 - iconst 0 - if_icmpgt LABEL189 - jump LABEL211 -LABEL189: - iconst 2147483647 - get_varbit 4396 - div - get_varbit 4398 - if_icmplt LABEL195 - jump LABEL211 -LABEL195: - iload 0 - iload 11 - cc_find - iconst 1 - if_icmpeq LABEL201 - jump LABEL206 -LABEL201: - sconst "" - sconst "Too much money!" - sconst "" - join_string 3 - cc_settext -LABEL206: - iload 0 - iload 14 - iload 13 - invoke 780 - jump LABEL273 -LABEL211: - get_varbit 4396 - get_varbit 4398 - multiply - istore 15 - iload 0 - iload 11 - cc_find - iconst 1 - if_icmpeq LABEL221 - jump LABEL234 -LABEL221: - iload 15 - iconst 1 - if_icmpeq LABEL225 - jump LABEL228 -LABEL225: - sconst "1 coin" - cc_settext - jump LABEL234 -LABEL228: - iload 15 - sload 0 - invoke 46 - sconst " coins" - join_string 2 - cc_settext -LABEL234: - iload 15 - iconst 0 - if_icmpgt LABEL238 - jump LABEL269 -LABEL238: - iload 13 - invoke 208 - pop_int - iconst 772 - iconst -2147483645 - sconst "I" - iload 13 - if_setonmouserepeat - iconst 97 - iconst -2147483645 - sconst "I" - iload 13 - if_setonmouseleave - iconst 489 - iconst -2147483644 - iconst 2 - sconst "ii" - iload 13 - if_setonop - iload 0 - iload 14 - cc_find - iconst 1 - if_icmpeq LABEL263 - jump LABEL268 -LABEL263: - sconst "" - sconst "Confirm" - sconst "" - join_string 3 - cc_settext -LABEL268: - jump LABEL273 -LABEL269: - iload 0 - iload 14 - iload 13 - invoke 780 -LABEL273: - jump LABEL319 -LABEL274: - iload 0 - iload 7 - cc_find - iconst 1 - if_icmpeq LABEL280 - jump LABEL283 -LABEL280: - iconst 6512 - iconst 1 - cc_setobject_nonum -LABEL283: - iload 0 - iload 8 - cc_find - iconst 1 - if_icmpeq LABEL289 - jump LABEL291 -LABEL289: - sconst "Choose an item..." - cc_settext -LABEL291: - iload 0 - iload 9 - cc_find - iconst 1 - if_icmpeq LABEL297 - jump LABEL299 -LABEL297: - sconst "" - cc_settext -LABEL299: - iload 0 - iload 10 - cc_find - iconst 1 - if_icmpeq LABEL305 - jump LABEL307 -LABEL305: - sconst "" - cc_settext -LABEL307: - iload 0 - iload 11 - cc_find - iconst 1 - if_icmpeq LABEL313 - jump LABEL315 -LABEL313: - sconst "" - cc_settext -LABEL315: - iload 0 - iload 14 - iload 13 - invoke 780 -LABEL319: - sconst "geBuilt" ; - runelite_callback ; - return diff --git a/runelite-client/src/main/scripts/QuestListShowProgress.hash b/runelite-client/src/main/scripts/QuestListShowProgress.hash deleted file mode 100644 index c235a4ae9b..0000000000 --- a/runelite-client/src/main/scripts/QuestListShowProgress.hash +++ /dev/null @@ -1 +0,0 @@ -FC7F8B54745582D6DD530D5458E129B67D6B3CFF61BACD4BBE7BC8C40E26F3C6 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/QuestListShowProgress.rs2asm b/runelite-client/src/main/scripts/QuestListShowProgress.rs2asm deleted file mode 100644 index ca43ff61b9..0000000000 --- a/runelite-client/src/main/scripts/QuestListShowProgress.rs2asm +++ /dev/null @@ -1,228 +0,0 @@ -.id 1354 -.int_stack_count 3 -.string_stack_count 0 -.int_var_count 7 -.string_var_count 0 - iconst 0 - istore 3 - iconst 0 - istore 4 - iconst 0 - istore 5 - invoke 1340 - istore 6 -LABEL8: - iload 5 - iload 6 - if_icmplt LABEL12 - jump LABEL64 -LABEL12: - iload 0 - iload 5 - cc_find - iconst 1 - if_icmpeq LABEL18 - jump LABEL59 -LABEL18: - iload 5 - invoke 1357 - istore 3 - iload 5 - invoke 3236 - iconst 1 - if_icmpeq LABEL26 - jump LABEL29 -LABEL26: - iconst 10461087 - istore 4 - jump LABEL45 -LABEL29: - iload 3 - iconst 2 - if_icmpeq LABEL33 - jump LABEL36 -LABEL33: - iconst 901389 - istore 4 - jump LABEL45 -LABEL36: - iload 3 - iconst 0 - if_icmpeq LABEL40 - jump LABEL43 -LABEL40: - iconst 16776960 - istore 4 - jump LABEL45 -LABEL43: - iconst 16711680 - istore 4 -LABEL45: - iload 4 - cc_setcolour - iconst 85 - iconst -2147483645 - iconst -2147483643 - iconst 16777215 - sconst "Iii" - cc_setonmouseover - iconst 85 - iconst -2147483645 - iconst -2147483643 - iload 4 - sconst "Iii" - cc_setonmouseleave -LABEL59: - iload 5 - iconst 1 - add - istore 5 - jump LABEL8 -LABEL64: - iconst 0 - invoke 2245 - istore 6 - istore 5 -LABEL68: - iload 5 - iload 6 - if_icmplt LABEL72 - jump LABEL124 -LABEL72: - iload 1 - iload 5 - cc_find - iconst 1 - if_icmpeq LABEL78 - jump LABEL119 -LABEL78: - iload 5 - invoke 1358 - istore 3 - iload 5 - invoke 3237 - iconst 1 - if_icmpeq LABEL86 - jump LABEL89 -LABEL86: - iconst 10461087 - istore 4 - jump LABEL105 -LABEL89: - iload 3 - iconst 2 - if_icmpeq LABEL93 - jump LABEL96 -LABEL93: - iconst 901389 - istore 4 - jump LABEL105 -LABEL96: - iload 3 - iconst 0 - if_icmpeq LABEL100 - jump LABEL103 -LABEL100: - iconst 16776960 - istore 4 - jump LABEL105 -LABEL103: - iconst 16711680 - istore 4 -LABEL105: - iload 4 - cc_setcolour - iconst 85 - iconst -2147483645 - iconst -2147483643 - iconst 16777215 - sconst "Iii" - cc_setonmouseover - iconst 85 - iconst -2147483645 - iconst -2147483643 - iload 4 - sconst "Iii" - cc_setonmouseleave -LABEL119: - iload 5 - iconst 1 - add - istore 5 - jump LABEL68 -LABEL124: - iconst 0 - invoke 2265 - istore 6 - istore 5 -LABEL128: - iload 5 - iload 6 - if_icmplt LABEL132 - jump LABEL184 -LABEL132: - iload 2 - iload 5 - cc_find - iconst 1 - if_icmpeq LABEL138 - jump LABEL179 -LABEL138: - iload 5 - invoke 1359 - istore 3 - iload 5 - invoke 3238 - iconst 1 - if_icmpeq LABEL146 - jump LABEL149 -LABEL146: - iconst 10461087 - istore 4 - jump LABEL165 -LABEL149: - iload 3 - iconst 2 - if_icmpeq LABEL153 - jump LABEL156 -LABEL153: - iconst 901389 - istore 4 - jump LABEL165 -LABEL156: - iload 3 - iconst 0 - if_icmpeq LABEL160 - jump LABEL163 -LABEL160: - iconst 16776960 - istore 4 - jump LABEL165 -LABEL163: - iconst 16711680 - istore 4 -LABEL165: - iload 4 - cc_setcolour - iconst 85 - iconst -2147483645 - iconst -2147483643 - iconst 16777215 - sconst "Iii" - cc_setonmouseover - iconst 85 - iconst -2147483645 - iconst -2147483643 - iload 4 - sconst "Iii" - cc_setonmouseleave -LABEL179: - iload 5 - iconst 1 - add - istore 5 - jump LABEL128 -LABEL184: - sconst "questProgressUpdated" - runelite_callback - return diff --git a/runelite-client/src/test/java/net/runelite/client/config/ConfigManagerTest.java b/runelite-client/src/test/java/net/runelite/client/config/ConfigManagerTest.java index 2be777d4d4..bc4015dca8 100644 --- a/runelite-client/src/test/java/net/runelite/client/config/ConfigManagerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/config/ConfigManagerTest.java @@ -27,11 +27,14 @@ package net.runelite.client.config; import com.google.inject.Guice; import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; +import java.io.File; import java.time.Instant; import java.util.UUID; import java.util.concurrent.ScheduledExecutorService; import javax.inject.Inject; +import javax.inject.Named; import net.runelite.api.Client; +import net.runelite.client.RuneLite; import net.runelite.client.account.AccountSession; import net.runelite.client.eventbus.EventBus; import org.junit.Assert; @@ -64,6 +67,10 @@ public class ConfigManagerTest @Bind private OpenOSRSConfig openOSRSConfig; + @Bind + @Named("config") + private File config = RuneLite.DEFAULT_CONFIG_FILE; + @Inject ConfigManager manager; diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java index a9b6f2f4c0..c3ce340492 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java @@ -87,7 +87,7 @@ public class PluginManagerTest public void before() throws IOException { Injector injector = Guice.createInjector(Modules - .override(new RuneLiteModule(() -> null, true)) + .override(new RuneLiteModule(() -> null, RuneLite.DEFAULT_CONFIG_FILE)) .with(BoundFieldModule.of(this))); RuneLite.setInjector(injector); @@ -116,7 +116,7 @@ public class PluginManagerTest @Test public void testLoadPlugins() throws Exception { - PluginManager pluginManager = new PluginManager(false, null, null, null, null); + PluginManager pluginManager = new PluginManager(null, null, null, null); pluginManager.setOutdated(true); pluginManager.loadCorePlugins(); Collection plugins = pluginManager.getPlugins(); @@ -127,14 +127,13 @@ public class PluginManagerTest .count(); assertEquals(expected, plugins.size()); - pluginManager = new PluginManager(false, null, null, null, null); + pluginManager = new PluginManager(null, null, null, null); pluginManager.loadCorePlugins(); plugins = pluginManager.getPlugins(); expected = pluginClasses.stream() .map(cl -> (PluginDescriptor) cl.getAnnotation(PluginDescriptor.class)) .filter(Objects::nonNull) - .filter(pd -> !pd.developerPlugin()) .count(); assertEquals(expected, plugins.size()); } @@ -144,9 +143,9 @@ public class PluginManagerTest { List modules = new ArrayList<>(); modules.add(new GraphvizModule()); - modules.add(new RuneLiteModule(() -> null, true)); + modules.add(new RuneLiteModule(() -> null, RuneLite.DEFAULT_CONFIG_FILE)); - PluginManager pluginManager = new PluginManager(true, null, null, null, null); + PluginManager pluginManager = new PluginManager(null, null, null, null); pluginManager.loadCorePlugins(); modules.addAll(pluginManager.getPlugins()); @@ -198,7 +197,7 @@ public class PluginManagerTest public void testEventbusAnnotations() throws PluginInstantiationException { EventBus eventbus = new EventBus(); - PluginManager pluginManager = new PluginManager(true, eventbus, null, null, null) + PluginManager pluginManager = new PluginManager(eventbus, null, null, null) { @Override public boolean isPluginEnabled(Plugin plugin) diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSItemDefinition.java b/runescape-api/src/main/java/net/runelite/rs/api/RSItemDefinition.java index d7551e9944..a3b7e24cb1 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSItemDefinition.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSItemDefinition.java @@ -71,4 +71,13 @@ public interface RSItemDefinition extends ItemDefinition @Import("getModel") RSModel getModel(int quantity); + + @Import("unnotedId") + int getInventoryModel(); + + @Import("recolorTo") + short[] getColorToReplaceWith(); + + @Import("retextureTo") + short[] getTextureToReplaceWith(); }