Merge remote-tracking branch 'runelite/master' into master

This commit is contained in:
Owain van Brakel
2020-10-29 17:16:01 +01:00
33 changed files with 643 additions and 184 deletions

View File

@@ -61,6 +61,7 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
@@ -246,6 +247,7 @@ public class ConfigManager
return str;
}
@Nullable
static String objectToString(Object object)
{
if (object instanceof Color)
@@ -310,7 +312,8 @@ public class ConfigManager
{
return String.valueOf(object);
}
return object.toString();
return object == null ? null : object.toString();
}
public static <T extends Enum<T>> Class<T> getElementType(EnumSet<T> enumSet)

View File

@@ -0,0 +1,32 @@
/*
* Copyright (c) 2020 Jordan <nightfirecat@protonmail.com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.game;
public class AlternateSprites
{
public static final String DISEASE_HEART = "1067-DISEASE.png";
public static final String POISON_HEART = "1067-POISON.png";
public static final String VENOM_HEART = "1067-VENOM.png";
}

View File

@@ -68,8 +68,8 @@ public enum ItemMapping
ITEM_DRAGON_SCIMITAR(DRAGON_SCIMITAR, DRAGON_SCIMITAR_OR),
ITEM_DRAGON_SCIMITAR_ORNAMENT_KIT(DRAGON_SCIMITAR_ORNAMENT_KIT, DRAGON_SCIMITAR_OR),
ITEM_DRAGON_DEFENDER(DRAGON_DEFENDER_ORNAMENT_KIT, DRAGON_DEFENDER_T),
ITEM_DRAGON_PICKAXE(DRAGON_PICKAXE, DRAGON_PICKAXE_12797, DRAGON_PICKAXEOR),
ITEM_DRAGON_PICKAXE_OR(ZALCANO_SHARD, DRAGON_PICKAXEOR),
ITEM_DRAGON_PICKAXE(DRAGON_PICKAXE, DRAGON_PICKAXE_12797, DRAGON_PICKAXE_OR),
ITEM_DRAGON_PICKAXE_OR(ZALCANO_SHARD, DRAGON_PICKAXE_OR),
ITEM_DRAGON_KITESHIELD(DRAGON_KITESHIELD, DRAGON_KITESHIELD_G),
ITEM_DRAGON_KITESHIELD_ORNAMENT_KIT(DRAGON_KITESHIELD_ORNAMENT_KIT, DRAGON_KITESHIELD_G),
ITEM_DRAGON_FULL_HELM(DRAGON_FULL_HELM, DRAGON_FULL_HELM_G),

View File

@@ -51,6 +51,7 @@ public abstract class Overlay implements LayoutableRenderableEntity
private OverlayLayer layer = OverlayLayer.UNDER_WIDGETS;
private final List<OverlayMenuEntry> menuEntries = new ArrayList<>();
private boolean resizable;
private int minimumSize = 32;
private boolean resettable = true;
/**

View File

@@ -74,7 +74,6 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
private static final int BORDER = 5;
private static final int BORDER_TOP = BORDER + 15;
private static final int PADDING = 2;
private static final int MIN_OVERLAY_SIZE = 32;
private static final int OVERLAY_RESIZE_TOLERANCE = 5;
private static final Dimension SNAP_CORNER_SIZE = new Dimension(80, 80);
private static final Color SNAP_CORNER_COLOR = new Color(0, 255, 255, 50);
@@ -557,8 +556,9 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
// center
}
final int widthOverflow = Math.max(0, MIN_OVERLAY_SIZE - width);
final int heightOverflow = Math.max(0, MIN_OVERLAY_SIZE - height);
final int minOverlaySize = currentManagedOverlay.getMinimumSize();
final int widthOverflow = Math.max(0, minOverlaySize - width);
final int heightOverflow = Math.max(0, minOverlaySize - height);
final int dx = x - originalX;
final int dy = y - originalY;
@@ -566,7 +566,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
// dimensions and adjust the x/y position accordingly as needed
if (widthOverflow > 0)
{
width = MIN_OVERLAY_SIZE;
width = minOverlaySize;
if (dx > 0)
{
@@ -575,7 +575,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
}
if (heightOverflow > 0)
{
height = MIN_OVERLAY_SIZE;
height = minOverlaySize;
if (dy > 0)
{

View File

@@ -65,6 +65,9 @@ public class WidgetOverlay extends Overlay
.put(WidgetInfo.GAUNTLET_TIMER_CONTAINER, OverlayPosition.TOP_LEFT)
.put(WidgetInfo.HALLOWED_SEPULCHRE_TIMER_CONTAINER, OverlayPosition.TOP_LEFT)
.put(WidgetInfo.HEALTH_OVERLAY_BAR, OverlayPosition.TOP_CENTER)
.put(WidgetInfo.NIGHTMARE_PILLAR_HEALTH, OverlayPosition.TOP_LEFT)
.put(WidgetInfo.VOLCANIC_MINE_VENTS_INFOBOX_GROUP, OverlayPosition.BOTTOM_RIGHT)
.put(WidgetInfo.VOLCANIC_MINE_STABILITY_INFOBOX_GROUP, OverlayPosition.BOTTOM_LEFT)
.build();
public static Collection<WidgetOverlay> createOverlays(final Client client)

View File

@@ -594,7 +594,7 @@ public class WeaponMap
StyleMap.put(ItemID.MITHRIL_KNIFEP_5657, WeaponStyle.RANGE);
StyleMap.put(ItemID.MITHRIL_KNIFEP_5664, WeaponStyle.RANGE);
StyleMap.put(ItemID.MITHRIL_THROWNAXE, WeaponStyle.RANGE);
StyleMap.put(ItemID.MITH_CROSSBOW, WeaponStyle.RANGE);
StyleMap.put(ItemID.MITHRIL_CROSSBOW, WeaponStyle.RANGE);
StyleMap.put(ItemID.MONKEY_TALISMAN, WeaponStyle.RANGE);
StyleMap.put(ItemID.MORRIGANS_JAVELIN, WeaponStyle.RANGE);
StyleMap.put(ItemID.MORRIGANS_JAVELIN_23619, WeaponStyle.RANGE);

View File

@@ -2413,6 +2413,10 @@
1947,
5607
],
"pumpkin": [
1959,
24979
],
"easter egg": [
1961,
7928,
@@ -2432,7 +2436,11 @@
22519,
22520,
24367,
24426
24426,
24971,
24973,
24994,
24996
],
"empty cup": [
1980,
@@ -6238,6 +6246,10 @@
9179,
9459
],
"mithril crossbow": [
9181,
9461
],
"adamant crossbow": [
9183,
9463
@@ -7251,7 +7263,9 @@
21061,
21063,
24743,
24745
24745,
25069,
25071
],
"graceful cape": [
11852,
@@ -7271,7 +7285,9 @@
21064,
21066,
24746,
24748
24748,
25072,
25074
],
"graceful top": [
11854,
@@ -7291,7 +7307,9 @@
21067,
21069,
24749,
24751
24751,
25075,
25077
],
"graceful legs": [
11856,
@@ -7311,7 +7329,9 @@
21070,
21072,
24752,
24754
24754,
25078,
25080
],
"graceful gloves": [
11858,
@@ -7331,7 +7351,9 @@
21073,
21075,
24755,
24757
24757,
25081,
25083
],
"graceful boots": [
11860,
@@ -7351,7 +7373,9 @@
21076,
21078,
24758,
24760
24760,
25084,
25086
],
"slayer helmet": [
11864,
@@ -9282,6 +9306,10 @@
24365,
24366
],
"twisted adamant trophy": [
24376,
25046
],
"twisted hat": [
24387,
24397,
@@ -9311,7 +9339,7 @@
24439,
24440
],
"twisted relichunter armour set": [
"twisted relic hunter armour set": [
24469,
24472,
24475
@@ -9428,5 +9456,41 @@
"mahogany bed": [
24921,
24925
],
"trailblazer hood": [
25001,
25016,
25028
],
"trailblazer coat": [
25004,
25019,
25031
],
"trailblazer trousers": [
25007,
25022,
25034
],
"trailblazer boots": [
25010,
25025,
25037
],
"trailblazer harpoon": [
25059,
25114
],
"trailblazer pickaxe": [
25063,
25112
],
"trailblazer axe": [
25066,
25110
],
"extradimensional bag": [
25106,
25108
]
}

View File

@@ -1 +1 @@
B840A83E8560C8EB17205E2B98F1D9CD25FBC390562E8A5A437B692EEA6D8F15
7AA081A68C6157F9B74DDB6B04F00B1691113941EED8996A4DEABF643F45EA25

View File

@@ -47,8 +47,19 @@ LABEL23:
get_varbit 8119
iconst 1
if_icmpeq LABEL42
jump LABEL146
jump LABEL155
LABEL42:
invoke 3160
iconst 1
if_icmpeq LABEL46
jump LABEL51
LABEL46:
sconst "<img=22>"
chat_playername
join_string 2
sstore 2
jump LABEL59
LABEL51:
iconst 105
iconst 115
iconst 1894
@@ -57,16 +68,17 @@ LABEL42:
chat_playername
join_string 2
sstore 2
LABEL59:
iload 4
iconst 1
if_icmpeq LABEL54
jump LABEL58
LABEL54:
if_icmpeq LABEL63
jump LABEL67
LABEL63:
sload 2
sconst "<img=19>"
append
sstore 2
LABEL58:
LABEL67:
sload 2
sconst ": "
sload 0
@@ -77,9 +89,9 @@ LABEL58:
sstore 2
iload 2
iconst 80
if_icmplt LABEL70
jump LABEL77
LABEL70:
if_icmplt LABEL79
jump LABEL86
LABEL79:
sload 2
sload 0
sconst "*"
@@ -87,7 +99,7 @@ LABEL70:
join_string 3
append
sstore 2
LABEL77:
LABEL86:
sload 2
iconst 2147483647
iconst 495
@@ -95,9 +107,9 @@ LABEL77:
istore 3
iload 4
iconst 1
if_icmpeq LABEL86
jump LABEL103
LABEL86:
if_icmpeq LABEL95
jump LABEL112
LABEL95:
iconst 60
iconst 5
iload 3
@@ -114,8 +126,8 @@ LABEL86:
iconst 2
iconst 10616871
if_setposition
jump LABEL115
LABEL103:
jump LABEL124
LABEL112:
iconst 0
iconst 30
iconst 0
@@ -128,26 +140,26 @@ LABEL103:
iconst 2
iconst 10616871
if_setposition
LABEL115:
LABEL124:
iload 3
iconst 10616890
if_getwidth
if_icmpgt LABEL120
jump LABEL126
LABEL120:
if_icmpgt LABEL129
jump LABEL135
LABEL129:
iconst 2
iconst 2
iconst 0
iconst 10616890
if_settextalign
jump LABEL131
LABEL126:
jump LABEL140
LABEL135:
iconst 0
iconst 2
iconst 0
iconst 10616890
if_settextalign
LABEL131:
LABEL140:
iconst 10616890
if_clearops
iconst -1
@@ -162,8 +174,19 @@ LABEL131:
sconst ""
iconst 10616890
if_setonop
jump LABEL187
LABEL146:
jump LABEL205
LABEL155:
invoke 3160
iconst 1
if_icmpeq LABEL159
jump LABEL164
LABEL159:
sconst "<img=22>"
sconst " You must set a name before you can chat."
join_string 2
sstore 2
jump LABEL172
LABEL164:
iconst 105
iconst 115
iconst 1894
@@ -172,6 +195,7 @@ LABEL146:
sconst " You must set a name before you can chat."
join_string 2
sstore 2
LABEL172:
iconst 1
iconst 2
iconst 0
@@ -205,7 +229,7 @@ LABEL146:
sconst "ii"
iconst 10616890
if_setonop
LABEL187:
LABEL205:
sload 2
iconst 10616890
if_settext

View File

@@ -1 +1 @@
70481539CCDB751DD4627EE8F4765D6D5BFD331E32E51B73946913C3CE17D942
1CCC672616971AEB7A1E4C00885367CEFC75A873DD22A37BE99652F2DA107653

View File

@@ -487,7 +487,7 @@ LABEL437:
iconst 73
iconst 73
iload 1
iconst 10551305
iconst 10551304
enum
if_hassub
iconst 1
@@ -542,7 +542,7 @@ LABEL481:
iconst 73
iconst 73
iload 1
iconst 10551305
iconst 10551304
enum
istore 18
iconst 0

View File

@@ -1 +1 @@
3444503072AEE70EEB53938C1FDC826A7530B62BB5FAB65402A22BAB08D7B76D
1EDA8CA79506CC62A192A844B88AC924BAD3060D9E32150C43458E135908329B

View File

@@ -11,27 +11,24 @@
get_varbit 5314
iconst 1
if_icmpeq LABEL9
jump LABEL17
jump LABEL14
LABEL9:
iconst 111
iconst 105
iconst 906
iconst 94
iconst 3
inv_getobj
enum
inv_getobj
invoke 3648
istore 1
LABEL17:
LABEL14:
iload 1
iconst 0
if_icmple LABEL21
jump LABEL31
LABEL21:
if_icmple LABEL18
jump LABEL28
LABEL18:
iconst 1 ; What we compare the boolean with
iconst 0 ; Boolean
sconst "drawSpecbarAnyway"
runelite_callback
if_icmpeq LABEL41
if_icmpeq LABEL38
iconst 1
iconst 38862883
if_sethide
@@ -42,57 +39,57 @@ LABEL21:
iconst 38862850
if_setsize
return
LABEL31:
LABEL28:
invoke 1972
iconst 1
if_icmpeq LABEL35
jump LABEL41
LABEL35:
if_icmpeq LABEL32
jump LABEL38
LABEL32:
iconst 190
iconst 16
iconst 0
iconst 0
iconst 38862850
if_setsize
LABEL41:
LABEL38:
iconst 0
istore 2
iconst 38862883
if_gethide
iconst 1
if_icmpeq LABEL48
jump LABEL50
LABEL48:
if_icmpeq LABEL45
jump LABEL47
LABEL45:
iconst 1
istore 2
LABEL50:
LABEL47:
iconst 0
iconst 38862883
if_sethide
get_varp 301
iconst 0
if_icmpgt LABEL57
jump LABEL61
LABEL57:
if_icmpgt LABEL54
jump LABEL58
LABEL54:
iconst 16776960
iconst 38862888
if_setcolour
jump LABEL64
LABEL61:
jump LABEL61
LABEL58:
iconst 16
iconst 38862888
if_setcolour
LABEL64:
LABEL61:
get_varp 300
istore 3
iload 3
iconst 0
if_icmplt LABEL70
jump LABEL72
LABEL70:
if_icmplt LABEL67
jump LABEL69
LABEL67:
iconst 0
istore 3
LABEL72:
LABEL69:
sconst "Special Attack: "
iload 3
iconst 10
@@ -119,18 +116,22 @@ LABEL72:
CONTINUE:
iload 3
iload 1
if_icmpge LABEL89
jump LABEL93
LABEL89:
if_icmpge LABEL86
jump LABEL90
LABEL86:
iconst 3767611
iconst 38862887
if_setcolour
jump LABEL96
LABEL93:
jump LABEL93
LABEL90:
iconst 12907
iconst 38862887
if_setcolour
LABEL96:
LABEL93:
iconst 38862884
iconst 0
invoke 835
pop_int
iconst 94
iconst 3
inv_getobj
@@ -141,11 +142,8 @@ LABEL96:
iload 4
enum
sconst " ("
iconst 111
iconst 105
iconst 906
iload 4
enum
invoke 3648
iconst 10
div
tostring
@@ -154,13 +152,13 @@ LABEL96:
sstore 0
iload 4
switch
22737: LABEL124
22740: LABEL124
22743: LABEL124
22731: LABEL124
22734: LABEL124
jump LABEL132
LABEL124:
22737: LABEL118
22740: LABEL118
22743: LABEL118
22731: LABEL118
22734: LABEL118
jump LABEL126
LABEL118:
iconst 111
iconst 115
iconst 1739
@@ -169,64 +167,61 @@ LABEL124:
sconst " 5-100% "
join_string 2
sstore 0
LABEL132:
LABEL126:
get_varbit 5712
iconst 0
if_icmpeq LABEL136
jump LABEL201
LABEL136:
if_icmpeq LABEL130
jump LABEL192
LABEL130:
iload 4
iconst 11235
if_icmpeq LABEL152
if_icmpeq LABEL146
iload 4
iconst 20408
if_icmpeq LABEL152
if_icmpeq LABEL146
iload 4
iconst 12765
if_icmpeq LABEL152
if_icmpeq LABEL146
iload 4
iconst 12768
if_icmpeq LABEL152
if_icmpeq LABEL146
iload 4
iconst 12767
if_icmpeq LABEL152
jump LABEL185
LABEL152:
if_icmpeq LABEL146
jump LABEL176
LABEL146:
iconst 94
iconst 13
inv_getobj
iconst 11212
if_icmpeq LABEL173
if_icmpeq LABEL167
iconst 94
iconst 13
inv_getobj
iconst 11227
if_icmpeq LABEL173
if_icmpeq LABEL167
iconst 94
iconst 13
inv_getobj
iconst 11228
if_icmpeq LABEL173
if_icmpeq LABEL167
iconst 94
iconst 13
inv_getobj
iconst 11229
if_icmpeq LABEL173
jump LABEL185
LABEL173:
if_icmpeq LABEL167
jump LABEL176
LABEL167:
sconst "Descent of Dragons: Deal a double attack with dragon arrows that inflicts up to 50% more damage (minimum damage of 8 per hit). ("
iconst 111
iconst 105
iconst 906
iload 4
enum
invoke 3648
iconst 10
div
tostring
sconst "%)"
join_string 3
sstore 0
LABEL185:
LABEL176:
iconst 526
iconst -2147483645
iconst -1
@@ -242,11 +237,11 @@ LABEL185:
sconst "I"
iconst 38862883
if_setonmouseleave
jump LABEL205
LABEL201:
jump LABEL196
LABEL192:
iconst -1
sconst ""
iconst 38862883
if_setonmouserepeat
LABEL205:
LABEL196:
return

View File

@@ -122,6 +122,18 @@ public class ConfigManagerTest
TestConfig conf = manager.getConfig(TestConfig.class);
ConfigDescriptor descriptor = manager.getConfigDescriptor(conf);
Assert.assertEquals(1, descriptor.getItems().size());
Assert.assertEquals(2, descriptor.getItems().size());
}
@Test
public void testResetNullDefaultConfig()
{
TestConfig conf = manager.getConfig(TestConfig.class);
ConfigDescriptor descriptor = manager.getConfigDescriptor(conf);
conf.nullDefaultKey("new value");
manager.unsetConfiguration(descriptor.getGroup().value(), "nullDefaultKey");
manager.setDefaultConfiguration(conf, false);
Assert.assertNull(conf.nullDefaultKey());
}
}

View File

@@ -43,4 +43,21 @@ public interface TestConfig extends Config
description = "value"
)
void key(String key);
@ConfigItem(
keyName = "nullDefaultKey",
name = "Key Name",
description = "value"
)
void nullDefaultKey(String key);
@ConfigItem(
keyName = "nullDefaultKey",
name = "Key Name",
description = "value"
)
default String nullDefaultKey()
{
return null;
}
}