Merge remote-tracking branch 'runelite/master'

This commit is contained in:
Owain van Brakel
2020-03-18 13:23:44 +01:00
24 changed files with 1100 additions and 60 deletions

View File

@@ -47,6 +47,11 @@
<module name="AvoidStarImport">
<property name="allowStaticMemberImports" value="true"/>
</module>
<module name="RegexpSinglelineJava">
<property name="format" value="[^\s]\s+$"/>
<property name="message" value="No trailing whitespace"/>
<property name="ignoreComments" value="true"/>
</module>
<module name="WhitespaceAround">
<property name="allowEmptyTypes" value="true"/>
</module>

View File

@@ -127,8 +127,8 @@ public class Experience
private static double getMeleeRangeOrMagicCombatLevelContribution(int attackLevel, int strengthLevel, int magicLevel, int rangeLevel)
{
double melee = 0.325 * (attackLevel + strengthLevel);
double range = 0.325 * (Math.floor(rangeLevel / 2) + rangeLevel);
double magic = 0.325 * (Math.floor(magicLevel / 2) + magicLevel);
double range = 0.325 * (rangeLevel / 2 + rangeLevel);
double magic = 0.325 * (magicLevel / 2 + magicLevel);
return Math.max(melee, Math.max(range, magic));
}
@@ -152,7 +152,7 @@ public class Experience
int defenceLevel, int hitpointsLevel, int magicLevel,
int rangeLevel, int prayerLevel)
{
double base = 0.25 * (defenceLevel + hitpointsLevel + Math.floor(prayerLevel / 2));
double base = 0.25 * (defenceLevel + hitpointsLevel + (prayerLevel / 2));
double typeContribution = getMeleeRangeOrMagicCombatLevelContribution(attackLevel, strengthLevel, magicLevel, rangeLevel);

View File

@@ -270,5 +270,37 @@ public final class ScriptID
*/
@ScriptArguments(integer = 2)
public static final int TOPLEVEL_RESIZE = 909;
/**
* Called when the friends list is updated
* <ul>
* <li> int (WidgetID) Friends list "full container" </li>
* <li> int (WidgetID) Friends list sort by name button </li>
* <li> int (WidgetID) Friends list sort by last world change button </li>
* <li> int (WidgetID) Friends list sort by world button </li>
* <li> int (WidgetID) Friends list legacy sort button </li>
* <li> int (WidgetID) Friends list names container </li>
* <li> int (WidgetID) Friends list scroll bar </li>
* <li> int (WidgetID) Friends list "loading please wait" text </li>
* <li> int (WidgetID) Friends list player previous name holder </li>
* </ul>
*/
@ScriptArguments(integer = 9)
public static final int FRIENDS_UPDATE = 631;
/**
* Called when the ignore list is updated
* <ul>
* <li> int (WidgetID) Ignore list "full container" </li>
* <li> int (WidgetID) Ignore list sort by name button </li>
* <li> int (WidgetID) Ignore list legacy sort button </li>
* <li> int (WidgetID) Ignore list names container </li>
* <li> int (WidgetID) Ignore list scroll bar </li>
* <li> int (WidgetID) Ignore list "loading please wait" text </li>
* <li> int (WidgetID) Ignore list player previous name holder </li>
* </ul>
*/
@ScriptArguments(integer = 7)
public static final int IGNORE_UPDATE = 630;
}

View File

@@ -499,6 +499,34 @@ public enum Varbits
*/
OXYGEN_LEVEL(5811),
/**
* Drift net status
*
* Expected values
* 0 = Unset
* 1 = Set up
* 2 = Caught some fish
* 3 = Full
*/
NORTH_NET_STATUS(5812),
SOUTH_NET_STATUS(5814),
/**
* Drift net catch count
*/
NORTH_NET_CATCH_COUNT(5813),
SOUTH_NET_CATCH_COUNT(5815),
/**
* Drift net collect interface
*
* Expected values:
* 0 = Not open
* 1 = North interface open
* 2 = South interface open
*/
DRIFT_NET_COLLECT(5933),
/**
* Corp beast damage
*/

