Merge remote-tracking branch 'runelite/master'

This commit is contained in:
Owain van Brakel
2020-03-09 22:40:04 +01:00
26 changed files with 181 additions and 2116 deletions

View File

@@ -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();
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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<Integer> worldInfo = parser
.accepts("world")
.withRequiredArg().ofType(Integer.class);
final ArgumentAcceptingOptionSpec<File> configfile = parser.accepts("config", "Use a specified config file")
.withRequiredArg()
.withValuesConvertedBy(new ConfigFileConverter())
.defaultsTo(DEFAULT_CONFIG_FILE);
final ArgumentAcceptingOptionSpec<ClientUpdateCheckMode> 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<File>
{
@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<? extends File> valueType()
{
return File.class;
}
@Override
public String valuePattern()
{
return null;
}
}
}

View File

@@ -62,18 +62,18 @@ public class RuneLiteModule extends AbstractModule
private static final int MAX_OKHTTP_CACHE_SIZE = 20 * 1024 * 1024; // 20mb
private final Supplier<Applet> clientLoader;
private final boolean developerMode;
private final File config;
public RuneLiteModule(final Supplier<Applet> clientLoader, boolean developerMode)
public RuneLiteModule(final Supplier<Applet> 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))

View File

@@ -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<String, String> 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);
}
}

View File

@@ -31,7 +31,7 @@ import lombok.Value;
/**
* Represents Discord Rich Presence RPC data
*/
@Builder
@Builder(toBuilder = true)
@Value
public class DiscordPresence
{

View File

@@ -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<Integer> 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<ItemIcon> 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);
}
}
}

View File

@@ -53,8 +53,6 @@ public @interface PluginDescriptor
*/
boolean hidden() default false;
boolean developerPlugin() default false;
boolean loadWhenOutdated() default false;
PluginType type() default PluginType.UNCATEGORIZED;

View File

@@ -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<GameEventManager> 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<Plugin> pluginClass = (Class<Plugin>) clazz;
graph.addNode(pluginClass);
}

View File

@@ -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);
}

View File

@@ -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<WidgetOverlay> createOverlays(final Client client)

View File

@@ -1 +0,0 @@
C70BDF62710D9FC0EB6707BD94FC0C4335B428DEDD1B52DD51776F811F32C9CF

View File

@@ -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 "<col=7f7f7f>"
sconst "---"
sconst "</col>"
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 "<col=ff9040>"
sload 0
sconst "</col>"
join_string 3
cc_setopbase
sconst "<col=ff9040>"
sload 0
sconst "</col>"
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 "<col=7f7f7f>"
sconst "---"
sconst "</col>"
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 "<col=ffff64>"
clan_getchatdisplayname
sconst "</col>"
join_string 3
iload 0
if_settext
sconst "<col=ffffff>"
clan_getchatownername
sconst "</col>"
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

View File

@@ -1 +0,0 @@
15F58F5939D9311F3D76FA2F0F3441B7B0DA1E8EAE23C654948095A7D51E07F0

View File

@@ -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 "<col=ff981f>"
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 "<col=ff981f>"
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 "<col=ff981f>"
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 "<br>"
sconst "<br>"
join_string 5
sstore 2
iload 3
iconst 1
if_icmpeq LABEL361
jump LABEL371
LABEL361:
sload 2
sconst "You're an "
sconst "<col=ff3333>"
sconst "Ultimate Iron Man"
sconst "<col=ff981f>"
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 "<col=ff3333>"
sconst "PK skull"
sconst "<col=ff981f>"
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 "<col=ff3333>"
sconst "PK skull"
sconst "<col=ff981f>"
sconst ". This reduces the items you keep from "
sconst "three"
sconst " to zero!"
sconst "<br>"
sconst "<br>"
sconst "However, you also have the "
sconst "<col=ff3333>"
sconst "Protect Items"
sconst "<col=ff981f>"
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 "<col=ff3333>"
sconst "Protect Items"
sconst "<col=ff981f>"
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 "<br>"
sconst "<br>"
sconst "Items with a "
sconst "<col=ffffff>"
sconst "white outline"
sconst "<col=ff981f>"
sconst " will always be lost."
sconst "<br>"
sconst "<col=00ff00>"
sconst "Bonds"
sconst "</col>"
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 "<br>"
sconst "<br>"
sconst "Items with a "
sconst "<col=ffffff>"
sconst "white outline"
sconst "<col=ff981f>"
sconst " will always be lost."
join_string 7
append
sstore 2
jump LABEL492
LABEL482:
sload 2
sconst "<br>"
sconst "<br>"
sconst "<col=00ff00>"
sconst "Bonds"
sconst "</col>"
sconst " are always protected, so are not shown here."
join_string 6
append
sstore 2
LABEL492:
sload 2
iconst 262173
if_settext
sconst "<col=ffcc33>"
sconst "Max items kept on death :"
sconst "<br>"
sconst "<br>"
sconst "<col=ffcc33>"
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 "<br>"
sconst "<br>"
join_string 5
sstore 2
sload 2
sconst "You're in a "
sconst "<col=ff3333>"
sconst "safe area"
sconst "<col=ff981f>"
sconst ". See information to the left for a more detailed description."
join_string 5
append
sstore 2
sload 2
iconst 262173
if_settext
sconst "<col=ffcc33>"
sconst "Max items kept on death :"
sconst "<br>"
sconst "<br>"
sconst "<col=ffcc33>"
sconst "All items!"
join_string 6
iconst 262174
if_settext
LABEL565:
sconst "itemsKeptOnDeath" ; push event name
runelite_callback ; invoke callback
return

View File

@@ -1 +0,0 @@
B370DDEEF61E0F420C1990DDA4FBBEDCEE8324F3750ABAC79B072A27268D887B

View File

@@ -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 "<col=ff0000>"
sconst "Too much money!"
sconst "</col>"
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 "<col=ffffff>"
sconst "Confirm"
sconst "</col>"
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

View File

@@ -1 +0,0 @@
FC7F8B54745582D6DD530D5458E129B67D6B3CFF61BACD4BBE7BC8C40E26F3C6

View File

@@ -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

View File

@@ -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;

View File

@@ -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<Plugin> 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<Module> 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)

View File

@@ -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();
}