View File

@@ -249,11 +249,27 @@ public class WidgetID
static class FriendList
{
static final int TITLE = 3;
static final int FULL_CONTAINER = 5;
static final int SORT_BY_NAME_BUTTON = 7;
static final int SORT_BY_LAST_WORLD_CHANGE_BUTTON = 8;
static final int SORT_BY_WORLD_BUTTON = 9;
static final int LEGACY_SORT_BUTTON = 10;
static final int NAMES_CONTAINER = 11;
static final int SCROLL_BAR = 12;
static final int LOADING_TEXT = 13;
static final int PREVIOUS_NAME_HOLDER = 18;
}
static class IgnoreList
{
static final int TITLE = 3;
static final int FULL_CONTAINER = 5;
static final int SORT_BY_NAME_BUTTON = 7;
static final int LEGACY_SORT_BUTTON = 8;
static final int NAMES_CONTAINER = 9;
static final int SCROLL_BAR = 10;
static final int LOADING_TEXT = 11;
static final int PREVIOUS_NAME_HOLDER = 16;
}
static class ClanChat

View File

@@ -123,8 +123,24 @@ public enum WidgetInfo
VOLCANIC_MINE_VENT_C_STATUS(WidgetID.VOLCANIC_MINE_GROUP_ID, WidgetID.VolcanicMine.VENT_C_STATUS),
FRIEND_CHAT_TITLE(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.TITLE),
FRIEND_LIST_FULL_CONTAINER(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.FULL_CONTAINER),
FRIEND_LIST_SORT_BY_NAME_BUTTON(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.SORT_BY_NAME_BUTTON),
FRIEND_LIST_SORT_BY_LAST_WORLD_CHANGE_BUTTON(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.SORT_BY_LAST_WORLD_CHANGE_BUTTON),
FRIEND_LIST_SORT_BY_WORLD_BUTTON(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.SORT_BY_WORLD_BUTTON),
FRIEND_LIST_LEGACY_SORT_BUTTON(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.LEGACY_SORT_BUTTON),
FRIEND_LIST_NAMES_CONTAINER(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.NAMES_CONTAINER),
FRIEND_LIST_SCROLL_BAR(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.SCROLL_BAR),
FRIEND_LIST_LOADING_TEXT(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.LOADING_TEXT),
FRIEND_LIST_PREVIOUS_NAME_HOLDER(WidgetID.FRIENDS_LIST_GROUP_ID, WidgetID.FriendList.PREVIOUS_NAME_HOLDER),
IGNORE_TITLE(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.TITLE),
IGNORE_FULL_CONTAINER(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.FULL_CONTAINER),
IGNORE_SORT_BY_NAME_BUTTON(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.SORT_BY_NAME_BUTTON),
IGNORE_LEGACY_SORT_BUTTON(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.LEGACY_SORT_BUTTON),
IGNORE_NAMES_CONTAINER(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.NAMES_CONTAINER),
IGNORE_SCROLL_BAR(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.SCROLL_BAR),
IGNORE_LOADING_TEXT(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.LOADING_TEXT),
IGNORE_PREVIOUS_NAME_HOLDER(WidgetID.IGNORE_LIST_GROUP_ID, WidgetID.IgnoreList.PREVIOUS_NAME_HOLDER),
EXPLORERS_RING_ALCH_INVENTORY(WidgetID.EXPLORERS_RING_ALCH_GROUP_ID, WidgetID.ExplorersRing.INVENTORY),

View File

@@ -35,6 +35,7 @@ import java.awt.Rectangle;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.runelite.api.util.Text;
@Setter
@Builder
@@ -73,6 +74,7 @@ public class LineComponent implements LayoutableRenderableEntity
int y = baseY;
final int leftFullWidth = getLineWidth(left, metrics);
final int rightFullWidth = getLineWidth(right, metrics);
final TextComponent textComponent = new TextComponent();
if (preferredSize.width < leftFullWidth + rightFullWidth)
{
@@ -92,30 +94,24 @@ public class LineComponent implements LayoutableRenderableEntity
for (int i = 0; i < lineCount; i++)
{
String leftText = "";
String rightText = "";
if (i < leftSplitLines.length)
{
leftText = leftSplitLines[i];
final String leftText = leftSplitLines[i];
textComponent.setPosition(new Point(x, y));
textComponent.setText(leftText);
textComponent.setColor(leftColor);
textComponent.render(graphics);
}
if (i < rightSplitLines.length)
{
rightText = rightSplitLines[i];
final String rightText = rightSplitLines[i];
textComponent.setPosition(new Point(x + preferredSize.width - getLineWidth(rightText, metrics), y));
textComponent.setText(rightText);
textComponent.setColor(rightColor);
textComponent.render(graphics);
}
final TextComponent leftLineComponent = new TextComponent();
leftLineComponent.setPosition(new Point(x, y));
leftLineComponent.setText(leftText);
leftLineComponent.setColor(leftColor);
leftLineComponent.render(graphics);
final TextComponent rightLineComponent = new TextComponent();
rightLineComponent.setPosition(new Point(x + leftSmallWidth + rightSmallWidth - getLineWidth(rightText, metrics), y));
rightLineComponent.setText(rightText);
rightLineComponent.setColor(rightColor);
rightLineComponent.render(graphics);
y += metrics.getHeight();
}
@@ -125,17 +121,22 @@ public class LineComponent implements LayoutableRenderableEntity
return dimension;
}
final TextComponent leftLineComponent = new TextComponent();
leftLineComponent.setPosition(new Point(x, y));
leftLineComponent.setText(left);
leftLineComponent.setColor(leftColor);
leftLineComponent.render(graphics);
if (!left.isEmpty())
{
textComponent.setPosition(new Point(x, y));
textComponent.setText(left);
textComponent.setColor(leftColor);
textComponent.render(graphics);
}
if (!right.isEmpty())
{
textComponent.setPosition(new Point(x + preferredSize.width - rightFullWidth, y));
textComponent.setText(right);
textComponent.setColor(rightColor);
textComponent.render(graphics);
}
final TextComponent rightLineComponent = new TextComponent();
rightLineComponent.setPosition(new Point(x + preferredSize.width - getLineWidth(right, metrics), y));
rightLineComponent.setText(right);
rightLineComponent.setColor(rightColor);
rightLineComponent.render(graphics);
y += metrics.getHeight();
final Dimension dimension = new Dimension(preferredSize.width, y - baseY);
@@ -146,7 +147,7 @@ public class LineComponent implements LayoutableRenderableEntity
private static int getLineWidth(final String line, final FontMetrics metrics)
{
return metrics.stringWidth(TextComponent.textWithoutColTags(line));
return metrics.stringWidth(Text.removeTags(line));
}
private static String[] lineBreakText(String text, int maxWidth, FontMetrics metrics)

View File

@@ -167,8 +167,14 @@ public class PanelComponent implements LayoutableRenderableEntity
}
// Remove last child gap
if (orientation == ComponentOrientation.HORIZONTAL)
{
totalWidth -= gap.x;
}
else // VERTICAL
{
totalHeight -= gap.y;
}
// Cache children bounds
childDimensions.setSize(totalWidth, totalHeight);

View File

@@ -35,6 +35,7 @@ import java.awt.Shape;
import java.awt.font.GlyphVector;
import java.util.regex.Pattern;
import lombok.Setter;
import net.runelite.api.util.Text;
import net.runelite.client.ui.overlay.RenderableEntity;
@Setter
@@ -42,32 +43,26 @@ public class TextComponent implements RenderableEntity
{
private static final String COL_TAG_REGEX = "(<col=([0-9a-fA-F]){2,6}>)";
private static final Pattern COL_TAG_PATTERN_W_LOOKAHEAD = Pattern.compile("(?=" + COL_TAG_REGEX + ")");
private static final Pattern COL_TAG_PATTERN = Pattern.compile(COL_TAG_REGEX);
private String text;
private Point position = new Point();
private Color color = Color.WHITE;
private Color borderColor = Color.BLACK;
public static String textWithoutColTags(String text)
{
return COL_TAG_PATTERN.matcher(text).replaceAll("");
}
@Override
public Dimension render(Graphics2D graphics)
{
final FontMetrics fontMetrics = graphics.getFontMetrics();
if (COL_TAG_PATTERN.matcher(text).find())
if (COL_TAG_PATTERN_W_LOOKAHEAD.matcher(text).find())
{
final String[] parts = COL_TAG_PATTERN_W_LOOKAHEAD.split(text);
int x = position.x;
for (String textSplitOnCol : parts)
{
final String textWithoutCol = textWithoutColTags(textSplitOnCol);
final String colColor = textSplitOnCol.substring(textSplitOnCol.indexOf('=') + 1, textSplitOnCol.indexOf('>'));
final String textWithoutCol = Text.removeTags(textSplitOnCol);
final String colColor = textSplitOnCol.substring(textSplitOnCol.indexOf("=") + 1, textSplitOnCol.indexOf(">"));
renderText(graphics, x, position.y, textWithoutCol, Color.decode("#" + colColor), borderColor);

View File

@@ -34,10 +34,9 @@ import java.awt.Rectangle;
import java.util.regex.Pattern;
import lombok.Setter;
import net.runelite.api.IndexedSprite;
import net.runelite.client.ui.overlay.RenderableEntity;
@Setter
public class TooltipComponent implements RenderableEntity
public class TooltipComponent implements LayoutableRenderableEntity
{
private static final Pattern BR = Pattern.compile("</br>");
private static final int OFFSET = 4;
@@ -225,4 +224,21 @@ public class TooltipComponent implements RenderableEntity
}
}
}
@Override
public Rectangle getBounds()
{
return null;
}
@Override
public void setPreferredLocation(Point position)
{
this.position = position;
}
@Override
public void setPreferredSize(Dimension dimension)
{
}
}

View File

@@ -39,6 +39,7 @@ import javax.annotation.Nullable;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import net.runelite.api.util.Text;
import net.runelite.client.ui.overlay.components.ComponentConstants;
import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity;
import net.runelite.client.ui.overlay.components.TextComponent;
@@ -255,7 +256,7 @@ public class TableComponent implements LayoutableRenderableEntity
private static int getTextWidth(final FontMetrics metrics, final String cell)
{
return metrics.stringWidth(TextComponent.textWithoutColTags(cell));
return metrics.stringWidth(Text.removeTags(cell));
}
private static String[] lineBreakText(final String text, final int maxWidth, final FontMetrics metrics)

View File

@@ -24,12 +24,22 @@
*/
package net.runelite.client.ui.overlay.tooltip;
import lombok.AllArgsConstructor;
import lombok.Data;
import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity;
@Data
@AllArgsConstructor
public class Tooltip
{
private final String text;
private String text;
private LayoutableRenderableEntity component;
public Tooltip(final String text)
{
this.text = text;
}
public Tooltip(final LayoutableRenderableEntity component)
{
this.component = component;
}
}

View File

@@ -38,6 +38,7 @@ import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity;
import net.runelite.client.ui.overlay.components.TooltipComponent;
@Singleton
@@ -96,13 +97,23 @@ public class TooltipOverlay extends Overlay
final Rectangle newBounds = new Rectangle(tooltipX, tooltipY, 0, 0);
for (Tooltip tooltip : tooltips)
{
final LayoutableRenderableEntity entity;
if (tooltip.getComponent() != null)
{
entity = tooltip.getComponent();
}
else
{
final TooltipComponent tooltipComponent = new TooltipComponent();
tooltipComponent.setModIcons(client.getModIcons());
tooltipComponent.setText(tooltip.getText());
tooltipComponent.setPosition(new Point(tooltipX, tooltipY + newBounds.height));
entity = tooltipComponent;
}
final Dimension dimension = tooltipComponent.render(graphics);
entity.setPreferredLocation(new Point(tooltipX, tooltipY + newBounds.height));
final Dimension dimension = entity.render(graphics);
// Create incremental tooltip newBounds
newBounds.height += dimension.height + PADDING;

View File

@@ -0,0 +1 @@
6DC2945220E60445B7857ECFB97908E0B28FF0E96E533BB8DC8293DC68A986C2

View File

@@ -0,0 +1,571 @@
.id 125
.int_stack_count 9
.string_stack_count 0
.int_var_count 16
.string_var_count 2
; callback "friend_cc_settext"
; Fired just before the client pops the name off the stack
; Modified by the friendnotes plugin to show the icon
; callback "friend_cc_setposition"
; Fired just before the client sets the position of "friend changed their name" icon
; Modified by the friendnotes plugin to offset the name changed icon
iload 1
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
invoke 1669
iload 2
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
invoke 1669
iload 3
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
invoke 1669
iload 4
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
invoke 1669
iload 5
cc_deleteall
iconst 0
istore 9
iconst 0
istore 10
sconst ""
sstore 0
sconst ""
sstore 1
iconst 0
istore 11
iconst 0
istore 12
iconst 15
istore 13
iconst -1
istore 14
friend_count
istore 15
iload 15
iconst -2
if_icmple LABEL84
jump LABEL105
LABEL84:
get_varbit 8119
iconst 1
if_icmpeq LABEL88
jump LABEL95
LABEL88:
sconst "Loading friends list"
sconst "<br>"
sconst "Please wait..."
join_string 3
iload 7
if_settext
jump LABEL101
LABEL95:
sconst "You must set a name"
sconst "<br>"
sconst "before using this."
join_string 3
iload 7
if_settext
LABEL101:
iconst 1
iload 0
if_sethide
jump LABEL468
LABEL105:
iload 15
iconst -1
if_icmpeq LABEL109
jump LABEL130
LABEL109:
get_varbit 8119
iconst 1
if_icmpeq LABEL113
jump LABEL120
LABEL113:
sconst "Loading friends list"
sconst "<br>"
sconst "Please wait..."
join_string 3
iload 7
if_settext
jump LABEL126
LABEL120:
sconst "You must set a name"
sconst "<br>"
sconst "before using this."
join_string 3
iload 7
if_settext
LABEL126:
iconst 1
iload 0
if_sethide
jump LABEL468
LABEL130:
invoke 1972
istore 14
iload 14
iconst 1
if_icmpeq LABEL136
jump LABEL141
LABEL136:
iconst 8
iconst 5
iload 13
scale
istore 13
LABEL141:
sconst ""
iload 7
if_settext
iconst 0
iload 0
if_sethide
3628
get_varc_int 183
switch
1: LABEL151
2: LABEL154
3: LABEL159
4: LABEL174
5: LABEL194
8: LABEL164
9: LABEL169
jump LABEL213
LABEL151:
iconst 0
3629
jump LABEL213
LABEL154:
iconst 1
3633
iconst 1
3630
jump LABEL213
LABEL159:
iconst 1
3633
iconst 0
3630
jump LABEL213
LABEL164:
iconst 1
3633
iconst 1
3632
jump LABEL213
LABEL169:
iconst 1
3633
iconst 0
3632
jump LABEL213
LABEL174:
iconst 1
3633
iconst 1
3636
iconst 1
3631
get_varc_int 205
switch
3: LABEL185
8: LABEL188
9: LABEL191
iconst 1
3630
jump LABEL193
LABEL185:
iconst 0
3630
jump LABEL193
LABEL188:
iconst 1
3632
jump LABEL193
LABEL191:
iconst 0
3632
LABEL193:
jump LABEL213
LABEL194:
iconst 1
3633
iconst 1
3636
iconst 0
3631
get_varc_int 205
switch
3: LABEL205
8: LABEL208
9: LABEL211
iconst 1
3630
jump LABEL213
LABEL205:
iconst 0
3630
jump LABEL213
LABEL208:
iconst 1
3632
jump LABEL213
LABEL211:
iconst 0
3632
LABEL213:
3639
LABEL214:
iload 9
iload 15
if_icmplt LABEL218
jump LABEL460
LABEL218:
iload 9
friend_getname
sstore 1
sstore 0
iload 5
iconst 4
iload 10
cc_create
iload 10
iconst 1
add
istore 10
sload 0
sconst "friend_cc_settext"
runelite_callback
cc_settext
iconst 0
iload 13
iconst 1
iconst 0
cc_setsize
iconst 0
iload 12
iconst 1
iconst 0
cc_setposition
iconst 16777215
cc_setcolour
iconst 495
cc_settextfont
iconst 0
iconst 1
iconst 0
cc_settextalign
iconst 1
cc_settextshadow
sconst "<col=ff9040>"
sload 0
sconst "</col>"
join_string 3
cc_setopbase
iload 9
friend_getworld
istore 11
iload 11
iconst 0
if_icmpne LABEL264
jump LABEL271
LABEL264:
iconst 1
sconst "Message"
cc_setop
iconst 2
sconst ""
cc_setop
jump LABEL277
LABEL271:
iconst 1
sconst ""
cc_setop
iconst 2
sconst "Message"
cc_setop
LABEL277:
iconst 3
sconst "Delete"
cc_setop
iload 5
iconst 5
iload 10
cc_create 1
iload 10
iconst 1
add
istore 10
iconst 14
iconst 14
iconst 0
iconst 0
cc_setsize 1
sload 0
iconst 190
iconst 495
parawidth
iconst 3
add
iload 12
iload 13
iconst 14
sub
iconst 2
div
add
iconst 0
iconst 0
sconst "friend_cc_setposition"
runelite_callback
cc_setposition 1
iconst 1093
cc_setgraphic 1
iconst 3355443
cc_setgraphicshadow 1
sload 1
string_length
iconst 0
if_icmpgt LABEL318
jump LABEL367
LABEL318:
iload 14
iconst 1
if_icmpeq LABEL322
jump LABEL336
LABEL322:
iconst 10
sconst "Reveal previous name"
cc_setop
iconst 126
iconst -2147483644
sconst "event_opbase"
iconst -2147483645
cc_getid
cc_getid 1
sload 1
sload 0
sconst "isIiiss"
cc_setonop
jump LABEL364
LABEL336:
sconst "Previous name:"
sconst "<br>"
sload 1
join_string 3
sstore 1
iconst 526
iconst -2147483645
iconst -2147483643
iload 8
sload 1
iconst 25
iconst 190
sconst "IiIsii"
cc_setonmouserepeat
iconst 40
iload 8
sconst "I"
cc_setonmouseleave
iconst 126
iconst -2147483644
sconst "event_opbase"
iconst -1
iconst -1
iconst -1
sconst "null"
sconst "null"
sconst "isIiiss"
cc_setonop
LABEL364:
iconst 0
cc_sethide 1
jump LABEL383
LABEL367:
iconst 40
iload 8
sconst "I"
cc_setonmouseover
iconst 1
cc_sethide 1
iconst 126
iconst -2147483644
sconst "event_opbase"
iconst -1
iconst -1
iconst -1
sconst "null"
sconst "null"
sconst "isIiiss"
cc_setonop
LABEL383:
iload 5
iconst 4
iload 10
cc_create
iload 10
iconst 1
add
istore 10
iconst 0
iload 13
iconst 1
iconst 0
cc_setsize
iconst 0
iload 12
iconst 1
iconst 0
cc_setposition
iconst 495
cc_settextfont
iconst 2
iconst 1
iconst 0
cc_settextalign
iconst 1
cc_settextshadow
iload 11
iconst 0
if_icmpeq LABEL413
jump LABEL418
LABEL413:
sconst "Offline"
cc_settext
iconst 16711680
cc_setcolour
jump LABEL451
LABEL418:
iload 11
map_world
if_icmpeq LABEL422
jump LABEL430
LABEL422:
sconst "World "
iload 11
tostring
join_string 2
cc_settext
iconst 901389
cc_setcolour
jump LABEL451
LABEL430:
iload 11
iconst 5000
if_icmpgt LABEL434
jump LABEL443
LABEL434:
sconst "<col=ffff00>"
sconst "Classic "
iload 11
iconst 5000
sub
tostring
join_string 3
cc_settext
jump LABEL449
LABEL443:
sconst "<col=ffff00>"
sconst "World "
iload 11
tostring
join_string 3
cc_settext
LABEL449:
iconst 16776960
cc_setcolour
LABEL451:
iload 9
iconst 1
add
iload 12
iload 13
add
istore 12
istore 9
jump LABEL214
LABEL460:
iload 15
iconst 1
if_icmpge LABEL464
jump LABEL468
LABEL464:
iload 12
iconst 5
add
istore 12
LABEL468:
iload 12
iload 5
if_getheight
if_icmpgt LABEL473
jump LABEL482
LABEL473:
iconst 0
iload 12
iload 5
if_setscrollsize
iload 6
iload 5
get_varc_int 9
invoke 72
jump LABEL490
LABEL482:
iconst 0
iconst 0
iload 5
if_setscrollsize
iload 6
iload 5
iconst 0
invoke 72
LABEL490:
return

View File

@@ -0,0 +1 @@
256A38E234D9D44532175F4C98AA923327EE050E23D122573426D94FBF15936E

View File

@@ -0,0 +1,330 @@
.id 129
.int_stack_count 7
.string_stack_count 0
.int_var_count 13
.string_var_count 2
; callback "ignore_cc_settext"
; Fired just before the client pops the name off the stack
; Modified by the friendnotes plugin to show the icon
; callback "ignore_cc_setposition"
; Fired just before the client sets the position of "ignored person changed their name" icon
; Modified by the friendnotes plugin to offset the name changed icon
iload 1
iconst 2
iconst 3
sconst "Sort by name"
iload 0
iload 1
iload 2
iload 3
iload 4
iload 5
iload 6
invoke 1653
iload 2
iconst 0
iconst 1
sconst "Legacy sort"
iload 0
iload 1
iload 2
iload 3
iload 4
iload 5
iload 6
invoke 1653
iload 3
cc_deleteall
iconst 0
istore 7
iconst 0
istore 8
sconst ""
sstore 0
sconst ""
sstore 1
iconst 0
istore 9
iconst 15
istore 10
iconst -1
istore 11
ignore_count
istore 12
iload 12
iconst 0
if_icmplt LABEL46
jump LABEL67
LABEL46:
get_varbit 8119
iconst 1
if_icmpeq LABEL50
jump LABEL57
LABEL50:
sconst "Loading ignore list"
sconst "<br>"
sconst "Please wait..."
join_string 3
iload 5
if_settext
jump LABEL63
LABEL57:
sconst "You must set a name"
sconst "<br>"
sconst "before using this."
join_string 3
iload 5
if_settext
LABEL63:
iconst 1
iload 0
if_sethide
jump LABEL263
LABEL67:
invoke 1972
istore 11
iload 11
iconst 1
if_icmpeq LABEL73
jump LABEL78
LABEL73:
iconst 8
iconst 5
iload 10
scale
istore 10
LABEL78:
sconst ""
iload 5
if_settext
iconst 0
iload 0
if_sethide
3640
get_varc_int 184
switch
1: LABEL88
2: LABEL91
3: LABEL94
jump LABEL96
LABEL88:
iconst 0
3641
jump LABEL96
LABEL91:
iconst 1
3642
jump LABEL96
LABEL94:
iconst 0
3642
LABEL96:
3643
LABEL97:
iload 7
iload 12
if_icmplt LABEL101
jump LABEL255
LABEL101:
iload 7
ignore_getname
sstore 1
sstore 0
iload 3
iconst 4
iload 8
cc_create
iload 8
iconst 1
add
istore 8
sload 0
sconst "ignore_cc_settext"
runelite_callback
cc_settext
iconst 0
iload 10
iconst 1
iconst 0
cc_setsize
iconst 0
iload 9
iconst 1
iconst 0
cc_setposition
iconst 16777215
cc_setcolour
iconst 495
cc_settextfont
iconst 0
iconst 1
iconst 0
cc_settextalign
iconst 1
cc_settextshadow
sconst "<col=ff9040>"
sload 0
sconst "</col>"
join_string 3
cc_setopbase
iconst 1
sconst "Delete"
cc_setop
iload 3
iconst 5
iload 8
cc_create 1
iload 8
iconst 1
add
istore 8
iconst 14
iconst 14
iconst 0
iconst 0
cc_setsize 1
sload 0
iconst 190
iconst 495
parawidth
iconst 3
add
iload 9
iload 10
iconst 14
sub
iconst 2
div
add
iconst 0
iconst 0
sconst "ignore_cc_setposition"
runelite_callback
cc_setposition 1
iconst 1093
cc_setgraphic 1
iconst 3355443
cc_setgraphicshadow 1
sload 1
string_length
iconst 0
if_icmpgt LABEL181
jump LABEL230
LABEL181:
iload 11
iconst 1
if_icmpeq LABEL185
jump LABEL199
LABEL185:
iconst 10
sconst "Reveal previous name"
cc_setop
iconst 130
iconst -2147483644
sconst "event_opbase"
iconst -2147483645
cc_getid
cc_getid 1
sload 1
sload 0
sconst "isIiiss"
cc_setonop
jump LABEL227
LABEL199:
sconst "Previous name:"
sconst "<br>"
sload 1
join_string 3
sstore 1
iconst 526
iconst -2147483645
iconst -2147483643
iload 6
sload 1
iconst 25
iconst 190
sconst "IiIsii"
cc_setonmouserepeat
iconst 40
iload 6
sconst "I"
cc_setonmouseleave
iconst 130
iconst -2147483644
sconst "event_opbase"
iconst -1
iconst -1
iconst -1
sconst "null"
sconst "null"
sconst "isIiiss"
cc_setonop
LABEL227:
iconst 0
cc_sethide 1
jump LABEL246
LABEL230:
iconst 40
iload 6
sconst "I"
cc_setonmouseover
iconst 1
cc_sethide 1
iconst 130
iconst -2147483644
sconst "event_opbase"
iconst -1
iconst -1
iconst -1
sconst "null"
sconst "null"
sconst "isIiiss"
cc_setonop
LABEL246:
iload 7
iconst 1
add
iload 9
iload 10
add
istore 9
istore 7
jump LABEL97
LABEL255:
iload 12
iconst 1
if_icmpge LABEL259
jump LABEL263
LABEL259:
iload 9
iconst 5
add
istore 9
LABEL263:
iload 9
iload 3
if_getheight
if_icmpgt LABEL268
jump LABEL278
LABEL268:
iconst 0
iload 9
iload 3
if_setscrollsize
iload 4
iload 3
iload 3
if_getscrolly
invoke 72
jump LABEL286
LABEL278:
iconst 0
iconst 0
iload 3
if_setscrollsize
iload 4
iload 3
iconst 0
invoke 72
LABEL286:
return