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

Nice insider info btw, be nice if you shared it, so-called "open source" client.
This commit is contained in:
ThatGamerBlue
2021-05-28 21:39:25 +01:00
481 changed files with 53410 additions and 51723 deletions

View File

@@ -25,11 +25,11 @@
object ProjectVersions { object ProjectVersions {
const val launcherVersion = "2.2.0" const val launcherVersion = "2.2.0"
const val rlVersion = "1.7.9" const val rlVersion = "1.7.10"
const val openosrsVersion = "4.7.1" const val openosrsVersion = "4.8.0"
const val rsversion = 196 const val rsversion = 196.2
const val cacheversion = 165 const val cacheversion = 165
const val lombokVersion = "1.18.20" const val lombokVersion = "1.18.20"

View File

@@ -69,6 +69,8 @@ public class Instructions
add(GET_VARC_STRING, "get_varc_string"); add(GET_VARC_STRING, "get_varc_string");
add(SET_VARC_STRING, "set_varc_string"); add(SET_VARC_STRING, "set_varc_string");
add(SWITCH, "switch"); add(SWITCH, "switch");
add(GET_VARCLANSETTING, "get_varclansetting");
add(GET_VARCLAN, "get_varclan");
add(CC_CREATE, "cc_create"); add(CC_CREATE, "cc_create");
add(CC_DELETE, "cc_delete"); add(CC_DELETE, "cc_delete");
add(CC_DELETEALL, "cc_deleteall"); add(CC_DELETEALL, "cc_deleteall");
@@ -149,6 +151,8 @@ public class Instructions
add(CC_SETONSUBCHANGE, "cc_setonsubchange"); add(CC_SETONSUBCHANGE, "cc_setonsubchange");
add(CC_SETONSTOCKTRANSMIT, "cc_setonstocktransmit"); add(CC_SETONSTOCKTRANSMIT, "cc_setonstocktransmit");
add(CC_SETONRESIZE, "cc_setonresize"); add(CC_SETONRESIZE, "cc_setonresize");
add(CC_SETONCLANSETTINGSTRANSMIT, "cc_setonclansettingstransmit");
add(CC_SETONCLANCHANNELTRANSMIT, "cc_setonclanchanneltransmit");
add(CC_GETX, "cc_getx"); add(CC_GETX, "cc_getx");
add(CC_GETY, "cc_gety"); add(CC_GETY, "cc_gety");
add(CC_GETWIDTH, "cc_getwidth"); add(CC_GETWIDTH, "cc_getwidth");
@@ -175,10 +179,12 @@ public class Instructions
add(CC_GETOP, "cc_getop"); add(CC_GETOP, "cc_getop");
add(CC_GETOPBASE, "cc_getopbase"); add(CC_GETOPBASE, "cc_getopbase");
add(CC_CALLONRESIZE, "cc_callonresize"); add(CC_CALLONRESIZE, "cc_callonresize");
add(CC_TRIGGEROP, "cc_triggerop");
add(IF_SETPOSITION, "if_setposition"); add(IF_SETPOSITION, "if_setposition");
add(IF_SETSIZE, "if_setsize"); add(IF_SETSIZE, "if_setsize");
add(IF_SETHIDE, "if_sethide"); add(IF_SETHIDE, "if_sethide");
add(IF_SETNOCLICKTHROUGH, "if_setnoclickthrough"); add(IF_SETNOCLICKTHROUGH, "if_setnoclickthrough");
add(IF_SETNOSCROLLTHROUGH, "if_setnoscrollthrough");
add(IF_SETSCROLLPOS, "if_setscrollpos"); add(IF_SETSCROLLPOS, "if_setscrollpos");
add(IF_SETCOLOUR, "if_setcolour"); add(IF_SETCOLOUR, "if_setcolour");
add(IF_SETFILL, "if_setfill"); add(IF_SETFILL, "if_setfill");
@@ -249,6 +255,8 @@ public class Instructions
add(IF_SETONSUBCHANGE, "if_setonsubchange"); add(IF_SETONSUBCHANGE, "if_setonsubchange");
add(IF_SETONSTOCKTRANSMIT, "if_setonstocktransmit"); add(IF_SETONSTOCKTRANSMIT, "if_setonstocktransmit");
add(IF_SETONRESIZE, "if_setonresize"); add(IF_SETONRESIZE, "if_setonresize");
add(IF_SETONCLANSETTINGSTRANSMIT, "if_setonclansettingstransmit");
add(IF_SETONCLANCHANNELTRANSMIT, "if_setonclanchanneltransmit");
add(IF_GETX, "if_getx"); add(IF_GETX, "if_getx");
add(IF_GETY, "if_gety"); add(IF_GETY, "if_gety");
add(IF_GETWIDTH, "if_getwidth"); add(IF_GETWIDTH, "if_getwidth");
@@ -276,6 +284,7 @@ public class Instructions
add(IF_GETOP, "if_getop"); add(IF_GETOP, "if_getop");
add(IF_GETOPBASE, "if_getopbase"); add(IF_GETOPBASE, "if_getopbase");
add(IF_CALLONRESIZE, "if_callonresize"); add(IF_CALLONRESIZE, "if_callonresize");
add(IF_TRIGGEROP, "if_triggerop");
add(MES, "mes"); add(MES, "mes");
add(ANIM, "anim"); add(ANIM, "anim");
add(IF_CLOSE, "if_close"); add(IF_CLOSE, "if_close");
@@ -298,7 +307,6 @@ public class Instructions
add(SETSHOWLOADINGMESSAGES, "setshowloadingmessages"); add(SETSHOWLOADINGMESSAGES, "setshowloadingmessages");
add(SETTAPTODROP, "settaptodrop"); add(SETTAPTODROP, "settaptodrop");
add(GETTAPTODROP, "gettaptodrop"); add(GETTAPTODROP, "gettaptodrop");
add(SETOCULUSORBSPEED, "setoculusorbspeed");
add(GETCANVASSIZE, "getcanvassize"); add(GETCANVASSIZE, "getcanvassize");
add(MOBILE_SETFPS, "mobile_setfps"); add(MOBILE_SETFPS, "mobile_setfps");
add(MOBILE_OPENSTORE, "mobile_openstore"); add(MOBILE_OPENSTORE, "mobile_openstore");
@@ -307,8 +315,7 @@ public class Instructions
add(GETHIDEUSERNAME, "gethideusername"); add(GETHIDEUSERNAME, "gethideusername");
add(SETREMEMBERUSERNAME, "setrememberusername"); add(SETREMEMBERUSERNAME, "setrememberusername");
add(GETREMEMBERUSERNAME, "getrememberusername"); add(GETREMEMBERUSERNAME, "getrememberusername");
add(SETTITLEMUSICENABLED, "settitlemusicenabled"); add(SHOW_IOS_REVIEW, "show_ios_review");
add(GETTITLEMUSICENABLED, "gettitlemusicenabled");
add(SOUND_SYNTH, "sound_synth"); add(SOUND_SYNTH, "sound_synth");
add(SOUND_SONG, "sound_song"); add(SOUND_SONG, "sound_song");
add(SOUND_JINGLE, "sound_jingle"); add(SOUND_JINGLE, "sound_jingle");
@@ -366,6 +373,41 @@ public class Instructions
add(CLAN_GETCHATOWNERNAME, "clan_getchatownername"); add(CLAN_GETCHATOWNERNAME, "clan_getchatownername");
add(CLAN_ISFRIEND, "clan_isfriend"); add(CLAN_ISFRIEND, "clan_isfriend");
add(CLAN_ISIGNORE, "clan_isignore"); add(CLAN_ISIGNORE, "clan_isignore");
add(ACTIVECLANSETTINGS_FIND_LISTENED, "activeclansettings_find_listened");
add(ACTIVECLANSETTINGS_FIND_AFFINED, "activeclansettings_find_affined");
add(ACTIVECLANSETTINGS_GETCLANNAME, "activeclansettings_getclanname");
add(ACTIVECLANSETTINGS_GETALLOWUNAFFINED, "activeclansettings_getallowunaffined");
add(ACTIVECLANSETTINGS_GETRANKTALK, "activeclansettings_getranktalk");
add(ACTIVECLANSETTINGS_GETRANKKICK, "activeclansettings_getrankkick");
add(ACTIVECLANSETTINGS_GETRANKLOOTSHARE, "activeclansettings_getranklootshare");
add(ACTIVECLANSETTINGS_GETCOINSHARE, "activeclansettings_getcoinshare");
add(ACTIVECLANSETTINGS_GETAFFINEDCOUNT, "activeclansettings_getaffinedcount");
add(ACTIVECLANSETTINGS_GETAFFINEDDISPLAYNAME, "activeclansettings_getaffineddisplayname");
add(ACTIVECLANSETTINGS_GETAFFINEDRANK, "activeclansettings_getaffinedrank");
add(ACTIVECLANSETTINGS_GETBANNEDCOUNT, "activeclansettings_getbannedcount");
add(ACTIVECLANSETTINGS_GETBANNEDDISPLAYNAME, "activeclansettings_getbanneddisplayname");
add(ACTIVECLANSETTINGS_GETAFFINEDEXTRAINFO, "activeclansettings_getaffinedextrainfo");
add(ACTIVECLANSETTINGS_GETCURRENTOWNER_SLOT, "activeclansettings_getcurrentowner_slot");
add(ACTIVECLANSETTINGS_GETREPLACEMENTOWNER_SLOT, "activeclansettings_getreplacementowner_slot");
add(ACTIVECLANSETTINGS_GETAFFINEDSLOT, "activeclansettings_getaffinedslot");
add(ACTIVECLANSETTINGS_GETSORTEDAFFINEDSLOT, "activeclansettings_getsortedaffinedslot");
add(AFFINEDCLANSETTINGS_ADDBANNED_FROMCHANNEL, "affinedclansettings_addbanned_fromchannel");
add(ACTIVECLANSETTINGS_GETAFFINEDJOINRUNEDAY, "activeclansettings_getaffinedjoinruneday");
add(AFFINEDCLANSETTINGS_SETMUTED_FROMCHANNEL, "affinedclansettings_setmuted_fromchannel");
add(ACTIVECLANSETTINGS_GETAFFINEDMUTED, "activeclansettings_getaffinedmuted");
add(ACTIVECLANCHANNEL_FIND_LISTENED, "activeclanchannel_find_listened");
add(ACTIVECLANCHANNEL_FIND_AFFINED, "activeclanchannel_find_affined");
add(ACTIVECLANCHANNEL_GETCLANNAME, "activeclanchannel_getclanname");
add(ACTIVECLANCHANNEL_GETRANKKICK, "activeclanchannel_getrankkick");
add(ACTIVECLANCHANNEL_GETRANKTALK, "activeclanchannel_getranktalk");
add(ACTIVECLANCHANNEL_GETUSERCOUNT, "activeclanchannel_getusercount");
add(ACTIVECLANCHANNEL_GETUSERDISPLAYNAME, "activeclanchannel_getuserdisplayname");
add(ACTIVECLANCHANNEL_GETUSERRANK, "activeclanchannel_getuserrank");
add(ACTIVECLANCHANNEL_GETUSERWORLD, "activeclanchannel_getuserworld");
add(ACTIVECLANCHANNEL_KICKUSER, "activeclanchannel_kickuser");
add(ACTIVECLANCHANNEL_GETUSERSLOT, "activeclanchannel_getuserslot");
add(ACTIVECLANCHANNEL_GETSORTEDUSERSLOT, "activeclanchannel_getsorteduserslot");
add(CLANPROFILE_FIND, "clanprofile_find");
add(STOCKMARKET_GETOFFERTYPE, "stockmarket_getoffertype"); add(STOCKMARKET_GETOFFERTYPE, "stockmarket_getoffertype");
add(STOCKMARKET_GETOFFERITEM, "stockmarket_getofferitem"); add(STOCKMARKET_GETOFFERITEM, "stockmarket_getofferitem");
add(STOCKMARKET_GETOFFERPRICE, "stockmarket_getofferprice"); add(STOCKMARKET_GETOFFERPRICE, "stockmarket_getofferprice");
@@ -406,6 +448,11 @@ public class Instructions
add(AND, "and"); add(AND, "and");
add(OR, "or"); add(OR, "or");
add(SCALE, "scale"); add(SCALE, "scale");
add(BITCOUNT, "bitcount");
add(TOGGLEBIT, "togglebit");
add(SETBIT_RANGE, "setbit_range");
add(CLEARBIT_RANGE, "clearbit_range");
add(GETBIT_RANGE, "getbit_range");
add(APPEND_NUM, "append_num"); add(APPEND_NUM, "append_num");
add(APPEND, "append"); add(APPEND, "append");
add(APPEND_SIGNNUM, "append_signnum"); add(APPEND_SIGNNUM, "append_signnum");
@@ -428,7 +475,6 @@ public class Instructions
add(REMOVETAGS, "removetags"); add(REMOVETAGS, "removetags");
add(STRING_INDEXOF_CHAR, "string_indexof_char"); add(STRING_INDEXOF_CHAR, "string_indexof_char");
add(STRING_INDEXOF_STRING, "string_indexof_string"); add(STRING_INDEXOF_STRING, "string_indexof_string");
add(UPPERCASE, "uppercase");
add(OC_NAME, "oc_name"); add(OC_NAME, "oc_name");
add(OC_OP, "oc_op"); add(OC_OP, "oc_op");
add(OC_IOP, "oc_iop"); add(OC_IOP, "oc_iop");
@@ -450,6 +496,7 @@ public class Instructions
add(CHAT_GETFILTER_PRIVATE, "chat_getfilter_private"); add(CHAT_GETFILTER_PRIVATE, "chat_getfilter_private");
add(CHAT_SENDPUBLIC, "chat_sendpublic"); add(CHAT_SENDPUBLIC, "chat_sendpublic");
add(CHAT_SENDPRIVATE, "chat_sendprivate"); add(CHAT_SENDPRIVATE, "chat_sendprivate");
add(CHAT_SENDCLAN, "chat_sendclan");
add(CHAT_PLAYERNAME, "chat_playername"); add(CHAT_PLAYERNAME, "chat_playername");
add(CHAT_GETFILTER_TRADE, "chat_getfilter_trade"); add(CHAT_GETFILTER_TRADE, "chat_getfilter_trade");
add(CHAT_GETHISTORYLENGTH, "chat_gethistorylength"); add(CHAT_GETHISTORYLENGTH, "chat_gethistorylength");
@@ -458,7 +505,7 @@ public class Instructions
add(DOCHEAT, "docheat"); add(DOCHEAT, "docheat");
add(CHAT_SETMESSAGEFILTER, "chat_setmessagefilter"); add(CHAT_SETMESSAGEFILTER, "chat_setmessagefilter");
add(CHAT_GETMESSAGEFILTER, "chat_getmessagefilter"); add(CHAT_GETMESSAGEFILTER, "chat_getmessagefilter");
add(DEBUGMES, "debugmes"); add(WRITECONSOLE, "writeconsole");
add(GETWINDOWMODE, "getwindowmode"); add(GETWINDOWMODE, "getwindowmode");
add(SETWINDOWMODE, "setwindowmode"); add(SETWINDOWMODE, "setwindowmode");
add(GETDEFAULTWINDOWMODE, "getdefaultwindowmode"); add(GETDEFAULTWINDOWMODE, "getdefaultwindowmode");
@@ -480,7 +527,6 @@ public class Instructions
add(WORLDLIST_NEXT, "worldlist_next"); add(WORLDLIST_NEXT, "worldlist_next");
add(WORLDLIST_SPECIFIC, "worldlist_specific"); add(WORLDLIST_SPECIFIC, "worldlist_specific");
add(WORLDLIST_SORT, "worldlist_sort"); add(WORLDLIST_SORT, "worldlist_sort");
add(GETWORLDINFO, "getworldinfo");
add(SETFOLLOWEROPSLOWPRIORITY, "setfolloweropslowpriority"); add(SETFOLLOWEROPSLOWPRIORITY, "setfolloweropslowpriority");
add(NC_PARAM, "nc_param"); add(NC_PARAM, "nc_param");
add(LC_PARAM, "lc_param"); add(LC_PARAM, "lc_param");
@@ -489,9 +535,9 @@ public class Instructions
add(ON_MOBILE, "on_mobile"); add(ON_MOBILE, "on_mobile");
add(CLIENTTYPE, "clienttype"); add(CLIENTTYPE, "clienttype");
add(MOBILE_KEYBOARDHIDE, "mobile_keyboardhide"); add(MOBILE_KEYBOARDHIDE, "mobile_keyboardhide");
add(BATTERYLEVEL, "batterylevel"); add(MOBILE_BATTERYLEVEL, "mobile_batterylevel");
add(BATTERYCHARGING, "batterycharging"); add(MOBILE_BATTERYCHARGING, "mobile_batterycharging");
add(WIFIAVAILABLE, "wifiavailable"); add(MOBILE_WIFIAVAILABLE, "mobile_wifiavailable");
add(WORLDMAP_GETMAPNAME, "worldmap_getmapname"); add(WORLDMAP_GETMAPNAME, "worldmap_getmapname");
add(WORLDMAP_SETMAP, "worldmap_setmap"); add(WORLDMAP_SETMAP, "worldmap_setmap");
add(WORLDMAP_GETZOOM, "worldmap_getzoom"); add(WORLDMAP_GETZOOM, "worldmap_getzoom");

View File

@@ -60,6 +60,8 @@ public class Opcodes
public static final int GET_VARC_STRING = 49; public static final int GET_VARC_STRING = 49;
public static final int SET_VARC_STRING = 50; public static final int SET_VARC_STRING = 50;
public static final int SWITCH = 60; public static final int SWITCH = 60;
public static final int GET_VARCLANSETTING = 74;;
public static final int GET_VARCLAN = 76;;
public static final int CC_CREATE = 100; public static final int CC_CREATE = 100;
public static final int CC_DELETE = 101; public static final int CC_DELETE = 101;
public static final int CC_DELETEALL = 102; public static final int CC_DELETEALL = 102;
@@ -140,6 +142,8 @@ public class Opcodes
public static final int CC_SETONSUBCHANGE = 1424; public static final int CC_SETONSUBCHANGE = 1424;
public static final int CC_SETONSTOCKTRANSMIT = 1425; public static final int CC_SETONSTOCKTRANSMIT = 1425;
public static final int CC_SETONRESIZE = 1427; public static final int CC_SETONRESIZE = 1427;
public static final int CC_SETONCLANSETTINGSTRANSMIT = 1428;;
public static final int CC_SETONCLANCHANNELTRANSMIT = 1429;;
public static final int CC_GETX = 1500; public static final int CC_GETX = 1500;
public static final int CC_GETY = 1501; public static final int CC_GETY = 1501;
public static final int CC_GETWIDTH = 1502; public static final int CC_GETWIDTH = 1502;
@@ -166,10 +170,12 @@ public class Opcodes
public static final int CC_GETOP = 1801; public static final int CC_GETOP = 1801;
public static final int CC_GETOPBASE = 1802; public static final int CC_GETOPBASE = 1802;
public static final int CC_CALLONRESIZE = 1927; public static final int CC_CALLONRESIZE = 1927;
public static final int CC_TRIGGEROP = 1928;
public static final int IF_SETPOSITION = 2000; public static final int IF_SETPOSITION = 2000;
public static final int IF_SETSIZE = 2001; public static final int IF_SETSIZE = 2001;
public static final int IF_SETHIDE = 2003; public static final int IF_SETHIDE = 2003;
public static final int IF_SETNOCLICKTHROUGH = 2005; public static final int IF_SETNOCLICKTHROUGH = 2005;
public static final int IF_SETNOSCROLLTHROUGH = 2006;
public static final int IF_SETSCROLLPOS = 2100; public static final int IF_SETSCROLLPOS = 2100;
public static final int IF_SETCOLOUR = 2101; public static final int IF_SETCOLOUR = 2101;
public static final int IF_SETFILL = 2102; public static final int IF_SETFILL = 2102;
@@ -240,6 +246,8 @@ public class Opcodes
public static final int IF_SETONSUBCHANGE = 2424; public static final int IF_SETONSUBCHANGE = 2424;
public static final int IF_SETONSTOCKTRANSMIT = 2425; public static final int IF_SETONSTOCKTRANSMIT = 2425;
public static final int IF_SETONRESIZE = 2427; public static final int IF_SETONRESIZE = 2427;
public static final int IF_SETONCLANSETTINGSTRANSMIT = 2428;;
public static final int IF_SETONCLANCHANNELTRANSMIT = 2429;;
public static final int IF_GETX = 2500; public static final int IF_GETX = 2500;
public static final int IF_GETY = 2501; public static final int IF_GETY = 2501;
public static final int IF_GETWIDTH = 2502; public static final int IF_GETWIDTH = 2502;
@@ -267,6 +275,7 @@ public class Opcodes
public static final int IF_GETOP = 2801; public static final int IF_GETOP = 2801;
public static final int IF_GETOPBASE = 2802; public static final int IF_GETOPBASE = 2802;
public static final int IF_CALLONRESIZE = 2927; public static final int IF_CALLONRESIZE = 2927;
public static final int IF_TRIGGEROP = 2928;
public static final int MES = 3100; public static final int MES = 3100;
public static final int ANIM = 3101; public static final int ANIM = 3101;
public static final int IF_CLOSE = 3103; public static final int IF_CLOSE = 3103;
@@ -289,7 +298,6 @@ public class Opcodes
public static final int SETSHOWLOADINGMESSAGES = 3126; public static final int SETSHOWLOADINGMESSAGES = 3126;
public static final int SETTAPTODROP = 3127; public static final int SETTAPTODROP = 3127;
public static final int GETTAPTODROP = 3128; public static final int GETTAPTODROP = 3128;
public static final int SETOCULUSORBSPEED = 3129;
public static final int GETCANVASSIZE = 3132; public static final int GETCANVASSIZE = 3132;
public static final int MOBILE_SETFPS = 3133; public static final int MOBILE_SETFPS = 3133;
public static final int MOBILE_OPENSTORE = 3134; public static final int MOBILE_OPENSTORE = 3134;
@@ -298,8 +306,7 @@ public class Opcodes
public static final int GETHIDEUSERNAME = 3142; public static final int GETHIDEUSERNAME = 3142;
public static final int SETREMEMBERUSERNAME = 3143; public static final int SETREMEMBERUSERNAME = 3143;
public static final int GETREMEMBERUSERNAME = 3144; public static final int GETREMEMBERUSERNAME = 3144;
public static final int SETTITLEMUSICENABLED = 3146; public static final int SHOW_IOS_REVIEW = 3145;
public static final int GETTITLEMUSICENABLED = 3147;
public static final int SOUND_SYNTH = 3200; public static final int SOUND_SYNTH = 3200;
public static final int SOUND_SONG = 3201; public static final int SOUND_SONG = 3201;
public static final int SOUND_JINGLE = 3202; public static final int SOUND_JINGLE = 3202;
@@ -357,6 +364,41 @@ public class Opcodes
public static final int CLAN_GETCHATOWNERNAME = 3625; public static final int CLAN_GETCHATOWNERNAME = 3625;
public static final int CLAN_ISFRIEND = 3626; public static final int CLAN_ISFRIEND = 3626;
public static final int CLAN_ISIGNORE = 3627; public static final int CLAN_ISIGNORE = 3627;
public static final int ACTIVECLANSETTINGS_FIND_LISTENED = 3800;
public static final int ACTIVECLANSETTINGS_FIND_AFFINED = 3801;
public static final int ACTIVECLANSETTINGS_GETCLANNAME = 3802;
public static final int ACTIVECLANSETTINGS_GETALLOWUNAFFINED = 3803;
public static final int ACTIVECLANSETTINGS_GETRANKTALK = 3804;
public static final int ACTIVECLANSETTINGS_GETRANKKICK = 3805;
public static final int ACTIVECLANSETTINGS_GETRANKLOOTSHARE = 3806;
public static final int ACTIVECLANSETTINGS_GETCOINSHARE = 3807;
public static final int ACTIVECLANSETTINGS_GETAFFINEDCOUNT = 3809;
public static final int ACTIVECLANSETTINGS_GETAFFINEDDISPLAYNAME = 3810;
public static final int ACTIVECLANSETTINGS_GETAFFINEDRANK = 3811;
public static final int ACTIVECLANSETTINGS_GETBANNEDCOUNT = 3812;
public static final int ACTIVECLANSETTINGS_GETBANNEDDISPLAYNAME = 3813;
public static final int ACTIVECLANSETTINGS_GETAFFINEDEXTRAINFO = 3814;
public static final int ACTIVECLANSETTINGS_GETCURRENTOWNER_SLOT = 3815;
public static final int ACTIVECLANSETTINGS_GETREPLACEMENTOWNER_SLOT = 3816;
public static final int ACTIVECLANSETTINGS_GETAFFINEDSLOT = 3817;
public static final int ACTIVECLANSETTINGS_GETSORTEDAFFINEDSLOT = 3818;
public static final int AFFINEDCLANSETTINGS_ADDBANNED_FROMCHANNEL = 3819;
public static final int ACTIVECLANSETTINGS_GETAFFINEDJOINRUNEDAY = 3820;
public static final int AFFINEDCLANSETTINGS_SETMUTED_FROMCHANNEL = 3821;
public static final int ACTIVECLANSETTINGS_GETAFFINEDMUTED = 3822;
public static final int ACTIVECLANCHANNEL_FIND_LISTENED = 3850;
public static final int ACTIVECLANCHANNEL_FIND_AFFINED = 3851;
public static final int ACTIVECLANCHANNEL_GETCLANNAME = 3852;
public static final int ACTIVECLANCHANNEL_GETRANKKICK = 3853;
public static final int ACTIVECLANCHANNEL_GETRANKTALK = 3854;
public static final int ACTIVECLANCHANNEL_GETUSERCOUNT = 3855;
public static final int ACTIVECLANCHANNEL_GETUSERDISPLAYNAME = 3856;
public static final int ACTIVECLANCHANNEL_GETUSERRANK = 3857;
public static final int ACTIVECLANCHANNEL_GETUSERWORLD = 3858;
public static final int ACTIVECLANCHANNEL_KICKUSER = 3859;
public static final int ACTIVECLANCHANNEL_GETUSERSLOT = 3860;
public static final int ACTIVECLANCHANNEL_GETSORTEDUSERSLOT = 3861;
public static final int CLANPROFILE_FIND = 3890;
public static final int STOCKMARKET_GETOFFERTYPE = 3903; public static final int STOCKMARKET_GETOFFERTYPE = 3903;
public static final int STOCKMARKET_GETOFFERITEM = 3904; public static final int STOCKMARKET_GETOFFERITEM = 3904;
public static final int STOCKMARKET_GETOFFERPRICE = 3905; public static final int STOCKMARKET_GETOFFERPRICE = 3905;
@@ -397,6 +439,11 @@ public class Opcodes
public static final int AND = 4014; public static final int AND = 4014;
public static final int OR = 4015; public static final int OR = 4015;
public static final int SCALE = 4018; public static final int SCALE = 4018;
public static final int BITCOUNT = 4025;
public static final int TOGGLEBIT = 4026;
public static final int SETBIT_RANGE = 4027;
public static final int CLEARBIT_RANGE = 4028;
public static final int GETBIT_RANGE = 4029;
public static final int APPEND_NUM = 4100; public static final int APPEND_NUM = 4100;
public static final int APPEND = 4101; public static final int APPEND = 4101;
public static final int APPEND_SIGNNUM = 4102; public static final int APPEND_SIGNNUM = 4102;
@@ -419,7 +466,6 @@ public class Opcodes
public static final int REMOVETAGS = 4119; public static final int REMOVETAGS = 4119;
public static final int STRING_INDEXOF_CHAR = 4120; public static final int STRING_INDEXOF_CHAR = 4120;
public static final int STRING_INDEXOF_STRING = 4121; public static final int STRING_INDEXOF_STRING = 4121;
public static final int UPPERCASE = 4122;
public static final int OC_NAME = 4200; public static final int OC_NAME = 4200;
public static final int OC_OP = 4201; public static final int OC_OP = 4201;
public static final int OC_IOP = 4202; public static final int OC_IOP = 4202;
@@ -441,6 +487,7 @@ public class Opcodes
public static final int CHAT_GETFILTER_PRIVATE = 5005; public static final int CHAT_GETFILTER_PRIVATE = 5005;
public static final int CHAT_SENDPUBLIC = 5008; public static final int CHAT_SENDPUBLIC = 5008;
public static final int CHAT_SENDPRIVATE = 5009; public static final int CHAT_SENDPRIVATE = 5009;
public static final int CHAT_SENDCLAN = 5010;
public static final int CHAT_PLAYERNAME = 5015; public static final int CHAT_PLAYERNAME = 5015;
public static final int CHAT_GETFILTER_TRADE = 5016; public static final int CHAT_GETFILTER_TRADE = 5016;
public static final int CHAT_GETHISTORYLENGTH = 5017; public static final int CHAT_GETHISTORYLENGTH = 5017;
@@ -449,7 +496,7 @@ public class Opcodes
public static final int DOCHEAT = 5020; public static final int DOCHEAT = 5020;
public static final int CHAT_SETMESSAGEFILTER = 5021; public static final int CHAT_SETMESSAGEFILTER = 5021;
public static final int CHAT_GETMESSAGEFILTER = 5022; public static final int CHAT_GETMESSAGEFILTER = 5022;
public static final int DEBUGMES = 5023; public static final int WRITECONSOLE = 5023;
public static final int GETWINDOWMODE = 5306; public static final int GETWINDOWMODE = 5306;
public static final int SETWINDOWMODE = 5307; public static final int SETWINDOWMODE = 5307;
public static final int GETDEFAULTWINDOWMODE = 5308; public static final int GETDEFAULTWINDOWMODE = 5308;
@@ -471,7 +518,6 @@ public class Opcodes
public static final int WORLDLIST_NEXT = 6502; public static final int WORLDLIST_NEXT = 6502;
public static final int WORLDLIST_SPECIFIC = 6506; public static final int WORLDLIST_SPECIFIC = 6506;
public static final int WORLDLIST_SORT = 6507; public static final int WORLDLIST_SORT = 6507;
public static final int GETWORLDINFO = 6511;
public static final int SETFOLLOWEROPSLOWPRIORITY = 6512; public static final int SETFOLLOWEROPSLOWPRIORITY = 6512;
public static final int NC_PARAM = 6513; public static final int NC_PARAM = 6513;
public static final int LC_PARAM = 6514; public static final int LC_PARAM = 6514;
@@ -480,9 +526,9 @@ public class Opcodes
public static final int ON_MOBILE = 6518; public static final int ON_MOBILE = 6518;
public static final int CLIENTTYPE = 6519; public static final int CLIENTTYPE = 6519;
public static final int MOBILE_KEYBOARDHIDE = 6521; public static final int MOBILE_KEYBOARDHIDE = 6521;
public static final int BATTERYLEVEL = 6524; public static final int MOBILE_BATTERYLEVEL = 6524;
public static final int BATTERYCHARGING = 6525; public static final int MOBILE_BATTERYCHARGING = 6525;
public static final int WIFIAVAILABLE = 6526; public static final int MOBILE_WIFIAVAILABLE = 6526;
public static final int WORLDMAP_GETMAPNAME = 6601; public static final int WORLDMAP_GETMAPNAME = 6601;
public static final int WORLDMAP_SETMAP = 6602; public static final int WORLDMAP_SETMAP = 6602;
public static final int WORLDMAP_GETZOOM = 6603; public static final int WORLDMAP_GETZOOM = 6603;

View File

@@ -40,7 +40,7 @@ public class CacheProperties
public static int getRsVersion() throws IOException public static int getRsVersion() throws IOException
{ {
return Integer.parseInt(getProperties().getProperty("rs.version")); return (int) Double.parseDouble(getProperties().getProperty("rs.version"));
} }
public static int getCacheVersion() throws IOException public static int getCacheVersion() throws IOException

View File

@@ -31,7 +31,7 @@ import org.junit.rules.ExternalResource;
public class DeobTestProperties extends ExternalResource public class DeobTestProperties extends ExternalResource
{ {
private String rsClient; private String rsClient;
private int rsVersion; private double rsVersion;
private String vanillaClient; private String vanillaClient;
@Override @Override
@@ -42,7 +42,7 @@ public class DeobTestProperties extends ExternalResource
properties.load(resourceAsStream); properties.load(resourceAsStream);
rsClient = (String) properties.get("rs.client"); rsClient = (String) properties.get("rs.client");
rsVersion = Integer.parseInt((String) properties.get("rs.version")); rsVersion = Double.parseDouble((String) properties.get("rs.version"));
vanillaClient = (String) properties.get("vanilla.client"); vanillaClient = (String) properties.get("vanilla.client");
} }
@@ -51,7 +51,7 @@ public class DeobTestProperties extends ExternalResource
return rsClient; return rsClient;
} }
public int getRsVersion() public double getRsVersion()
{ {
return rsVersion; return rsVersion;
} }

View File

@@ -40,7 +40,7 @@ public class ClientVersionTest
public void test() throws IOException public void test() throws IOException
{ {
ClientVersion ver = new ClientVersion(new File(properties.getVanillaClient())); ClientVersion ver = new ClientVersion(new File(properties.getVanillaClient()));
Assert.assertEquals(properties.getRsVersion(), ver.getVersion()); Assert.assertEquals((int) Math.floor(properties.getRsVersion()), ver.getVersion());
} }
} }

View File

@@ -65,7 +65,6 @@ public class RuneLiteAPI
private static final Properties properties = new Properties(); private static final Properties properties = new Properties();
private static String version; private static String version;
private static int rsVersion;
static static
{ {
@@ -75,7 +74,6 @@ public class RuneLiteAPI
properties.load(in); properties.load(in);
version = properties.getProperty("runelite.version"); version = properties.getProperty("runelite.version");
rsVersion = Integer.parseInt(properties.getProperty("rs.version"));
String commit = properties.getProperty("runelite.commit"); String commit = properties.getProperty("runelite.commit");
boolean dirty = Boolean.parseBoolean(properties.getProperty("runelite.dirty")); boolean dirty = Boolean.parseBoolean(properties.getProperty("runelite.dirty"));
@@ -181,9 +179,4 @@ public class RuneLiteAPI
RuneLiteAPI.version = version; RuneLiteAPI.version = version;
} }
public static int getRsVersion()
{
return rsVersion;
}
} }

View File

@@ -1,3 +1,2 @@
runelite.version=@projectver@ runelite.version=@projectver@
rs.version=@rsver@
runelite.commit=@gitcommit@ runelite.commit=@gitcommit@

View File

@@ -34,6 +34,8 @@ import java.util.Set;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import net.runelite.api.annotations.VisibleForExternalPlugins; import net.runelite.api.annotations.VisibleForExternalPlugins;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanSettings;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.PlayerChanged; import net.runelite.api.events.PlayerChanged;
@@ -2194,4 +2196,32 @@ public interface Client extends GameEngine
* @return * @return
*/ */
int getCrossWorldMessageIdsIndex(); int getCrossWorldMessageIdsIndex();
/**
* Get the primary clan channel the player is in.
* @return
*/
@Nullable
ClanChannel getClanChannel();
/**
* Get the guest clan channel the player is in.
* @return
*/
@Nullable
ClanChannel getGuestClanChannel();
/**
* Get clan settings for the clan the user is in.
* @return
*/
@Nullable
ClanSettings getClanSettings();
/**
* Get the guest clan's settings.
* @return
*/
@Nullable
ClanSettings getGuestClanSettings();
} }

View File

@@ -49,4 +49,6 @@ public final class EnumID
public static final int ARCEUUS_SPELLBOOK = 1985; public static final int ARCEUUS_SPELLBOOK = 1985;
public static final int FRIENDS_CHAT_RANK_ICONS = 1543; public static final int FRIENDS_CHAT_RANK_ICONS = 1543;
public static final int CLAN_RANK_NAME = 3797;
public static final int CLAN_RANK_GRAPHIC = 3798;
} }

View File

@@ -74,6 +74,13 @@ public interface Player extends Actor
*/ */
boolean isFriend(); boolean isFriend();
/**
* Checks whether the player is a member of the same clan as the local player.
*
* @return
*/
boolean isClanMember();
/** /**
* Gets the displayed overhead icon of the player. * Gets the displayed overhead icon of the player.
* *

View File

@@ -376,4 +376,23 @@ public final class ScriptID
*/ */
@ScriptArguments(integer = 4) @ScriptArguments(integer = 4)
public static final int WIKI_ICON_UPDATE = 3306; public static final int WIKI_ICON_UPDATE = 3306;
/**
* Builds a line in the chatbox when there is no username: prefix, such as
* a game or system message
*/
@ScriptArguments(integer = 11, string = 1)
public static final int CHATBOX_BUILD_LINE_WITHOUT_USER = 199;
/**
* Builds a line in the chatbox when there is a username: prefix
*/
@ScriptArguments(integer = 11, string = 2)
public static final int CHATBOX_BUILD_LINE_WITH_USER = 203;
/**
* Builds a line in the chatbox when it from a clan
*/
@ScriptArguments(integer = 14, string = 3)
public static final int CHATBOX_BUILD_LINE_WITH_CLAN = 4483;
} }

View File

@@ -0,0 +1,54 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.clan;
import java.util.List;
import javax.annotation.Nullable;
/**
* A clan channel.
*/
public interface ClanChannel
{
/**
* The name of the channel
* @return
*/
String getName();
/**
* The members currently online in the channel.
* @return
*/
List<ClanChannelMember> getMembers();
/**
* Find a clan member by name
* @param name
* @return
*/
@Nullable
ClanChannelMember findMember(String name);
}

View File

@@ -0,0 +1,54 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.clan;
import net.runelite.api.ChatPlayer;
/**
* A member of a clan channel
*/
public interface ClanChannelMember extends ChatPlayer
{
/**
* The member name
* @return
*/
String getName();
/**
* The member's rank relative to the other members. To get the member title,
* see ClanSettings.
* @see ClanRank
* @see ClanSettings#titleForRank(ClanRank)
* @return
*/
ClanRank getRank();
/**
* The world the member is on
* @return
*/
int getWorld();
}

View File

@@ -0,0 +1,44 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.clan;
import lombok.Value;
/**
* A member of a clan.
*/
@Value
public class ClanMember
{
/**
* The clan member's name
*/
String name;
/**
* The clan member's rank
*/
ClanRank rank;
}

View File

@@ -0,0 +1,52 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.clan;
/**
* The ranks in a clan. Clan ranks 1-14 are mapped to corresponding titles via
* the clan settings.
*/
public enum ClanRank
{
GUEST,
CLAN_RANK_1,
CLAN_RANK_2,
CLAN_RANK_3,
CLAN_RANK_4,
CLAN_RANK_5,
CLAN_RANK_6,
CLAN_RANK_7,
CLAN_RANK_8,
CLAN_RANK_9,
CLAN_RANK_10,
ADMINISTRATOR,
CLAN_RANK_11,
CLAN_RANK_12,
CLAN_RANK_13,
CLAN_RANK_14,
DEPUTY_OWNER,
OWNER,
JMOD;
}

View File

@@ -0,0 +1,63 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.clan;
import java.util.List;
import javax.annotation.Nullable;
/**
* A clan's settings.
*/
public interface ClanSettings
{
/**
* The clan name
* @return
*/
String getName();
/**
* The members of the clan. This includes all members, whether online or offline.
* @return
*/
List<ClanMember> getMembers();
/**
* Find a member of the clan.
* @param name
* @return
*/
@Nullable
ClanMember findMember(String name);
/**
* Get the clan title for a clan rank.
* @param clanRank the rank
* @see ClanRank
* @return
*/
@Nullable
ClanTitle titleForRank(ClanRank clanRank);
}

View File

@@ -0,0 +1,43 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.clan;
import lombok.Value;
/**
* A clan title, such as Owner, Administrator, Anchor, etc.
*/
@Value
public class ClanTitle
{
/**
* The id of the title
*/
int id;
/**
* The name of the title
*/
String name;
}

View File

@@ -0,0 +1,39 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.events;
import lombok.Value;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanChannelMember;
/**
* An event when a clan member joins a clan channel.
*/
@Value
public class ClanMemberJoined
{
private final ClanChannel clanChannel;
private final ClanChannelMember clanMember;
}

View File

@@ -0,0 +1,39 @@
/*
* Copyright (c) 2021, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.api.events;
import lombok.Value;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanChannelMember;
/**
* An event when a clan member leaves a channel.
*/
@Value
public class ClanMemberLeft
{
private final ClanChannel clanChannel;
private final ClanChannelMember clanMember;
}

View File

@@ -179,6 +179,8 @@ public class WidgetID
public static final int DIALOG_SPRITE2_ID = 11; public static final int DIALOG_SPRITE2_ID = 11;
public static final int MULTISKILL_MENU_GROUP_ID = 270; public static final int MULTISKILL_MENU_GROUP_ID = 270;
public static final int TEMPOROSS_GROUP_ID = 437; public static final int TEMPOROSS_GROUP_ID = 437;
public static final int CLAN_GROUP_ID = 701;
public static final int CLAN_GUEST_GROUP_ID = 702;
static class WorldMap static class WorldMap
{ {
@@ -1412,4 +1414,14 @@ public class WidgetID
{ {
static final int CONTAINER = 4; static final int CONTAINER = 4;
} }
static class Clan
{
static final int MEMBERS = 8;
}
static class ClanGuest
{
static final int MEMBERS = 8;
}
} }

View File

@@ -546,6 +546,9 @@ public enum WidgetInfo
TEMPOROSS_STATUS_INDICATOR(WidgetID.TEMPOROSS_GROUP_ID, WidgetID.TemporossStatus.STATUS_INDICATOR), TEMPOROSS_STATUS_INDICATOR(WidgetID.TEMPOROSS_GROUP_ID, WidgetID.TemporossStatus.STATUS_INDICATOR),
CLAN_MEMBER_LIST(WidgetID.CLAN_GROUP_ID, WidgetID.Clan.MEMBERS),
CLAN_GUEST_MEMBER_LIST(WidgetID.CLAN_GUEST_GROUP_ID, WidgetID.ClanGuest.MEMBERS),
//OpenOSRS //OpenOSRS
WORLD_MAP_BUTTON_BORDER(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.WORLDMAP_ORB), WORLD_MAP_BUTTON_BORDER(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.WORLDMAP_ORB),

View File

@@ -98,6 +98,8 @@ public class ChatCommandManager implements ChatboxInputListener
case PRIVATECHAT: case PRIVATECHAT:
case MODPRIVATECHAT: case MODPRIVATECHAT:
case PRIVATECHATOUT: case PRIVATECHATOUT:
case CLAN_CHAT:
case CLAN_GUEST_CHAT:
break; break;
default: default:
return; return;

View File

@@ -119,7 +119,7 @@ public class ChatMessageManager
boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1; boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
Color usernameColor = null; Color usernameColor = null;
Color senderColor; Color senderColor = null;
switch (chatMessageType) switch (chatMessageType)
{ {
@@ -147,12 +147,22 @@ public class ChatMessageManager
break; break;
} }
case FRIENDSCHAT: case FRIENDSCHAT:
case FRIENDSCHATNOTIFICATION:
usernameColor = isChatboxTransparent ? chatColorConfig.transparentFriendsChatUsernames() : chatColorConfig.opaqueFriendsChatUsernames(); usernameColor = isChatboxTransparent ? chatColorConfig.transparentFriendsChatUsernames() : chatColorConfig.opaqueFriendsChatUsernames();
senderColor = isChatboxTransparent ? chatColorConfig.transparentFriendsChatChannelName() : chatColorConfig.opaqueFriendsChatChannelName();
break;
case CLAN_CHAT:
case CLAN_MESSAGE:
usernameColor = isChatboxTransparent ? chatColorConfig.transparentClanChatUsernames() : chatColorConfig.opaqueClanChatUsernames();
senderColor = isChatboxTransparent ? chatColorConfig.transparentClanChannelName() : chatColorConfig.opaqueClanChannelName();
break;
case CLAN_GUEST_CHAT:
case CLAN_GUEST_MESSAGE:
usernameColor = isChatboxTransparent ? chatColorConfig.transparentClanChatGuestUsernames() : chatColorConfig.opaqueClanChatGuestUsernames();
senderColor = isChatboxTransparent ? chatColorConfig.transparentClanChannelGuestName() : chatColorConfig.opaqueClanGuestChatChannelName();
break; break;
} }
senderColor = isChatboxTransparent ? chatColorConfig.transparentFriendsChatChannelName() : chatColorConfig.opaqueFriendsChatChannelName();
if (usernameColor != null) if (usernameColor != null)
{ {
messageNode.setName(ColorUtil.wrapWithColorTag(messageNode.getName(), usernameColor)); messageNode.setName(ColorUtil.wrapWithColorTag(messageNode.getName(), usernameColor));
@@ -186,12 +196,14 @@ public class ChatMessageManager
{ {
final String eventName = scriptCallbackEvent.getEventName(); final String eventName = scriptCallbackEvent.getEventName();
boolean wrap;
switch (eventName) switch (eventName)
{ {
case "privateChatFrom": case "splitPrivChatUsernameColor":
case "privateChatTo": wrap = false;
case "privateChatSplitFrom": break;
case "privateChatSplitTo": case "privChatUsername":
wrap = true;
break; break;
default: default:
return; return;
@@ -207,9 +219,16 @@ public class ChatMessageManager
final String[] stringStack = client.getStringStack(); final String[] stringStack = client.getStringStack();
final int stringStackSize = client.getStringStackSize(); final int stringStackSize = client.getStringStackSize();
// Stack is: To/From playername : String fromToUsername = stringStack[stringStackSize - 1];
String toFrom = stringStack[stringStackSize - 3]; if (wrap)
stringStack[stringStackSize - 3] = ColorUtil.prependColorTag(toFrom, usernameColor); {
fromToUsername = ColorUtil.wrapWithColorTag(fromToUsername, usernameColor);
}
else
{
fromToUsername = ColorUtil.colorTag(usernameColor);
}
stringStack[stringStackSize - 1] = fromToUsername;
} }
private static Color getDefaultColor(ChatMessageType type, boolean transparent) private static Color getDefaultColor(ChatMessageType type, boolean transparent)
@@ -226,12 +245,16 @@ public class ChatMessageManager
case PRIVATECHAT: case PRIVATECHAT:
return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_OPAQUE_BACKGROUND; return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_OPAQUE_BACKGROUND;
case FRIENDSCHAT: case FRIENDSCHAT:
case CLAN_CHAT:
case CLAN_GUEST_CHAT:
return JagexColors.CHAT_FC_TEXT_OPAQUE_BACKGROUND; return JagexColors.CHAT_FC_TEXT_OPAQUE_BACKGROUND;
case ITEM_EXAMINE: case ITEM_EXAMINE:
case OBJECT_EXAMINE: case OBJECT_EXAMINE:
case NPC_EXAMINE: case NPC_EXAMINE:
case CONSOLE: case CONSOLE:
case FRIENDSCHATNOTIFICATION: case FRIENDSCHATNOTIFICATION:
case CLAN_MESSAGE:
case CLAN_GUEST_MESSAGE:
return JagexColors.CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND; return JagexColors.CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND;
} }
} }
@@ -247,12 +270,16 @@ public class ChatMessageManager
case PRIVATECHAT: case PRIVATECHAT:
return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_TRANSPARENT_BACKGROUND; return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_TRANSPARENT_BACKGROUND;
case FRIENDSCHAT: case FRIENDSCHAT:
case CLAN_CHAT:
case CLAN_GUEST_CHAT:
return JagexColors.CHAT_FC_TEXT_TRANSPARENT_BACKGROUND; return JagexColors.CHAT_FC_TEXT_TRANSPARENT_BACKGROUND;
case ITEM_EXAMINE: case ITEM_EXAMINE:
case OBJECT_EXAMINE: case OBJECT_EXAMINE:
case NPC_EXAMINE: case NPC_EXAMINE:
case CONSOLE: case CONSOLE:
case FRIENDSCHATNOTIFICATION: case FRIENDSCHATNOTIFICATION:
case CLAN_MESSAGE:
case CLAN_GUEST_MESSAGE:
return JagexColors.CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND; return JagexColors.CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND;
} }
} }
@@ -341,6 +368,49 @@ public class ChatMessageManager
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueFriendsChatMessageHighlight(), false), cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueFriendsChatMessageHighlight(), false),
ChatMessageType.FRIENDSCHAT); ChatMessageType.FRIENDSCHAT);
} }
//region opaque clanchat
if (chatColorConfig.opaqueClanChatInfo() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueClanChatInfo(), false),
ChatMessageType.CLAN_MESSAGE);
}
if (chatColorConfig.opaqueClanChatInfoHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueClanChatInfoHighlight(), false),
ChatMessageType.CLAN_MESSAGE);
}
if (chatColorConfig.opaqueClanChatMessage() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueClanChatMessage(), false),
ChatMessageType.CLAN_CHAT);
}
if (chatColorConfig.opaqueClanChatMessageHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueClanChatMessageHighlight(), false),
ChatMessageType.CLAN_CHAT);
}
if (chatColorConfig.opaqueClanChatGuestInfo() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueClanChatGuestInfo(), false),
ChatMessageType.CLAN_GUEST_MESSAGE);
}
if (chatColorConfig.opaqueClanChatGuestInfoHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueClanChatGuestInfoHighlight(), false),
ChatMessageType.CLAN_GUEST_MESSAGE);
}
if (chatColorConfig.opaqueClanChatGuestMessage() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueClanChatGuestMessage(), false),
ChatMessageType.CLAN_GUEST_CHAT);
}
if (chatColorConfig.opaqueClanChatGuestMessageHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueClanChatGuestMessageHighlight(), false),
ChatMessageType.CLAN_GUEST_CHAT);
}
//endregion
if (chatColorConfig.opaqueAutochatMessage() != null) if (chatColorConfig.opaqueAutochatMessage() != null)
{ {
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueAutochatMessage(), false), cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueAutochatMessage(), false),
@@ -454,6 +524,7 @@ public class ChatMessageManager
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentPrivateMessageReceivedHighlight(), true), cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentPrivateMessageReceivedHighlight(), true),
ChatMessageType.MODPRIVATECHAT); ChatMessageType.MODPRIVATECHAT);
} }
//region transpaprent friends chat
if (chatColorConfig.transparentFriendsChatInfo() != null) if (chatColorConfig.transparentFriendsChatInfo() != null)
{ {
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentFriendsChatInfo(), true), cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentFriendsChatInfo(), true),
@@ -474,6 +545,50 @@ public class ChatMessageManager
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentFriendsChatMessageHighlight(), true), cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentFriendsChatMessageHighlight(), true),
ChatMessageType.FRIENDSCHAT); ChatMessageType.FRIENDSCHAT);
} }
//endregion
//region transparent clanchat
if (chatColorConfig.transparentClanChatInfo() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentClanChatInfo(), true),
ChatMessageType.CLAN_MESSAGE);
}
if (chatColorConfig.transparentClanChatInfoHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentClanChatInfoHighlight(), true),
ChatMessageType.CLAN_MESSAGE);
}
if (chatColorConfig.transparentClanChatMessage() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentClanChatMessage(), true),
ChatMessageType.CLAN_CHAT);
}
if (chatColorConfig.transparentClanChatMessageHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentClanChatMessageHighlight(), true),
ChatMessageType.CLAN_CHAT);
}
if (chatColorConfig.transparentClanChatGuestInfo() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentClanChatGuestInfo(), true),
ChatMessageType.CLAN_GUEST_MESSAGE);
}
if (chatColorConfig.transparentClanChatGuestInfoHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentClanChatGuestInfoHighlight(), true),
ChatMessageType.CLAN_GUEST_MESSAGE);
}
if (chatColorConfig.transparentClanChatGuestMessage() != null)
{
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentClanChatGuestMessage(), true),
ChatMessageType.CLAN_GUEST_CHAT);
}
if (chatColorConfig.transparentClanChatGuestMessageHighlight() != null)
{
cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentClanChatGuestMessageHighlight(), true),
ChatMessageType.CLAN_GUEST_CHAT);
}
//endregion
if (chatColorConfig.transparentAutochatMessage() != null) if (chatColorConfig.transparentAutochatMessage() != null)
{ {
cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentAutochatMessage(), true), cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentAutochatMessage(), true),

View File

@@ -108,6 +108,7 @@ public interface ChatColorConfig extends Config
return Color.decode("#002783"); return Color.decode("#002783");
} }
//region opaque friends chat
@ConfigItem( @ConfigItem(
position = 7, position = 7,
keyName = "opaqueFriendsChatInfo", keyName = "opaqueFriendsChatInfo",
@@ -149,9 +150,96 @@ public interface ChatColorConfig extends Config
{ {
return Color.decode("#000000"); return Color.decode("#000000");
} }
//endregion
//region opaque clan chat
@ConfigItem( @ConfigItem(
position = 11, position = 11,
keyName = "opaqueClanInfo",
name = "Clan chat info",
description = "Clan Chat Information (eg. when joining a channel)",
section = opaqueSection
)
Color opaqueClanChatInfo();
@ConfigItem(
position = 12,
keyName = "opaqueClanInfoHighlight",
name = "Clan chat info highlight",
description = "Clan Chat Information highlight",
section = opaqueSection
)
default Color opaqueClanChatInfoHighlight()
{
return Color.RED;
}
@ConfigItem(
position = 13,
keyName = "opaqueClanMessage",
name = "Clan chat message",
description = "Color of Clan chat messages",
section = opaqueSection
)
Color opaqueClanChatMessage();
@ConfigItem(
position = 14,
keyName = "opaqueClanChatMessageHighlight",
name = "Clan chat message highlight",
description = "Color of highlights in Clan Chat messages",
section = opaqueSection
)
default Color opaqueClanChatMessageHighlight()
{
return Color.decode("#000000");
}
@ConfigItem(
position = 15,
keyName = "opaqueClanGuestInfo",
name = "Guest Clan chat info",
description = "Guest Clan Chat Information (eg. when joining a channel)",
section = opaqueSection
)
Color opaqueClanChatGuestInfo();
@ConfigItem(
position = 16,
keyName = "opaqueClanGuestInfoHighlight",
name = "Guest Clan chat info highlight",
description = "Guest Clan Chat Information highlight",
section = opaqueSection
)
default Color opaqueClanChatGuestInfoHighlight()
{
return Color.RED;
}
@ConfigItem(
position = 17,
keyName = "opaqueClanGuestMessage",
name = "Guest Clan chat message",
description = "Color of Guest Clan chat messages",
section = opaqueSection
)
Color opaqueClanChatGuestMessage();
@ConfigItem(
position = 18,
keyName = "opaqueClanChatGuestMessageHighlight",
name = "Guest Clan chat message highlight",
description = "Color of highlights in Guest Clan Chat messages",
section = opaqueSection
)
default Color opaqueClanChatGuestMessageHighlight()
{
return Color.decode("#000000");
}
//endregion
@ConfigItem(
position = 19,
keyName = "opaqueAutochatMessage", keyName = "opaqueAutochatMessage",
name = "Autochat", name = "Autochat",
description = "Color of Autochat messages", description = "Color of Autochat messages",
@@ -160,7 +248,7 @@ public interface ChatColorConfig extends Config
Color opaqueAutochatMessage(); Color opaqueAutochatMessage();
@ConfigItem( @ConfigItem(
position = 12, position = 20,
keyName = "opaqueAutochatMessageHighlight", keyName = "opaqueAutochatMessageHighlight",
name = "Autochat highlight", name = "Autochat highlight",
description = "Color of highlights in Autochat messages", description = "Color of highlights in Autochat messages",
@@ -169,7 +257,7 @@ public interface ChatColorConfig extends Config
Color opaqueAutochatMessageHighlight(); Color opaqueAutochatMessageHighlight();
@ConfigItem( @ConfigItem(
position = 13, position = 21,
keyName = "opaqueTradeChatMessage", keyName = "opaqueTradeChatMessage",
name = "Trade chat", name = "Trade chat",
description = "Color of Trade Chat Messages", description = "Color of Trade Chat Messages",
@@ -178,7 +266,7 @@ public interface ChatColorConfig extends Config
Color opaqueTradeChatMessage(); Color opaqueTradeChatMessage();
@ConfigItem( @ConfigItem(
position = 14, position = 22,
keyName = "opaqueTradeChatMessageHighlight", keyName = "opaqueTradeChatMessageHighlight",
name = "Trade chat highlight", name = "Trade chat highlight",
description = "Color of highlights in Trade Chat Messages", description = "Color of highlights in Trade Chat Messages",
@@ -187,7 +275,7 @@ public interface ChatColorConfig extends Config
Color opaqueTradeChatMessageHighlight(); Color opaqueTradeChatMessageHighlight();
@ConfigItem( @ConfigItem(
position = 15, position = 23,
keyName = "opaqueServerMessage", keyName = "opaqueServerMessage",
name = "Server message", name = "Server message",
description = "Color of Server Messages (eg. 'Welcome to RuneScape')", description = "Color of Server Messages (eg. 'Welcome to RuneScape')",
@@ -196,7 +284,7 @@ public interface ChatColorConfig extends Config
Color opaqueServerMessage(); Color opaqueServerMessage();
@ConfigItem( @ConfigItem(
position = 16, position = 24,
keyName = "opaqueServerMessageHighlight", keyName = "opaqueServerMessageHighlight",
name = "Server message highlight", name = "Server message highlight",
description = "Color of highlights in Server Messages", description = "Color of highlights in Server Messages",
@@ -205,7 +293,7 @@ public interface ChatColorConfig extends Config
Color opaqueServerMessageHighlight(); Color opaqueServerMessageHighlight();
@ConfigItem( @ConfigItem(
position = 17, position = 25,
keyName = "opaqueGameMessage", keyName = "opaqueGameMessage",
name = "Game message", name = "Game message",
description = "Color of Game Messages", description = "Color of Game Messages",
@@ -214,7 +302,7 @@ public interface ChatColorConfig extends Config
Color opaqueGameMessage(); Color opaqueGameMessage();
@ConfigItem( @ConfigItem(
position = 18, position = 26,
keyName = "opaqueGameMessageHighlight", keyName = "opaqueGameMessageHighlight",
name = "Game message highlight", name = "Game message highlight",
description = "Color of highlights in Game Messages", description = "Color of highlights in Game Messages",
@@ -226,7 +314,7 @@ public interface ChatColorConfig extends Config
} }
@ConfigItem( @ConfigItem(
position = 19, position = 27,
keyName = "opaqueExamine", keyName = "opaqueExamine",
name = "Examine", name = "Examine",
description = "Color of Examine Text", description = "Color of Examine Text",
@@ -235,7 +323,7 @@ public interface ChatColorConfig extends Config
Color opaqueExamine(); Color opaqueExamine();
@ConfigItem( @ConfigItem(
position = 20, position = 28,
keyName = "opaqueExamineHighlight", keyName = "opaqueExamineHighlight",
name = "Examine highlight", name = "Examine highlight",
description = "Color of highlights in Examine Text", description = "Color of highlights in Examine Text",
@@ -247,7 +335,7 @@ public interface ChatColorConfig extends Config
} }
@ConfigItem( @ConfigItem(
position = 21, position = 29,
keyName = "opaqueFiltered", keyName = "opaqueFiltered",
name = "Filtered", name = "Filtered",
description = "Color of Filtered Text (messages that aren't shown when Game messages are filtered)", description = "Color of Filtered Text (messages that aren't shown when Game messages are filtered)",
@@ -256,7 +344,7 @@ public interface ChatColorConfig extends Config
Color opaqueFiltered(); Color opaqueFiltered();
@ConfigItem( @ConfigItem(
position = 22, position = 30,
keyName = "opaqueFilteredHighlight", keyName = "opaqueFilteredHighlight",
name = "Filtered highlight", name = "Filtered highlight",
description = "Color of highlights in Filtered Text", description = "Color of highlights in Filtered Text",
@@ -265,7 +353,7 @@ public interface ChatColorConfig extends Config
Color opaqueFilteredHighlight(); Color opaqueFilteredHighlight();
@ConfigItem( @ConfigItem(
position = 23, position = 31,
keyName = "opaqueUsername", keyName = "opaqueUsername",
name = "Usernames", name = "Usernames",
description = "Color of Usernames", description = "Color of Usernames",
@@ -274,7 +362,7 @@ public interface ChatColorConfig extends Config
Color opaqueUsername(); Color opaqueUsername();
@ConfigItem( @ConfigItem(
position = 24, position = 32,
keyName = "opaquePrivateUsernames", keyName = "opaquePrivateUsernames",
name = "Private chat usernames", name = "Private chat usernames",
description = "Color of Usernames in Private Chat", description = "Color of Usernames in Private Chat",
@@ -283,16 +371,34 @@ public interface ChatColorConfig extends Config
Color opaquePrivateUsernames(); Color opaquePrivateUsernames();
@ConfigItem( @ConfigItem(
position = 25, position = 33,
keyName = "opaqueClanChannelName", keyName = "opaqueClanChannelName",
name = "Friends chat channel name", name = "Friends Chat channel name",
description = "Color of Friends chat channel name", description = "Color of Friends chat channel name",
section = opaqueSection section = opaqueSection
) )
Color opaqueFriendsChatChannelName(); Color opaqueFriendsChatChannelName();
@ConfigItem( @ConfigItem(
position = 26, position = 34,
keyName = "opaqueClanChatChannelName",
name = "Clan Chat channel name",
description = "Color of Clan chat channel name",
section = opaqueSection
)
Color opaqueClanChannelName();
@ConfigItem(
position = 35,
keyName = "opaqueClanChatGuestChannelName",
name = "Guest Clan Chat channel name",
description = "Color of Guest clan chat channel name",
section = opaqueSection
)
Color opaqueClanGuestChatChannelName();
@ConfigItem(
position = 36,
keyName = "opaqueClanUsernames", keyName = "opaqueClanUsernames",
name = "Friends chat usernames", name = "Friends chat usernames",
description = "Color of usernames in Friends chat", description = "Color of usernames in Friends chat",
@@ -301,7 +407,25 @@ public interface ChatColorConfig extends Config
Color opaqueFriendsChatUsernames(); Color opaqueFriendsChatUsernames();
@ConfigItem( @ConfigItem(
position = 27, position = 37,
keyName = "opaqueClanChatUsernames",
name = "Clan chat usernames",
description = "Color of usernames in Clan chat",
section = opaqueSection
)
Color opaqueClanChatUsernames();
@ConfigItem(
position = 38,
keyName = "opaqueClanChatGuestUsernames",
name = "Guest Clan chat usernames",
description = "Color of usernames in Guest Clan chat",
section = opaqueSection
)
Color opaqueClanChatGuestUsernames();
@ConfigItem(
position = 39,
keyName = "opaquePublicFriendUsernames", keyName = "opaquePublicFriendUsernames",
name = "Public friend usernames", name = "Public friend usernames",
description = "Color of Friend Usernames in Public Chat", description = "Color of Friend Usernames in Public Chat",
@@ -310,7 +434,7 @@ public interface ChatColorConfig extends Config
Color opaquePublicFriendUsernames(); Color opaquePublicFriendUsernames();
@ConfigItem( @ConfigItem(
position = 28, position = 40,
keyName = "opaquePlayerUsername", keyName = "opaquePlayerUsername",
name = "Your username", name = "Your username",
description = "Color of your username", description = "Color of your username",
@@ -381,6 +505,7 @@ public interface ChatColorConfig extends Config
return Color.decode("#FFFFFF"); return Color.decode("#FFFFFF");
} }
//region transparent friends chat
@ConfigItem( @ConfigItem(
position = 57, position = 57,
keyName = "transparentFriendsChatInfo", keyName = "transparentFriendsChatInfo",
@@ -422,9 +547,96 @@ public interface ChatColorConfig extends Config
{ {
return Color.decode("#FFFFFF"); return Color.decode("#FFFFFF");
} }
//endregion
//region transparent clan chat
@ConfigItem( @ConfigItem(
position = 61, position = 61,
keyName = "transparentClanInfo",
name = "Clan chat info (transparent)",
description = "Clan Chat Information (eg. when joining a channel) (transparent)",
section = transparentSection
)
Color transparentClanChatInfo();
@ConfigItem(
position = 62,
keyName = "transparentClanInfoHighlight",
name = "Clan chat info highlight (transparent)",
description = "Clan Chat Information highlight (transparent)",
section = transparentSection
)
default Color transparentClanChatInfoHighlight()
{
return Color.RED;
}
@ConfigItem(
position = 63,
keyName = "transparentClanMessage",
name = "Clan chat message (transparent)",
description = "Color of Clan chat messages (transparent)",
section = transparentSection
)
Color transparentClanChatMessage();
@ConfigItem(
position = 64,
keyName = "transparentClanChatMessageHighlight",
name = "Clan chat message highlight (transparent)",
description = "Color of highlights in Clan Chat messages (transparent)",
section = transparentSection
)
default Color transparentClanChatMessageHighlight()
{
return Color.decode("#FFFFFF");
}
@ConfigItem(
position = 65,
keyName = "transparentClanGuestInfo",
name = "Guest Clan chat info (transparent)",
description = "Guest Clan Chat Information (eg. when joining a channel) (transparent)",
section = transparentSection
)
Color transparentClanChatGuestInfo();
@ConfigItem(
position = 66,
keyName = "transparentClanGuestInfoHighlight",
name = "Guest Clan chat info highlight (transparent)",
description = "Guest Clan Chat Information highlight (transparent)",
section = transparentSection
)
default Color transparentClanChatGuestInfoHighlight()
{
return Color.RED;
}
@ConfigItem(
position = 67,
keyName = "transparentClanGuestMessage",
name = "Guest Clan chat message (transparent)",
description = "Color of Guest Clan chat messages (transparent)",
section = transparentSection
)
Color transparentClanChatGuestMessage();
@ConfigItem(
position = 68,
keyName = "transparentClanChatGuestMessageHighlight",
name = "Guest Clan chat message highlight (transparent)",
description = "Color of highlights in Guest Clan Chat messages (transparent)",
section = transparentSection
)
default Color transparentClanChatGuestMessageHighlight()
{
return Color.decode("#FFFFFF");
}
//endregion
@ConfigItem(
position = 69,
keyName = "transparentAutochatMessage", keyName = "transparentAutochatMessage",
name = "Autochat (transparent)", name = "Autochat (transparent)",
description = "Color of Autochat messages (transparent)", description = "Color of Autochat messages (transparent)",
@@ -433,7 +645,7 @@ public interface ChatColorConfig extends Config
Color transparentAutochatMessage(); Color transparentAutochatMessage();
@ConfigItem( @ConfigItem(
position = 62, position = 70,
keyName = "transparentAutochatMessageHighlight", keyName = "transparentAutochatMessageHighlight",
name = "Autochat highlight (transparent)", name = "Autochat highlight (transparent)",
description = "Color of highlights in Autochat messages (transparent)", description = "Color of highlights in Autochat messages (transparent)",
@@ -442,7 +654,7 @@ public interface ChatColorConfig extends Config
Color transparentAutochatMessageHighlight(); Color transparentAutochatMessageHighlight();
@ConfigItem( @ConfigItem(
position = 63, position = 71,
keyName = "transparentTradeChatMessage", keyName = "transparentTradeChatMessage",
name = "Trade chat (transparent)", name = "Trade chat (transparent)",
description = "Color of Trade Chat Messages (transparent)", description = "Color of Trade Chat Messages (transparent)",
@@ -451,7 +663,7 @@ public interface ChatColorConfig extends Config
Color transparentTradeChatMessage(); Color transparentTradeChatMessage();
@ConfigItem( @ConfigItem(
position = 64, position = 72,
keyName = "transparentTradeChatMessageHighlight", keyName = "transparentTradeChatMessageHighlight",
name = "Trade chat highlight (transparent)", name = "Trade chat highlight (transparent)",
description = "Color of highlights in Trade Chat Messages (transparent)", description = "Color of highlights in Trade Chat Messages (transparent)",
@@ -460,7 +672,7 @@ public interface ChatColorConfig extends Config
Color transparentTradeChatMessageHighlight(); Color transparentTradeChatMessageHighlight();
@ConfigItem( @ConfigItem(
position = 65, position = 73,
keyName = "transparentServerMessage", keyName = "transparentServerMessage",
name = "Server message (transparent)", name = "Server message (transparent)",
description = "Color of Server Messages (eg. 'Welcome to RuneScape') (transparent)", description = "Color of Server Messages (eg. 'Welcome to RuneScape') (transparent)",
@@ -469,7 +681,7 @@ public interface ChatColorConfig extends Config
Color transparentServerMessage(); Color transparentServerMessage();
@ConfigItem( @ConfigItem(
position = 66, position = 74,
keyName = "transparentServerMessageHighlight", keyName = "transparentServerMessageHighlight",
name = "Server message highlight (transparent)", name = "Server message highlight (transparent)",
description = "Color of highlights in Server Messages (transparent)", description = "Color of highlights in Server Messages (transparent)",
@@ -478,7 +690,7 @@ public interface ChatColorConfig extends Config
Color transparentServerMessageHighlight(); Color transparentServerMessageHighlight();
@ConfigItem( @ConfigItem(
position = 67, position = 75,
keyName = "transparentGameMessage", keyName = "transparentGameMessage",
name = "Game message (transparent)", name = "Game message (transparent)",
description = "Color of Game Messages (transparent)", description = "Color of Game Messages (transparent)",
@@ -487,7 +699,7 @@ public interface ChatColorConfig extends Config
Color transparentGameMessage(); Color transparentGameMessage();
@ConfigItem( @ConfigItem(
position = 68, position = 76,
keyName = "transparentGameMessageHighlight", keyName = "transparentGameMessageHighlight",
name = "Game message highlight (transparent)", name = "Game message highlight (transparent)",
description = "Color of highlights in Game Messages (transparent)", description = "Color of highlights in Game Messages (transparent)",
@@ -499,7 +711,7 @@ public interface ChatColorConfig extends Config
} }
@ConfigItem( @ConfigItem(
position = 69, position = 77,
keyName = "transparentExamine", keyName = "transparentExamine",
name = "Examine (transparent)", name = "Examine (transparent)",
description = "Color of Examine Text (transparent)", description = "Color of Examine Text (transparent)",
@@ -508,7 +720,7 @@ public interface ChatColorConfig extends Config
Color transparentExamine(); Color transparentExamine();
@ConfigItem( @ConfigItem(
position = 70, position = 78,
keyName = "transparentExamineHighlight", keyName = "transparentExamineHighlight",
name = "Examine highlight (transparent)", name = "Examine highlight (transparent)",
description = "Color of highlights in Examine Text (transparent)", description = "Color of highlights in Examine Text (transparent)",
@@ -520,7 +732,7 @@ public interface ChatColorConfig extends Config
} }
@ConfigItem( @ConfigItem(
position = 71, position = 79,
keyName = "transparentFiltered", keyName = "transparentFiltered",
name = "Filtered (transparent)", name = "Filtered (transparent)",
description = "Color of Filtered Text (messages that aren't shown when Game messages are filtered) (transparent)", description = "Color of Filtered Text (messages that aren't shown when Game messages are filtered) (transparent)",
@@ -529,7 +741,7 @@ public interface ChatColorConfig extends Config
Color transparentFiltered(); Color transparentFiltered();
@ConfigItem( @ConfigItem(
position = 72, position = 80,
keyName = "transparentFilteredHighlight", keyName = "transparentFilteredHighlight",
name = "Filtered highlight (transparent)", name = "Filtered highlight (transparent)",
description = "Color of highlights in Filtered Text (transparent)", description = "Color of highlights in Filtered Text (transparent)",
@@ -538,7 +750,7 @@ public interface ChatColorConfig extends Config
Color transparentFilteredHighlight(); Color transparentFilteredHighlight();
@ConfigItem( @ConfigItem(
position = 73, position = 81,
keyName = "transparentUsername", keyName = "transparentUsername",
name = "Usernames (transparent)", name = "Usernames (transparent)",
description = "Color of Usernames (transparent)", description = "Color of Usernames (transparent)",
@@ -547,7 +759,7 @@ public interface ChatColorConfig extends Config
Color transparentUsername(); Color transparentUsername();
@ConfigItem( @ConfigItem(
position = 74, position = 82,
keyName = "transparentPrivateUsernames", keyName = "transparentPrivateUsernames",
name = "Private chat usernames (transparent)", name = "Private chat usernames (transparent)",
description = "Color of Usernames in Private Chat (transparent)", description = "Color of Usernames in Private Chat (transparent)",
@@ -556,16 +768,34 @@ public interface ChatColorConfig extends Config
Color transparentPrivateUsernames(); Color transparentPrivateUsernames();
@ConfigItem( @ConfigItem(
position = 75, position = 83,
keyName = "transparentClanChannelName", keyName = "transparentClanChannelName",
name = "Friends chat channel name (transparent)", name = "Friends Chat channel name (transparent)",
description = "Color of Friends chat channel name (transparent)", description = "Color of Friends chat channel name (transparent)",
section = transparentSection section = transparentSection
) )
Color transparentFriendsChatChannelName(); Color transparentFriendsChatChannelName();
@ConfigItem( @ConfigItem(
position = 76, position = 84,
keyName = "transparentClanChatChannelName",
name = "Clan Chat channel name (transparent)",
description = "Color of Clan chat channel name (transparent)",
section = transparentSection
)
Color transparentClanChannelName();
@ConfigItem(
position = 85,
keyName = "transparentClanChatGuestChannelName",
name = "Guest Clan Chat channel name (transparent)",
description = "Color of Guest clan chat channel name (transparent)",
section = transparentSection
)
Color transparentClanChannelGuestName();
@ConfigItem(
position = 86,
keyName = "transparentClanUsernames", keyName = "transparentClanUsernames",
name = "Friends chat usernames (transparent)", name = "Friends chat usernames (transparent)",
description = "Color of usernames in Friends chat (transparent)", description = "Color of usernames in Friends chat (transparent)",
@@ -574,7 +804,25 @@ public interface ChatColorConfig extends Config
Color transparentFriendsChatUsernames(); Color transparentFriendsChatUsernames();
@ConfigItem( @ConfigItem(
position = 77, position = 87,
keyName = "transparentClanClanUsernames",
name = "Clan chat usernames (transparent)",
description = "Color of usernames in Clan chat (transparent)",
section = transparentSection
)
Color transparentClanChatUsernames();
@ConfigItem(
position = 88,
keyName = "transparentClanClanGuestUsernames",
name = "Guest Clan chat usernames (transparent)",
description = "Color of usernames in Guest Clan chat (transparent)",
section = transparentSection
)
Color transparentClanChatGuestUsernames();
@ConfigItem(
position = 89,
keyName = "transparentPublicFriendUsernames", keyName = "transparentPublicFriendUsernames",
name = "Public friend usernames (transparent)", name = "Public friend usernames (transparent)",
description = "Color of Friend Usernames in Public Chat (transparent)", description = "Color of Friend Usernames in Public Chat (transparent)",
@@ -583,7 +831,7 @@ public interface ChatColorConfig extends Config
Color transparentPublicFriendUsernames(); Color transparentPublicFriendUsernames();
@ConfigItem( @ConfigItem(
position = 78, position = 90,
keyName = "transparentPlayerUsername", keyName = "transparentPlayerUsername",
name = "Your username (transparent)", name = "Your username (transparent)",
description = "Color of your username (transparent)", description = "Color of your username (transparent)",

View File

@@ -37,6 +37,7 @@ import net.runelite.api.EnumID;
import net.runelite.api.FriendsChatRank; import net.runelite.api.FriendsChatRank;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.IndexedSprite; import net.runelite.api.IndexedSprite;
import net.runelite.api.clan.ClanTitle;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.EventBus;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -52,8 +53,10 @@ public class ChatIconManager
private final SpriteManager spriteManager; private final SpriteManager spriteManager;
private BufferedImage[] friendsChatRankImages; private BufferedImage[] friendsChatRankImages;
private BufferedImage[] clanRankImages;
private int friendsChatOffset; private int friendsChatOffset;
private int clanOffset;
@Inject @Inject
private ChatIconManager(Client client, SpriteManager spriteManager, EventBus eventBus) private ChatIconManager(Client client, SpriteManager spriteManager, EventBus eventBus)
@@ -74,11 +77,25 @@ public class ChatIconManager
return friendsChatRankImages[friendsChatRank.ordinal() - 1]; return friendsChatRankImages[friendsChatRank.ordinal() - 1];
} }
@Nullable
public BufferedImage getRankImage(final ClanTitle clanTitle)
{
int rank = clanTitle.getId();
int idx = clanRankToIdx(rank);
return clanRankImages[idx];
}
public int getIconNumber(final FriendsChatRank friendsChatRank) public int getIconNumber(final FriendsChatRank friendsChatRank)
{ {
return friendsChatOffset + friendsChatRank.ordinal() - 1; return friendsChatOffset + friendsChatRank.ordinal() - 1;
} }
public int getIconNumber(final ClanTitle clanTitle)
{
int rank = clanTitle.getId();
return clanOffset + clanRankToIdx(rank);
}
@Subscribe @Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged) public void onGameStateChanged(GameStateChanged gameStateChanged)
{ {
@@ -91,22 +108,25 @@ public class ChatIconManager
private void loadRankIcons() private void loadRankIcons()
{ {
final EnumComposition friendsChatIcons = client.getEnum(EnumID.FRIENDS_CHAT_RANK_ICONS); final EnumComposition friendsChatIcons = client.getEnum(EnumID.FRIENDS_CHAT_RANK_ICONS);
final EnumComposition clanIcons = client.getEnum(EnumID.CLAN_RANK_GRAPHIC);
{ {
IndexedSprite[] modIcons = client.getModIcons(); IndexedSprite[] modIcons = client.getModIcons();
friendsChatOffset = modIcons.length; friendsChatOffset = modIcons.length;
clanOffset = friendsChatOffset + friendsChatIcons.size();
IndexedSprite blank = ImageUtil.getImageIndexedSprite( IndexedSprite blank = ImageUtil.getImageIndexedSprite(
new BufferedImage(modIcons[0].getWidth(), modIcons[0].getHeight(), BufferedImage.TYPE_INT_ARGB), new BufferedImage(modIcons[0].getWidth(), modIcons[0].getHeight(), BufferedImage.TYPE_INT_ARGB),
client); client);
modIcons = Arrays.copyOf(modIcons, friendsChatOffset + friendsChatIcons.size()); modIcons = Arrays.copyOf(modIcons, friendsChatOffset + friendsChatIcons.size() + clanIcons.size());
Arrays.fill(modIcons, friendsChatOffset, modIcons.length, blank); Arrays.fill(modIcons, friendsChatOffset, modIcons.length, blank);
client.setModIcons(modIcons); client.setModIcons(modIcons);
} }
friendsChatRankImages = new BufferedImage[friendsChatIcons.size()]; friendsChatRankImages = new BufferedImage[friendsChatIcons.size()];
clanRankImages = new BufferedImage[clanIcons.size()];
final IndexedSprite[] modIcons = client.getModIcons(); final IndexedSprite[] modIcons = client.getModIcons();
@@ -120,6 +140,21 @@ public class ChatIconManager
modIcons[friendsChatOffset + fi] = ImageUtil.getImageIndexedSprite(friendsChatRankImages[fi], client); modIcons[friendsChatOffset + fi] = ImageUtil.getImageIndexedSprite(friendsChatRankImages[fi], client);
}); });
} }
for (int i = 0; i < clanIcons.size(); i++)
{
final int key = clanIcons.getKeys()[i];
final int idx = clanRankToIdx(key);
assert idx >= 0 && idx < clanIcons.size();
spriteManager.getSpriteAsync(clanIcons.getIntValue(key), 0, sprite ->
{
final BufferedImage img = ImageUtil.resizeCanvas(sprite, IMAGE_DIMENSION.width, IMAGE_DIMENSION.height);
clanRankImages[idx] = img;
modIcons[clanOffset + idx] = ImageUtil.getImageIndexedSprite(img, client);
});
}
} }
private static BufferedImage friendsChatImageFromSprite(final BufferedImage sprite) private static BufferedImage friendsChatImageFromSprite(final BufferedImage sprite)
@@ -127,4 +162,10 @@ public class ChatIconManager
final BufferedImage canvas = ImageUtil.resizeCanvas(sprite, IMAGE_DIMENSION.width, IMAGE_DIMENSION.height); final BufferedImage canvas = ImageUtil.resizeCanvas(sprite, IMAGE_DIMENSION.width, IMAGE_DIMENSION.height);
return ImageUtil.outlineImage(canvas, IMAGE_OUTLINE_COLOR); return ImageUtil.outlineImage(canvas, IMAGE_OUTLINE_COLOR);
} }
private static int clanRankToIdx(int key)
{
// keys are -5 to 264, with no 0
return key < 0 ? ~key : (key + 4);
}
} }

View File

@@ -34,7 +34,7 @@ import net.runelite.api.GameState;
import net.runelite.api.ScriptID; import net.runelite.api.ScriptID;
import net.runelite.api.VarClientInt; import net.runelite.api.VarClientInt;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.ScriptPreFired;
import net.runelite.api.vars.InputType; import net.runelite.api.vars.InputType;
import net.runelite.api.widgets.JavaScriptCallback; import net.runelite.api.widgets.JavaScriptCallback;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
@@ -153,9 +153,9 @@ public class ChatboxPanelManager
} }
@Subscribe @Subscribe
public void onScriptCallbackEvent(ScriptCallbackEvent ev) public void onScriptPreFired(ScriptPreFired ev)
{ {
if (currentInput != null && "resetChatboxInput".equals(ev.getEventName())) if (currentInput != null && ev.getScriptId() == ScriptID.MESSAGE_LAYER_CLOSE)
{ {
killCurrentPanel(); killCurrentPanel();
} }

View File

@@ -22,7 +22,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.runelite.client.plugins.friendschat; package net.runelite.client.plugins.chatchannel;
enum ActivityType enum ActivityType
{ {

View File

@@ -22,22 +22,58 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.runelite.client.plugins.friendschat; package net.runelite.client.plugins.chatchannel;
import java.awt.Color; import java.awt.Color;
import net.runelite.api.FriendsChatRank; import net.runelite.api.FriendsChatRank;
import net.runelite.client.config.Config; import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.ConfigSection;
@ConfigGroup("clanchat") // group name from the old plugin @ConfigGroup(ChatChannelConfig.GROUP)
public interface FriendsChatConfig extends Config public interface ChatChannelConfig extends Config
{ {
String GROUP = "clanchat"; // group name from the old plugin
@ConfigSection(
name = "Friends Chat",
description = "Configuration for friends chat",
position = 10
)
String friendsChatSection = "friendsChat";
@ConfigSection(
name = "Clan Chat",
description = "Configuration for clan chat",
position = 20
)
String clanChatSection = "clanChat";
@ConfigSection(
name = "Guest Clan Chat",
description = "Configuration for guest clan chat",
position = 30
)
String guestClanChatSection = "guestClanChat";
@ConfigItem(
keyName = "joinLeaveTimeout",
name = "Join/Leave timeout",
description = "Set the timeout duration of join/leave messages. A value of 0 will make the messages permanent.",
position = 0
)
default int joinLeaveTimeout()
{
return 20;
}
@ConfigItem( @ConfigItem(
keyName = "clanChatIcons", keyName = "clanChatIcons",
name = "Chat Icons", name = "Chat Icons",
description = "Show rank icons next to friends chat members.", description = "Show rank icons next to friends chat members.",
position = 1 position = 1,
section = friendsChatSection
) )
default boolean chatIcons() default boolean chatIcons()
{ {
@@ -48,7 +84,8 @@ public interface FriendsChatConfig extends Config
keyName = "recentChats", keyName = "recentChats",
name = "Recent Chats", name = "Recent Chats",
description = "Show recent friends chats.", description = "Show recent friends chats.",
position = 2 position = 2,
section = friendsChatSection
) )
default boolean recentChats() default boolean recentChats()
{ {
@@ -59,7 +96,8 @@ public interface FriendsChatConfig extends Config
keyName = "clanCounter", keyName = "clanCounter",
name = "Members Counter", name = "Members Counter",
description = "Show the amount of friends chat members near you.", description = "Show the amount of friends chat members near you.",
position = 3 position = 3,
section = friendsChatSection
) )
default boolean showCounter() default boolean showCounter()
{ {
@@ -88,7 +126,8 @@ public interface FriendsChatConfig extends Config
keyName = "showJoinLeave", keyName = "showJoinLeave",
name = "Show Join/Leave", name = "Show Join/Leave",
description = "Adds a temporary message notifying when a member joins or leaves.", description = "Adds a temporary message notifying when a member joins or leaves.",
position = 4 position = 4,
section = friendsChatSection
) )
default boolean showJoinLeave() default boolean showJoinLeave()
{ {
@@ -99,29 +138,20 @@ public interface FriendsChatConfig extends Config
keyName = "joinLeaveRank", keyName = "joinLeaveRank",
name = "Join/Leave rank", name = "Join/Leave rank",
description = "Only show join/leave messages for members at or above this rank.", description = "Only show join/leave messages for members at or above this rank.",
position = 5 position = 5,
section = friendsChatSection
) )
default FriendsChatRank joinLeaveRank() default FriendsChatRank joinLeaveRank()
{ {
return FriendsChatRank.UNRANKED; return FriendsChatRank.UNRANKED;
} }
@ConfigItem(
keyName = "joinLeaveTimeout",
name = "Join/Leave timeout",
description = "Set the timeout duration of join/leave messages. A value of 0 will make the messages permanent.",
position = 6
)
default int joinLeaveTimeout()
{
return 20;
}
@ConfigItem( @ConfigItem(
keyName = "privateMessageIcons", keyName = "privateMessageIcons",
name = "Private Message Icons", name = "Private Message Icons",
description = "Add rank icons to private messages received from members.", description = "Add rank icons to private messages received from members.",
position = 7 position = 7,
section = friendsChatSection
) )
default boolean privateMessageIcons() default boolean privateMessageIcons()
{ {
@@ -132,7 +162,8 @@ public interface FriendsChatConfig extends Config
keyName = "publicChatIcons", keyName = "publicChatIcons",
name = "Public Chat Icons", name = "Public Chat Icons",
description = "Add rank icons to public chat messages from members.", description = "Add rank icons to public chat messages from members.",
position = 8 position = 8,
section = friendsChatSection
) )
default boolean publicChatIcons() default boolean publicChatIcons()
{ {
@@ -143,7 +174,8 @@ public interface FriendsChatConfig extends Config
keyName = "confirmKicks", keyName = "confirmKicks",
name = "Confirm Kicks", name = "Confirm Kicks",
description = "Shows a chat prompt to confirm kicks", description = "Shows a chat prompt to confirm kicks",
position = 10 position = 10,
section = friendsChatSection
) )
default boolean confirmKicks() default boolean confirmKicks()
{ {
@@ -154,7 +186,8 @@ public interface FriendsChatConfig extends Config
keyName = "showIgnores", keyName = "showIgnores",
name = "Recolor ignored players", name = "Recolor ignored players",
description = "Recolor members who are on your ignore list", description = "Recolor members who are on your ignore list",
position = 11 position = 11,
section = friendsChatSection
) )
default boolean showIgnores() default boolean showIgnores()
{ {
@@ -165,10 +198,35 @@ public interface FriendsChatConfig extends Config
keyName = "showIgnoresColor", keyName = "showIgnoresColor",
name = "Ignored color", name = "Ignored color",
description = "Allows you to change the color of the ignored players in your friends chat", description = "Allows you to change the color of the ignored players in your friends chat",
position = 12 position = 12,
section = friendsChatSection
) )
default Color showIgnoresColor() default Color showIgnoresColor()
{ {
return Color.RED; return Color.RED;
} }
@ConfigItem(
keyName = "clanChatShowJoinLeave",
name = "Show Join/Leave",
description = "Adds a temporary message notifying when a member joins or leaves.",
position = 0,
section = clanChatSection
)
default boolean clanChatShowJoinLeave()
{
return false;
}
@ConfigItem(
keyName = "guestClanChatShowJoinLeave",
name = "Show Join/Leave",
description = "Adds a temporary message notifying when a member joins or leaves.",
position = 0,
section = guestClanChatSection
)
default boolean guestClanChatShowJoinLeave()
{
return false;
}
} }

View File

@@ -24,7 +24,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.runelite.client.plugins.friendschat; package net.runelite.client.plugins.chatchannel;
import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects;
import com.google.common.base.Strings; import com.google.common.base.Strings;
@@ -36,13 +36,15 @@ import java.awt.image.BufferedImage;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Deque; import java.util.Deque;
import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.AllArgsConstructor;
import net.runelite.api.ChatLineBuffer; import net.runelite.api.ChatLineBuffer;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
import net.runelite.api.ChatPlayer;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.FriendsChatManager; import net.runelite.api.FriendsChatManager;
import net.runelite.api.FriendsChatMember; import net.runelite.api.FriendsChatMember;
@@ -56,7 +58,14 @@ import net.runelite.api.ScriptID;
import net.runelite.api.SpriteID; import net.runelite.api.SpriteID;
import net.runelite.api.VarClientStr; import net.runelite.api.VarClientStr;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanChannelMember;
import net.runelite.api.clan.ClanRank;
import net.runelite.api.clan.ClanSettings;
import net.runelite.api.clan.ClanTitle;
import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ClanMemberJoined;
import net.runelite.api.events.ClanMemberLeft;
import net.runelite.api.events.FriendsChatChanged; import net.runelite.api.events.FriendsChatChanged;
import net.runelite.api.events.FriendsChatMemberJoined; import net.runelite.api.events.FriendsChatMemberJoined;
import net.runelite.api.events.FriendsChatMemberLeft; import net.runelite.api.events.FriendsChatMemberLeft;
@@ -72,6 +81,8 @@ import net.runelite.api.widgets.WidgetInfo;
import net.runelite.api.widgets.WidgetType; import net.runelite.api.widgets.WidgetType;
import net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageBuilder;
import net.runelite.client.chat.ChatMessageManager;
import net.runelite.client.chat.QueuedMessage;
import net.runelite.client.config.ChatColorConfig; import net.runelite.client.config.ChatColorConfig;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -89,11 +100,11 @@ import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
import net.runelite.client.util.Text; import net.runelite.client.util.Text;
@PluginDescriptor( @PluginDescriptor(
name = "Friends Chat", name = "Chat Channels",
description = "Add rank icons to users talking in friends chat", description = "Improvements for friends chat and clan chat.",
tags = {"icons", "rank", "recent", "clan"} tags = {"icons", "rank", "recent", "clan", "friend", "channel"}
) )
public class FriendsChatPlugin extends Plugin public class ChatChannelPlugin extends Plugin
{ {
private static final int MAX_CHATS = 10; private static final int MAX_CHATS = 10;
private static final String RECENT_TITLE = "Recent FCs"; private static final String RECENT_TITLE = "Recent FCs";
@@ -106,7 +117,7 @@ public class FriendsChatPlugin extends Plugin
private ChatIconManager chatIconManager; private ChatIconManager chatIconManager;
@Inject @Inject
private FriendsChatConfig config; private ChatChannelConfig config;
@Inject @Inject
private InfoBoxManager infoBoxManager; private InfoBoxManager infoBoxManager;
@@ -123,22 +134,40 @@ public class FriendsChatPlugin extends Plugin
@Inject @Inject
private ChatColorConfig chatColorConfig; private ChatColorConfig chatColorConfig;
private List<String> chats = new ArrayList<>(); @Inject
private ChatMessageManager chatMessageManager;
private List<String> chats;
private final List<Player> members = new ArrayList<>(); private final List<Player> members = new ArrayList<>();
private MembersIndicator membersIndicator; private MembersIndicator membersIndicator;
/** /**
* queue of temporary messages added to the client * queue of temporary messages added to the client
*/ */
private final Deque<MemberJoinMessage> joinMessages = new ArrayDeque<>(); private final Deque<MemberJoinMessage> joinMessages = new ArrayDeque<>();
private final Map<String, MemberActivity> activityBuffer = new HashMap<>(); private final Map<ChatPlayer, MemberActivity> activityBuffer = new LinkedHashMap<>();
private int joinedTick; private int joinedTick;
private boolean kickConfirmed = false; private boolean kickConfirmed = false;
@Provides private boolean inputWarning;
FriendsChatConfig getConfig(ConfigManager configManager)
@AllArgsConstructor
private enum InputMode
{ {
return configManager.getConfig(FriendsChatConfig.class); FRIEND("Friends Chat", ChatMessageType.FRIENDSCHAT),
CLAN("Clan Chat", ChatMessageType.CLAN_CHAT),
GUEST("Guest Clan Chat", ChatMessageType.CLAN_GUEST_CHAT);
private final String prompt;
private final ChatMessageType chatMessageType;
}
private InputMode inputMode;
@Provides
ChatChannelConfig getConfig(ConfigManager configManager)
{
return configManager.getConfig(ChatChannelConfig.class);
} }
@Override @Override
@@ -155,16 +184,18 @@ public class FriendsChatPlugin extends Plugin
@Override @Override
public void shutDown() public void shutDown()
{ {
chats = null;
clientThread.invoke(() -> colorIgnoredPlayers(Color.WHITE)); clientThread.invoke(() -> colorIgnoredPlayers(Color.WHITE));
members.clear(); members.clear();
resetCounter(); resetCounter();
rebuildFriendsChat(); rebuildFriendsChat();
inputMode = null;
} }
@Subscribe @Subscribe
public void onConfigChanged(ConfigChanged configChanged) public void onConfigChanged(ConfigChanged configChanged)
{ {
if (configChanged.getGroup().equals("clanchat")) if (configChanged.getGroup().equals(ChatChannelConfig.GROUP))
{ {
if (!config.recentChats()) if (!config.recentChats())
{ {
@@ -219,16 +250,7 @@ public class FriendsChatPlugin extends Plugin
} }
// attempt to filter out world hopping joins // attempt to filter out world hopping joins
if (!activityBuffer.containsKey(member.getName())) queueJoin(member, MemberActivity.ChatType.FRIENDS_CHAT);
{
MemberActivity joinActivity = new MemberActivity(ActivityType.JOINED,
member, client.getTickCount());
activityBuffer.put(member.getName(), joinActivity);
}
else
{
activityBuffer.remove(member.getName());
}
} }
@Subscribe @Subscribe
@@ -263,15 +285,75 @@ public class FriendsChatPlugin extends Plugin
return; return;
} }
if (!activityBuffer.containsKey(member.getName())) queueLeave(member, MemberActivity.ChatType.FRIENDS_CHAT);
}
@Subscribe
public void onClanMemberJoined(ClanMemberJoined clanMemberJoined)
{
MemberActivity.ChatType chatType = clanChannelToChatType(clanMemberJoined.getClanChannel());
if (chatType != null && clanChannelJoinLeaveEnabled(chatType))
{ {
MemberActivity leaveActivity = new MemberActivity(ActivityType.LEFT, queueJoin(clanMemberJoined.getClanMember(), chatType);
}
}
@Subscribe
public void onClanMemberLeft(ClanMemberLeft clanMemberLeft)
{
MemberActivity.ChatType chatType = clanChannelToChatType(clanMemberLeft.getClanChannel());
if (chatType != null && clanChannelJoinLeaveEnabled(chatType))
{
queueLeave(clanMemberLeft.getClanMember(), chatType);
}
}
private MemberActivity.ChatType clanChannelToChatType(ClanChannel clanChannel)
{
return clanChannel == client.getClanChannel() ? MemberActivity.ChatType.CLAN_CHAT :
clanChannel == client.getGuestClanChannel() ? MemberActivity.ChatType.GUEST_CHAT :
null;
}
private boolean clanChannelJoinLeaveEnabled(MemberActivity.ChatType chatType)
{
switch (chatType)
{
case CLAN_CHAT:
return config.clanChatShowJoinLeave();
case GUEST_CHAT:
return config.guestClanChatShowJoinLeave();
default:
return false;
}
}
private void queueJoin(ChatPlayer member, MemberActivity.ChatType chatType)
{
// attempt to filter out world hopping joins
if (!activityBuffer.containsKey(member))
{
MemberActivity joinActivity = new MemberActivity(ActivityType.JOINED, chatType,
member, client.getTickCount()); member, client.getTickCount());
activityBuffer.put(member.getName(), leaveActivity); activityBuffer.put(member, joinActivity);
} }
else else
{ {
activityBuffer.remove(member.getName()); activityBuffer.remove(member);
}
}
private void queueLeave(ChatPlayer member, MemberActivity.ChatType chatType)
{
if (!activityBuffer.containsKey(member))
{
MemberActivity leaveActivity = new MemberActivity(ActivityType.LEFT, chatType,
member, client.getTickCount());
activityBuffer.put(member, leaveActivity);
}
else
{
activityBuffer.remove(member);
} }
} }
@@ -334,7 +416,7 @@ public class FriendsChatPlugin extends Plugin
// If this message has been reused since, it will get a different id // If this message has been reused since, it will get a different id
if (joinMessage.getGetMessageId() == messageNode.getId()) if (joinMessage.getGetMessageId() == messageNode.getId())
{ {
ChatLineBuffer ccInfoBuffer = client.getChatLineMap().get(ChatMessageType.FRIENDSCHATNOTIFICATION.getType()); ChatLineBuffer ccInfoBuffer = client.getChatLineMap().get(messageNode.getType().getType());
if (ccInfoBuffer != null) if (ccInfoBuffer != null)
{ {
ccInfoBuffer.removeMessageNode(messageNode); ccInfoBuffer.removeMessageNode(messageNode);
@@ -357,8 +439,7 @@ public class FriendsChatPlugin extends Plugin
private void addActivityMessages() private void addActivityMessages()
{ {
FriendsChatManager friendsChatManager = client.getFriendsChatManager(); if (activityBuffer.isEmpty())
if (friendsChatManager == null || activityBuffer.isEmpty())
{ {
return; return;
} }
@@ -372,13 +453,28 @@ public class FriendsChatPlugin extends Plugin
if (activity.getTick() < client.getTickCount() - MESSAGE_DELAY) if (activity.getTick() < client.getTickCount() - MESSAGE_DELAY)
{ {
activityIt.remove(); activityIt.remove();
addActivityMessage(friendsChatManager, activity.getMember(), activity.getActivityType()); switch (activity.getChatType())
{
case FRIENDS_CHAT:
addActivityMessage((FriendsChatMember) activity.getMember(), activity.getActivityType());
break;
case CLAN_CHAT:
case GUEST_CHAT:
addClanActivityMessage((ClanChannelMember) activity.getMember(), activity.getActivityType(), activity.getChatType());
break;
}
} }
} }
} }
private void addActivityMessage(FriendsChatManager friendsChatManager, FriendsChatMember member, ActivityType activityType) private void addActivityMessage(FriendsChatMember member, ActivityType activityType)
{ {
final FriendsChatManager friendsChatManager = client.getFriendsChatManager();
if (friendsChatManager == null)
{
return;
}
final String activityMessage = activityType == ActivityType.JOINED ? " has joined." : " has left."; final String activityMessage = activityType == ActivityType.JOINED ? " has joined." : " has left.";
final FriendsChatRank rank = member.getRank(); final FriendsChatRank rank = member.getRank();
final Color textColor, channelColor; final Color textColor, channelColor;
@@ -421,6 +517,55 @@ public class FriendsChatPlugin extends Plugin
joinMessages.addLast(joinMessage); joinMessages.addLast(joinMessage);
} }
private void addClanActivityMessage(ClanChannelMember member, ActivityType activityType, MemberActivity.ChatType chatType)
{
ClanSettings clanSettings = chatType == MemberActivity.ChatType.CLAN_CHAT ? client.getClanSettings() : client.getGuestClanSettings();
ClanRank rank = member.getRank();
if (rank == null || clanSettings == null)
{
return;
}
ClanTitle clanTitle = clanSettings.titleForRank(rank);
int rankIcon = -1;
if (clanTitle != null)
{
// Clan ranks are always included in chat messages, so we'll just always include it in join messages.
rankIcon = chatIconManager.getIconNumber(clanTitle);
}
final Color textColor;
// Use configured clan chat info colors if set, otherwise default to the jagex text and fc name colors
if (client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1)
{
textColor = MoreObjects.firstNonNull(
chatType == MemberActivity.ChatType.CLAN_CHAT ? chatColorConfig.transparentClanChatInfo() : chatColorConfig.transparentClanChatGuestInfo(),
CHAT_FC_TEXT_TRANSPARENT_BACKGROUND);
}
else
{
textColor = MoreObjects.firstNonNull(
chatType == MemberActivity.ChatType.CLAN_CHAT ? chatColorConfig.opaqueClanChatInfo() : chatColorConfig.opaqueClanChatGuestInfo(),
CHAT_FC_TEXT_OPAQUE_BACKGROUND);
}
ChatMessageBuilder message = new ChatMessageBuilder();
if (rankIcon > -1)
{
message.img(rankIcon);
}
message.append(textColor, member.getName() + (activityType == ActivityType.JOINED ? " has joined." : " has left."));
final String messageString = message.build();
final MessageNode line = client.addChatMessage(
chatType == MemberActivity.ChatType.CLAN_CHAT ? ChatMessageType.CLAN_MESSAGE : ChatMessageType.CLAN_GUEST_MESSAGE,
"", messageString, "");
MemberJoinMessage joinMessage = new MemberJoinMessage(line, line.getId(), client.getTickCount());
joinMessages.addLast(joinMessage);
}
@Subscribe @Subscribe
public void onVarClientStrChanged(VarClientStrChanged strChanged) public void onVarClientStrChanged(VarClientStrChanged strChanged)
{ {
@@ -551,6 +696,67 @@ public class FriendsChatPlugin extends Plugin
clientThread.invokeLater(() -> confirmKickPlayer(kickPlayerName)); clientThread.invokeLater(() -> confirmKickPlayer(kickPlayerName));
break; break;
} }
case "preChatSendpublic":
{
final String chatboxInput = client.getVar(VarClientStr.CHATBOX_TYPED_TEXT);
switch (chatboxInput)
{
case "/p":
switchTypingMode(null);
break;
case "/f":
switchTypingMode(InputMode.FRIEND);
break;
case "/c":
switchTypingMode(InputMode.CLAN);
break;
case "/g":
switchTypingMode(InputMode.GUEST);
break;
default:
if (inputMode != null)
{
final int[] intStack = client.getIntStack();
final int intStackSize = client.getIntStackSize();
intStack[intStackSize - 1] = inputMode.chatMessageType.getType(); // chat message type
intStack[intStackSize - 2] = 0; // prefix length
}
break;
}
break;
}
case "setChatboxInput":
{
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null && inputMode != null)
{
String text = chatboxInput.getText();
int idx = text.indexOf(": ");
if (idx != -1)
{
String newText = inputMode.prompt + ": " + text.substring(idx + 2);
chatboxInput.setText(newText);
}
}
break;
}
}
}
private void switchTypingMode(InputMode mode)
{
inputMode = mode;
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, "");
if (mode != null && !inputWarning)
{
inputWarning = true;
chatMessageManager.queue(QueuedMessage.builder()
.type(ChatMessageType.CONSOLE)
.runeLiteFormattedMessage("You've entered " + inputMode.prompt + " typing mode. All typed messages will be sent to your " +
inputMode.prompt.toLowerCase() + ". Use /p to reset to public chat.")
.build());
} }
} }

View File

@@ -22,17 +22,25 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.runelite.client.plugins.friendschat; package net.runelite.client.plugins.chatchannel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Value; import lombok.Value;
import net.runelite.api.FriendsChatMember; import net.runelite.api.ChatPlayer;
@Value @Value
@AllArgsConstructor @AllArgsConstructor
class MemberActivity class MemberActivity
{ {
enum ChatType
{
FRIENDS_CHAT,
CLAN_CHAT,
GUEST_CHAT
}
private ActivityType activityType; private ActivityType activityType;
private FriendsChatMember member; private ChatType chatType;
private ChatPlayer member;
private Integer tick; private Integer tick;
} }

View File

@@ -22,7 +22,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.runelite.client.plugins.friendschat; package net.runelite.client.plugins.chatchannel;
import lombok.Value; import lombok.Value;
import net.runelite.api.MessageNode; import net.runelite.api.MessageNode;

View File

@@ -22,7 +22,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.runelite.client.plugins.friendschat; package net.runelite.client.plugins.chatchannel;
import java.awt.Color; import java.awt.Color;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
@@ -30,9 +30,9 @@ import net.runelite.client.ui.overlay.infobox.Counter;
class MembersIndicator extends Counter class MembersIndicator extends Counter
{ {
private final FriendsChatPlugin plugin; private final ChatChannelPlugin plugin;
MembersIndicator(BufferedImage image, FriendsChatPlugin plugin) MembersIndicator(BufferedImage image, ChatChannelPlugin plugin)
{ {
super(image, plugin, plugin.getMembersSize()); super(image, plugin, plugin.getMembersSize());
this.plugin = plugin; this.plugin = plugin;

View File

@@ -110,11 +110,22 @@ public interface ChatFilterConfig extends Config
return false; return false;
} }
@ConfigItem(
keyName = "filterClanChat",
name = "Filter clan Chat Members",
description = "Filter your clan chat members' messages",
position = 7
)
default boolean filterClanChat()
{
return false;
}
@ConfigItem( @ConfigItem(
keyName = "filterLogin", keyName = "filterLogin",
name = "Filter Logged In/Out Messages", name = "Filter Logged In/Out Messages",
description = "Filter your private chat to remove logged in/out messages", description = "Filter your private chat to remove logged in/out messages",
position = 7 position = 8
) )
default boolean filterLogin() default boolean filterLogin()
{ {
@@ -125,7 +136,7 @@ public interface ChatFilterConfig extends Config
keyName = "filterGameChat", keyName = "filterGameChat",
name = "Filter Game Chat", name = "Filter Game Chat",
description = "Filter your game chat messages", description = "Filter your game chat messages",
position = 8 position = 9
) )
default boolean filterGameChat() default boolean filterGameChat()
{ {
@@ -136,7 +147,7 @@ public interface ChatFilterConfig extends Config
keyName = "collapseGameChat", keyName = "collapseGameChat",
name = "Collapse Game Chat", name = "Collapse Game Chat",
description = "Collapse duplicate game chat messages into a single line", description = "Collapse duplicate game chat messages into a single line",
position = 9 position = 10
) )
default boolean collapseGameChat() default boolean collapseGameChat()
{ {
@@ -147,7 +158,7 @@ public interface ChatFilterConfig extends Config
keyName = "collapsePlayerChat", keyName = "collapsePlayerChat",
name = "Collapse Player Chat", name = "Collapse Player Chat",
description = "Collapse duplicate player chat messages into a single line", description = "Collapse duplicate player chat messages into a single line",
position = 10 position = 11
) )
default boolean collapsePlayerChat() default boolean collapsePlayerChat()
{ {
@@ -158,7 +169,7 @@ public interface ChatFilterConfig extends Config
keyName = "maxRepeatedPublicChats", keyName = "maxRepeatedPublicChats",
name = "Repeat filter", name = "Repeat filter",
description = "Block player chat message if repeated this many times. 0 is off", description = "Block player chat message if repeated this many times. 0 is off",
position = 11 position = 12
) )
default int maxRepeatedPublicChats() default int maxRepeatedPublicChats()
{ {

View File

@@ -53,6 +53,7 @@ import net.runelite.api.Client;
import net.runelite.api.FriendsChatManager; import net.runelite.api.FriendsChatManager;
import net.runelite.api.MessageNode; import net.runelite.api.MessageNode;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.OverheadTextChanged; import net.runelite.api.events.OverheadTextChanged;
import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.ScriptCallbackEvent;
@@ -170,6 +171,8 @@ public class ChatFilterPlugin extends Plugin
case PRIVATECHAT: case PRIVATECHAT:
case MODPRIVATECHAT: case MODPRIVATECHAT:
case FRIENDSCHAT: case FRIENDSCHAT:
case CLAN_CHAT:
case CLAN_GUEST_CHAT:
if (shouldFilterPlayerMessage(Text.removeTags(name))) if (shouldFilterPlayerMessage(Text.removeTags(name)))
{ {
message = censorMessage(name, message); message = censorMessage(name, message);
@@ -271,7 +274,8 @@ public class ChatFilterPlugin extends Plugin
boolean isMessageFromSelf = playerName.equals(client.getLocalPlayer().getName()); boolean isMessageFromSelf = playerName.equals(client.getLocalPlayer().getName());
return !isMessageFromSelf && return !isMessageFromSelf &&
(config.filterFriends() || !client.isFriended(playerName, false)) && (config.filterFriends() || !client.isFriended(playerName, false)) &&
(config.filterFriendsChat() || !isFriendsChatMember(playerName)); (config.filterFriendsChat() || !isFriendsChatMember(playerName)) &&
(config.filterClanChat() || !isClanChatMember(playerName));
} }
private boolean isFriendsChatMember(String name) private boolean isFriendsChatMember(String name)
@@ -280,6 +284,23 @@ public class ChatFilterPlugin extends Plugin
return friendsChatManager != null && friendsChatManager.findByName(name) != null; return friendsChatManager != null && friendsChatManager.findByName(name) != null;
} }
private boolean isClanChatMember(String name)
{
ClanChannel clanChannel = client.getClanChannel();
if (clanChannel != null && clanChannel.findMember(name) != null)
{
return true;
}
clanChannel = client.getGuestClanChannel();
if (clanChannel != null && clanChannel.findMember(name) != null)
{
return true;
}
return false;
}
String censorMessage(final String username, final String message) String censorMessage(final String username, final String message)
{ {
String strippedMessage = jagexPrintableCharMatcher.retainFrom(message) String strippedMessage = jagexPrintableCharMatcher.retainFrom(message)

View File

@@ -209,6 +209,8 @@ public class ChatNotificationsPlugin extends Plugin
case MODCHAT: case MODCHAT:
case PUBLICCHAT: case PUBLICCHAT:
case FRIENDSCHAT: case FRIENDSCHAT:
case CLAN_CHAT:
case CLAN_GUEST_CHAT:
case AUTOTYPER: case AUTOTYPER:
case MODAUTOTYPER: case MODAUTOTYPER:
if (client.getLocalPlayer() != null && Text.toJagexName(Text.removeTags(chatMessage.getName())).equals(client.getLocalPlayer().getName())) if (client.getLocalPlayer() != null && Text.toJagexName(Text.removeTags(chatMessage.getName())).equals(client.getLocalPlayer().getName()))
@@ -250,7 +252,9 @@ public class ChatNotificationsPlugin extends Plugin
|| chatMessage.getType() == ChatMessageType.PRIVATECHAT || chatMessage.getType() == ChatMessageType.PRIVATECHAT
|| chatMessage.getType() == ChatMessageType.FRIENDSCHAT || chatMessage.getType() == ChatMessageType.FRIENDSCHAT
|| chatMessage.getType() == ChatMessageType.MODCHAT || chatMessage.getType() == ChatMessageType.MODCHAT
|| chatMessage.getType() == ChatMessageType.MODPRIVATECHAT)) || chatMessage.getType() == ChatMessageType.MODPRIVATECHAT
|| chatMessage.getType() == ChatMessageType.CLAN_CHAT
|| chatMessage.getType() == ChatMessageType.CLAN_GUEST_CHAT))
{ {
sendNotification(chatMessage); sendNotification(chatMessage);
} }

View File

@@ -124,6 +124,8 @@ public class EmojiPlugin extends Plugin
case PUBLICCHAT: case PUBLICCHAT:
case MODCHAT: case MODCHAT:
case FRIENDSCHAT: case FRIENDSCHAT:
case CLAN_CHAT:
case CLAN_GUEST_CHAT:
case PRIVATECHAT: case PRIVATECHAT:
case PRIVATECHATOUT: case PRIVATECHATOUT:
case MODPRIVATECHAT: case MODPRIVATECHAT:

View File

@@ -342,8 +342,7 @@ public class FriendNotesPlugin extends Plugin
switch (event.getEventName()) switch (event.getEventName())
{ {
case "friend_cc_settext": case "friendsChatSetText":
case "ignore_cc_settext":
String[] stringStack = client.getStringStack(); String[] stringStack = client.getStringStack();
int stringStackSize = client.getStringStackSize(); int stringStackSize = client.getStringStackSize();
final String rsn = stringStack[stringStackSize - 1]; final String rsn = stringStack[stringStackSize - 1];
@@ -354,8 +353,7 @@ public class FriendNotesPlugin extends Plugin
stringStack[stringStackSize - 1] = rsn + " <img=" + iconIdx + ">"; stringStack[stringStackSize - 1] = rsn + " <img=" + iconIdx + ">";
} }
break; break;
case "friend_cc_setposition": case "friendsChatSetPosition":
case "ignore_cc_setposition":
if (currentlyLayouting == null || getFriendNote(currentlyLayouting) == null) if (currentlyLayouting == null || getFriendNote(currentlyLayouting) == null)
{ {
return; return;

View File

@@ -95,7 +95,7 @@ public interface PlayerIndicatorsConfig extends Config
description = "Configures if friends chat members should be highlighted", description = "Configures if friends chat members should be highlighted",
section = highlightSection section = highlightSection
) )
default boolean drawFriendsChatMemberNames() default boolean highlightFriendsChat()
{ {
return true; return true;
} }
@@ -138,6 +138,30 @@ public interface PlayerIndicatorsConfig extends Config
@ConfigItem( @ConfigItem(
position = 8, position = 8,
keyName = "drawClanChatMemberNames",
name = "Highlight clan members",
description = "Configures whether or not clan members should be highlighted",
section = highlightSection
)
default boolean highlightClanMembers()
{
return true;
}
@ConfigItem(
position = 9,
keyName = "clanChatMemberColor",
name = "Clan member",
description = "Color of clan members",
section = highlightSection
)
default Color getClanMemberColor()
{
return new Color(36, 15, 171);
}
@ConfigItem(
position = 10,
keyName = "drawNonClanMemberNames", keyName = "drawNonClanMemberNames",
name = "Highlight others", name = "Highlight others",
description = "Configures whether or not other players should be highlighted", description = "Configures whether or not other players should be highlighted",
@@ -149,7 +173,7 @@ public interface PlayerIndicatorsConfig extends Config
} }
@ConfigItem( @ConfigItem(
position = 9, position = 11,
keyName = "nonClanMemberColor", keyName = "nonClanMemberColor",
name = "Others", name = "Others",
description = "Color of other players names", description = "Color of other players names",
@@ -214,4 +238,15 @@ public interface PlayerIndicatorsConfig extends Config
{ {
return true; return true;
} }
@ConfigItem(
position = 15,
keyName = "clanchatMenuIcons",
name = "Show clan chat ranks",
description = "Add clan chat rank to right click menu and next to player names"
)
default boolean showClanChatRanks()
{
return true;
}
} }

View File

@@ -34,6 +34,7 @@ import javax.inject.Singleton;
import net.runelite.api.FriendsChatRank; import net.runelite.api.FriendsChatRank;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.Point; import net.runelite.api.Point;
import net.runelite.api.clan.ClanTitle;
import net.runelite.client.game.ChatIconManager; import net.runelite.client.game.ChatIconManager;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
@@ -108,40 +109,49 @@ public class PlayerIndicatorsOverlay extends Overlay
return; return;
} }
if (actor.isFriendsChatMember() && config.showFriendsChatRanks()) BufferedImage rankImage = null;
if (actor.isFriendsChatMember() && config.highlightFriendsChat() && config.showFriendsChatRanks())
{ {
final FriendsChatRank rank = playerIndicatorsService.getFriendsChatRank(actor); final FriendsChatRank rank = playerIndicatorsService.getFriendsChatRank(actor);
if (rank != FriendsChatRank.UNRANKED) if (rank != FriendsChatRank.UNRANKED)
{ {
final BufferedImage rankImage = chatIconManager.getRankImage(rank); rankImage = chatIconManager.getRankImage(rank);
if (rankImage != null)
{
final int imageWidth = rankImage.getWidth();
final int imageTextMargin;
final int imageNegativeMargin;
if (drawPlayerNamesConfig == PlayerNameLocation.MODEL_RIGHT)
{
imageTextMargin = imageWidth;
imageNegativeMargin = 0;
}
else
{
imageTextMargin = imageWidth / 2;
imageNegativeMargin = imageWidth / 2;
}
final int textHeight = graphics.getFontMetrics().getHeight() - graphics.getFontMetrics().getMaxDescent();
final Point imageLocation = new Point(textLocation.getX() - imageNegativeMargin - 1, textLocation.getY() - textHeight / 2 - rankImage.getHeight() / 2);
OverlayUtil.renderImageLocation(graphics, imageLocation, rankImage);
// move text
textLocation = new Point(textLocation.getX() + imageTextMargin, textLocation.getY());
}
} }
} }
else if (actor.isClanMember() && config.highlightClanMembers() && config.showClanChatRanks())
{
ClanTitle clanTitle = playerIndicatorsService.getClanTitle(actor);
if (clanTitle != null)
{
rankImage = chatIconManager.getRankImage(clanTitle);
}
}
if (rankImage != null)
{
final int imageWidth = rankImage.getWidth();
final int imageTextMargin;
final int imageNegativeMargin;
if (drawPlayerNamesConfig == PlayerNameLocation.MODEL_RIGHT)
{
imageTextMargin = imageWidth;
imageNegativeMargin = 0;
}
else
{
imageTextMargin = imageWidth / 2;
imageNegativeMargin = imageWidth / 2;
}
final int textHeight = graphics.getFontMetrics().getHeight() - graphics.getFontMetrics().getMaxDescent();
final Point imageLocation = new Point(textLocation.getX() - imageNegativeMargin - 1, textLocation.getY() - textHeight / 2 - rankImage.getHeight() / 2);
OverlayUtil.renderImageLocation(graphics, imageLocation, rankImage);
// move text
textLocation = new Point(textLocation.getX() + imageTextMargin, textLocation.getY());
}
OverlayUtil.renderTextLocation(graphics, textLocation, name, color); OverlayUtil.renderTextLocation(graphics, textLocation, name, color);
} }

View File

@@ -46,6 +46,7 @@ import static net.runelite.api.MenuAction.SPELL_CAST_ON_PLAYER;
import static net.runelite.api.MenuAction.WALK; import static net.runelite.api.MenuAction.WALK;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.clan.ClanTitle;
import net.runelite.api.events.ClientTick; import net.runelite.api.events.ClientTick;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -189,11 +190,11 @@ public class PlayerIndicatorsPlugin extends Plugin
int image = -1; int image = -1;
Color color = null; Color color = null;
if (config.highlightFriends() && player.isFriend()) if (player.isFriend() && config.highlightFriends())
{ {
color = config.getFriendColor(); color = config.getFriendColor();
} }
else if (config.drawFriendsChatMemberNames() && player.isFriendsChatMember()) else if (player.isFriendsChatMember() && config.highlightFriendsChat())
{ {
color = config.getFriendsChatMemberColor(); color = config.getFriendsChatMemberColor();
@@ -206,12 +207,24 @@ public class PlayerIndicatorsPlugin extends Plugin
} }
} }
} }
else if (config.highlightTeamMembers() else if (player.getTeam() > 0 && client.getLocalPlayer().getTeam() == player.getTeam() && config.highlightTeamMembers())
&& player.getTeam() > 0 && client.getLocalPlayer().getTeam() == player.getTeam())
{ {
color = config.getTeamMemberColor(); color = config.getTeamMemberColor();
} }
else if (config.highlightOthers() && !player.isFriendsChatMember()) else if (player.isClanMember() && config.highlightClanMembers())
{
color = config.getClanMemberColor();
if (config.showClanChatRanks())
{
ClanTitle clanTitle = playerIndicatorsService.getClanTitle(player);
if (clanTitle != null)
{
image = chatIconManager.getIconNumber(clanTitle);
}
}
}
else if (!player.isFriendsChatMember() && !player.isClanMember() && config.highlightOthers())
{ {
color = config.getOthersColor(); color = config.getOthersColor();
} }

View File

@@ -33,6 +33,11 @@ import net.runelite.api.FriendsChatManager;
import net.runelite.api.FriendsChatMember; import net.runelite.api.FriendsChatMember;
import net.runelite.api.FriendsChatRank; import net.runelite.api.FriendsChatRank;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanChannelMember;
import net.runelite.api.clan.ClanRank;
import net.runelite.api.clan.ClanSettings;
import net.runelite.api.clan.ClanTitle;
@Singleton @Singleton
public class PlayerIndicatorsService public class PlayerIndicatorsService
@@ -49,8 +54,9 @@ public class PlayerIndicatorsService
public void forEachPlayer(final BiConsumer<Player, Color> consumer) public void forEachPlayer(final BiConsumer<Player, Color> consumer)
{ {
if (!config.highlightOwnPlayer() && !config.drawFriendsChatMemberNames() if (!config.highlightOwnPlayer() && !config.highlightFriendsChat()
&& !config.highlightFriends() && !config.highlightOthers()) && !config.highlightFriends() && !config.highlightOthers()
&& !config.highlightClanMembers())
{ {
return; return;
} }
@@ -65,6 +71,7 @@ public class PlayerIndicatorsService
} }
boolean isFriendsChatMember = player.isFriendsChatMember(); boolean isFriendsChatMember = player.isFriendsChatMember();
boolean isClanMember = player.isClanMember();
if (player == localPlayer) if (player == localPlayer)
{ {
@@ -77,7 +84,7 @@ public class PlayerIndicatorsService
{ {
consumer.accept(player, config.getFriendColor()); consumer.accept(player, config.getFriendColor());
} }
else if (config.drawFriendsChatMemberNames() && isFriendsChatMember) else if (config.highlightFriendsChat() && isFriendsChatMember)
{ {
consumer.accept(player, config.getFriendsChatMemberColor()); consumer.accept(player, config.getFriendsChatMemberColor());
} }
@@ -85,13 +92,36 @@ public class PlayerIndicatorsService
{ {
consumer.accept(player, config.getTeamMemberColor()); consumer.accept(player, config.getTeamMemberColor());
} }
else if (config.highlightOthers() && !isFriendsChatMember) else if (config.highlightClanMembers() && isClanMember)
{
consumer.accept(player, config.getClanMemberColor());
}
else if (config.highlightOthers() && !isFriendsChatMember && !isClanMember)
{ {
consumer.accept(player, config.getOthersColor()); consumer.accept(player, config.getOthersColor());
} }
} }
} }
ClanTitle getClanTitle(Player player)
{
ClanChannel clanChannel = client.getClanChannel();
ClanSettings clanSettings = client.getClanSettings();
if (clanChannel == null || clanSettings == null)
{
return null;
}
ClanChannelMember member = clanChannel.findMember(player.getName());
if (member == null)
{
return null;
}
ClanRank rank = member.getRank();
return clanSettings.titleForRank(rank);
}
FriendsChatRank getFriendsChatRank(Player player) FriendsChatRank getFriendsChatRank(Player player)
{ {
final FriendsChatManager friendsChatManager = client.getFriendsChatManager(); final FriendsChatManager friendsChatManager = client.getFriendsChatManager();

View File

@@ -36,7 +36,9 @@ import javax.inject.Inject;
import lombok.Getter; import lombok.Getter;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.MessageNode; import net.runelite.api.MessageNode;
import net.runelite.api.ScriptID;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.events.ScriptPreFired;
import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.ConfigChanged;
import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
@@ -62,6 +64,8 @@ public class TimestampPlugin extends Plugin
@Getter @Getter
private SimpleDateFormat formatter; private SimpleDateFormat formatter;
private MessageNode currentlyBuildingMessage = null;
@Provides @Provides
public TimestampConfig provideConfig(final ConfigManager configManager) public TimestampConfig provideConfig(final ConfigManager configManager)
{ {
@@ -90,22 +94,47 @@ public class TimestampPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onScriptCallbackEvent(ScriptCallbackEvent event) private void onScriptCallbackEvent(ScriptCallbackEvent event)
{ {
if (!event.getEventName().equals("addTimestamp")) if (!"chatMessageBuilding".equals(event.getEventName()))
{ {
return; return;
} }
int[] intStack = client.getIntStack(); int uid = client.getIntStack()[client.getIntStackSize() - 1];
int intStackSize = client.getIntStackSize(); currentlyBuildingMessage = client.getMessages().get(uid);
}
@Subscribe
private void onScriptPreFired(ScriptPreFired ev)
{
int numStringArgs;
int messagePrefixArg = 0;
switch (ev.getScriptId())
{
case ScriptID.CHATBOX_BUILD_LINE_WITHOUT_USER:
numStringArgs = 1;
break;
case ScriptID.CHATBOX_BUILD_LINE_WITH_USER:
numStringArgs = 2;
break;
case ScriptID.CHATBOX_BUILD_LINE_WITH_CLAN:
numStringArgs = 3;
break;
default:
return;
}
if (currentlyBuildingMessage == null)
{
return;
}
MessageNode messageNode = currentlyBuildingMessage;
currentlyBuildingMessage = null;
String[] stringStack = client.getStringStack(); String[] stringStack = client.getStringStack();
int stringStackSize = client.getStringStackSize(); int stringArgStart = client.getStringStackSize() - numStringArgs;
int messageId = intStack[intStackSize - 1];
MessageNode messageNode = client.getMessages().get(messageId);
String timestamp = generateTimestamp(messageNode.getTimestamp(), ZoneId.systemDefault()) + " "; String timestamp = generateTimestamp(messageNode.getTimestamp(), ZoneId.systemDefault()) + " ";
@@ -115,7 +144,9 @@ public class TimestampPlugin extends Plugin
timestamp = ColorUtil.wrapWithColorTag(timestamp, timestampColour); timestamp = ColorUtil.wrapWithColorTag(timestamp, timestampColour);
} }
stringStack[stringStackSize - 1] = timestamp; String segment = stringStack[stringArgStart + messagePrefixArg];
segment = timestamp + segment;
stringStack[stringArgStart + messagePrefixArg] = segment;
} }
private Color getTimestampColour() private Color getTimestampColour()

View File

@@ -56,6 +56,8 @@ import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.NameableContainer; import net.runelite.api.NameableContainer;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanChannelMember;
import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
@@ -353,10 +355,12 @@ public class WorldHopperPlugin extends Plugin
return; return;
} }
int groupId = WidgetInfo.TO_GROUP(event.getActionParam1()); final int componentId = event.getActionParam1();
int groupId = WidgetInfo.TO_GROUP(componentId);
String option = event.getOption(); String option = event.getOption();
if (groupId == WidgetInfo.FRIENDS_LIST.getGroupId() || groupId == WidgetInfo.FRIENDS_CHAT.getGroupId()) if (groupId == WidgetInfo.FRIENDS_LIST.getGroupId() || groupId == WidgetInfo.FRIENDS_CHAT.getGroupId()
|| componentId == WidgetInfo.CLAN_MEMBER_LIST.getId() || componentId == WidgetInfo.CLAN_GUEST_MEMBER_LIST.getId())
{ {
boolean after; boolean after;
@@ -744,6 +748,26 @@ public class WorldHopperPlugin extends Plugin
} }
} }
ClanChannel clanChannel = client.getClanChannel();
if (clanChannel != null)
{
ClanChannelMember member = clanChannel.findMember(cleanName);
if (member != null)
{
return member;
}
}
clanChannel = client.getGuestClanChannel();
if (clanChannel != null)
{
ClanChannelMember member = clanChannel.findMember(cleanName);
if (member != null)
{
return member;
}
}
NameableContainer<Friend> friendContainer = client.getFriendContainer(); NameableContainer<Friend> friendContainer = client.getFriendContainer();
if (friendContainer != null) if (friendContainer != null)
{ {

View File

@@ -990,6 +990,8 @@ R 49 193 51 194
// Braindeath Island // Braindeath Island
#8AD2DF #8AD2DF
R 33 79 33 80 R 33 79 33 80
// Clan Hall
r 27 85
// Nightmare dungeon (Morytania underground) // Nightmare dungeon (Morytania underground)
#0a0a0a #0a0a0a

View File

@@ -765,7 +765,7 @@ LABEL681:
jump LABEL726 jump LABEL726
LABEL685: LABEL685:
get_varc_string 359 ; Skip truncating of varcstr 22 by not calling 280 get_varc_string 359 ; Skip truncating of varcstr 22 by not calling 280
lowercase ; instead get the var directly and lowercase it lowercase ; instead get the var directly and lowercase it
sstore 0 sstore 0
sload 0 sload 0
string_length string_length

View File

@@ -112,8 +112,8 @@
iload 20 iload 20
sconst "iiiIIIIIIIIIIIIIIIII" sconst "iiiIIIIIIIIIIIIIIIII"
cc_setonop cc_setonop
iload 0 ; button component id iload 0 ; button component id
iload 1 ; 0-9 iload 1 ; 0-9
sconst "bankpinButtonSetup" sconst "bankpinButtonSetup"
runelite_callback runelite_callback
pop_int ; 0-9 pop_int ; 0-9

View File

@@ -208,19 +208,19 @@ LABEL165:
iconst 126 iconst 126
istore 20 istore 20
iconst 0 iconst 0
3801 activeclansettings_find_affined
iconst 1 iconst 1
if_icmpeq LABEL202 if_icmpeq LABEL202
jump LABEL222 jump LABEL222
LABEL202: LABEL202:
iconst 0 iconst 0
3851 activeclanchannel_find_affined
iconst 1 iconst 1
if_icmpeq LABEL207 if_icmpeq LABEL207
jump LABEL222 jump LABEL222
LABEL207: LABEL207:
sload 0 sload 0
3860 activeclanchannel_getuserslot
istore 17 istore 17
iload 17 iload 17
iconst -1 iconst -1
@@ -228,10 +228,10 @@ LABEL207:
jump LABEL217 jump LABEL217
LABEL214: LABEL214:
iload 17 iload 17
3857 activeclanchannel_getuserrank
istore 18 istore 18
LABEL217: LABEL217:
3853 activeclanchannel_getrankkick
iconst 2956 iconst 2956
invoke 4456 invoke 4456
istore 20 istore 20
@@ -288,6 +288,10 @@ LABEL245:
if_icmpeq LABEL256 if_icmpeq LABEL256
jump LABEL1266 jump LABEL1266
LABEL256: LABEL256:
iload 10 ; message uid
sconst "chatMessageBuilding"
runelite_callback
pop_int ; pop uid
iload 11 iload 11
switch switch
1: LABEL259 1: LABEL259
@@ -312,14 +316,9 @@ LABEL256:
91: LABEL280 91: LABEL280
jump LABEL928 jump LABEL928
LABEL259: LABEL259:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sload 12 sload 12
sconst ":" sconst ":"
join_string 3 ; + 1 for timestamp join_string 2
sload 1 sload 1
sload 14 sload 14
sconst "</col>" sconst "</col>"
@@ -339,14 +338,9 @@ LABEL259:
istore 7 istore 7
jump LABEL942 jump LABEL942
LABEL280: LABEL280:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sload 12 sload 12
sconst ":" sconst ":"
join_string 3 ; + 1 for timestamp join_string 2
sload 3 sload 3
sload 14 sload 14
sconst "</col>" sconst "</col>"
@@ -366,17 +360,12 @@ LABEL280:
istore 7 istore 7
jump LABEL942 jump LABEL942
LABEL301: LABEL301:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sconst "From " sconst "From "
sload 12 sload 12
sconst ":" sconst ":"
sconst "privateChatFrom" join_string 3
runelite_callback ; for prepending color tags sconst "privChatUsername"
join_string 4 ; + 1 for timestamp runelite_callback
sload 2 sload 2
sload 14 sload 14
sconst "</col>" sconst "</col>"
@@ -396,15 +385,10 @@ LABEL301:
istore 7 istore 7
jump LABEL942 jump LABEL942
LABEL323: LABEL323:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sload 9 sload 9
sload 14 sload 14
sconst "</col>" sconst "</col>"
join_string 4 ; + 1 for timestamp join_string 3
iload 8 iload 8
iload 9 iload 9
iconst 10616888 iconst 10616888
@@ -420,15 +404,10 @@ LABEL323:
istore 7 istore 7
jump LABEL942 jump LABEL942
LABEL341: LABEL341:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sload 2 sload 2
sload 14 sload 14
sconst "</col>" sconst "</col>"
join_string 4 ; + 1 for timestamp join_string 3
iload 8 iload 8
iload 9 iload 9
iconst 10616888 iconst 10616888
@@ -461,17 +440,12 @@ LABEL362:
LABEL373: LABEL373:
jump LABEL942 jump LABEL942
LABEL374: LABEL374:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sconst "To " sconst "To "
sload 12 sload 12
sconst ":" sconst ":"
sconst "privateChatTo" join_string 3
runelite_callback ; for chat recolors sconst "privChatUsername"
join_string 4 ; + 1 for timestamp runelite_callback
sload 2 sload 2
sload 14 sload 14
sconst "</col>" sconst "</col>"
@@ -529,11 +503,6 @@ LABEL414:
istore 7 istore 7
jump LABEL942 jump LABEL942
LABEL432: LABEL432:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sconst "[" sconst "["
sload 5 sload 5
sload 13 sload 13
@@ -541,7 +510,7 @@ LABEL432:
sconst "] " sconst "] "
sload 12 sload 12
sconst ":" sconst ":"
join_string 8 ; + 1 for time stamp join_string 7
sload 6 sload 6
sload 14 sload 14
sconst "</col>" sconst "</col>"
@@ -562,20 +531,20 @@ LABEL432:
jump LABEL942 jump LABEL942
LABEL458: LABEL458:
iconst 0 iconst 0
3801 activeclansettings_find_affined
iconst 1 iconst 1
if_icmpeq LABEL463 if_icmpeq LABEL463
jump LABEL583 jump LABEL583
LABEL463: LABEL463:
iconst 0 iconst 0
3851 activeclanchannel_find_affined
iconst 1 iconst 1
if_icmpeq LABEL468 if_icmpeq LABEL468
jump LABEL583 jump LABEL583
LABEL468: LABEL468:
sload 12 sload 12
removetags removetags
3860 activeclanchannel_getuserslot
istore 17 istore 17
iload 17 iload 17
iconst -1 iconst -1
@@ -583,7 +552,7 @@ LABEL468:
jump LABEL549 jump LABEL549
LABEL476: LABEL476:
iload 17 iload 17
3857 activeclanchannel_getuserrank
invoke 4302 invoke 4302
istore 16 istore 16
sstore 16 sstore 16
@@ -623,17 +592,12 @@ LABEL485:
istore 7 istore 7
jump LABEL548 jump LABEL548
LABEL515: LABEL515:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sconst "[" sconst "["
sload 7 sload 7
sload 13 sload 13
sconst "</col>" sconst "</col>"
sconst "]" sconst "]"
join_string 6 ; + 1 for timestamp join_string 5
iconst -1 iconst -1
iconst 0 iconst 0
iconst 0 iconst 0
@@ -732,19 +696,19 @@ LABEL583:
LABEL612: LABEL612:
jump LABEL942 jump LABEL942
LABEL613: LABEL613:
3800 activeclansettings_find_listened
iconst 1 iconst 1
if_icmpeq LABEL617 if_icmpeq LABEL617
jump LABEL736 jump LABEL736
LABEL617: LABEL617:
3850 activeclanchannel_find_listened
iconst 1 iconst 1
if_icmpeq LABEL621 if_icmpeq LABEL621
jump LABEL736 jump LABEL736
LABEL621: LABEL621:
sload 12 sload 12
removetags removetags
3860 activeclanchannel_getuserslot
istore 17 istore 17
iload 17 iload 17
iconst -1 iconst -1
@@ -752,7 +716,7 @@ LABEL621:
jump LABEL702 jump LABEL702
LABEL629: LABEL629:
iload 17 iload 17
3857 activeclanchannel_getuserrank
invoke 4302 invoke 4302
istore 16 istore 16
sstore 16 sstore 16
@@ -897,14 +861,14 @@ LABEL765:
jump LABEL942 jump LABEL942
LABEL766: LABEL766:
iconst 0 iconst 0
3851 activeclanchannel_find_affined
iconst 1 iconst 1
if_icmpeq LABEL771 if_icmpeq LABEL771
jump LABEL796 jump LABEL796
LABEL771: LABEL771:
sconst "[" sconst "["
sload 7 sload 7
3852 activeclanchannel_getclanname
sconst "</col>" sconst "</col>"
sconst "]" sconst "]"
join_string 5 join_string 5
@@ -950,14 +914,14 @@ LABEL796:
LABEL815: LABEL815:
jump LABEL942 jump LABEL942
LABEL816: LABEL816:
3850 activeclanchannel_find_listened
iconst 1 iconst 1
if_icmpeq LABEL820 if_icmpeq LABEL820
jump LABEL845 jump LABEL845
LABEL820: LABEL820:
sconst "[" sconst "["
sload 7 sload 7
3852 activeclanchannel_getclanname
sconst "</col>" sconst "</col>"
sconst "]" sconst "]"
join_string 5 join_string 5
@@ -1003,13 +967,7 @@ LABEL845:
LABEL864: LABEL864:
jump LABEL942 jump LABEL942
LABEL865: LABEL865:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sload 14 sload 14
join_string 2
invoke 2066 invoke 2066
istore 13 istore 13
sstore 15 sstore 15
@@ -1077,13 +1035,7 @@ LABEL913:
LABEL927: LABEL927:
jump LABEL942 jump LABEL942
LABEL928: LABEL928:
iload 10 ; The id of the messageNode of the message being built
sconst ""
sconst "addTimestamp"
runelite_callback
pop_int ; pop message id
sload 14 sload 14
join_string 2 ; prepend the timestamp
iload 8 iload 8
iload 9 iload 9
iconst 10616888 iconst 10616888
@@ -1207,20 +1159,20 @@ LABEL1017:
jump LABEL1050 jump LABEL1050
LABEL1021: LABEL1021:
iconst 0 iconst 0
3851 activeclanchannel_find_affined
iconst 1 iconst 1
if_icmpeq LABEL1026 if_icmpeq LABEL1026
jump LABEL1050 jump LABEL1050
LABEL1026: LABEL1026:
sload 12 sload 12
removetags removetags
3860 activeclanchannel_getuserslot
istore 17 istore 17
iload 17 iload 17
iconst -1 iconst -1
if_icmpeq LABEL1038 if_icmpeq LABEL1038
iload 17 iload 17
3857 activeclanchannel_getuserrank
iconst -1 iconst -1
if_icmple LABEL1038 if_icmple LABEL1038
jump LABEL1050 jump LABEL1050

View File

@@ -400,6 +400,10 @@ CHAT_FILTER:
if_icmpeq LABEL356 ; Check if we are building this message if_icmpeq LABEL356 ; Check if we are building this message
jump LABEL530 jump LABEL530
LABEL356: LABEL356:
iload 12 ; message uid
sconst "chatMessageBuilding"
runelite_callback
pop_int
iload 17 iload 17
switch switch
3: LABEL359 3: LABEL359
@@ -409,19 +413,14 @@ LABEL356:
jump LABEL446 jump LABEL446
LABEL359: LABEL359:
iload 7 iload 7
iload 12 ; Load the id of the messageNode
sconst "" ; Push a container for the timestamp
sconst "addTimestamp" ; Push event name
runelite_callback ; Invoke callback
pop_int ; Pop the id of the messageNode
sload 4 sload 4
sconst "splitPrivChatUsernameColor"
runelite_callback
sconst "From " sconst "From "
sload 1 sload 1
sconst ":" sconst ":"
sconst "privateChatSplitFrom"
runelite_callback
sconst "</col>" sconst "</col>"
join_string 6 ; Add the timestamp to the message join_string 5
sload 4 sload 4
sload 0 sload 0
sconst "</col>" sconst "</col>"
@@ -443,19 +442,14 @@ LABEL359:
jump LABEL462 jump LABEL462
LABEL385: LABEL385:
iload 7 iload 7
iload 12 ; Load the id of the messageNode
sconst "" ; Push container for the timestamp
sconst "addTimestamp" ; Push event name
runelite_callback ; Invoke callback
pop_int ; Pop the id of the messageNode
sload 4 sload 4
sconst "splitPrivChatUsernameColor"
runelite_callback
sconst "To " sconst "To "
sload 1 sload 1
sconst ":" sconst ":"
sconst "privateChatSplitTo"
runelite_callback
sconst "</col>" sconst "</col>"
join_string 6 ; Add the timestamp to the message join_string 5
sload 4 sload 4
sload 0 sload 0
sconst "</col>" sconst "</col>"
@@ -477,15 +471,10 @@ LABEL385:
jump LABEL462 jump LABEL462
LABEL411: LABEL411:
iload 7 iload 7
iload 12 ; Load the id of the messageNode sload 4
sconst "" ; Push a container for the timestamp
sconst "addTimestamp" ; Push event name
runelite_callback ; Invoke callback
pop_int ; Pop the id of the messageNode
sload 4 ; Load the log in/out message
sload 0 sload 0
sconst "</col>" sconst "</col>"
join_string 4 join_string 3
iload 9 iload 9
iload 10 iload 10
iconst 10682368 iconst 10682368

View File

@@ -10,9 +10,9 @@
pop_int ; pop chat type pop_int ; pop chat type
string_length ; get string length of chat message string_length ; get string length of chat message
iconst 0 ; load 0 iconst 0 ; load 0
if_icmpne LABEL100 ; if length is not 0, continue if_icmpne CONTINUE ; if length is not 0, continue
return return
LABEL100: CONTINUE:
get_varbit 4394 get_varbit 4394
iconst 1 iconst 1
if_icmpeq LABEL4 if_icmpeq LABEL4
@@ -53,7 +53,7 @@ LABEL31:
sload 0 sload 0
iload 0 iload 0
iconst 0 iconst 0
5010 chat_sendclan
jump LABEL39 jump LABEL39
LABEL36: LABEL36:
sload 0 sload 0

View File

@@ -270,17 +270,27 @@ LABEL222:
istore 5 istore 5
istore 6 istore 6
LABEL226: LABEL226:
iload 6 ; prefix length
iload 5 ; chat type
sconst "preChatSendpublic"
runelite_callback
istore 5 ; chat type
istore 6 ; prefix length
get_varc_string 335 ; load input string
string_length ; get length
iconst 0 ; load 0
if_icmpeq LABEL420 ; if (%varcstring355 == 0) jump to script223 call
iload 5 iload 5
iconst 44 iconst 44
if_icmpeq LABEL230 if_icmpeq LABEL230
jump LABEL260 jump LABEL260
LABEL230: LABEL230:
3800 activeclansettings_find_listened
iconst 1 iconst 1
if_icmpeq LABEL234 if_icmpeq LABEL234
jump LABEL257 jump LABEL257
LABEL234: LABEL234:
3850 activeclanchannel_find_listened
iconst 1 iconst 1
if_icmpeq LABEL238 if_icmpeq LABEL238
jump LABEL257 jump LABEL257
@@ -292,7 +302,7 @@ LABEL238:
LABEL242: LABEL242:
return return
LABEL243: LABEL243:
3803 activeclansettings_getallowunaffined
iconst 1 iconst 1
if_icmpeq LABEL247 if_icmpeq LABEL247
jump LABEL254 jump LABEL254
@@ -321,7 +331,7 @@ LABEL260:
jump LABEL307 jump LABEL307
LABEL264: LABEL264:
iconst 0 iconst 0
3851 activeclanchannel_find_affined
iconst 1 iconst 1
if_icmpeq LABEL269 if_icmpeq LABEL269
jump LABEL304 jump LABEL304
@@ -340,7 +350,7 @@ LABEL277:
LABEL278: LABEL278:
chat_playername chat_playername
removetags removetags
3860 activeclanchannel_getuserslot
istore 7 istore 7
iload 7 iload 7
iconst -1 iconst -1
@@ -348,8 +358,8 @@ LABEL278:
jump LABEL298 jump LABEL298
LABEL286: LABEL286:
iload 7 iload 7
3857 activeclanchannel_getuserrank
3854 activeclanchannel_getranktalk
if_icmpge LABEL291 if_icmpge LABEL291
jump LABEL298 jump LABEL298
LABEL291: LABEL291:

View File

@@ -3,10 +3,10 @@
.string_stack_count 0 .string_stack_count 0
.int_var_count 16 .int_var_count 16
.string_var_count 2 .string_var_count 2
; callback "friend_cc_settext" ; callback "friendsChatSetText"
; Fired just before the client pops the name off the stack ; Fired just before the client pops the name off the stack
; Modified by the friendnotes plugin to show the icon ; Modified by the friendnotes plugin to show the icon
; callback "friend_cc_setposition" ; callback "friendsChatSetPosition"
; Fired just before the client sets the position of "friend changed their name" icon ; 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 ; Modified by the friendnotes plugin to offset the name changed icon
iload 1 iload 1
@@ -300,7 +300,7 @@ LABEL234:
add add
istore 10 istore 10
sload 0 sload 0
sconst "friend_cc_settext" sconst "friendsChatSetText"
runelite_callback runelite_callback
cc_settext cc_settext
iconst 0 iconst 0
@@ -382,7 +382,7 @@ LABEL293:
add add
iconst 0 iconst 0
iconst 0 iconst 0
sconst "friend_cc_setposition" sconst "friendsChatSetPosition"
runelite_callback runelite_callback
cc_setposition 1 cc_setposition 1
iconst 1093 iconst 1093

View File

@@ -10,6 +10,7 @@
iconst 1 iconst 1
if_icmpeq LABEL4 if_icmpeq LABEL4
jump CONFIRM_KICK ; Jump to our new label instead jump CONFIRM_KICK ; Jump to our new label instead
jump LABEL7
LABEL4: LABEL4:
sconst "You can't kick players from your team during Wilderness Wars." sconst "You can't kick players from your team during Wilderness Wars."
mes mes
@@ -20,8 +21,7 @@ LABEL7:
invoke 96 invoke 96
sload 0 sload 0
clan_kickuser clan_kickuser
jump LABEL73 RETURN:
LABEL73:
return return
CONFIRM_KICK: CONFIRM_KICK:
sload 0 ; Username we are trying to kick sload 0 ; Username we are trying to kick
@@ -30,5 +30,5 @@ CONFIRM_KICK:
runelite_callback runelite_callback
pop_string ; Pop username pop_string ; Pop username
iconst 0 ; Compare against zero iconst 0 ; Compare against zero
if_icmpgt LABEL73 ; Early return for chatbox panel confirmation if_icmpgt RETURN ; Early return for chatbox panel confirmation
jump LABEL7 jump LABEL7

View File

@@ -3,10 +3,10 @@
.string_stack_count 0 .string_stack_count 0
.int_var_count 13 .int_var_count 13
.string_var_count 2 .string_var_count 2
; callback "ignore_cc_settext" ; callback "friendsChatSetText"
; Fired just before the client pops the name off the stack ; Fired just before the client pops the name off the stack
; Modified by the friendnotes plugin to show the icon ; Modified by the friendnotes plugin to show the icon
; callback "ignore_cc_setposition" ; callback "friendsChatSetPosition"
; Fired just before the client sets the position of "ignored person changed their name" icon ; 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 ; Modified by the friendnotes plugin to offset the name changed icon
iload 1 iload 1
@@ -157,7 +157,7 @@ LABEL117:
add add
istore 8 istore 8
sload 0 sload 0
sconst "ignore_cc_settext" sconst "friendsChatSetText"
runelite_callback runelite_callback
cc_settext cc_settext
iconst 0 iconst 0
@@ -216,7 +216,7 @@ LABEL117:
add add
iconst 0 iconst 0
iconst 0 iconst 0
sconst "ignore_cc_setposition" sconst "friendsChatSetPosition"
runelite_callback runelite_callback
cc_setposition 1 cc_setposition 1
iconst 1093 iconst 1093

View File

@@ -43,7 +43,8 @@ LABEL9:
sconst "forceStackStones" ; push event name sconst "forceStackStones" ; push event name
runelite_callback ; invoke callback runelite_callback ; invoke callback
iconst 0 ; if 0 is returned, continue normal layout iconst 0 ; if 0 is returned, continue normal layout
if_icmpeq LABEL49 if_icmpne LABEL29
jump LABEL49
LABEL29: LABEL29:
iconst 0 iconst 0
iload 3 iload 3

View File

@@ -1 +0,0 @@
FDFF71BAC7D5E10C1E88F445D60100552D0C5B14A66F8648FFEC39573ECFBE8E

View File

@@ -1,269 +0,0 @@
.id 299
.int_stack_count 2
.string_stack_count 0
.int_var_count 3
.string_var_count 0
sconst "resetChatboxInput"
runelite_callback
iconst 1
iconst 10616869
if_sethide
iconst 0
iconst 10616885
if_sethide
invoke 923
iconst 0
istore 2
iload 1
iconst 1
if_icmpeq LABEL13
jump LABEL27
LABEL13:
invoke 553
istore 2
iload 2
invoke 84
iload 2
invoke 89
invoke 223
iconst 1
invoke 927
invoke 1972
iconst 1
if_icmpeq LABEL26
jump LABEL27
LABEL26:
invoke 1984
LABEL27:
invoke 1972
iconst 1
if_icmpeq LABEL31
jump LABEL32
LABEL31:
invoke 2581
LABEL32:
get_varc_int 5
switch
19: LABEL35
20: LABEL41
21: LABEL41
7: LABEL35
8: LABEL38
9: LABEL41
15: LABEL41
jump LABEL43
LABEL35:
sconst "0"
resume_countdialog
jump LABEL43
LABEL38:
sconst ""
resume_namedialog
jump LABEL43
LABEL41:
sconst ""
resume_stringdialog
LABEL43:
iconst 0
set_varc_int 5
iload 0
iconst 1
if_icmpeq LABEL49
jump LABEL51
LABEL49:
sconst ""
set_varc_string 359
LABEL51:
iconst 0
iconst -8
iconst 1
iconst 1
iconst 10616873
if_setposition
iconst 0
iconst 40
iconst 1
iconst 0
iconst 10616873
if_setsize
iconst 0
iconst 22
iconst 1
iconst 1
iconst 10616874
if_setposition
iconst 0
iconst 20
iconst 1
iconst 0
iconst 10616874
if_setsize
iconst 0
iconst 10616873
if_sethide
iconst 0
iconst 10616874
if_sethide
iconst 1
iconst 10616878
if_sethide
iconst 1
iconst 10616884
if_sethide
iconst 0
iconst 0
iconst 10616882
if_setscrollpos
iconst 10616882
cc_deleteall
iconst 10616883
cc_deleteall
iconst 0
iconst -8
iconst 1
iconst 1
iconst 10616873
if_setposition
iconst 0
iconst 40
iconst 1
iconst 0
iconst 10616873
if_setsize
iconst 1
iconst 1
iconst 0
iconst 10616873
if_settextalign
iconst 496
iconst 10616873
if_settextfont
iconst 496
iconst 10616874
if_settextfont
iconst 128
iconst 10616874
if_setcolour
iconst -1
sconst ""
iconst 10616874
if_setonmouseover
iconst -1
sconst ""
iconst 10616874
if_setonmouseleave
sconst ""
iconst 10616874
if_settext
iconst 0
iconst 22
iconst 1
iconst 1
iconst 10616874
if_setposition
iconst -1
sconst ""
iconst 10616869
if_setonclick
iconst -1
sconst ""
iconst 10616874
if_setonclick
iconst -1
sconst ""
iconst 10616874
if_setonkey
iconst 1
iconst 10616871
if_sethide
iconst -1
sconst ""
iconst 10616869
if_setonclick
iconst -1
sconst ""
iconst 10616869
if_setontimer
iconst 10616869
cc_deleteall
iconst 10616875
cc_deleteall
iconst 10616876
cc_deleteall
iconst 10616877
cc_deleteall
iconst 1
iconst 10616875
if_sethide
iconst 1
iconst 10616876
if_sethide
iconst 1
iconst 10616877
if_sethide
iconst -1
sconst ""
iconst 10616875
if_setonmouserepeat
iconst -1
sconst ""
iconst 10616876
if_setonmouserepeat
iconst -1
sconst ""
iconst 10616877
if_setonmouserepeat
iconst -1
sconst ""
iconst 10616875
if_setonmouseleave
iconst -1
sconst ""
iconst 10616876
if_setonmouseleave
iconst -1
sconst ""
iconst 10616877
if_setonmouseleave
iconst -1
sconst ""
iconst 10616875
if_setontimer
iconst -1
sconst ""
iconst 10616876
if_setontimer
iconst -1
sconst ""
iconst 10616877
if_setontimer
iconst -1
sconst ""
iconst 10616875
if_setonclick
iconst -1
sconst ""
iconst 10616876
if_setonclick
iconst -1
sconst ""
iconst 10616877
if_setonclick
get_varc_int 41
iconst 1337
if_icmpeq LABEL230
jump LABEL234
LABEL230:
invoke 2526
pop_int
clientclock
set_varc_int 384
LABEL234:
invoke 1972
iconst 1
if_icmpeq LABEL238
jump LABEL239
LABEL238:
invoke 2581
LABEL239:
return

View File

@@ -11,7 +11,7 @@
iconst 0 iconst 0
iload 0 iload 0
iconst 25 iconst 25
sconst "scrollWheelZoomIncrement" sconst "scrollWheelZoomIncrement"
runelite_callback runelite_callback
multiply multiply
sub sub

View File

@@ -21,6 +21,7 @@
sconst "skillTabBaseLevel" ; push event name sconst "skillTabBaseLevel" ; push event name
runelite_callback ; invoke callback runelite_callback ; invoke callback
istore 4 ; store the (possibly) edited real skill level istore 4 ; store the (possibly) edited real skill level
pop_int ; pop the skill id we pushed
iload 4 iload 4
tostring tostring
cc_settext 1 cc_settext 1

View File

@@ -212,7 +212,7 @@ LABEL177:
if_setnoclickthrough if_setnoclickthrough
iconst 1 iconst 1
iconst 10616867 iconst 10616867
2006 if_setnoscrollthrough
LABEL183: LABEL183:
iconst 0 iconst 0
istore 4 istore 4

View File

@@ -18,13 +18,13 @@ LABEL10:
return return
LABEL11: LABEL11:
; switch on op index ; switch on op index
iload 0 iload 0
switch switch
1: LOOK_NORTH 1: LOOK_NORTH
2: LOOK_SOUTH 2: LOOK_SOUTH
3: LOOK_EAST 3: LOOK_EAST
4: LOOK_WEST 4: LOOK_WEST
jump LABEL10 jump LABEL10
LOOK_NORTH: LOOK_NORTH:
iconst 0 iconst 0
istore 1 istore 1

View File

@@ -9,12 +9,12 @@
iconst 0 ; load active boolean iconst 0 ; load active boolean
sconst "getSearchingTagTab" ; push event name sconst "getSearchingTagTab" ; push event name
runelite_callback ; invoke callback runelite_callback ; invoke callback
if_icmpne LABEL2 if_icmpne RELAYOUT
; Let layout continue if current bank tab is 0 ; Let layout continue if current bank tab is 0
get_varbit 4150 get_varbit 4150
iconst 0 iconst 0
if_icmpeq LABEL2 if_icmpeq RELAYOUT
; Reset the current bank tab to 0 otherwise ; Reset the current bank tab to 0 otherwise
iconst 0 iconst 0
@@ -24,7 +24,7 @@
sconst "debug" sconst "debug"
runelite_callback runelite_callback
LABEL2: RELAYOUT:
iload 0 iload 0
iload 1 iload 1
iload 2 iload 2

View File

@@ -0,0 +1,61 @@
/*
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.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.mixins;
import net.runelite.api.clan.ClanRank;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClanChannelMember;
import net.runelite.rs.api.RSClient;
@Mixin(RSClanChannelMember.class)
public abstract class RSClanChannelMemberMixin implements RSClanChannelMember
{
@Shadow("client")
private static RSClient client;
@Inject
@Override
public int compareTo(Object other)
{
return getName().compareTo(((RSClanChannelMember) other).getName());
}
@Inject
@Override
public String getPrevName()
{
return null;
}
@Inject
@Override
public ClanRank getRank()
{
return client.getClanRankFromRs(getRSRank());
}
}

View File

@@ -0,0 +1,92 @@
/*
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.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.mixins;
import java.util.List;
import net.runelite.api.clan.ClanChannelMember;
import net.runelite.api.events.ClanMemberJoined;
import net.runelite.api.events.ClanMemberLeft;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.MethodHook;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClanChannel;
import net.runelite.rs.api.RSClanChannelMember;
import net.runelite.rs.api.RSClient;
@Mixin(RSClanChannel.class)
public abstract class RSClanChannelMixin implements RSClanChannel
{
@Shadow("client")
private static RSClient client;
@Inject
@Override
public ClanChannelMember findMember(String name)
{
name = name.replace(" ", "\u00A0");
List<ClanChannelMember> members = getMembers();
int[] sorted = getSortedMembers();
int i = 0;
int len = sorted.length - 1;
while (i <= len)
{
int tag = (i + len) >>> 1;
int memberIndex = sorted[tag];
RSClanChannelMember member = (RSClanChannelMember) members.get(memberIndex);
int compare = member.getName().compareTo(name);
if (compare < 0)
{
i = tag + 1;
}
else
{
if (compare <= 0)
{
return member;
}
len = tag - 1;
}
}
return null;
}
@Inject
@MethodHook("removeMember")
public void onMemberRemoved(int index)
{
client.getCallbacks().post(new ClanMemberLeft(this, getMembers().get(index)));
}
@Inject
@MethodHook(value = "addMember", end = true)
public void onMemberAdded(RSClanChannelMember member)
{
client.getCallbacks().post(new ClanMemberJoined(this, member));
}
}

View File

@@ -0,0 +1,208 @@
/*
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.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.mixins;
import java.util.ArrayList;
import java.util.List;
import net.runelite.api.EnumComposition;
import net.runelite.api.clan.ClanMember;
import net.runelite.api.clan.ClanRank;
import net.runelite.api.clan.ClanTitle;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClanSettings;
import net.runelite.rs.api.RSClient;
@Mixin(RSClanSettings.class)
public abstract class RSClanSettingsMixin implements RSClanSettings
{
@Shadow("client")
private static RSClient client;
@Inject
@Override
public List<ClanMember> getMembers()
{
int memberCount = getMemberCount();
String[] memberNames = getMemberNames();
byte[] memberRanks = getMemberRanks();
List<ClanMember> memberList = new ArrayList<>(memberCount);
for (int i = 0; i < memberCount; i++)
{
memberList.add(new ClanMember(memberNames[i], client.getClanRankFromRs(memberRanks[i])));
}
return memberList;
}
@Inject
@Override
public ClanMember findMember(String name)
{
name = name.replace(" ", "\u00A0").toLowerCase();
String[] memberNames = getMemberNames();
byte[] memberRanks = getMemberRanks();
int[] sorted = getSortedMembers();
int i = 0;
int len = sorted.length - 1;
while (i <= len)
{
int tag = (i + len) >>> 1;
int memberIndex = sorted[tag];
String memberName = memberNames[memberIndex];
int compare = memberName.toLowerCase().compareTo(name);
if (compare < 0)
{
i = tag + 1;
}
else if (compare == 0)
{
return new ClanMember(memberName, client.getClanRankFromRs(memberRanks[tag]));
}
else
{
len = tag - 1;
}
}
return null;
}
@Inject
@Override
public ClanTitle titleForRank(ClanRank clanRank)
{
assert client.isClientThread() : "titleForRank must be called on client thread";
int title;
if (clanRank == ClanRank.JMOD)
{
title = -5;
}
else if (clanRank == ClanRank.OWNER)
{
title = -4;
}
else if (clanRank == ClanRank.DEPUTY_OWNER)
{
title = -3;
}
else if (clanRank == ClanRank.ADMINISTRATOR)
{
title = -2;
}
else if (clanRank == ClanRank.GUEST)
{
title = -1;
}
else if (clanRank == ClanRank.CLAN_RANK_1)
{
title = getTitle(1, 0, 9);
}
else if (clanRank == ClanRank.CLAN_RANK_2)
{
title = getTitle(1, 10, 19);
}
else if (clanRank == ClanRank.CLAN_RANK_3)
{
title = getTitle(1, 20, 29);
}
else if (clanRank == ClanRank.CLAN_RANK_4)
{
title = getTitle(2, 0, 9);
}
else if (clanRank == ClanRank.CLAN_RANK_5)
{
title = getTitle(2, 10, 19);
}
else if (clanRank == ClanRank.CLAN_RANK_6)
{
title = getTitle(2, 20, 29);
}
else if (clanRank == ClanRank.CLAN_RANK_7)
{
title = getTitle(3, 0, 9);
}
else if (clanRank == ClanRank.CLAN_RANK_8)
{
title = getTitle(3, 10, 19);
}
else if (clanRank == ClanRank.CLAN_RANK_9)
{
title = getTitle(3, 20, 29);
}
else if (clanRank == ClanRank.CLAN_RANK_10)
{
title = getTitle(4, 0, 9);
}
else if (clanRank == ClanRank.CLAN_RANK_11)
{
title = getTitle(4, 10, 19);
}
else if (clanRank == ClanRank.CLAN_RANK_12)
{
title = getTitle(4, 20, 29);
}
else if (clanRank == ClanRank.CLAN_RANK_13)
{
title = getTitle(5, 0, 9);
}
else if (clanRank == ClanRank.CLAN_RANK_14)
{
title = getTitle(5, 10, 19);
}
else
{
throw new IllegalStateException("Unexpected value: " + clanRank);
}
if (title == 1023)
{
return null;
}
EnumComposition rsEnum = client.getEnum(3797);
String titleName = rsEnum.getStringValue(title);
if (titleName.isEmpty())
{
return null;
}
return new ClanTitle(title, titleName);
}
@Inject
private int getTitle(int group, int sub1, int sub2)
{
Integer oParam = getTitleGroupValue(group);
int param = oParam == null ? -1 : oParam;
int offset = 31 - sub2;
return (param << offset) >>> (sub1 + offset);
}
}

View File

@@ -75,6 +75,9 @@ import net.runelite.api.VarPlayer;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.WidgetNode; import net.runelite.api.WidgetNode;
import net.runelite.api.WorldType; import net.runelite.api.WorldType;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanRank;
import net.runelite.api.clan.ClanSettings;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.CanvasSizeChanged; import net.runelite.api.events.CanvasSizeChanged;
@@ -1242,7 +1245,7 @@ public abstract class RSClientMixin implements RSClient
} }
} }
@FieldHook("clanChat") @FieldHook("friendsChat")
@Inject @Inject
public static void clanMemberManagerChanged(int idx) public static void clanMemberManagerChanged(int idx)
{ {
@@ -2200,5 +2203,66 @@ public abstract class RSClientMixin implements RSClient
{ {
client.getCallbacks().post(new WidgetClosed(iface.getId(), iface.getModalMode(), willUnload)); client.getCallbacks().post(new WidgetClosed(iface.getId(), iface.getModalMode(), willUnload));
} }
@Inject
@Override
public ClanChannel getClanChannel()
{
return getCurrentClanChannels()[0];
}
@Inject
@Override
public ClanSettings getClanSettings()
{
return getCurrentClanSettingsAry()[0];
}
@Inject
@Override
public ClanRank getClanRankFromRs(int rank)
{
switch (rank)
{
case -1:
return ClanRank.GUEST;
case 10:
return ClanRank.CLAN_RANK_2;
case 20:
return ClanRank.CLAN_RANK_3;
case 30:
return ClanRank.CLAN_RANK_4;
case 40:
return ClanRank.CLAN_RANK_5;
case 50:
return ClanRank.CLAN_RANK_6;
case 60:
return ClanRank.CLAN_RANK_7;
case 70:
return ClanRank.CLAN_RANK_8;
case 80:
return ClanRank.CLAN_RANK_9;
case 90:
return ClanRank.CLAN_RANK_10;
case 100:
return ClanRank.ADMINISTRATOR;
case 105:
return ClanRank.CLAN_RANK_11;
case 110:
return ClanRank.CLAN_RANK_12;
case 115:
return ClanRank.CLAN_RANK_13;
case 120:
return ClanRank.CLAN_RANK_14;
case 125:
return ClanRank.DEPUTY_OWNER;
case 126:
return ClanRank.OWNER;
case 127:
return ClanRank.JMOD;
default:
return ClanRank.CLAN_RANK_1;
}
}
} }

View File

@@ -6,13 +6,13 @@ import net.runelite.api.events.FriendsChatMemberLeft;
import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow; import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClanChat; import net.runelite.rs.api.RSFriendsChat;
import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSUser; import net.runelite.rs.api.RSUser;
import net.runelite.rs.api.RSUsername; import net.runelite.rs.api.RSUsername;
@Mixin(RSClanChat.class) @Mixin(RSFriendsChat.class)
public abstract class RSClanChatMixin implements RSClanChat public abstract class RSFriendsChatMixin implements RSFriendsChat
{ {
@Shadow("client") @Shadow("client")
private static RSClient client; private static RSClient client;

View File

@@ -5,7 +5,7 @@ import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.MethodHook; import net.runelite.api.mixins.MethodHook;
import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow; import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClanChat; import net.runelite.rs.api.RSFriendsChat;
import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSMessage; import net.runelite.rs.api.RSMessage;
@@ -76,7 +76,7 @@ public abstract class RSMessageMixin implements RSMessage
@Override @Override
public boolean isFromClanMate() public boolean isFromClanMate()
{ {
RSClanChat cc = client.getFriendsChatManager(); RSFriendsChat cc = client.getFriendsChatManager();
return cc != null && cc.findByName(this.getSenderUsername()) != null; return cc != null && cc.findByName(this.getSenderUsername()) != null;
} }

View File

@@ -0,0 +1,44 @@
/*
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.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.rs.api;
import java.util.List;
import net.runelite.api.clan.ClanChannel;
import net.runelite.api.clan.ClanChannelMember;
import net.runelite.mapping.Import;
public interface RSClanChannel extends ClanChannel
{
@Import("name")
@Override
String getName();
@Import("members")
@Override
List<ClanChannelMember> getMembers();
@Import("getSortedMembers")
int[] getSortedMembers();
}

View File

@@ -0,0 +1,42 @@
/*
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.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.rs.api;
import net.runelite.api.clan.ClanChannelMember;
import net.runelite.mapping.Import;
public interface RSClanChannelMember extends ClanChannelMember
{
@Import("rank")
byte getRSRank();
@Import("world")
@Override
int getWorld();
@Import("name")
@Override
String getName();
}

View File

@@ -0,0 +1,50 @@
/*
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.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.rs.api;
import net.runelite.api.clan.ClanSettings;
import net.runelite.mapping.Import;
public interface RSClanSettings extends ClanSettings
{
@Import("name")
@Override
String getName();
@Import("memberCount")
int getMemberCount();
@Import("memberNames")
String[] getMemberNames();
@Import("memberRanks")
byte[] getMemberRanks();
@Import("getSortedMembers")
int[] getSortedMembers();
@Import("getTitleGroupValue")
Integer getTitleGroupValue(int group);
}

View File

@@ -29,6 +29,7 @@ import java.util.Map;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.SpritePixels; import net.runelite.api.SpritePixels;
import net.runelite.api.World; import net.runelite.api.World;
import net.runelite.api.clan.ClanRank;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.mapping.Construct; import net.runelite.mapping.Construct;
import net.runelite.mapping.Import; import net.runelite.mapping.Import;
@@ -676,8 +677,8 @@ public interface RSClient extends RSGameEngine, Client
@Import("friendSystem") @Import("friendSystem")
RSFriendSystem getFriendManager(); RSFriendSystem getFriendManager();
@Import("clanChat") @Import("friendsChat")
RSClanChat getFriendsChatManager(); RSFriendsChat getFriendsChatManager();
@Import("loginType") @Import("loginType")
RSLoginType getLoginType(); RSLoginType getLoginType();
@@ -1412,4 +1413,20 @@ public interface RSClient extends RSGameEngine, Client
@Import("crossWorldMessageIdsIndex") @Import("crossWorldMessageIdsIndex")
int getCrossWorldMessageIdsIndex(); int getCrossWorldMessageIdsIndex();
@Import("currentClanChannels")
RSClanChannel[] getCurrentClanChannels();
@Import("currentClanSettings")
RSClanSettings[] getCurrentClanSettingsAry();
@Import("guestClanChannel")
@Override
RSClanChannel getGuestClanChannel();
@Import("guestClanSettings")
@Override
RSClanSettings getGuestClanSettings();
ClanRank getClanRankFromRs(int rank);
} }

View File

@@ -4,7 +4,7 @@ import net.runelite.api.FriendsChatManager;
import net.runelite.api.FriendsChatMember; import net.runelite.api.FriendsChatMember;
import net.runelite.mapping.Import; import net.runelite.mapping.Import;
public interface RSClanChat extends RSUserList<FriendsChatMember>, FriendsChatManager public interface RSFriendsChat extends RSUserList<FriendsChatMember>, FriendsChatManager
{ {
@Import("owner") @Import("owner")
String getOwner(); String getOwner();

View File

@@ -50,10 +50,14 @@ public interface RSPlayer extends RSActor, Player
@Override @Override
int getTeam(); int getTeam();
@Import("isClanMember") @Import("isFriendsChatMember")
@Override @Override
boolean isFriendsChatMember(); boolean isFriendsChatMember();
@Import("isClanMember")
@Override
boolean isClanMember();
@Import("isFriend") @Import("isFriend")
@Override @Override
boolean isFriend(); boolean isFriend();

View File

@@ -4,87 +4,81 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("jp") @ObfuscatedName("jv")
@Implements("AbstractArchive") @Implements("AbstractArchive")
public abstract class AbstractArchive { public abstract class AbstractArchive {
@ObfuscatedName("pd") @ObfuscatedName("i")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lll;" descriptor = "Log;"
)
@Export("privateChatMode")
static PrivateChatMode privateChatMode;
@ObfuscatedName("n")
@ObfuscatedSignature(
descriptor = "Lok;"
) )
@Export("gzipDecompressor") @Export("gzipDecompressor")
static GZipDecompressor gzipDecompressor; static GZipDecompressor gzipDecompressor;
@ObfuscatedName("aj") @ObfuscatedName("al")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 949924661 intValue = 269464329
) )
static int field3611; static int field3589;
@ObfuscatedName("r") @ObfuscatedName("c")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1464108129 intValue = 15338207
) )
@Export("groupCount") @Export("groupCount")
int groupCount; int groupCount;
@ObfuscatedName("p") @ObfuscatedName("e")
@Export("groupIds") @Export("groupIds")
int[] groupIds; int[] groupIds;
@ObfuscatedName("a") @ObfuscatedName("g")
@Export("groupNameHashes") @Export("groupNameHashes")
int[] groupNameHashes; int[] groupNameHashes;
@ObfuscatedName("e") @ObfuscatedName("a")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Loo;" descriptor = "Lou;"
) )
@Export("groupNameHashTable") @Export("groupNameHashTable")
IntHashTable groupNameHashTable; IntHashTable groupNameHashTable;
@ObfuscatedName("d") @ObfuscatedName("k")
@Export("groupCrcs") @Export("groupCrcs")
int[] groupCrcs; int[] groupCrcs;
@ObfuscatedName("u") @ObfuscatedName("m")
@Export("groupVersions") @Export("groupVersions")
int[] groupVersions; int[] groupVersions;
@ObfuscatedName("m") @ObfuscatedName("x")
@Export("fileCounts") @Export("fileCounts")
int[] fileCounts; int[] fileCounts;
@ObfuscatedName("j") @ObfuscatedName("z")
@Export("fileIds") @Export("fileIds")
int[][] fileIds; int[][] fileIds;
@ObfuscatedName("f") @ObfuscatedName("w")
@Export("fileNameHashes") @Export("fileNameHashes")
int[][] fileNameHashes; int[][] fileNameHashes;
@ObfuscatedName("s") @ObfuscatedName("t")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "[Loo;" descriptor = "[Lou;"
) )
@Export("fileNameHashTables") @Export("fileNameHashTables")
IntHashTable[] fileNameHashTables; IntHashTable[] fileNameHashTables;
@ObfuscatedName("y") @ObfuscatedName("h")
@Export("groups") @Export("groups")
Object[] groups; Object[] groups;
@ObfuscatedName("w") @ObfuscatedName("q")
@Export("files") @Export("files")
Object[][] files; Object[][] files;
@ObfuscatedName("ag") @ObfuscatedName("ae")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 999784979 intValue = 2055325169
) )
@Export("hash") @Export("hash")
public int hash; public int hash;
@ObfuscatedName("ae") @ObfuscatedName("ap")
@Export("releaseGroups") @Export("releaseGroups")
boolean releaseGroups; boolean releaseGroups;
@ObfuscatedName("ao") @ObfuscatedName("ab")
@Export("shallowFiles") @Export("shallowFiles")
boolean shallowFiles; boolean shallowFiles;
static { static {
gzipDecompressor = new GZipDecompressor(); // L: 23 gzipDecompressor = new GZipDecompressor(); // L: 23
field3611 = 0; // L: 27 field3589 = 0; // L: 27
} }
AbstractArchive(boolean var1, boolean var2) { AbstractArchive(boolean var1, boolean var2) {
@@ -92,45 +86,45 @@ public abstract class AbstractArchive {
this.shallowFiles = var2; // L: 33 this.shallowFiles = var2; // L: 33
} // L: 34 } // L: 34
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)V", descriptor = "(IB)V",
garbageValue = "-1103942204" garbageValue = "108"
) )
@Export("loadRegionFromGroup") @Export("loadRegionFromGroup")
void loadRegionFromGroup(int var1) { void loadRegionFromGroup(int var1) {
} // L: 123 } // L: 123
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)V", descriptor = "(IB)V",
garbageValue = "1184960922" garbageValue = "0"
) )
@Export("loadGroup") @Export("loadGroup")
void loadGroup(int var1) { void loadGroup(int var1) {
} // L: 209 } // L: 209
@ObfuscatedName("b") @ObfuscatedName("d")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)I", descriptor = "(II)I",
garbageValue = "-1290183138" garbageValue = "-1767586109"
) )
@Export("groupLoadPercent") @Export("groupLoadPercent")
int groupLoadPercent(int var1) { int groupLoadPercent(int var1) {
return this.groups[var1] != null ? 100 : 0; // L: 179 180 return this.groups[var1] != null ? 100 : 0; // L: 179 180
} }
@ObfuscatedName("as") @ObfuscatedName("aq")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "([BI)V", descriptor = "([BI)V",
garbageValue = "1699795783" garbageValue = "994270424"
) )
@Export("decodeIndex") @Export("decodeIndex")
void decodeIndex(byte[] var1) { void decodeIndex(byte[] var1) {
int var3 = var1.length; // L: 38 int var3 = var1.length; // L: 38
int var2 = GrandExchangeOffer.method5017(var1, 0, var3); // L: 40 int var2 = GrandExchangeOfferOwnWorldComparator.method1176(var1, 0, var3); // L: 40
this.hash = var2; // L: 42 this.hash = var2; // L: 42
Buffer var4 = new Buffer(ObjectSound.decompressBytes(var1)); // L: 43 Buffer var4 = new Buffer(UserComparator6.decompressBytes(var1)); // L: 43
int var5 = var4.readUnsignedByte(); // L: 44 int var5 = var4.readUnsignedByte(); // L: 44
if (var5 >= 5 && var5 <= 7) { // L: 45 if (var5 >= 5 && var5 <= 7) { // L: 45
if (var5 >= 6) { // L: 46 if (var5 >= 6) { // L: 46
@@ -139,7 +133,7 @@ public abstract class AbstractArchive {
int var6 = var4.readUnsignedByte(); // L: 50 int var6 = var4.readUnsignedByte(); // L: 50
if (var5 >= 7) { // L: 51 if (var5 >= 7) { // L: 51
this.groupCount = var4.method6463(); this.groupCount = var4.method6569();
} else { } else {
this.groupCount = var4.readUnsignedShort(); // L: 52 this.groupCount = var4.readUnsignedShort(); // L: 52
} }
@@ -150,7 +144,7 @@ public abstract class AbstractArchive {
int var9; int var9;
if (var5 >= 7) { // L: 56 if (var5 >= 7) { // L: 56
for (var9 = 0; var9 < this.groupCount; ++var9) { // L: 57 for (var9 = 0; var9 < this.groupCount; ++var9) { // L: 57
this.groupIds[var9] = var7 += var4.method6463(); // L: 58 this.groupIds[var9] = var7 += var4.method6569(); // L: 58
if (this.groupIds[var9] > var8) { // L: 59 if (this.groupIds[var9] > var8) { // L: 59
var8 = this.groupIds[var9]; var8 = this.groupIds[var9];
} }
@@ -200,31 +194,31 @@ public abstract class AbstractArchive {
if (var5 >= 7) { // L: 82 if (var5 >= 7) { // L: 82
for (var9 = 0; var9 < this.groupCount; ++var9) { // L: 83 for (var9 = 0; var9 < this.groupCount; ++var9) { // L: 83
var10 = this.groupIds[var9]; // L: 84 var10 = this.groupIds[var9]; // L: 84
var11 = this.fileCounts[var10]; // L: 85 var11 = this.fileCounts[var10];
var7 = 0; // L: 86 var7 = 0;
var12 = -1; // L: 87 var12 = -1;
this.fileIds[var10] = new int[var11]; // L: 88 this.fileIds[var10] = new int[var11]; // L: 88
for (var13 = 0; var13 < var11; ++var13) { // L: 89 for (var13 = 0; var13 < var11; ++var13) { // L: 89
var14 = this.fileIds[var10][var13] = var7 += var4.method6463(); // L: 90 var14 = this.fileIds[var10][var13] = var7 += var4.method6569();
if (var14 > var12) { // L: 91 if (var14 > var12) {
var12 = var14; var12 = var14;
} }
} }
this.files[var10] = new Object[var12 + 1]; // L: 93 this.files[var10] = new Object[var12 + 1];
} }
} else { } else {
for (var9 = 0; var9 < this.groupCount; ++var9) { // L: 97 for (var9 = 0; var9 < this.groupCount; ++var9) {
var10 = this.groupIds[var9]; // L: 98 var10 = this.groupIds[var9];
var11 = this.fileCounts[var10]; // L: 99 var11 = this.fileCounts[var10]; // L: 99
var7 = 0; // L: 100 var7 = 0; // L: 100
var12 = -1; // L: 101 var12 = -1;
this.fileIds[var10] = new int[var11]; // L: 102 this.fileIds[var10] = new int[var11];
for (var13 = 0; var13 < var11; ++var13) { // L: 103 for (var13 = 0; var13 < var11; ++var13) {
var14 = this.fileIds[var10][var13] = var7 += var4.readUnsignedShort(); // L: 104 var14 = this.fileIds[var10][var13] = var7 += var4.readUnsignedShort(); // L: 104
if (var14 > var12) { // L: 105 if (var14 > var12) {
var12 = var14; var12 = var14;
} }
} }
@@ -255,20 +249,20 @@ public abstract class AbstractArchive {
} }
} // L: 121 } // L: 121
@ObfuscatedName("ad") @ObfuscatedName("aw")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)[B", descriptor = "(III)[B",
garbageValue = "107859165" garbageValue = "-26460885"
) )
@Export("takeFile") @Export("takeFile")
public byte[] takeFile(int var1, int var2) { public byte[] takeFile(int var1, int var2) {
return this.takeFileEncrypted(var1, var2, (int[])null); // L: 126 return this.takeFileEncrypted(var1, var2, (int[])null); // L: 126
} }
@ObfuscatedName("ac") @ObfuscatedName("af")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II[II)[B", descriptor = "(II[II)[B",
garbageValue = "-118245889" garbageValue = "744457350"
) )
@Export("takeFileEncrypted") @Export("takeFileEncrypted")
public byte[] takeFileEncrypted(int var1, int var2, int[] var3) { public byte[] takeFileEncrypted(int var1, int var2, int[] var3) {
@@ -284,7 +278,7 @@ public abstract class AbstractArchive {
} }
} }
byte[] var5 = Renderable.method4079(this.files[var1][var2], false); // L: 139 byte[] var5 = ByteArrayPool.method5573(this.files[var1][var2], false); // L: 139
if (this.shallowFiles) { if (this.shallowFiles) {
this.files[var1][var2] = null; // L: 140 this.files[var1][var2] = null; // L: 140
} }
@@ -295,10 +289,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("az") @ObfuscatedName("ak")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)Z", descriptor = "(IIB)Z",
garbageValue = "-588879952" garbageValue = "57"
) )
@Export("tryLoadFile") @Export("tryLoadFile")
public boolean tryLoadFile(int var1, int var2) { public boolean tryLoadFile(int var1, int var2) {
@@ -316,12 +310,12 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("aq") @ObfuscatedName("ay")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)Z", descriptor = "(IB)Z",
garbageValue = "-755166419" garbageValue = "0"
) )
public boolean method4953(int var1) { public boolean method4963(int var1) {
if (this.files.length == 1) { // L: 154 if (this.files.length == 1) { // L: 154
return this.tryLoadFile(0, var1); return this.tryLoadFile(0, var1);
} else if (this.files[var1].length == 1) { } else if (this.files[var1].length == 1) {
@@ -331,10 +325,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("ab") @ObfuscatedName("aa")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)Z", descriptor = "(IB)Z",
garbageValue = "-1545749528" garbageValue = "112"
) )
@Export("tryLoadGroup") @Export("tryLoadGroup")
public boolean tryLoadGroup(int var1) { public boolean tryLoadGroup(int var1) {
@@ -346,10 +340,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("ar") @ObfuscatedName("au")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)Z", descriptor = "(I)Z",
garbageValue = "1388179723" garbageValue = "2118992751"
) )
@Export("isFullyLoaded") @Export("isFullyLoaded")
public boolean isFullyLoaded() { public boolean isFullyLoaded() {
@@ -368,10 +362,10 @@ public abstract class AbstractArchive {
return var1; // L: 175 return var1; // L: 175
} }
@ObfuscatedName("ah") @ObfuscatedName("an")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)[B", descriptor = "(IB)[B",
garbageValue = "1253111810" garbageValue = "-116"
) )
@Export("takeFileFlat") @Export("takeFileFlat")
public byte[] takeFileFlat(int var1) { public byte[] takeFileFlat(int var1) {
@@ -384,10 +378,10 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("af") @ObfuscatedName("bd")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)[B", descriptor = "(III)[B",
garbageValue = "-1200970421" garbageValue = "791709889"
) )
@Export("getFile") @Export("getFile")
public byte[] getFile(int var1, int var2) { public byte[] getFile(int var1, int var2) {
@@ -403,17 +397,17 @@ public abstract class AbstractArchive {
} }
} }
byte[] var4 = Renderable.method4079(this.files[var1][var2], false); // L: 199 byte[] var4 = ByteArrayPool.method5573(this.files[var1][var2], false); // L: 199
return var4; // L: 200 return var4; // L: 200
} else { } else {
return null; return null;
} }
} }
@ObfuscatedName("an") @ObfuscatedName("bt")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IS)[B", descriptor = "(II)[B",
garbageValue = "22661" garbageValue = "444746714"
) )
@Export("getFileFlat") @Export("getFileFlat")
public byte[] getFileFlat(int var1) { public byte[] getFileFlat(int var1) {
@@ -426,40 +420,40 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("bd") @ObfuscatedName("bq")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)[I", descriptor = "(IB)[I",
garbageValue = "-1054045445" garbageValue = "8"
) )
@Export("getGroupFileIds") @Export("getGroupFileIds")
public int[] getGroupFileIds(int var1) { public int[] getGroupFileIds(int var1) {
return var1 >= 0 && var1 < this.fileIds.length ? this.fileIds[var1] : null; // L: 212 213 215 return var1 >= 0 && var1 < this.fileIds.length ? this.fileIds[var1] : null; // L: 212 213 215
} }
@ObfuscatedName("bw") @ObfuscatedName("bu")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IB)I", descriptor = "(II)I",
garbageValue = "73" garbageValue = "997984533"
) )
@Export("getGroupFileCount") @Export("getGroupFileCount")
public int getGroupFileCount(int var1) { public int getGroupFileCount(int var1) {
return this.files[var1].length; // L: 219 return this.files[var1].length; // L: 219
} }
@ObfuscatedName("bf") @ObfuscatedName("bl")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)I", descriptor = "(I)I",
garbageValue = "40" garbageValue = "756558186"
) )
@Export("getGroupCount") @Export("getGroupCount")
public int getGroupCount() { public int getGroupCount() {
return this.files.length; // L: 223 return this.files.length; // L: 223
} }
@ObfuscatedName("bu") @ObfuscatedName("bv")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)V", descriptor = "(B)V",
garbageValue = "-719387279" garbageValue = "2"
) )
@Export("clearGroups") @Export("clearGroups")
public void clearGroups() { public void clearGroups() {
@@ -469,10 +463,10 @@ public abstract class AbstractArchive {
} // L: 228 } // L: 228
@ObfuscatedName("bb") @ObfuscatedName("bm")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)V", descriptor = "(II)V",
garbageValue = "2134531834" garbageValue = "-1987732503"
) )
@Export("clearFilesGroup") @Export("clearFilesGroup")
public void clearFilesGroup(int var1) { public void clearFilesGroup(int var1) {
@@ -482,10 +476,10 @@ public abstract class AbstractArchive {
} // L: 232 } // L: 232
@ObfuscatedName("bk") @ObfuscatedName("bz")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)V", descriptor = "(B)V",
garbageValue = "42" garbageValue = "94"
) )
@Export("clearFiles") @Export("clearFiles")
public void clearFiles() { public void clearFiles() {
@@ -499,10 +493,10 @@ public abstract class AbstractArchive {
} // L: 240 } // L: 240
@ObfuscatedName("bt") @ObfuscatedName("bh")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I[II)Z", descriptor = "(I[II)Z",
garbageValue = "-421186683" garbageValue = "1746231171"
) )
@Export("buildFiles") @Export("buildFiles")
boolean buildFiles(int var1, int[] var2) { boolean buildFiles(int var1, int[] var2) {
@@ -525,15 +519,15 @@ public abstract class AbstractArchive {
return true; return true;
} else { } else {
byte[] var18; byte[] var18;
if (var2 == null || var2[0] == 0 && var2[1] == 0 && var2[2] == 0 && var2[3] == 0) { // L: 256 if (var2 != null && (var2[0] != 0 || var2[1] != 0 || var2[2] != 0 || var2[3] != 0)) { // L: 256
var18 = Renderable.method4079(this.groups[var1], false); // L: 261 var18 = ByteArrayPool.method5573(this.groups[var1], true); // L: 257
} else {
var18 = Renderable.method4079(this.groups[var1], true); // L: 257
Buffer var8 = new Buffer(var18); // L: 258 Buffer var8 = new Buffer(var18); // L: 258
var8.xteaDecrypt(var2, 5, var8.array.length); // L: 259 var8.xteaDecrypt(var2, 5, var8.array.length); // L: 259
} else {
var18 = ByteArrayPool.method5573(this.groups[var1], false); // L: 261
} }
byte[] var20 = ObjectSound.decompressBytes(var18); // L: 264 byte[] var20 = UserComparator6.decompressBytes(var18); // L: 264
if (this.releaseGroups) { // L: 282 if (this.releaseGroups) { // L: 282
this.groups[var1] = null; this.groups[var1] = null;
} }
@@ -581,13 +575,13 @@ public abstract class AbstractArchive {
for (var15 = 0; var15 < var3; ++var15) { // L: 313 for (var15 = 0; var15 < var3; ++var15) { // L: 313
if (!this.shallowFiles) { // L: 314 if (!this.shallowFiles) { // L: 314
var5[var4[var15]] = class34.method388(var19[var15], false); var5[var4[var15]] = GrandExchangeOfferWorldComparator.method5079(var19[var15], false);
} else { } else {
var5[var4[var15]] = var19[var15]; // L: 315 var5[var4[var15]] = var19[var15]; // L: 315
} }
} }
} else if (!this.shallowFiles) { // L: 319 } else if (!this.shallowFiles) { // L: 319
var5[var4[0]] = class34.method388(var20, false); var5[var4[0]] = GrandExchangeOfferWorldComparator.method5079(var20, false);
} else { } else {
var5[var4[0]] = var20; // L: 320 var5[var4[0]] = var20; // L: 320
} }
@@ -597,109 +591,141 @@ public abstract class AbstractArchive {
} }
} }
@ObfuscatedName("by") @ObfuscatedName("bs")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/lang/String;B)I", descriptor = "(Ljava/lang/String;I)I",
garbageValue = "91" garbageValue = "-1575580840"
) )
@Export("getGroupId") @Export("getGroupId")
public int getGroupId(String var1) { public int getGroupId(String var1) {
var1 = var1.toLowerCase(); // L: 326 var1 = var1.toLowerCase(); // L: 326
return this.groupNameHashTable.get(class258.hashString(var1)); // L: 327 return this.groupNameHashTable.get(GraphicsObject.hashString(var1)); // L: 327
}
@ObfuscatedName("bz")
@ObfuscatedSignature(
descriptor = "(ILjava/lang/String;B)I",
garbageValue = "0"
)
@Export("getFileId")
public int getFileId(int var1, String var2) {
var2 = var2.toLowerCase(); // L: 331
return this.fileNameHashTables[var1].get(class258.hashString(var2)); // L: 332
} }
@ObfuscatedName("br") @ObfuscatedName("br")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/lang/String;Ljava/lang/String;I)Z", descriptor = "(ILjava/lang/String;I)I",
garbageValue = "327939117" garbageValue = "1997157248"
)
@Export("getFileId")
public int getFileId(int var1, String var2) {
var2 = var2.toLowerCase(); // L: 331
return this.fileNameHashTables[var1].get(GraphicsObject.hashString(var2)); // L: 332
}
@ObfuscatedName("bf")
@ObfuscatedSignature(
descriptor = "(Ljava/lang/String;Ljava/lang/String;B)Z",
garbageValue = "0"
) )
@Export("isValidFileName") @Export("isValidFileName")
public boolean isValidFileName(String var1, String var2) { public boolean isValidFileName(String var1, String var2) {
var1 = var1.toLowerCase(); // L: 336 var1 = var1.toLowerCase(); // L: 336
var2 = var2.toLowerCase(); // L: 337 var2 = var2.toLowerCase(); // L: 337
int var3 = this.groupNameHashTable.get(class258.hashString(var1)); // L: 338 int var3 = this.groupNameHashTable.get(GraphicsObject.hashString(var1)); // L: 338
if (var3 < 0) { // L: 339 if (var3 < 0) { // L: 339
return false; return false;
} else { } else {
int var4 = this.fileNameHashTables[var3].get(class258.hashString(var2)); // L: 340 int var4 = this.fileNameHashTables[var3].get(GraphicsObject.hashString(var2)); // L: 340
return var4 >= 0; // L: 341 return var4 >= 0; // L: 341
} }
} }
@ObfuscatedName("bm") @ObfuscatedName("ba")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/lang/String;Ljava/lang/String;I)[B", descriptor = "(Ljava/lang/String;Ljava/lang/String;I)[B",
garbageValue = "-1956391174" garbageValue = "-2113660686"
) )
@Export("takeFileByNames") @Export("takeFileByNames")
public byte[] takeFileByNames(String var1, String var2) { public byte[] takeFileByNames(String var1, String var2) {
var1 = var1.toLowerCase(); // L: 346 var1 = var1.toLowerCase(); // L: 346
var2 = var2.toLowerCase(); // L: 347 var2 = var2.toLowerCase(); // L: 347
int var3 = this.groupNameHashTable.get(class258.hashString(var1)); // L: 348 int var3 = this.groupNameHashTable.get(GraphicsObject.hashString(var1)); // L: 348
int var4 = this.fileNameHashTables[var3].get(class258.hashString(var2)); // L: 349 int var4 = this.fileNameHashTables[var3].get(GraphicsObject.hashString(var2)); // L: 349
return this.takeFile(var3, var4); // L: 350 return this.takeFile(var3, var4); // L: 350
} }
@ObfuscatedName("bn") @ObfuscatedName("be")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/lang/String;Ljava/lang/String;I)Z", descriptor = "(Ljava/lang/String;Ljava/lang/String;I)Z",
garbageValue = "331828687" garbageValue = "-1619143397"
) )
@Export("tryLoadFileByNames") @Export("tryLoadFileByNames")
public boolean tryLoadFileByNames(String var1, String var2) { public boolean tryLoadFileByNames(String var1, String var2) {
var1 = var1.toLowerCase(); // L: 354 var1 = var1.toLowerCase(); // L: 354
var2 = var2.toLowerCase(); // L: 355 var2 = var2.toLowerCase(); // L: 355
int var3 = this.groupNameHashTable.get(class258.hashString(var1)); // L: 356 int var3 = this.groupNameHashTable.get(GraphicsObject.hashString(var1)); // L: 356
int var4 = this.fileNameHashTables[var3].get(class258.hashString(var2)); // L: 357 int var4 = this.fileNameHashTables[var3].get(GraphicsObject.hashString(var2)); // L: 357
return this.tryLoadFile(var3, var4); // L: 358 return this.tryLoadFile(var3, var4); // L: 358
} }
@ObfuscatedName("ba") @ObfuscatedName("bj")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/lang/String;B)Z", descriptor = "(Ljava/lang/String;I)Z",
garbageValue = "86" garbageValue = "1308287337"
) )
@Export("tryLoadGroupByName") @Export("tryLoadGroupByName")
public boolean tryLoadGroupByName(String var1) { public boolean tryLoadGroupByName(String var1) {
var1 = var1.toLowerCase(); // L: 362 var1 = var1.toLowerCase(); // L: 362
int var2 = this.groupNameHashTable.get(class258.hashString(var1)); // L: 363 int var2 = this.groupNameHashTable.get(GraphicsObject.hashString(var1)); // L: 363
return this.tryLoadGroup(var2); // L: 364 return this.tryLoadGroup(var2); // L: 364
} }
@ObfuscatedName("bg") @ObfuscatedName("bx")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/lang/String;I)V", descriptor = "(Ljava/lang/String;B)V",
garbageValue = "90954546" garbageValue = "-13"
) )
@Export("loadRegionFromName") @Export("loadRegionFromName")
public void loadRegionFromName(String var1) { public void loadRegionFromName(String var1) {
var1 = var1.toLowerCase(); // L: 368 var1 = var1.toLowerCase(); // L: 368
int var2 = this.groupNameHashTable.get(class258.hashString(var1)); // L: 369 int var2 = this.groupNameHashTable.get(GraphicsObject.hashString(var1)); // L: 369
if (var2 >= 0) { // L: 370 if (var2 >= 0) { // L: 370
this.loadRegionFromGroup(var2); // L: 371 this.loadRegionFromGroup(var2); // L: 371
} }
} // L: 372 } // L: 372
@ObfuscatedName("bi") @ObfuscatedName("bp")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/lang/String;I)I", descriptor = "(Ljava/lang/String;I)I",
garbageValue = "1634079173" garbageValue = "-469747920"
) )
@Export("groupLoadPercentByName") @Export("groupLoadPercentByName")
public int groupLoadPercentByName(String var1) { public int groupLoadPercentByName(String var1) {
var1 = var1.toLowerCase(); // L: 375 var1 = var1.toLowerCase(); // L: 375
int var2 = this.groupNameHashTable.get(class258.hashString(var1)); // L: 376 int var2 = this.groupNameHashTable.get(GraphicsObject.hashString(var1)); // L: 376
return this.groupLoadPercent(var2); // L: 377 return this.groupLoadPercent(var2); // L: 377
} }
@ObfuscatedName("p")
@ObfuscatedSignature(
descriptor = "(Ljv;Ljv;IIB)Lkt;",
garbageValue = "7"
)
public static Font method5018(AbstractArchive var0, AbstractArchive var1, int var2, int var3) {
byte[] var5 = var0.takeFile(var2, var3); // L: 85
boolean var4;
if (var5 == null) { // L: 86
var4 = false; // L: 87
} else {
ItemLayer.SpriteBuffer_decode(var5); // L: 90
var4 = true; // L: 91
}
if (!var4) { // L: 93
return null;
} else {
byte[] var6 = var1.takeFile(var2, var3); // L: 95
Font var8;
if (var6 == null) { // L: 97
var8 = null; // L: 98
} else {
Font var7 = new Font(var6, WorldMapDecoration.SpriteBuffer_xOffsets, Calendar.SpriteBuffer_yOffsets, class396.SpriteBuffer_spriteWidths, class302.SpriteBuffer_spriteHeights, MilliClock.SpriteBuffer_spritePalette, class396.SpriteBuffer_pixels); // L: 101
MilliClock.method2587(); // L: 102
var8 = var7; // L: 103
}
return var8; // L: 105
}
}
} }

View File

@@ -4,66 +4,54 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("iw") @ObfuscatedName("im")
@Implements("AbstractByteArrayCopier") @Implements("AbstractByteArrayCopier")
public abstract class AbstractByteArrayCopier { public abstract class AbstractByteArrayCopier {
@ObfuscatedName("r") @ObfuscatedName("ry")
static int[] field3115;
@ObfuscatedName("lt")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1508140937 intValue = -941868037
) )
@Export("menuX") static int field3119;
static int menuX;
AbstractByteArrayCopier() { AbstractByteArrayCopier() {
} // L: 4 } // L: 4
@ObfuscatedName("g") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)[B", descriptor = "(B)[B",
garbageValue = "-1778746914" garbageValue = "74"
) )
@Export("get") @Export("get")
abstract byte[] get(); abstract byte[] get();
@ObfuscatedName("l") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "([BI)V", descriptor = "([BB)V",
garbageValue = "973811650" garbageValue = "43"
) )
@Export("set") @Export("set")
abstract void set(byte[] var1); abstract void set(byte[] var1);
@ObfuscatedName("h") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljp;I)V", descriptor = "(Ljv;III)Lop;",
garbageValue = "-1461595719" garbageValue = "1690865732"
) )
public static void method4756(AbstractArchive var0) { static IndexedSprite method4802(AbstractArchive var0, int var1, int var2) {
VarcInt.VarcInt_archive = var0; // L: 17 if (!class339.method6015(var0, var1, var2)) { // L: 28
} // L: 18 return null;
} else {
@ObfuscatedName("v") IndexedSprite var4 = new IndexedSprite(); // L: 31
@ObfuscatedSignature( var4.width = class396.SpriteBuffer_spriteWidth; // L: 32
descriptor = "(III)I", var4.height = UserComparator2.SpriteBuffer_spriteHeight; // L: 33
garbageValue = "583032704" var4.xOffset = WorldMapDecoration.SpriteBuffer_xOffsets[0]; // L: 34
) var4.yOffset = Calendar.SpriteBuffer_yOffsets[0]; // L: 35
static final int method4754(int var0, int var1) { var4.subWidth = class396.SpriteBuffer_spriteWidths[0]; // L: 36
int var2 = var0 + var1 * 57; // L: 485 var4.subHeight = class302.SpriteBuffer_spriteHeights[0]; // L: 37
var2 ^= var2 << 13; // L: 486 var4.palette = MilliClock.SpriteBuffer_spritePalette; // L: 38
int var3 = (var2 * var2 * 15731 + 789221) * var2 + 1376312589 & Integer.MAX_VALUE; // L: 487 var4.pixels = class396.SpriteBuffer_pixels[0]; // L: 39
return var3 >> 19 & 255; // L: 488 MilliClock.method2587(); // L: 40
return var4; // L: 43
}
} }
@ObfuscatedName("b")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-331498963"
)
static final void method4738() {
Object var10000 = null; // L: 128
String var0 = "Your friend list is full. Max of 200 for free users, and 400 for members";
WorldMapScaleHandler.addGameMessage(30, "", var0); // L: 130
} // L: 132
} }

View File

@@ -4,76 +4,76 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("kx") @ObfuscatedName("kc")
@Implements("AbstractFont") @Implements("AbstractFont")
public abstract class AbstractFont extends Rasterizer2D { public abstract class AbstractFont extends Rasterizer2D {
@ObfuscatedName("q") @ObfuscatedName("s")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "[Lof;" descriptor = "[Lop;"
) )
@Export("AbstractFont_modIconSprites") @Export("AbstractFont_modIconSprites")
public static IndexedSprite[] AbstractFont_modIconSprites; public static IndexedSprite[] AbstractFont_modIconSprites;
@ObfuscatedName("x") @ObfuscatedName("l")
@Export("AbstractFont_strike") @Export("AbstractFont_strike")
static int AbstractFont_strike; static int AbstractFont_strike;
@ObfuscatedName("k") @ObfuscatedName("o")
@Export("AbstractFont_underline") @Export("AbstractFont_underline")
static int AbstractFont_underline; static int AbstractFont_underline;
@ObfuscatedName("r") @ObfuscatedName("c")
@Export("AbstractFont_previousShadow") @Export("AbstractFont_previousShadow")
static int AbstractFont_previousShadow; static int AbstractFont_previousShadow;
@ObfuscatedName("p") @ObfuscatedName("e")
@Export("AbstractFont_shadow") @Export("AbstractFont_shadow")
static int AbstractFont_shadow; static int AbstractFont_shadow;
@ObfuscatedName("a") @ObfuscatedName("g")
@Export("AbstractFont_previousColor") @Export("AbstractFont_previousColor")
static int AbstractFont_previousColor; static int AbstractFont_previousColor;
@ObfuscatedName("e") @ObfuscatedName("a")
@Export("AbstractFont_color") @Export("AbstractFont_color")
static int AbstractFont_color; static int AbstractFont_color;
@ObfuscatedName("d") @ObfuscatedName("k")
@Export("AbstractFont_alpha") @Export("AbstractFont_alpha")
static int AbstractFont_alpha; static int AbstractFont_alpha;
@ObfuscatedName("u") @ObfuscatedName("m")
@Export("AbstractFont_justificationTotal") @Export("AbstractFont_justificationTotal")
static int AbstractFont_justificationTotal; static int AbstractFont_justificationTotal;
@ObfuscatedName("m") @ObfuscatedName("x")
@Export("AbstractFont_justificationCurrent") @Export("AbstractFont_justificationCurrent")
static int AbstractFont_justificationCurrent; static int AbstractFont_justificationCurrent;
@ObfuscatedName("j") @ObfuscatedName("z")
@Export("AbstractFont_random") @Export("AbstractFont_random")
static Random AbstractFont_random; static Random AbstractFont_random;
@ObfuscatedName("f") @ObfuscatedName("w")
@Export("AbstractFont_lines") @Export("AbstractFont_lines")
static String[] AbstractFont_lines; static String[] AbstractFont_lines;
@ObfuscatedName("h") @ObfuscatedName("v")
@Export("pixels") @Export("pixels")
byte[][] pixels; byte[][] pixels;
@ObfuscatedName("c") @ObfuscatedName("n")
@Export("advances") @Export("advances")
int[] advances; int[] advances;
@ObfuscatedName("o") @ObfuscatedName("f")
@Export("widths") @Export("widths")
int[] widths; int[] widths;
@ObfuscatedName("g") @ObfuscatedName("y")
@Export("heights") @Export("heights")
int[] heights; int[] heights;
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("leftBearings") @Export("leftBearings")
int[] leftBearings; int[] leftBearings;
@ObfuscatedName("z") @ObfuscatedName("j")
@Export("topBearings") @Export("topBearings")
int[] topBearings; int[] topBearings;
@ObfuscatedName("t") @ObfuscatedName("r")
@Export("ascent") @Export("ascent")
public int ascent; public int ascent;
@ObfuscatedName("v") @ObfuscatedName("b")
@Export("maxAscent") @Export("maxAscent")
public int maxAscent; public int maxAscent;
@ObfuscatedName("b") @ObfuscatedName("d")
@Export("maxDescent") @Export("maxDescent")
public int maxDescent; public int maxDescent;
@ObfuscatedName("i") @ObfuscatedName("u")
@Export("kerning") @Export("kerning")
byte[] kerning; byte[] kerning;
@@ -123,15 +123,15 @@ public abstract class AbstractFont extends Rasterizer2D {
this.maxDescent = var9 - this.ascent; // L: 49 this.maxDescent = var9 - this.ascent; // L: 49
} // L: 50 } // L: 50
@ObfuscatedName("h") @ObfuscatedName("v")
@Export("drawGlyph") @Export("drawGlyph")
abstract void drawGlyph(byte[] var1, int var2, int var3, int var4, int var5, int var6); abstract void drawGlyph(byte[] var1, int var2, int var3, int var4, int var5, int var6);
@ObfuscatedName("c") @ObfuscatedName("n")
@Export("drawGlyphAlpha") @Export("drawGlyphAlpha")
abstract void drawGlyphAlpha(byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7); abstract void drawGlyphAlpha(byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7);
@ObfuscatedName("v") @ObfuscatedName("d")
@Export("readMetrics") @Export("readMetrics")
void readMetrics(byte[] var1) { void readMetrics(byte[] var1) {
this.advances = new int[256]; // L: 57 this.advances = new int[256]; // L: 57
@@ -193,7 +193,7 @@ public abstract class AbstractFont extends Rasterizer2D {
if (var13 != 32 && var13 != 160) { // L: 89 if (var13 != 32 && var13 != 160) { // L: 89
for (var8 = 0; var8 < 256; ++var8) { // L: 90 for (var8 = 0; var8 < 256; ++var8) { // L: 90
if (var8 != 32 && var8 != 160) { // L: 91 if (var8 != 32 && var8 != 160) { // L: 91
this.kerning[var8 + (var13 << 8)] = (byte)method5269(var11, var12, var4, this.advances, var10, var13, var8); // L: 92 this.kerning[var8 + (var13 << 8)] = (byte)method5350(var11, var12, var4, this.advances, var10, var13, var8); // L: 92
} }
} }
} }
@@ -204,17 +204,17 @@ public abstract class AbstractFont extends Rasterizer2D {
} // L: 97 } // L: 97
@ObfuscatedName("q") @ObfuscatedName("u")
@Export("charWidth") @Export("charWidth")
int charWidth(char var1) { int charWidth(char var1) {
if (var1 == 160) { // L: 122 if (var1 == 160) { // L: 122
var1 = ' '; var1 = ' ';
} }
return this.advances[DirectByteArrayCopier.charToByteCp1252(var1) & 255]; // L: 123 return this.advances[ServerPacket.charToByteCp1252(var1) & 255]; // L: 123
} }
@ObfuscatedName("i") @ObfuscatedName("l")
@Export("stringWidth") @Export("stringWidth")
public int stringWidth(String var1) { public int stringWidth(String var1) {
if (var1 == null) { // L: 127 if (var1 == null) { // L: 127
@@ -238,7 +238,7 @@ public abstract class AbstractFont extends Rasterizer2D {
if (!var7.equals("gt")) { // L: 141 if (!var7.equals("gt")) { // L: 141
if (var7.startsWith("img=")) { // L: 142 if (var7.startsWith("img=")) { // L: 142
try { try {
int var8 = FontName.method6162(var7.substring(4)); // L: 144 int var8 = class82.method1908(var7.substring(4)); // L: 144
var4 += AbstractFont_modIconSprites[var8].width; // L: 145 var4 += AbstractFont_modIconSprites[var8].width; // L: 145
var3 = -1; // L: 146 var3 = -1; // L: 146
} catch (Exception var10) { // L: 148 } catch (Exception var10) { // L: 148
@@ -256,7 +256,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
if (var2 == -1) { // L: 154 if (var2 == -1) { // L: 154
var4 += this.advances[(char)(DirectByteArrayCopier.charToByteCp1252(var6) & 255)]; // L: 155 var4 += this.advances[(char)(ServerPacket.charToByteCp1252(var6) & 255)]; // L: 155
if (this.kerning != null && var3 != -1) { // L: 156 if (this.kerning != null && var3 != -1) { // L: 156
var4 += this.kerning[var6 + (var3 << 8)]; var4 += this.kerning[var6 + (var3 << 8)];
} }
@@ -270,7 +270,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("x") @ObfuscatedName("o")
@Export("breakLines") @Export("breakLines")
public int breakLines(String var1, int[] var2, String[] var3) { public int breakLines(String var1, int[] var2, String[] var3) {
if (var1 == null) { // L: 164 if (var1 == null) { // L: 164
@@ -321,7 +321,7 @@ public abstract class AbstractFont extends Rasterizer2D {
var11 = '>'; // L: 203 var11 = '>'; // L: 203
} else if (var16.startsWith("img=")) { // L: 205 } else if (var16.startsWith("img=")) { // L: 205
try { try {
int var17 = FontName.method6162(var16.substring(4)); // L: 207 int var17 = class82.method1908(var16.substring(4)); // L: 207
var4 += AbstractFont_modIconSprites[var17].width; // L: 208 var4 += AbstractFont_modIconSprites[var17].width; // L: 208
var11 = 0; // L: 209 var11 = 0; // L: 209
} catch (Exception var20) { // L: 211 } catch (Exception var20) { // L: 211
@@ -375,7 +375,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("k") @ObfuscatedName("c")
@Export("lineWidth") @Export("lineWidth")
public int lineWidth(String var1, int var2) { public int lineWidth(String var1, int var2) {
int var3 = this.breakLines(var1, new int[]{var2}, AbstractFont_lines); // L: 248 int var3 = this.breakLines(var1, new int[]{var2}, AbstractFont_lines); // L: 248
@@ -391,7 +391,7 @@ public abstract class AbstractFont extends Rasterizer2D {
return var4; // L: 254 return var4; // L: 254
} }
@ObfuscatedName("r") @ObfuscatedName("e")
@Export("lineCount") @Export("lineCount")
public int lineCount(String var1, int var2) { public int lineCount(String var1, int var2) {
return this.breakLines(var1, new int[]{var2}, AbstractFont_lines); // L: 258 return this.breakLines(var1, new int[]{var2}, AbstractFont_lines); // L: 258
@@ -406,7 +406,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 282 } // L: 282
@ObfuscatedName("e") @ObfuscatedName("k")
@Export("drawAlpha") @Export("drawAlpha")
public void drawAlpha(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawAlpha(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { // L: 285 if (var1 != null) { // L: 285
@@ -416,7 +416,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 289 } // L: 289
@ObfuscatedName("d") @ObfuscatedName("m")
@Export("drawRightAligned") @Export("drawRightAligned")
public void drawRightAligned(String var1, int var2, int var3, int var4, int var5) { public void drawRightAligned(String var1, int var2, int var3, int var4, int var5) {
if (var1 != null) { // L: 292 if (var1 != null) { // L: 292
@@ -425,7 +425,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 295 } // L: 295
@ObfuscatedName("u") @ObfuscatedName("x")
@Export("drawCentered") @Export("drawCentered")
public void drawCentered(String var1, int var2, int var3, int var4, int var5) { public void drawCentered(String var1, int var2, int var3, int var4, int var5) {
if (var1 != null) { // L: 298 if (var1 != null) { // L: 298
@@ -434,7 +434,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 301 } // L: 301
@ObfuscatedName("m") @ObfuscatedName("z")
@Export("drawLines") @Export("drawLines")
public int drawLines(String var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) { public int drawLines(String var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
if (var1 == null) { // L: 304 if (var1 == null) { // L: 304
@@ -495,7 +495,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
@ObfuscatedName("j") @ObfuscatedName("w")
@Export("drawCenteredWave") @Export("drawCenteredWave")
public void drawCenteredWave(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawCenteredWave(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { // L: 339 if (var1 != null) { // L: 339
@@ -510,7 +510,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 344 } // L: 344
@ObfuscatedName("f") @ObfuscatedName("t")
@Export("drawCenteredWave2") @Export("drawCenteredWave2")
public void drawCenteredWave2(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawCenteredWave2(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { // L: 347 if (var1 != null) { // L: 347
@@ -527,7 +527,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 356 } // L: 356
@ObfuscatedName("s") @ObfuscatedName("h")
@Export("drawCenteredShake") @Export("drawCenteredShake")
public void drawCenteredShake(String var1, int var2, int var3, int var4, int var5, int var6, int var7) { public void drawCenteredShake(String var1, int var2, int var3, int var4, int var5, int var6, int var7) {
if (var1 != null) { // L: 359 if (var1 != null) { // L: 359
@@ -547,7 +547,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 366 } // L: 366
@ObfuscatedName("y") @ObfuscatedName("q")
@Export("drawRandomAlphaAndSpacing") @Export("drawRandomAlphaAndSpacing")
public void drawRandomAlphaAndSpacing(String var1, int var2, int var3, int var4, int var5, int var6) { public void drawRandomAlphaAndSpacing(String var1, int var2, int var3, int var4, int var5, int var6) {
if (var1 != null) { // L: 369 if (var1 != null) { // L: 369
@@ -568,7 +568,7 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} // L: 380 } // L: 380
@ObfuscatedName("w") @ObfuscatedName("i")
@Export("reset") @Export("reset")
void reset(int var1, int var2) { void reset(int var1, int var2) {
AbstractFont_strike = -1; // L: 383 AbstractFont_strike = -1; // L: 383
@@ -582,95 +582,105 @@ public abstract class AbstractFont extends Rasterizer2D {
AbstractFont_justificationCurrent = 0; // L: 389 AbstractFont_justificationCurrent = 0; // L: 389
} // L: 390 } // L: 390
@ObfuscatedName("n") @ObfuscatedName("ae")
@Export("decodeTag") @Export("decodeTag")
void decodeTag(String var1) { void decodeTag(String var1) {
try { try {
int var2;
String var3;
if (var1.startsWith("col=")) { // L: 394 if (var1.startsWith("col=")) { // L: 394
AbstractFont_color = UserComparator8.method2440(var1.substring(4), 16); var3 = var1.substring(4); // L: 396
} else if (var1.equals("/col")) { // L: 395 var2 = class24.method260(var3, 16, true); // L: 398
AbstractFont_color = var2; // L: 400
} else if (var1.equals("/col")) { // L: 402
AbstractFont_color = AbstractFont_previousColor; AbstractFont_color = AbstractFont_previousColor;
} else if (var1.startsWith("str=")) { // L: 396 } else if (var1.startsWith("str=")) { // L: 403
AbstractFont_strike = UserComparator8.method2440(var1.substring(4), 16); var3 = var1.substring(4); // L: 405
} else if (var1.equals("str")) { // L: 397 var2 = class24.method260(var3, 16, true); // L: 407
AbstractFont_strike = var2; // L: 409
} else if (var1.equals("str")) { // L: 411
AbstractFont_strike = 8388608; AbstractFont_strike = 8388608;
} else if (var1.equals("/str")) { // L: 398 } else if (var1.equals("/str")) { // L: 412
AbstractFont_strike = -1; AbstractFont_strike = -1;
} else if (var1.startsWith("u=")) { // L: 399 } else if (var1.startsWith("u=")) { // L: 413
AbstractFont_underline = UserComparator8.method2440(var1.substring(2), 16); var3 = var1.substring(2); // L: 415
} else if (var1.equals("u")) { // L: 400 var2 = class24.method260(var3, 16, true); // L: 417
AbstractFont_underline = var2; // L: 419
} else if (var1.equals("u")) { // L: 421
AbstractFont_underline = 0; AbstractFont_underline = 0;
} else if (var1.equals("/u")) { // L: 401 } else if (var1.equals("/u")) { // L: 422
AbstractFont_underline = -1; AbstractFont_underline = -1;
} else if (var1.startsWith("shad=")) { // L: 402 } else if (var1.startsWith("shad=")) { // L: 423
AbstractFont_shadow = UserComparator8.method2440(var1.substring(5), 16); var3 = var1.substring(5); // L: 425
} else if (var1.equals("shad")) { // L: 403 var2 = class24.method260(var3, 16, true); // L: 427
AbstractFont_shadow = var2; // L: 429
} else if (var1.equals("shad")) { // L: 431
AbstractFont_shadow = 0; AbstractFont_shadow = 0;
} else if (var1.equals("/shad")) { // L: 404 } else if (var1.equals("/shad")) { // L: 432
AbstractFont_shadow = AbstractFont_previousShadow; AbstractFont_shadow = AbstractFont_previousShadow;
} else if (var1.equals("br")) { // L: 405 } else if (var1.equals("br")) {
this.reset(AbstractFont_previousColor, AbstractFont_previousShadow); this.reset(AbstractFont_previousColor, AbstractFont_previousShadow); // L: 433
} }
} catch (Exception var3) { // L: 407 } catch (Exception var5) { // L: 435
} }
} // L: 408 } // L: 436
@ObfuscatedName("ag") @ObfuscatedName("ap")
@Export("calculateLineJustification") @Export("calculateLineJustification")
void calculateLineJustification(String var1, int var2) { void calculateLineJustification(String var1, int var2) {
int var3 = 0; // L: 411 int var3 = 0; // L: 439
boolean var4 = false; // L: 412 boolean var4 = false; // L: 440
for (int var5 = 0; var5 < var1.length(); ++var5) { // L: 413 for (int var5 = 0; var5 < var1.length(); ++var5) { // L: 441
char var6 = var1.charAt(var5); // L: 414 char var6 = var1.charAt(var5); // L: 442
if (var6 == '<') { // L: 415 if (var6 == '<') { // L: 443
var4 = true; var4 = true;
} else if (var6 == '>') { // L: 416 } else if (var6 == '>') { // L: 444
var4 = false; var4 = false;
} else if (!var4 && var6 == ' ') { // L: 417 } else if (!var4 && var6 == ' ') { // L: 445
++var3; ++var3;
} }
} }
if (var3 > 0) { // L: 419 if (var3 > 0) { // L: 447
AbstractFont_justificationTotal = (var2 - this.stringWidth(var1) << 8) / var3; AbstractFont_justificationTotal = (var2 - this.stringWidth(var1) << 8) / var3;
} }
} // L: 420 } // L: 448
@ObfuscatedName("ae") @ObfuscatedName("ab")
@Export("draw0") @Export("draw0")
void draw0(String var1, int var2, int var3) { void draw0(String var1, int var2, int var3) {
var3 -= this.ascent; // L: 423 var3 -= this.ascent; // L: 451
int var4 = -1; // L: 424 int var4 = -1; // L: 452
int var5 = -1; // L: 425 int var5 = -1; // L: 453
for (int var6 = 0; var6 < var1.length(); ++var6) { // L: 426 for (int var6 = 0; var6 < var1.length(); ++var6) { // L: 454
if (var1.charAt(var6) != 0) { // L: 427 if (var1.charAt(var6) != 0) { // L: 455
char var7 = (char)(DirectByteArrayCopier.charToByteCp1252(var1.charAt(var6)) & 255); // L: 428 char var7 = (char)(ServerPacket.charToByteCp1252(var1.charAt(var6)) & 255); // L: 456
if (var7 == '<') { // L: 429 if (var7 == '<') { // L: 457
var4 = var6; // L: 430 var4 = var6; // L: 458
} else { } else {
int var9; int var9;
if (var7 == '>' && var4 != -1) { // L: 433 if (var7 == '>' && var4 != -1) { // L: 461
String var8 = var1.substring(var4 + 1, var6); // L: 434 String var8 = var1.substring(var4 + 1, var6); // L: 462
var4 = -1; // L: 435 var4 = -1; // L: 463
if (var8.equals("lt")) { // L: 436 if (var8.equals("lt")) { // L: 464
var7 = '<'; var7 = '<';
} else { } else {
if (!var8.equals("gt")) { // L: 437 if (!var8.equals("gt")) { // L: 465
if (var8.startsWith("img=")) { // L: 438 if (var8.startsWith("img=")) { // L: 466
try { try {
var9 = FontName.method6162(var8.substring(4)); // L: 440 var9 = class82.method1908(var8.substring(4)); // L: 468
IndexedSprite var10 = AbstractFont_modIconSprites[var9]; // L: 441 IndexedSprite var10 = AbstractFont_modIconSprites[var9]; // L: 469
var10.drawAt(var2, var3 + this.ascent - var10.height); // L: 442 var10.drawAt(var2, var3 + this.ascent - var10.height); // L: 470
var2 += var10.width; // L: 443 var2 += var10.width; // L: 471
var5 = -1; // L: 444 var5 = -1; // L: 472
} catch (Exception var14) { // L: 446 } catch (Exception var14) { // L: 474
} }
} else { } else {
this.decodeTag(var8); // L: 450 this.decodeTag(var8); // L: 478
} }
continue; continue;
} }
@@ -679,103 +689,103 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
if (var7 == 160) { // L: 454 if (var7 == 160) { // L: 482
var7 = ' '; var7 = ' ';
} }
if (var4 == -1) { // L: 455 if (var4 == -1) { // L: 483
if (this.kerning != null && var5 != -1) { // L: 456 if (this.kerning != null && var5 != -1) { // L: 484
var2 += this.kerning[var7 + (var5 << 8)]; var2 += this.kerning[var7 + (var5 << 8)];
} }
int var12 = this.widths[var7]; // L: 457 int var12 = this.widths[var7]; // L: 485
var9 = this.heights[var7]; // L: 458 var9 = this.heights[var7]; // L: 486
if (var7 != ' ') { // L: 459 if (var7 != ' ') { // L: 487
if (AbstractFont_alpha == 256) { // L: 460 if (AbstractFont_alpha == 256) { // L: 488
if (AbstractFont_shadow != -1) { // L: 461 if (AbstractFont_shadow != -1) { // L: 489
AbstractFont_drawGlyph(this.pixels[var7], var2 + this.leftBearings[var7] + 1, var3 + this.topBearings[var7] + 1, var12, var9, AbstractFont_shadow); AbstractFont_drawGlyph(this.pixels[var7], var2 + this.leftBearings[var7] + 1, var3 + this.topBearings[var7] + 1, var12, var9, AbstractFont_shadow);
} }
this.drawGlyph(this.pixels[var7], var2 + this.leftBearings[var7], var3 + this.topBearings[var7], var12, var9, AbstractFont_color); // L: 462 this.drawGlyph(this.pixels[var7], var2 + this.leftBearings[var7], var3 + this.topBearings[var7], var12, var9, AbstractFont_color); // L: 490
} else { } else {
if (AbstractFont_shadow != -1) { // L: 465 if (AbstractFont_shadow != -1) { // L: 493
AbstractFont_drawGlyphAlpha(this.pixels[var7], var2 + this.leftBearings[var7] + 1, var3 + this.topBearings[var7] + 1, var12, var9, AbstractFont_shadow, AbstractFont_alpha); AbstractFont_drawGlyphAlpha(this.pixels[var7], var2 + this.leftBearings[var7] + 1, var3 + this.topBearings[var7] + 1, var12, var9, AbstractFont_shadow, AbstractFont_alpha);
} }
this.drawGlyphAlpha(this.pixels[var7], var2 + this.leftBearings[var7], var3 + this.topBearings[var7], var12, var9, AbstractFont_color, AbstractFont_alpha); // L: 466 this.drawGlyphAlpha(this.pixels[var7], var2 + this.leftBearings[var7], var3 + this.topBearings[var7], var12, var9, AbstractFont_color, AbstractFont_alpha); // L: 494
} }
} else if (AbstractFont_justificationTotal > 0) { // L: 470 } else if (AbstractFont_justificationTotal > 0) { // L: 498
AbstractFont_justificationCurrent += AbstractFont_justificationTotal; // L: 471 AbstractFont_justificationCurrent += AbstractFont_justificationTotal; // L: 499
var2 += AbstractFont_justificationCurrent >> 8; // L: 472 var2 += AbstractFont_justificationCurrent >> 8; // L: 500
AbstractFont_justificationCurrent &= 255; // L: 473 AbstractFont_justificationCurrent &= 255; // L: 501
} }
int var13 = this.advances[var7]; // L: 476 int var13 = this.advances[var7]; // L: 504
if (AbstractFont_strike != -1) { // L: 477 if (AbstractFont_strike != -1) { // L: 505
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + (int)((double)this.ascent * 0.7D), var13, AbstractFont_strike); Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + (int)((double)this.ascent * 0.7D), var13, AbstractFont_strike);
} }
if (AbstractFont_underline != -1) { // L: 478 if (AbstractFont_underline != -1) { // L: 506
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + this.ascent + 1, var13, AbstractFont_underline); Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + this.ascent + 1, var13, AbstractFont_underline);
} }
var2 += var13; // L: 479 var2 += var13; // L: 507
var5 = var7; // L: 480 var5 = var7; // L: 508
} }
} }
} }
} }
} // L: 483 } // L: 511
@ObfuscatedName("ao") @ObfuscatedName("al")
@Export("drawWithOffsets0") @Export("drawWithOffsets0")
void drawWithOffsets0(String var1, int var2, int var3, int[] var4, int[] var5) { void drawWithOffsets0(String var1, int var2, int var3, int[] var4, int[] var5) {
var3 -= this.ascent; // L: 486 var3 -= this.ascent; // L: 514
int var6 = -1; // L: 487 int var6 = -1; // L: 515
int var7 = -1; // L: 488 int var7 = -1; // L: 516
int var8 = 0; // L: 489 int var8 = 0; // L: 517
for (int var9 = 0; var9 < var1.length(); ++var9) { // L: 490 for (int var9 = 0; var9 < var1.length(); ++var9) { // L: 518
if (var1.charAt(var9) != 0) { // L: 491 if (var1.charAt(var9) != 0) { // L: 519
char var10 = (char)(DirectByteArrayCopier.charToByteCp1252(var1.charAt(var9)) & 255); // L: 492 char var10 = (char)(ServerPacket.charToByteCp1252(var1.charAt(var9)) & 255); // L: 520
if (var10 == '<') { // L: 493 if (var10 == '<') { // L: 521
var6 = var9; // L: 494 var6 = var9; // L: 522
} else { } else {
int var12; int var12;
int var13; int var13;
int var14; int var14;
if (var10 == '>' && var6 != -1) { // L: 497 if (var10 == '>' && var6 != -1) { // L: 525
String var11 = var1.substring(var6 + 1, var9); // L: 498 String var11 = var1.substring(var6 + 1, var9); // L: 526
var6 = -1; // L: 499 var6 = -1; // L: 527
if (var11.equals("lt")) { // L: 500 if (var11.equals("lt")) { // L: 528
var10 = '<'; var10 = '<';
} else { } else {
if (!var11.equals("gt")) { // L: 501 if (!var11.equals("gt")) { // L: 529
if (var11.startsWith("img=")) { // L: 502 if (var11.startsWith("img=")) { // L: 530
try { try {
if (var4 != null) { // L: 505 if (var4 != null) { // L: 533
var12 = var4[var8]; var12 = var4[var8];
} else { } else {
var12 = 0; // L: 506 var12 = 0; // L: 534
} }
if (var5 != null) { // L: 508 if (var5 != null) { // L: 536
var13 = var5[var8]; var13 = var5[var8];
} else { } else {
var13 = 0; // L: 509 var13 = 0; // L: 537
} }
++var8; // L: 510 ++var8; // L: 538
var14 = FontName.method6162(var11.substring(4)); // L: 511 var14 = class82.method1908(var11.substring(4)); // L: 539
IndexedSprite var15 = AbstractFont_modIconSprites[var14]; // L: 512 IndexedSprite var15 = AbstractFont_modIconSprites[var14]; // L: 540
var15.drawAt(var12 + var2, var13 + (var3 + this.ascent - var15.height)); // L: 513 var15.drawAt(var12 + var2, var13 + (var3 + this.ascent - var15.height)); // L: 541
var2 += var15.width; // L: 514 var2 += var15.width; // L: 542
var7 = -1; // L: 515 var7 = -1; // L: 543
} catch (Exception var19) { // L: 517 } catch (Exception var19) { // L: 545
} }
} else { } else {
this.decodeTag(var11); // L: 521 this.decodeTag(var11); // L: 549
} }
continue; continue;
} }
@@ -784,70 +794,70 @@ public abstract class AbstractFont extends Rasterizer2D {
} }
} }
if (var10 == 160) { // L: 525 if (var10 == 160) { // L: 553
var10 = ' '; var10 = ' ';
} }
if (var6 == -1) { // L: 526 if (var6 == -1) { // L: 554
if (this.kerning != null && var7 != -1) { // L: 527 if (this.kerning != null && var7 != -1) { // L: 555
var2 += this.kerning[var10 + (var7 << 8)]; var2 += this.kerning[var10 + (var7 << 8)];
} }
int var17 = this.widths[var10]; // L: 528 int var17 = this.widths[var10]; // L: 556
var12 = this.heights[var10]; // L: 529 var12 = this.heights[var10]; // L: 557
if (var4 != null) { // L: 531 if (var4 != null) { // L: 559
var13 = var4[var8]; var13 = var4[var8];
} else { } else {
var13 = 0; // L: 532 var13 = 0; // L: 560
} }
if (var5 != null) { // L: 534 if (var5 != null) { // L: 562
var14 = var5[var8]; var14 = var5[var8];
} else { } else {
var14 = 0; // L: 535 var14 = 0; // L: 563
} }
++var8; // L: 536 ++var8; // L: 564
if (var10 != ' ') { // L: 537 if (var10 != ' ') { // L: 565
if (AbstractFont_alpha == 256) { // L: 538 if (AbstractFont_alpha == 256) { // L: 566
if (AbstractFont_shadow != -1) { // L: 539 if (AbstractFont_shadow != -1) { // L: 567
AbstractFont_drawGlyph(this.pixels[var10], var13 + var2 + this.leftBearings[var10] + 1, var3 + var14 + this.topBearings[var10] + 1, var17, var12, AbstractFont_shadow); AbstractFont_drawGlyph(this.pixels[var10], var13 + var2 + this.leftBearings[var10] + 1, var3 + var14 + this.topBearings[var10] + 1, var17, var12, AbstractFont_shadow);
} }
this.drawGlyph(this.pixels[var10], var13 + var2 + this.leftBearings[var10], var3 + var14 + this.topBearings[var10], var17, var12, AbstractFont_color); // L: 540 this.drawGlyph(this.pixels[var10], var13 + var2 + this.leftBearings[var10], var3 + var14 + this.topBearings[var10], var17, var12, AbstractFont_color); // L: 568
} else { } else {
if (AbstractFont_shadow != -1) { // L: 543 if (AbstractFont_shadow != -1) { // L: 571
AbstractFont_drawGlyphAlpha(this.pixels[var10], var13 + var2 + this.leftBearings[var10] + 1, var3 + var14 + this.topBearings[var10] + 1, var17, var12, AbstractFont_shadow, AbstractFont_alpha); AbstractFont_drawGlyphAlpha(this.pixels[var10], var13 + var2 + this.leftBearings[var10] + 1, var3 + var14 + this.topBearings[var10] + 1, var17, var12, AbstractFont_shadow, AbstractFont_alpha);
} }
this.drawGlyphAlpha(this.pixels[var10], var13 + var2 + this.leftBearings[var10], var3 + var14 + this.topBearings[var10], var17, var12, AbstractFont_color, AbstractFont_alpha); // L: 544 this.drawGlyphAlpha(this.pixels[var10], var13 + var2 + this.leftBearings[var10], var3 + var14 + this.topBearings[var10], var17, var12, AbstractFont_color, AbstractFont_alpha); // L: 572
} }
} else if (AbstractFont_justificationTotal > 0) { // L: 548 } else if (AbstractFont_justificationTotal > 0) { // L: 576
AbstractFont_justificationCurrent += AbstractFont_justificationTotal; // L: 549 AbstractFont_justificationCurrent += AbstractFont_justificationTotal; // L: 577
var2 += AbstractFont_justificationCurrent >> 8; // L: 550 var2 += AbstractFont_justificationCurrent >> 8; // L: 578
AbstractFont_justificationCurrent &= 255; // L: 551 AbstractFont_justificationCurrent &= 255; // L: 579
} }
int var18 = this.advances[var10]; // L: 554 int var18 = this.advances[var10]; // L: 582
if (AbstractFont_strike != -1) { // L: 555 if (AbstractFont_strike != -1) { // L: 583
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + (int)((double)this.ascent * 0.7D), var18, AbstractFont_strike); Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + (int)((double)this.ascent * 0.7D), var18, AbstractFont_strike);
} }
if (AbstractFont_underline != -1) { // L: 556 if (AbstractFont_underline != -1) { // L: 584
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + this.ascent, var18, AbstractFont_underline); Rasterizer2D.Rasterizer2D_drawHorizontalLine(var2, var3 + this.ascent, var18, AbstractFont_underline);
} }
var2 += var18; // L: 557 var2 += var18; // L: 585
var7 = var10; // L: 558 var7 = var10; // L: 586
} }
} }
} }
} }
} // L: 561 } // L: 589
@ObfuscatedName("b") @ObfuscatedName("s")
static int method5269(byte[][] var0, byte[][] var1, int[] var2, int[] var3, int[] var4, int var5, int var6) { static int method5350(byte[][] var0, byte[][] var1, int[] var2, int[] var3, int[] var4, int var5, int var6) {
int var7 = var2[var5]; // L: 100 int var7 = var2[var5]; // L: 100
int var8 = var7 + var4[var5]; // L: 101 int var8 = var7 + var4[var5]; // L: 101
int var9 = var2[var6]; // L: 102 int var9 = var2[var6]; // L: 102
@@ -882,7 +892,7 @@ public abstract class AbstractFont extends Rasterizer2D {
return -var13; // L: 118 return -var13; // L: 118
} }
@ObfuscatedName("p") @ObfuscatedName("g")
@Export("escapeBrackets") @Export("escapeBrackets")
public static String escapeBrackets(String var0) { public static String escapeBrackets(String var0) {
int var1 = var0.length(); // L: 262 int var1 = var0.length(); // L: 262
@@ -911,157 +921,157 @@ public abstract class AbstractFont extends Rasterizer2D {
return var6.toString(); // L: 275 return var6.toString(); // L: 275
} }
@ObfuscatedName("aj") @ObfuscatedName("ad")
@Export("AbstractFont_drawGlyph") @Export("AbstractFont_drawGlyph")
static void AbstractFont_drawGlyph(byte[] var0, int var1, int var2, int var3, int var4, int var5) { static void AbstractFont_drawGlyph(byte[] var0, int var1, int var2, int var3, int var4, int var5) {
int var6 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; // L: 567 int var6 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; // L: 595
int var7 = Rasterizer2D.Rasterizer2D_width - var3; // L: 568 int var7 = Rasterizer2D.Rasterizer2D_width - var3; // L: 596
int var8 = 0; // L: 569 int var8 = 0; // L: 597
int var9 = 0; // L: 570 int var9 = 0; // L: 598
int var10; int var10;
if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { // L: 571 if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { // L: 599
var10 = Rasterizer2D.Rasterizer2D_yClipStart - var2; // L: 572 var10 = Rasterizer2D.Rasterizer2D_yClipStart - var2; // L: 600
var4 -= var10; // L: 573 var4 -= var10; // L: 601
var2 = Rasterizer2D.Rasterizer2D_yClipStart; // L: 574 var2 = Rasterizer2D.Rasterizer2D_yClipStart; // L: 602
var9 += var3 * var10; // L: 575 var9 += var3 * var10; // L: 603
var6 += var10 * Rasterizer2D.Rasterizer2D_width; // L: 576 var6 += var10 * Rasterizer2D.Rasterizer2D_width; // L: 604
} }
if (var2 + var4 > Rasterizer2D.Rasterizer2D_yClipEnd) { // L: 578 if (var2 + var4 > Rasterizer2D.Rasterizer2D_yClipEnd) { // L: 606
var4 -= var2 + var4 - Rasterizer2D.Rasterizer2D_yClipEnd; var4 -= var2 + var4 - Rasterizer2D.Rasterizer2D_yClipEnd;
} }
if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { // L: 579 if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { // L: 607
var10 = Rasterizer2D.Rasterizer2D_xClipStart - var1; // L: 580 var10 = Rasterizer2D.Rasterizer2D_xClipStart - var1; // L: 608
var3 -= var10; // L: 581 var3 -= var10; // L: 609
var1 = Rasterizer2D.Rasterizer2D_xClipStart; // L: 582 var1 = Rasterizer2D.Rasterizer2D_xClipStart; // L: 610
var9 += var10; // L: 583 var9 += var10; // L: 611
var6 += var10; // L: 584 var6 += var10; // L: 612
var8 += var10; // L: 585 var8 += var10; // L: 613
var7 += var10; // L: 586 var7 += var10; // L: 614
} }
if (var3 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { // L: 588 if (var3 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { // L: 616
var10 = var3 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; // L: 589 var10 = var3 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; // L: 617
var3 -= var10; // L: 590 var3 -= var10; // L: 618
var8 += var10; // L: 591 var8 += var10; // L: 619
var7 += var10; // L: 592 var7 += var10; // L: 620
} }
if (var3 > 0 && var4 > 0) { // L: 594 if (var3 > 0 && var4 > 0) { // L: 622
AbstractFont_placeGlyph(Rasterizer2D.Rasterizer2D_pixels, var0, var5, var9, var6, var3, var4, var7, var8); // L: 595 AbstractFont_placeGlyph(Rasterizer2D.Rasterizer2D_pixels, var0, var5, var9, var6, var3, var4, var7, var8); // L: 623
} }
} // L: 596 } // L: 624
@ObfuscatedName("aw") @ObfuscatedName("ai")
@Export("AbstractFont_placeGlyph") @Export("AbstractFont_placeGlyph")
static void AbstractFont_placeGlyph(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) { static void AbstractFont_placeGlyph(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) {
int var9 = -(var5 >> 2); // L: 599 int var9 = -(var5 >> 2); // L: 627
var5 = -(var5 & 3); // L: 600 var5 = -(var5 & 3); // L: 628
for (int var10 = -var6; var10 < 0; ++var10) { // L: 601 for (int var10 = -var6; var10 < 0; ++var10) { // L: 629
int var11; int var11;
for (var11 = var9; var11 < 0; ++var11) { // L: 602 for (var11 = var9; var11 < 0; ++var11) { // L: 630
if (var1[var3++] != 0) { // L: 603 if (var1[var3++] != 0) { // L: 631
var0[var4++] = var2; var0[var4++] = var2;
} else { } else {
++var4; // L: 604 ++var4; // L: 632
} }
if (var1[var3++] != 0) { // L: 605 if (var1[var3++] != 0) { // L: 633
var0[var4++] = var2; var0[var4++] = var2;
} else { } else {
++var4; // L: 606 ++var4; // L: 634
} }
if (var1[var3++] != 0) { // L: 607 if (var1[var3++] != 0) { // L: 635
var0[var4++] = var2; var0[var4++] = var2;
} else { } else {
++var4; // L: 608 ++var4; // L: 636
} }
if (var1[var3++] != 0) { // L: 609 if (var1[var3++] != 0) { // L: 637
var0[var4++] = var2; var0[var4++] = var2;
} else { } else {
++var4; // L: 610 ++var4; // L: 638
} }
} }
for (var11 = var5; var11 < 0; ++var11) { // L: 612 for (var11 = var5; var11 < 0; ++var11) { // L: 640
if (var1[var3++] != 0) { // L: 613 if (var1[var3++] != 0) { // L: 641
var0[var4++] = var2; var0[var4++] = var2;
} else { } else {
++var4; // L: 614 ++var4; // L: 642
} }
} }
var4 += var7; // L: 616 var4 += var7; // L: 644
var3 += var8; // L: 617 var3 += var8; // L: 645
} }
} // L: 619 } // L: 647
@ObfuscatedName("at") @ObfuscatedName("ar")
@Export("AbstractFont_drawGlyphAlpha") @Export("AbstractFont_drawGlyphAlpha")
static void AbstractFont_drawGlyphAlpha(byte[] var0, int var1, int var2, int var3, int var4, int var5, int var6) { static void AbstractFont_drawGlyphAlpha(byte[] var0, int var1, int var2, int var3, int var4, int var5, int var6) {
int var7 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; // L: 622 int var7 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; // L: 650
int var8 = Rasterizer2D.Rasterizer2D_width - var3; // L: 623 int var8 = Rasterizer2D.Rasterizer2D_width - var3; // L: 651
int var9 = 0; // L: 624 int var9 = 0; // L: 652
int var10 = 0; // L: 625 int var10 = 0; // L: 653
int var11; int var11;
if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { // L: 626 if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { // L: 654
var11 = Rasterizer2D.Rasterizer2D_yClipStart - var2; // L: 627 var11 = Rasterizer2D.Rasterizer2D_yClipStart - var2; // L: 655
var4 -= var11; // L: 628 var4 -= var11; // L: 656
var2 = Rasterizer2D.Rasterizer2D_yClipStart; // L: 629 var2 = Rasterizer2D.Rasterizer2D_yClipStart; // L: 657
var10 += var3 * var11; // L: 630 var10 += var3 * var11; // L: 658
var7 += var11 * Rasterizer2D.Rasterizer2D_width; // L: 631 var7 += var11 * Rasterizer2D.Rasterizer2D_width; // L: 659
} }
if (var2 + var4 > Rasterizer2D.Rasterizer2D_yClipEnd) { // L: 633 if (var2 + var4 > Rasterizer2D.Rasterizer2D_yClipEnd) { // L: 661
var4 -= var2 + var4 - Rasterizer2D.Rasterizer2D_yClipEnd; var4 -= var2 + var4 - Rasterizer2D.Rasterizer2D_yClipEnd;
} }
if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { // L: 634 if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { // L: 662
var11 = Rasterizer2D.Rasterizer2D_xClipStart - var1; // L: 635 var11 = Rasterizer2D.Rasterizer2D_xClipStart - var1; // L: 663
var3 -= var11; // L: 636 var3 -= var11; // L: 664
var1 = Rasterizer2D.Rasterizer2D_xClipStart; // L: 637 var1 = Rasterizer2D.Rasterizer2D_xClipStart; // L: 665
var10 += var11; // L: 638 var10 += var11; // L: 666
var7 += var11; // L: 639 var7 += var11; // L: 667
var9 += var11; // L: 640 var9 += var11; // L: 668
var8 += var11; // L: 641 var8 += var11; // L: 669
} }
if (var3 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { // L: 643 if (var3 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { // L: 671
var11 = var3 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; // L: 644 var11 = var3 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; // L: 672
var3 -= var11; // L: 645 var3 -= var11; // L: 673
var9 += var11; // L: 646 var9 += var11; // L: 674
var8 += var11; // L: 647 var8 += var11; // L: 675
} }
if (var3 > 0 && var4 > 0) { // L: 649 if (var3 > 0 && var4 > 0) { // L: 677
AbstractFont_placeGlyphAlpha(Rasterizer2D.Rasterizer2D_pixels, var0, var5, var10, var7, var3, var4, var8, var9, var6); // L: 650 AbstractFont_placeGlyphAlpha(Rasterizer2D.Rasterizer2D_pixels, var0, var5, var10, var7, var3, var4, var8, var9, var6); // L: 678
} }
} // L: 651 } // L: 679
@ObfuscatedName("av") @ObfuscatedName("ag")
@Export("AbstractFont_placeGlyphAlpha") @Export("AbstractFont_placeGlyphAlpha")
static void AbstractFont_placeGlyphAlpha(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) { static void AbstractFont_placeGlyphAlpha(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
var2 = ((var2 & 65280) * var9 & 16711680) + (var9 * (var2 & 16711935) & -16711936) >> 8; // L: 654 var2 = ((var2 & 65280) * var9 & 16711680) + (var9 * (var2 & 16711935) & -16711936) >> 8; // L: 682
var9 = 256 - var9; // L: 655 var9 = 256 - var9; // L: 683
for (int var10 = -var6; var10 < 0; ++var10) { // L: 656 for (int var10 = -var6; var10 < 0; ++var10) { // L: 684
for (int var11 = -var5; var11 < 0; ++var11) { // L: 657 for (int var11 = -var5; var11 < 0; ++var11) { // L: 685
if (var1[var3++] != 0) { // L: 658 if (var1[var3++] != 0) { // L: 686
int var12 = var0[var4]; // L: 659 int var12 = var0[var4]; // L: 687
var0[var4++] = (((var12 & 65280) * var9 & 16711680) + ((var12 & 16711935) * var9 & -16711936) >> 8) + var2; // L: 660 var0[var4++] = (((var12 & 65280) * var9 & 16711680) + ((var12 & 16711935) * var9 & -16711936) >> 8) + var2; // L: 688
} else { } else {
++var4; // L: 662 ++var4; // L: 690
} }
} }
var4 += var7; // L: 664 var4 += var7; // L: 692
var3 += var8; // L: 665 var3 += var8; // L: 693
} }
} // L: 667 } // L: 695
} }

View File

@@ -4,21 +4,21 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("oa") @ObfuscatedName("oe")
@Implements("AbstractRasterProvider") @Implements("AbstractRasterProvider")
public abstract class AbstractRasterProvider { public abstract class AbstractRasterProvider {
@ObfuscatedName("o") @ObfuscatedName("f")
@Export("pixels") @Export("pixels")
public int[] pixels; public int[] pixels;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -28982631 intValue = -740510445
) )
@Export("width") @Export("width")
public int width; public int width;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1578915527 intValue = 460788765
) )
@Export("height") @Export("height")
public int height; public int height;
@@ -26,26 +26,26 @@ public abstract class AbstractRasterProvider {
protected AbstractRasterProvider() { protected AbstractRasterProvider() {
} // L: 8 } // L: 8
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)V", descriptor = "(III)V",
garbageValue = "946927197" garbageValue = "-974946505"
) )
@Export("drawFull") @Export("drawFull")
public abstract void drawFull(int var1, int var2); public abstract void drawFull(int var1, int var2);
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIIII)V", descriptor = "(IIIII)V",
garbageValue = "-1873522448" garbageValue = "331056379"
) )
@Export("draw") @Export("draw")
public abstract void draw(int var1, int var2, int var3, int var4); public abstract void draw(int var1, int var2, int var3, int var4);
@ObfuscatedName("m") @ObfuscatedName("x")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)V", descriptor = "(I)V",
garbageValue = "697339272" garbageValue = "872029974"
) )
@Export("apply") @Export("apply")
public final void apply() { public final void apply() {

View File

@@ -4,69 +4,84 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("lc") @ObfuscatedName("ls")
@Implements("AbstractSocket") @Implements("AbstractSocket")
public abstract class AbstractSocket { public abstract class AbstractSocket {
@ObfuscatedName("gt")
@ObfuscatedSignature(
descriptor = "Lgt;"
)
@Export("scene")
static Scene scene;
protected AbstractSocket() { protected AbstractSocket() {
} // L: 7 } // L: 7
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)V", descriptor = "(I)V",
garbageValue = "-36" garbageValue = "1654713390"
) )
@Export("close") @Export("close")
public abstract void close(); public abstract void close();
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(I)I",
garbageValue = "-2027143758" garbageValue = "479468921"
) )
@Export("readUnsignedByte") @Export("readUnsignedByte")
public abstract int readUnsignedByte() throws IOException; public abstract int readUnsignedByte() throws IOException;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(I)I",
garbageValue = "-640327653" garbageValue = "1659206769"
) )
@Export("available") @Export("available")
public abstract int available() throws IOException; public abstract int available() throws IOException;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)Z", descriptor = "(II)Z",
garbageValue = "-1880004365" garbageValue = "-211935081"
) )
@Export("isAvailable") @Export("isAvailable")
public abstract boolean isAvailable(int var1) throws IOException; public abstract boolean isAvailable(int var1) throws IOException;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "([BIII)I", descriptor = "([BIII)I",
garbageValue = "-1936066161" garbageValue = "-2041736219"
) )
@Export("read") @Export("read")
public abstract int read(byte[] var1, int var2, int var3) throws IOException; public abstract int read(byte[] var1, int var2, int var3) throws IOException;
@ObfuscatedName("t") @ObfuscatedName("r")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "([BIII)V", descriptor = "([BIII)V",
garbageValue = "1752522959" garbageValue = "263213011"
) )
@Export("write") @Export("write")
public abstract void write(byte[] var1, int var2, int var3) throws IOException; public abstract void write(byte[] var1, int var2, int var3) throws IOException;
@ObfuscatedName("lj") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)V", descriptor = "(I)I",
garbageValue = "8" garbageValue = "-1943221493"
) )
@Export("Clan_leaveChat") static int method5901() {
static final void Clan_leaveChat() { return 12;
PacketBufferNode var0 = HealthBarDefinition.getPacketBufferNode(ClientPacket.field2658, Client.packetWriter.isaacCipher); // L: 11545 }
var0.packetBuffer.writeByte(0); // L: 11546
Client.packetWriter.addNode(var0); // L: 11547 @ObfuscatedName("b")
} // L: 11548 @ObfuscatedSignature(
descriptor = "(Ljv;Ljv;Ljava/lang/String;Ljava/lang/String;B)Lkt;",
garbageValue = "88"
)
public static Font method5900(AbstractArchive var0, AbstractArchive var1, String var2, String var3) {
int var4 = var0.getGroupId(var2); // L: 121
int var5 = var0.getFileId(var4, var3); // L: 122
return AbstractArchive.method5018(var0, var1, var4, var5); // L: 123
}
} }

View File

@@ -2,10 +2,10 @@ import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
@ObfuscatedName("bj") @ObfuscatedName("bp")
@Implements("AbstractSound") @Implements("AbstractSound")
public abstract class AbstractSound extends Node { public abstract class AbstractSound extends Node {
@ObfuscatedName("z") @ObfuscatedName("j")
@Export("position") @Export("position")
int position; int position;

View File

@@ -4,20 +4,20 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("lr") @ObfuscatedName("ln")
@Implements("AbstractUserComparator") @Implements("AbstractUserComparator")
public abstract class AbstractUserComparator implements Comparator { public abstract class AbstractUserComparator implements Comparator {
@ObfuscatedName("c") @ObfuscatedName("n")
@Export("nextComparator") @Export("nextComparator")
Comparator nextComparator; Comparator nextComparator;
protected AbstractUserComparator() { protected AbstractUserComparator() {
} // L: 8 } // L: 8
@ObfuscatedName("v") @ObfuscatedName("d")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljava/util/Comparator;I)V", descriptor = "(Ljava/util/Comparator;I)V",
garbageValue = "-1938939594" garbageValue = "-82971499"
) )
@Export("addComparator") @Export("addComparator")
final void addComparator(Comparator var1) { final void addComparator(Comparator var1) {
@@ -29,10 +29,10 @@ public abstract class AbstractUserComparator implements Comparator {
} // L: 17 } // L: 17
@ObfuscatedName("b") @ObfuscatedName("s")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Llm;Llm;B)I", descriptor = "(Llx;Llx;B)I",
garbageValue = "-41" garbageValue = "0"
) )
@Export("compareUser") @Export("compareUser")
protected final int compareUser(User var1, User var2) { protected final int compareUser(User var1, User var2) {
@@ -42,33 +42,4 @@ public abstract class AbstractUserComparator implements Comparator {
public boolean equals(Object var1) { public boolean equals(Object var1) {
return super.equals(var1); // L: 25 return super.equals(var1); // L: 25
} }
@ObfuscatedName("c")
@ObfuscatedSignature(
descriptor = "(III)I",
garbageValue = "-246385012"
)
static int method5592(int var0, int var1) {
if (var0 == -2) { // L: 37
return 12345678;
} else if (var0 == -1) { // L: 38
if (var1 < 0) { // L: 39
var1 = 0; // L: 40
} else if (var1 > 127) { // L: 42
var1 = 127; // L: 43
}
var1 = 127 - var1; // L: 45
return var1; // L: 46
} else {
var1 = (var0 & 127) * var1 / 128; // L: 48
if (var1 < 2) { // L: 49
var1 = 2;
} else if (var1 > 126) { // L: 50
var1 = 126;
}
return (var0 & 65408) + var1; // L: 51
}
}
} }

View File

@@ -5,108 +5,108 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("fw") @ObfuscatedName("fm")
@Implements("AbstractWorldMapData") @Implements("AbstractWorldMapData")
public abstract class AbstractWorldMapData { public abstract class AbstractWorldMapData {
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1996552339 intValue = -1347091631
) )
@Export("regionXLow") @Export("regionXLow")
int regionXLow; int regionXLow;
@ObfuscatedName("z") @ObfuscatedName("j")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2059198725 intValue = -868813013
) )
@Export("regionYLow") @Export("regionYLow")
int regionYLow; int regionYLow;
@ObfuscatedName("t") @ObfuscatedName("r")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 2081682071 intValue = 1253594293
) )
@Export("regionX") @Export("regionX")
int regionX; int regionX;
@ObfuscatedName("v") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1016035147 intValue = 174092143
) )
@Export("regionY") @Export("regionY")
int regionY; int regionY;
@ObfuscatedName("b") @ObfuscatedName("d")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 639511485 intValue = -1260242687
) )
@Export("minPlane") @Export("minPlane")
int minPlane; int minPlane;
@ObfuscatedName("q") @ObfuscatedName("s")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 441540085 intValue = -1482547443
) )
@Export("planes") @Export("planes")
int planes; int planes;
@ObfuscatedName("i") @ObfuscatedName("u")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1726818165 intValue = -630921225
) )
@Export("groupId") @Export("groupId")
int groupId; int groupId;
@ObfuscatedName("x") @ObfuscatedName("l")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1111164981 intValue = -373998791
) )
@Export("fileId") @Export("fileId")
int fileId; int fileId;
@ObfuscatedName("k") @ObfuscatedName("o")
@Export("floorUnderlayIds") @Export("floorUnderlayIds")
short[][][] floorUnderlayIds; short[][][] floorUnderlayIds;
@ObfuscatedName("r") @ObfuscatedName("c")
@Export("floorOverlayIds") @Export("floorOverlayIds")
short[][][] floorOverlayIds; short[][][] floorOverlayIds;
@ObfuscatedName("p")
byte[][][] field2063;
@ObfuscatedName("a")
byte[][][] field2064;
@ObfuscatedName("e") @ObfuscatedName("e")
byte[][][] field2067;
@ObfuscatedName("g")
byte[][][] field2065;
@ObfuscatedName("a")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "[[[[Lfg;" descriptor = "[[[[Lfh;"
) )
@Export("decorations") @Export("decorations")
WorldMapDecoration[][][][] decorations; WorldMapDecoration[][][][] decorations;
@ObfuscatedName("d") @ObfuscatedName("k")
boolean field2066; boolean field2068;
@ObfuscatedName("u") @ObfuscatedName("m")
boolean field2067; boolean field2069;
AbstractWorldMapData() { AbstractWorldMapData() {
this.groupId = -1; // L: 14 this.groupId = -1; // L: 14
this.fileId = -1; // L: 15 this.fileId = -1; // L: 15
new LinkedList(); new LinkedList();
this.field2066 = false; // L: 26 this.field2068 = false; // L: 26
this.field2067 = false; // L: 27 this.field2069 = false; // L: 27
} // L: 29 } // L: 29
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lnk;I)V", descriptor = "(Lnd;I)V",
garbageValue = "1915938242" garbageValue = "1223315238"
) )
@Export("readGeography") @Export("readGeography")
abstract void readGeography(Buffer var1); abstract void readGeography(Buffer var1);
@ObfuscatedName("y") @ObfuscatedName("ae")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)Z", descriptor = "(B)Z",
garbageValue = "-2052268063" garbageValue = "25"
) )
@Export("isFullyLoaded") @Export("isFullyLoaded")
boolean isFullyLoaded() { boolean isFullyLoaded() {
return this.field2066 && this.field2067; // L: 32 return this.field2068 && this.field2069; // L: 32
} }
@ObfuscatedName("w") @ObfuscatedName("ap")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljp;B)V", descriptor = "(Ljv;I)V",
garbageValue = "56" garbageValue = "-1881595992"
) )
@Export("loadGeography") @Export("loadGeography")
void loadGeography(AbstractArchive var1) { void loadGeography(AbstractArchive var1) {
@@ -114,53 +114,53 @@ public abstract class AbstractWorldMapData {
byte[] var2 = var1.takeFile(this.groupId, this.fileId); // L: 37 byte[] var2 = var1.takeFile(this.groupId, this.fileId); // L: 37
if (var2 != null) { // L: 38 if (var2 != null) { // L: 38
this.readGeography(new Buffer(var2)); // L: 39 this.readGeography(new Buffer(var2)); // L: 39
this.field2066 = true; // L: 40 this.field2068 = true; // L: 40
this.field2067 = true; // L: 41 this.field2069 = true; // L: 41
} }
} }
} // L: 43 } // L: 43
@ObfuscatedName("n") @ObfuscatedName("ab")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)V", descriptor = "(I)V",
garbageValue = "-39" garbageValue = "244458309"
) )
@Export("reset") @Export("reset")
void reset() { void reset() {
this.floorUnderlayIds = null; // L: 46 this.floorUnderlayIds = null; // L: 46
this.floorOverlayIds = null; // L: 47 this.floorOverlayIds = null; // L: 47
this.field2063 = null; // L: 48 this.field2067 = null; // L: 48
this.field2064 = null; // L: 49 this.field2065 = null; // L: 49
this.decorations = null; // L: 50 this.decorations = null; // L: 50
this.field2066 = false; // L: 51 this.field2068 = false; // L: 51
this.field2067 = false; // L: 52 this.field2069 = false; // L: 52
} // L: 53 } // L: 53
@ObfuscatedName("ag") @ObfuscatedName("al")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IILnk;I)V", descriptor = "(IILnd;I)V",
garbageValue = "-1976219247" garbageValue = "-570193983"
) )
@Export("readTile") @Export("readTile")
void readTile(int var1, int var2, Buffer var3) { void readTile(int var1, int var2, Buffer var3) {
int var4 = var3.readUnsignedByte(); // L: 56 int var4 = var3.readUnsignedByte(); // L: 56
if (var4 != 0) { // L: 57 if (var4 != 0) { // L: 57
if ((var4 & 1) != 0) { // L: 60 if ((var4 & 1) != 0) { // L: 60
this.method3546(var1, var2, var3, var4); // L: 61 this.method3602(var1, var2, var3, var4); // L: 61
} else { } else {
this.method3547(var1, var2, var3, var4); // L: 64 this.method3622(var1, var2, var3, var4); // L: 64
} }
} }
} // L: 58 66 } // L: 58 66
@ObfuscatedName("ae") @ObfuscatedName("ad")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IILnk;IB)V", descriptor = "(IILnd;II)V",
garbageValue = "13" garbageValue = "-300212411"
) )
void method3546(int var1, int var2, Buffer var3, int var4) { void method3602(int var1, int var2, Buffer var3, int var4) {
boolean var5 = (var4 & 2) != 0; // L: 69 boolean var5 = (var4 & 2) != 0; // L: 69
if (var5) { // L: 70 if (var5) { // L: 70
this.floorOverlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); // L: 71 this.floorOverlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); // L: 71
@@ -169,12 +169,12 @@ public abstract class AbstractWorldMapData {
this.floorUnderlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); // L: 73 this.floorUnderlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); // L: 73
} // L: 74 } // L: 74
@ObfuscatedName("ao") @ObfuscatedName("ai")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IILnk;II)V", descriptor = "(IILnd;II)V",
garbageValue = "158678327" garbageValue = "-2123814102"
) )
void method3547(int var1, int var2, Buffer var3, int var4) { void method3622(int var1, int var2, Buffer var3, int var4) {
int var5 = ((var4 & 24) >> 3) + 1; // L: 77 int var5 = ((var4 & 24) >> 3) + 1; // L: 77
boolean var6 = (var4 & 2) != 0; // L: 78 boolean var6 = (var4 & 2) != 0; // L: 78
boolean var7 = (var4 & 4) != 0; // L: 79 boolean var7 = (var4 & 4) != 0; // L: 79
@@ -190,8 +190,8 @@ public abstract class AbstractWorldMapData {
if (var14 != 0) { // L: 85 if (var14 != 0) { // L: 85
this.floorOverlayIds[var9][var1][var2] = (short)var14; // L: 86 this.floorOverlayIds[var9][var1][var2] = (short)var14; // L: 86
var11 = var3.readUnsignedByte(); // L: 87 var11 = var3.readUnsignedByte(); // L: 87
this.field2063[var9][var1][var2] = (byte)(var11 >> 2); // L: 88 this.field2067[var9][var1][var2] = (byte)(var11 >> 2); // L: 88
this.field2064[var9][var1][var2] = (byte)(var11 & 3); // L: 89 this.field2065[var9][var1][var2] = (byte)(var11 & 3); // L: 89
} }
} }
} }
@@ -203,7 +203,7 @@ public abstract class AbstractWorldMapData {
WorldMapDecoration[] var10 = this.decorations[var8][var1][var2] = new WorldMapDecoration[var9]; // L: 99 WorldMapDecoration[] var10 = this.decorations[var8][var1][var2] = new WorldMapDecoration[var9]; // L: 99
for (var11 = 0; var11 < var9; ++var11) { // L: 100 for (var11 = 0; var11 < var9; ++var11) { // L: 100
int var12 = var3.method6464(); // L: 101 int var12 = var3.method6583(); // L: 101
int var13 = var3.readUnsignedByte(); // L: 102 int var13 = var3.readUnsignedByte(); // L: 102
var10[var11] = new WorldMapDecoration(var12, var13 >> 2, var13 & 3); // L: 103 var10[var11] = new WorldMapDecoration(var12, var13 >> 2, var13 & 3); // L: 103
} }
@@ -213,100 +213,23 @@ public abstract class AbstractWorldMapData {
} // L: 107 } // L: 107
@ObfuscatedName("aj") @ObfuscatedName("ar")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(I)I",
garbageValue = "1248548419" garbageValue = "-802989109"
) )
@Export("getRegionX") @Export("getRegionX")
int getRegionX() { int getRegionX() {
return this.regionX; // L: 112 return this.regionX; // L: 112
} }
@ObfuscatedName("aw") @ObfuscatedName("ag")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(B)I",
garbageValue = "1357886281" garbageValue = "-49"
) )
@Export("getRegionY") @Export("getRegionY")
int getRegionY() { int getRegionY() {
return this.regionY; // L: 116 return this.regionY; // L: 116
} }
@ObfuscatedName("g")
@ObfuscatedSignature(
descriptor = "(Lnk;IIIIIII)V",
garbageValue = "-186517338"
)
@Export("loadTerrain")
static final void loadTerrain(Buffer var0, int var1, int var2, int var3, int var4, int var5, int var6) {
int var7;
if (var2 >= 0 && var2 < 104 && var3 >= 0 && var3 < 104) { // L: 119
Tiles.Tiles_renderFlags[var1][var2][var3] = 0; // L: 120
while (true) {
var7 = var0.readUnsignedByte(); // L: 122
if (var7 == 0) { // L: 123
if (var1 == 0) { // L: 124
int[] var14 = Tiles.Tiles_heights[0][var2]; // L: 125
int var11 = var2 + var4 + 932731; // L: 128
int var12 = var3 + var5 + 556238; // L: 129
int var13 = FontName.method6160(var11 + 45365, 91923 + var12, 4) - 128 + (FontName.method6160(var11 + 10294, 37821 + var12, 2) - 128 >> 1) + (FontName.method6160(var11, var12, 1) - 128 >> 2); // L: 131
var13 = (int)((double)var13 * 0.3D) + 35; // L: 132
if (var13 < 10) { // L: 133
var13 = 10;
} else if (var13 > 60) { // L: 134
var13 = 60;
}
var14[var3] = -var13 * 8; // L: 137
} else {
Tiles.Tiles_heights[var1][var2][var3] = Tiles.Tiles_heights[var1 - 1][var2][var3] - 240; // L: 139
}
break;
}
if (var7 == 1) { // L: 142
int var8 = var0.readUnsignedByte(); // L: 143
if (var8 == 1) { // L: 144
var8 = 0;
}
if (var1 == 0) { // L: 145
Tiles.Tiles_heights[0][var2][var3] = -var8 * 8;
} else {
Tiles.Tiles_heights[var1][var2][var3] = Tiles.Tiles_heights[var1 - 1][var2][var3] - var8 * 8; // L: 146
}
break;
}
if (var7 <= 49) { // L: 149
class9.field71[var1][var2][var3] = var0.readByte(); // L: 150
Tiles.field1088[var1][var2][var3] = (byte)((var7 - 2) / 4); // L: 151
Tiles.field1086[var1][var2][var3] = (byte)(var7 - 2 + var6 & 3); // L: 152
} else if (var7 <= 81) { // L: 155
Tiles.Tiles_renderFlags[var1][var2][var3] = (byte)(var7 - 49); // L: 156
} else {
Tiles.field1097[var1][var2][var3] = (byte)(var7 - 81); // L: 159
}
}
} else {
while (true) {
var7 = var0.readUnsignedByte(); // L: 164
if (var7 == 0) { // L: 165
break;
}
if (var7 == 1) { // L: 166
var0.readUnsignedByte(); // L: 167
break;
}
if (var7 <= 49) { // L: 170
var0.readUnsignedByte();
}
}
}
} // L: 173
} }

View File

@@ -4,84 +4,78 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("gw") @ObfuscatedName("gq")
@Implements("AbstractWorldMapIcon") @Implements("AbstractWorldMapIcon")
public abstract class AbstractWorldMapIcon { public abstract class AbstractWorldMapIcon {
@ObfuscatedName("bm") @ObfuscatedName("r")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "[Lof;" descriptor = "Lii;"
)
@Export("worldSelectStars")
static IndexedSprite[] worldSelectStars;
@ObfuscatedName("t")
@ObfuscatedSignature(
descriptor = "Lia;"
) )
@Export("coord2") @Export("coord2")
public final Coord coord2; public final Coord coord2;
@ObfuscatedName("v") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lia;" descriptor = "Lii;"
) )
@Export("coord1") @Export("coord1")
public final Coord coord1; public final Coord coord1;
@ObfuscatedName("b") @ObfuscatedName("d")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1703972791 intValue = 1619813951
) )
@Export("screenX") @Export("screenX")
int screenX; int screenX;
@ObfuscatedName("q") @ObfuscatedName("s")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 278032625 intValue = 1123629873
) )
@Export("screenY") @Export("screenY")
int screenY; int screenY;
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lia;Lia;)V" descriptor = "(Lii;Lii;)V"
) )
AbstractWorldMapIcon(Coord var1, Coord var2) { AbstractWorldMapIcon(Coord var1, Coord var2) {
this.coord1 = var1; // L: 13 this.coord1 = var1; // L: 13
this.coord2 = var2; // L: 14 this.coord2 = var2; // L: 14
} // L: 15 } // L: 15
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)I", descriptor = "(I)I",
garbageValue = "14" garbageValue = "2145882550"
) )
@Export("getElement") @Export("getElement")
public abstract int getElement(); public abstract int getElement();
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(S)Lfl;", descriptor = "(I)Lfv;",
garbageValue = "-7317" garbageValue = "39460369"
) )
@Export("getLabel") @Export("getLabel")
abstract WorldMapLabel getLabel(); abstract WorldMapLabel getLabel();
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)I", descriptor = "(I)I",
garbageValue = "-1" garbageValue = "-1949510660"
) )
@Export("getSubWidth") @Export("getSubWidth")
abstract int getSubWidth(); abstract int getSubWidth();
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)I", descriptor = "(B)I",
garbageValue = "1" garbageValue = "-85"
) )
@Export("getSubHeight") @Export("getSubHeight")
abstract int getSubHeight(); abstract int getSubHeight();
@ObfuscatedName("a") @ObfuscatedName("e")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)Z", descriptor = "(IIS)Z",
garbageValue = "1893915504" garbageValue = "3474"
) )
@Export("fitsScreen") @Export("fitsScreen")
boolean fitsScreen(int var1, int var2) { boolean fitsScreen(int var1, int var2) {
@@ -92,38 +86,38 @@ public abstract class AbstractWorldMapIcon {
} }
} }
@ObfuscatedName("e") @ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)Z", descriptor = "(I)Z",
garbageValue = "1578289543" garbageValue = "-143687139"
) )
@Export("hasValidElement") @Export("hasValidElement")
boolean hasValidElement() { boolean hasValidElement() {
return this.getElement() >= 0; // L: 33 return this.getElement() >= 0; // L: 33
} }
@ObfuscatedName("d") @ObfuscatedName("a")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)Z", descriptor = "(III)Z",
garbageValue = "-2139268059" garbageValue = "561352542"
) )
@Export("elementFitsScreen") @Export("elementFitsScreen")
boolean elementFitsScreen(int var1, int var2) { boolean elementFitsScreen(int var1, int var2) {
if (!this.hasValidElement()) { // L: 37 if (!this.hasValidElement()) { // L: 37
return false; return false;
} else { } else {
WorldMapElement var3 = WorldMapAreaData.WorldMapElement_get(this.getElement()); // L: 38 WorldMapElement var3 = class6.WorldMapElement_get(this.getElement()); // L: 38
int var4 = this.getSubWidth(); // L: 39 int var4 = this.getSubWidth(); // L: 39
int var5 = this.getSubHeight(); // L: 40 int var5 = this.getSubHeight(); // L: 40
switch(var3.horizontalAlignment.value) { // L: 41 switch(var3.horizontalAlignment.value) { // L: 41
case 0: case 0:
if (var1 > this.screenX - var4 && var1 <= this.screenX) { // L: 54 if (var1 >= this.screenX - var4 / 2 && var1 <= var4 / 2 + this.screenX) { // L: 54
break; break;
} }
return false; return false;
case 1: case 1:
if (var1 < this.screenX - var4 / 2 || var1 > var4 / 2 + this.screenX) { // L: 44 if (var1 <= this.screenX - var4 || var1 > this.screenX) { // L: 44
return false; return false;
} }
break; break;
@@ -135,13 +129,13 @@ public abstract class AbstractWorldMapIcon {
switch(var3.verticalAlignment.value) { // L: 58 switch(var3.verticalAlignment.value) { // L: 58
case 0: case 0:
if (var2 >= this.screenY - var5 / 2 && var2 <= var5 / 2 + this.screenY) { // L: 61 if (var2 > this.screenY - var5 && var2 <= this.screenY) { // L: 66
break; break;
} }
return false; return false;
case 1: case 1:
if (var2 > this.screenY - var5 && var2 <= this.screenY) { // L: 66 if (var2 >= this.screenY - var5 / 2 && var2 <= var5 / 2 + this.screenY) { // L: 61
break; break;
} }
@@ -156,738 +150,20 @@ public abstract class AbstractWorldMapIcon {
} }
} }
@ObfuscatedName("u") @ObfuscatedName("k")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)Z", descriptor = "(III)Z",
garbageValue = "-1722248862" garbageValue = "280751135"
) )
@Export("labelFitsScreen") @Export("labelFitsScreen")
boolean labelFitsScreen(int var1, int var2) { boolean labelFitsScreen(int var1, int var2) {
WorldMapLabel var3 = this.getLabel(); // L: 79 WorldMapLabel var3 = this.getLabel(); // L: 79
if (var3 == null) { // L: 80 if (var3 == null) { // L: 80
return false; // L: 81 return false; // L: 81
} else if (var1 >= this.screenX - var3.width / 2 && var1 <= var3.width / 2 + this.screenX) { } else if (var1 >= this.screenX - var3.width / 2 && var1 <= var3.width / 2 + this.screenX) { // L: 83
return var2 >= this.screenY && var2 <= this.screenY + var3.height; return var2 >= this.screenY && var2 <= var3.height + this.screenY; // L: 84
} else { } else {
return false; return false; // L: 85
} }
} }
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "(Ljava/lang/CharSequence;II[BIB)I",
garbageValue = "-104"
)
@Export("encodeStringCp1252")
public static int encodeStringCp1252(CharSequence var0, int var1, int var2, byte[] var3, int var4) {
int var5 = var2 - var1; // L: 83
for (int var6 = 0; var6 < var5; ++var6) { // L: 84
char var7 = var0.charAt(var6 + var1); // L: 85
if (var7 > 0 && var7 < 128 || var7 >= 160 && var7 <= 255) { // L: 86
var3[var6 + var4] = (byte)var7;
} else if (var7 == 8364) { // L: 87
var3[var6 + var4] = -128;
} else if (var7 == 8218) { // L: 88
var3[var6 + var4] = -126;
} else if (var7 == 402) { // L: 89
var3[var6 + var4] = -125;
} else if (var7 == 8222) { // L: 90
var3[var6 + var4] = -124;
} else if (var7 == 8230) { // L: 91
var3[var6 + var4] = -123;
} else if (var7 == 8224) { // L: 92
var3[var6 + var4] = -122;
} else if (var7 == 8225) { // L: 93
var3[var6 + var4] = -121;
} else if (var7 == 710) {
var3[var6 + var4] = -120; // L: 94
} else if (var7 == 8240) { // L: 95
var3[var6 + var4] = -119;
} else if (var7 == 352) { // L: 96
var3[var6 + var4] = -118;
} else if (var7 == 8249) { // L: 97
var3[var6 + var4] = -117;
} else if (var7 == 338) { // L: 98
var3[var6 + var4] = -116;
} else if (var7 == 381) { // L: 99
var3[var6 + var4] = -114;
} else if (var7 == 8216) { // L: 100
var3[var6 + var4] = -111;
} else if (var7 == 8217) { // L: 101
var3[var6 + var4] = -110;
} else if (var7 == 8220) { // L: 102
var3[var6 + var4] = -109;
} else if (var7 == 8221) { // L: 103
var3[var6 + var4] = -108;
} else if (var7 == 8226) { // L: 104
var3[var6 + var4] = -107;
} else if (var7 == 8211) {
var3[var6 + var4] = -106; // L: 105
} else if (var7 == 8212) { // L: 106
var3[var6 + var4] = -105;
} else if (var7 == 732) { // L: 107
var3[var6 + var4] = -104;
} else if (var7 == 8482) { // L: 108
var3[var6 + var4] = -103;
} else if (var7 == 353) { // L: 109
var3[var6 + var4] = -102;
} else if (var7 == 8250) { // L: 110
var3[var6 + var4] = -101;
} else if (var7 == 339) { // L: 111
var3[var6 + var4] = -100;
} else if (var7 == 382) { // L: 112
var3[var6 + var4] = -98;
} else if (var7 == 376) { // L: 113
var3[var6 + var4] = -97;
} else {
var3[var6 + var4] = 63; // L: 114
}
}
return var5; // L: 116
}
@ObfuscatedName("hn")
@ObfuscatedSignature(
descriptor = "(Lcj;IIIIIB)V",
garbageValue = "1"
)
@Export("drawActor2d")
static final void drawActor2d(Actor var0, int var1, int var2, int var3, int var4, int var5) {
if (var0 != null && var0.isVisible()) { // L: 4842
if (var0 instanceof NPC) { // L: 4843
NPCComposition var6 = ((NPC)var0).definition; // L: 4844
if (var6.transforms != null) { // L: 4845
var6 = var6.transform();
}
if (var6 == null) { // L: 4846
return;
}
}
int var75 = Players.Players_count; // L: 4848
int[] var7 = Players.Players_indices; // L: 4849
byte var8 = 0; // L: 4850
Player var10;
if (var1 < var75 && var0.playerCycle == Client.cycle) { // L: 4851
var10 = (Player)var0; // L: 4853
boolean var9;
if (Client.drawPlayerNames == 0) { // L: 4855
var9 = false; // L: 4856
} else if (var10 == class35.localPlayer) { // L: 4859
boolean var11 = (Client.drawPlayerNames & 8) != 0; // L: 4865
var9 = var11; // L: 4867
} else {
var9 = Canvas.method469() || FloorDecoration.method3799() && var10.isFriend() || class14.method223() && var10.isClanMember(); // L: 4860
}
if (var9) { // L: 4870
Player var76 = (Player)var0; // L: 4871
if (var1 < var75) { // L: 4872
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight + 15); // L: 4873
AbstractFont var12 = (AbstractFont)Client.fontsMap.get(FontName.FontName_plain12); // L: 4874
byte var13 = 9; // L: 4875
var12.drawCentered(var76.username.getName(), var2 + Client.viewportTempX, var3 + Client.viewportTempY - var13, 16777215, 0); // L: 4876
var8 = 18; // L: 4877
}
}
}
int var89 = -2; // L: 4881
int var16;
int var22;
int var23;
int var80;
if (!var0.healthBars.method5149()) { // L: 4882
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight + 15); // L: 4883
for (HealthBar var90 = (HealthBar)var0.healthBars.last(); var90 != null; var90 = (HealthBar)var0.healthBars.previous()) { // L: 4884
HealthBarUpdate var98 = var90.get(Client.cycle); // L: 4885
if (var98 == null) { // L: 4886
if (var90.isEmpty()) { // L: 4944
var90.remove();
}
} else {
HealthBarDefinition var93 = var90.definition; // L: 4887
SpritePixels var79 = var93.getBackSprite(); // L: 4888
SpritePixels var83 = var93.getFrontSprite(); // L: 4889
var16 = 0; // L: 4891
if (var79 != null && var83 != null) { // L: 4892
if (var93.widthPadding * 2 < var83.subWidth) { // L: 4893
var16 = var93.widthPadding;
}
var80 = var83.subWidth - var16 * 2; // L: 4894
} else {
var80 = var93.width; // L: 4896
}
int var84 = 255; // L: 4897
boolean var85 = true; // L: 4898
int var86 = Client.cycle - var98.cycle; // L: 4899
int var87 = var80 * var98.health2 / var93.width; // L: 4900
int var88;
int var100;
if (var98.cycleOffset > var86) { // L: 4901
var88 = var93.field1593 == 0 ? 0 : var93.field1593 * (var86 / var93.field1593); // L: 4902
var22 = var80 * var98.health / var93.width; // L: 4903
var100 = var88 * (var87 - var22) / var98.cycleOffset + var22; // L: 4904
} else {
var100 = var87; // L: 4907
var88 = var98.cycleOffset + var93.int5 - var86; // L: 4908
if (var93.int3 >= 0) { // L: 4909
var84 = (var88 << 8) / (var93.int5 - var93.int3);
}
}
if (var98.health2 > 0 && var100 < 1) { // L: 4911
var100 = 1;
}
if (var79 != null && var83 != null) { // L: 4912
if (var100 == var80) { // L: 4913
var100 += var16 * 2;
} else {
var100 += var16; // L: 4914
}
var88 = var79.subHeight; // L: 4915
var89 += var88; // L: 4916
var22 = var2 + Client.viewportTempX - (var80 >> 1); // L: 4917
var23 = var3 + Client.viewportTempY - var89; // L: 4918
var22 -= var16; // L: 4919
if (var84 >= 0 && var84 < 255) { // L: 4920
var79.drawTransAt(var22, var23, var84); // L: 4921
Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var100 + var22, var88 + var23); // L: 4922
var83.drawTransAt(var22, var23, var84); // L: 4923
} else {
var79.drawTransBgAt(var22, var23); // L: 4926
Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var22 + var100, var23 + var88); // L: 4927
var83.drawTransBgAt(var22, var23); // L: 4928
}
Rasterizer2D.Rasterizer2D_setClip(var2, var3, var2 + var4, var3 + var5); // L: 4930
var89 += 2; // L: 4931
} else {
var89 += 5; // L: 4934
if (Client.viewportTempX > -1) { // L: 4935
var88 = var2 + Client.viewportTempX - (var80 >> 1); // L: 4936
var22 = var3 + Client.viewportTempY - var89; // L: 4937
Rasterizer2D.Rasterizer2D_fillRectangle(var88, var22, var100, 5, 65280); // L: 4938
Rasterizer2D.Rasterizer2D_fillRectangle(var100 + var88, var22, var80 - var100, 5, 16711680); // L: 4939
}
var89 += 2; // L: 4941
}
}
}
}
if (var89 == -2) { // L: 4947
var89 += 7;
}
var89 += var8; // L: 4948
if (var1 < var75) { // L: 4949
var10 = (Player)var0; // L: 4950
if (var10.isHidden) { // L: 4951
return;
}
if (var10.headIconPk != -1 || var10.headIconPrayer != -1) { // L: 4952
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight + 15); // L: 4953
if (Client.viewportTempX > -1) { // L: 4954
if (var10.headIconPk != -1) { // L: 4955
var89 += 25; // L: 4956
class14.headIconPkSprites[var10.headIconPk].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var89); // L: 4957
}
if (var10.headIconPrayer != -1) { // L: 4959
var89 += 25; // L: 4960
Varcs.headIconPrayerSprites[var10.headIconPrayer].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var89); // L: 4961
}
}
}
if (var1 >= 0 && Client.hintArrowType == 10 && var7[var1] == Client.hintArrowPlayerIndex) { // L: 4965
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight + 15); // L: 4966
if (Client.viewportTempX > -1) { // L: 4967
var89 += class375.headIconHintSprites[1].subHeight; // L: 4968
class375.headIconHintSprites[1].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var89); // L: 4969
}
}
} else {
NPCComposition var91 = ((NPC)var0).definition; // L: 4974
if (var91.transforms != null) { // L: 4975
var91 = var91.transform();
}
if (var91.headIconPrayer >= 0 && var91.headIconPrayer < Varcs.headIconPrayerSprites.length) { // L: 4976
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight + 15); // L: 4977
if (Client.viewportTempX > -1) { // L: 4978
Varcs.headIconPrayerSprites[var91.headIconPrayer].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 30); // L: 4979
}
}
if (Client.hintArrowType == 1 && Client.npcIndices[var1 - var75] == Client.hintArrowNpcIndex && Client.cycle % 20 < 10) { // L: 4982
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight + 15); // L: 4983
if (Client.viewportTempX > -1) { // L: 4984
class375.headIconHintSprites[0].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 28);
}
}
}
if (var0.overheadText != null && (var1 >= var75 || !var0.field1223 && (Client.publicChatMode == 4 || !var0.isAutoChatting && (Client.publicChatMode == 0 || Client.publicChatMode == 3 || Client.publicChatMode == 1 && ((Player)var0).isFriend())))) { // L: 4987 4988
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight); // L: 4989
if (Client.viewportTempX > -1 && Client.overheadTextCount < Client.overheadTextLimit) { // L: 4990
Client.overheadTextXOffsets[Client.overheadTextCount] = WorldMapArea.fontBold12.stringWidth(var0.overheadText) / 2; // L: 4991
Client.overheadTextAscents[Client.overheadTextCount] = WorldMapArea.fontBold12.ascent; // L: 4992
Client.overheadTextXs[Client.overheadTextCount] = Client.viewportTempX; // L: 4993
Client.overheadTextYs[Client.overheadTextCount] = Client.viewportTempY; // L: 4994
Client.overheadTextColors[Client.overheadTextCount] = var0.overheadTextColor; // L: 4995
Client.overheadTextEffects[Client.overheadTextCount] = var0.overheadTextEffect; // L: 4996
Client.overheadTextCyclesRemaining[Client.overheadTextCount] = var0.overheadTextCyclesRemaining; // L: 4997
Client.overheadText[Client.overheadTextCount] = var0.overheadText; // L: 4998
++Client.overheadTextCount; // L: 4999
}
}
for (int var77 = 0; var77 < 4; ++var77) { // L: 5003
int var92 = var0.hitSplatCycles[var77]; // L: 5004
int var78 = var0.hitSplatTypes[var77]; // L: 5005
HitSplatDefinition var99 = null; // L: 5006
int var14 = 0; // L: 5007
HitSplatDefinition var17;
if (var78 >= 0) { // L: 5008
if (var92 <= Client.cycle) { // L: 5009
continue;
}
var16 = var0.hitSplatTypes[var77]; // L: 5011
var17 = (HitSplatDefinition)HitSplatDefinition.HitSplatDefinition_cached.get((long)var16); // L: 5013
HitSplatDefinition var15;
if (var17 != null) { // L: 5014
var15 = var17; // L: 5015
} else {
byte[] var18 = HitSplatDefinition.HitSplatDefinition_archive.takeFile(32, var16); // L: 5018
var17 = new HitSplatDefinition(); // L: 5019
if (var18 != null) { // L: 5020
var17.decode(new Buffer(var18));
}
HitSplatDefinition.HitSplatDefinition_cached.put(var17, (long)var16); // L: 5021
var15 = var17; // L: 5022
}
var99 = var15; // L: 5024
var14 = var15.field1735; // L: 5025
if (var15 != null && var15.transforms != null) { // L: 5026
var99 = var15.transform(); // L: 5027
if (var99 == null) { // L: 5028
var0.hitSplatCycles[var77] = -1; // L: 5029
continue; // L: 5030
}
}
} else if (var92 < 0) { // L: 5034
continue;
}
var80 = var0.hitSplatTypes2[var77]; // L: 5035
HitSplatDefinition var81 = null; // L: 5036
HitSplatDefinition var94;
if (var80 >= 0) { // L: 5037
var94 = (HitSplatDefinition)HitSplatDefinition.HitSplatDefinition_cached.get((long)var80); // L: 5040
if (var94 != null) { // L: 5041
var17 = var94; // L: 5042
} else {
byte[] var19 = HitSplatDefinition.HitSplatDefinition_archive.takeFile(32, var80); // L: 5045
var94 = new HitSplatDefinition(); // L: 5046
if (var19 != null) { // L: 5047
var94.decode(new Buffer(var19));
}
HitSplatDefinition.HitSplatDefinition_cached.put(var94, (long)var80); // L: 5048
var17 = var94; // L: 5049
}
var81 = var17; // L: 5051
if (var17 != null && var17.transforms != null) { // L: 5052
var81 = var17.transform();
}
}
if (var92 - var14 <= Client.cycle) { // L: 5054
if (var99 == null) { // L: 5055
var0.hitSplatCycles[var77] = -1; // L: 5056
} else {
GrandExchangeOfferTotalQuantityComparator.method4972(var0, var0.defaultHeight / 2); // L: 5059
if (Client.viewportTempX > -1) { // L: 5060
if (var77 == 1) { // L: 5062
Client.viewportTempY -= 20; // L: 5063
}
if (var77 == 2) { // L: 5065
Client.viewportTempX -= 15; // L: 5066
Client.viewportTempY -= 10; // L: 5067
}
if (var77 == 3) { // L: 5069
Client.viewportTempX += 15; // L: 5070
Client.viewportTempY -= 10; // L: 5071
}
var94 = null; // L: 5073
SpritePixels var95 = null; // L: 5074
SpritePixels var20 = null; // L: 5075
SpritePixels var21 = null; // L: 5076
var22 = 0; // L: 5077
var23 = 0; // L: 5078
int var24 = 0; // L: 5079
int var25 = 0; // L: 5080
int var26 = 0; // L: 5081
int var27 = 0; // L: 5082
int var28 = 0; // L: 5083
int var29 = 0; // L: 5084
SpritePixels var30 = null; // L: 5085
SpritePixels var31 = null; // L: 5086
SpritePixels var32 = null; // L: 5087
SpritePixels var33 = null; // L: 5088
int var34 = 0; // L: 5089
int var35 = 0; // L: 5090
int var36 = 0; // L: 5091
int var37 = 0; // L: 5092
int var38 = 0; // L: 5093
int var39 = 0; // L: 5094
int var40 = 0; // L: 5095
int var41 = 0; // L: 5096
int var42 = 0; // L: 5097
SpritePixels var96 = var99.method2890(); // L: 5098
int var43;
if (var96 != null) { // L: 5099
var22 = var96.subWidth; // L: 5100
var43 = var96.subHeight; // L: 5101
if (var43 > var42) { // L: 5102
var42 = var43;
}
var26 = var96.xOffset; // L: 5103
}
var95 = var99.method2893(); // L: 5105
if (var95 != null) { // L: 5106
var23 = var95.subWidth; // L: 5107
var43 = var95.subHeight; // L: 5108
if (var43 > var42) { // L: 5109
var42 = var43;
}
var27 = var95.xOffset; // L: 5110
}
var20 = var99.method2871(); // L: 5112
if (var20 != null) { // L: 5113
var24 = var20.subWidth; // L: 5114
var43 = var20.subHeight; // L: 5115
if (var43 > var42) { // L: 5116
var42 = var43;
}
var28 = var20.xOffset; // L: 5117
}
var21 = var99.method2872(); // L: 5119
if (var21 != null) { // L: 5120
var25 = var21.subWidth; // L: 5121
var43 = var21.subHeight; // L: 5122
if (var43 > var42) { // L: 5123
var42 = var43;
}
var29 = var21.xOffset; // L: 5124
}
if (var81 != null) { // L: 5126
var30 = var81.method2890(); // L: 5127
if (var30 != null) { // L: 5128
var34 = var30.subWidth; // L: 5129
var43 = var30.subHeight; // L: 5130
if (var43 > var42) { // L: 5131
var42 = var43;
}
var38 = var30.xOffset; // L: 5132
}
var31 = var81.method2893(); // L: 5134
if (var31 != null) { // L: 5135
var35 = var31.subWidth; // L: 5136
var43 = var31.subHeight; // L: 5137
if (var43 > var42) { // L: 5138
var42 = var43;
}
var39 = var31.xOffset; // L: 5139
}
var32 = var81.method2871(); // L: 5141
if (var32 != null) { // L: 5142
var36 = var32.subWidth; // L: 5143
var43 = var32.subHeight; // L: 5144
if (var43 > var42) { // L: 5145
var42 = var43;
}
var40 = var32.xOffset; // L: 5146
}
var33 = var81.method2872(); // L: 5148
if (var33 != null) { // L: 5149
var37 = var33.subWidth; // L: 5150
var43 = var33.subHeight; // L: 5151
if (var43 > var42) { // L: 5152
var42 = var43;
}
var41 = var33.xOffset; // L: 5153
}
}
Font var82 = var99.getFont(); // L: 5158
if (var82 == null) { // L: 5159
var82 = class11.fontPlain11;
}
Font var44;
if (var81 != null) { // L: 5160
var44 = var81.getFont(); // L: 5161
if (var44 == null) { // L: 5162
var44 = class11.fontPlain11;
}
} else {
var44 = class11.fontPlain11; // L: 5164
}
String var45 = null; // L: 5165
String var46 = null; // L: 5166
boolean var47 = false; // L: 5167
int var48 = 0; // L: 5168
var45 = var99.getString(var0.hitSplatValues[var77]); // L: 5169
int var97 = var82.stringWidth(var45); // L: 5170
if (var81 != null) { // L: 5171
var46 = var81.getString(var0.hitSplatValues2[var77]); // L: 5172
var48 = var44.stringWidth(var46); // L: 5173
}
int var49 = 0; // L: 5175
int var50 = 0; // L: 5176
if (var23 > 0) { // L: 5177
if (var20 == null && var21 == null) { // L: 5178
var49 = 1; // L: 5179
} else {
var49 = var97 / var23 + 1;
}
}
if (var81 != null && var35 > 0) { // L: 5181 5182
if (var32 == null && var33 == null) { // L: 5183
var50 = 1; // L: 5184
} else {
var50 = var48 / var35 + 1;
}
}
int var51 = 0; // L: 5187
int var52 = var51; // L: 5188
if (var22 > 0) { // L: 5189
var51 += var22;
}
var51 += 2; // L: 5190
int var53 = var51; // L: 5191
if (var24 > 0) { // L: 5192
var51 += var24;
}
int var54 = var51; // L: 5193
int var55 = var51; // L: 5194
int var56;
if (var23 > 0) { // L: 5195
var56 = var49 * var23; // L: 5196
var51 += var56; // L: 5197
var55 += (var56 - var97) / 2; // L: 5198
} else {
var51 += var97; // L: 5201
}
var56 = var51; // L: 5203
if (var25 > 0) { // L: 5204
var51 += var25;
}
int var57 = 0; // L: 5205
int var58 = 0; // L: 5206
int var59 = 0; // L: 5207
int var60 = 0; // L: 5208
int var61 = 0; // L: 5209
int var62;
if (var81 != null) { // L: 5210
var51 += 2; // L: 5211
var57 = var51; // L: 5212
if (var34 > 0) { // L: 5213
var51 += var34;
}
var51 += 2; // L: 5214
var58 = var51; // L: 5215
if (var36 > 0) { // L: 5216
var51 += var36;
}
var59 = var51; // L: 5217
var61 = var51; // L: 5218
if (var35 > 0) { // L: 5219
var62 = var35 * var50; // L: 5220
var51 += var62; // L: 5221
var61 += (var62 - var48) / 2; // L: 5222
} else {
var51 += var48; // L: 5225
}
var60 = var51; // L: 5227
if (var37 > 0) { // L: 5228
var51 += var37;
}
}
var62 = var0.hitSplatCycles[var77] - Client.cycle; // L: 5230
int var63 = var99.field1748 - var62 * var99.field1748 / var99.field1735; // L: 5231
int var64 = var62 * var99.field1749 / var99.field1735 + -var99.field1749; // L: 5232
int var65 = var63 + (var2 + Client.viewportTempX - (var51 >> 1)); // L: 5233
int var66 = var64 + (var3 + Client.viewportTempY - 12); // L: 5234
int var67 = var66; // L: 5235
int var68 = var42 + var66; // L: 5236
int var69 = var66 + var99.field1753 + 15; // L: 5237
int var70 = var69 - var82.maxAscent; // L: 5238
int var71 = var69 + var82.maxDescent; // L: 5239
if (var70 < var66) { // L: 5240
var67 = var70;
}
if (var71 > var68) { // L: 5241
var68 = var71;
}
int var72 = 0; // L: 5242
int var73;
int var74;
if (var81 != null) { // L: 5243
var72 = var66 + var81.field1753 + 15; // L: 5244
var73 = var72 - var44.maxAscent; // L: 5245
var74 = var72 + var44.maxDescent; // L: 5246
if (var73 < var67) { // L: 5247
;
}
if (var74 > var68) { // L: 5248
;
}
}
var73 = 255; // L: 5250
if (var99.field1743 >= 0) { // L: 5251
var73 = (var62 << 8) / (var99.field1735 - var99.field1743);
}
if (var73 >= 0 && var73 < 255) { // L: 5252
if (var96 != null) { // L: 5253
var96.drawTransAt(var52 + var65 - var26, var66, var73);
}
if (var20 != null) { // L: 5254
var20.drawTransAt(var65 + var53 - var28, var66, var73);
}
if (var95 != null) { // L: 5255
for (var74 = 0; var74 < var49; ++var74) { // L: 5256
var95.drawTransAt(var74 * var23 + (var54 + var65 - var27), var66, var73); // L: 5257
}
}
if (var21 != null) { // L: 5260
var21.drawTransAt(var65 + var56 - var29, var66, var73);
}
var82.drawAlpha(var45, var55 + var65, var69, var99.textColor, 0, var73); // L: 5261
if (var81 != null) { // L: 5262
if (var30 != null) { // L: 5263
var30.drawTransAt(var65 + var57 - var38, var66, var73);
}
if (var32 != null) { // L: 5264
var32.drawTransAt(var58 + var65 - var40, var66, var73);
}
if (var31 != null) { // L: 5265
for (var74 = 0; var74 < var50; ++var74) { // L: 5266
var31.drawTransAt(var74 * var35 + (var65 + var59 - var39), var66, var73); // L: 5267
}
}
if (var33 != null) { // L: 5270
var33.drawTransAt(var65 + var60 - var41, var66, var73);
}
var44.drawAlpha(var46, var61 + var65, var72, var81.textColor, 0, var73); // L: 5271
}
} else {
if (var96 != null) { // L: 5275
var96.drawTransBgAt(var52 + var65 - var26, var66);
}
if (var20 != null) { // L: 5276
var20.drawTransBgAt(var65 + var53 - var28, var66);
}
if (var95 != null) { // L: 5277
for (var74 = 0; var74 < var49; ++var74) { // L: 5278
var95.drawTransBgAt(var74 * var23 + (var54 + var65 - var27), var66); // L: 5279
}
}
if (var21 != null) { // L: 5282
var21.drawTransBgAt(var56 + var65 - var29, var66);
}
var82.draw(var45, var55 + var65, var69, var99.textColor | -16777216, 0); // L: 5283
if (var81 != null) { // L: 5284
if (var30 != null) { // L: 5285
var30.drawTransBgAt(var57 + var65 - var38, var66);
}
if (var32 != null) { // L: 5286
var32.drawTransBgAt(var58 + var65 - var40, var66);
}
if (var31 != null) { // L: 5287
for (var74 = 0; var74 < var50; ++var74) { // L: 5288
var31.drawTransBgAt(var35 * var74 + (var65 + var59 - var39), var66); // L: 5289
}
}
if (var33 != null) { // L: 5292
var33.drawTransBgAt(var60 + var65 - var41, var66);
}
var44.draw(var46, var61 + var65, var72, var81.textColor | -16777216, 0); // L: 5293
}
}
}
}
}
}
}
} // L: 5298
} }

View File

@@ -9,33 +9,27 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ng") @ObfuscatedName("nm")
@Implements("AccessFile") @Implements("AccessFile")
public final class AccessFile { public final class AccessFile {
@ObfuscatedName("v") @ObfuscatedName("v")
@Export("SpriteBuffer_spritePalette")
public static int[] SpriteBuffer_spritePalette;
@ObfuscatedName("s")
@Export("userHomeDirectory")
static String userHomeDirectory;
@ObfuscatedName("h")
@Export("file") @Export("file")
RandomAccessFile file; RandomAccessFile file;
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = -6951669664321612267L longValue = 5188253846465837923L
) )
@Export("maxSize") @Export("maxSize")
final long maxSize; final long maxSize;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = 976098540501799607L longValue = 8167831269062289551L
) )
@Export("offset") @Export("offset")
long offset; long offset;
public AccessFile(File var1, String var2, long var3) throws IOException { public AccessFile(File var1, String var2, long var3) throws IOException {
if (-1L == var3) { // L: 11 if (var3 == -1L) { // L: 11
var3 = Long.MAX_VALUE; var3 = Long.MAX_VALUE;
} }
@@ -55,17 +49,17 @@ public final class AccessFile {
this.file.seek(0L); // L: 23 this.file.seek(0L); // L: 23
} // L: 24 } // L: 24
@ObfuscatedName("h") @ObfuscatedName("v")
@Export("seek") @Export("seek")
final void seek(long var1) throws IOException { final void seek(long var1) throws IOException {
this.file.seek(var1); // L: 27 this.file.seek(var1); // L: 27
this.offset = var1; // L: 28 this.offset = var1; // L: 28
} // L: 29 } // L: 29
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "([BIII)V", descriptor = "([BIIB)V",
garbageValue = "-1544506184" garbageValue = "29"
) )
@Export("write") @Export("write")
public final void write(byte[] var1, int var2, int var3) throws IOException { public final void write(byte[] var1, int var2, int var3) throws IOException {
@@ -79,20 +73,20 @@ public final class AccessFile {
} }
} // L: 39 } // L: 39
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)V", descriptor = "(I)V",
garbageValue = "68" garbageValue = "-520775983"
) )
@Export("close") @Export("close")
public final void close() throws IOException { public final void close() throws IOException {
this.closeSync(false); // L: 42 this.closeSync(false); // L: 42
} // L: 43 } // L: 43
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(ZS)V", descriptor = "(ZI)V",
garbageValue = "295" garbageValue = "-891531898"
) )
@Export("closeSync") @Export("closeSync")
public final void closeSync(boolean var1) throws IOException { public final void closeSync(boolean var1) throws IOException {
@@ -110,20 +104,20 @@ public final class AccessFile {
} // L: 56 } // L: 56
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)J", descriptor = "(I)J",
garbageValue = "-1034631213" garbageValue = "1700064140"
) )
@Export("length") @Export("length")
public final long length() throws IOException { public final long length() throws IOException {
return this.file.length(); // L: 59 return this.file.length(); // L: 59
} }
@ObfuscatedName("z") @ObfuscatedName("j")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "([BIIB)I", descriptor = "([BIIB)I",
garbageValue = "45" garbageValue = "-59"
) )
@Export("read") @Export("read")
public final int read(byte[] var1, int var2, int var3) throws IOException { public final int read(byte[] var1, int var2, int var3) throws IOException {

View File

@@ -4,118 +4,124 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("cj") @ObfuscatedName("cy")
@Implements("Actor") @Implements("Actor")
public abstract class Actor extends Renderable { public abstract class Actor extends Renderable {
@ObfuscatedName("ea") @ObfuscatedName("fh")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lji;" descriptor = "Lkt;"
) )
@Export("archive17") @Export("fontPlain11")
static Archive archive17; static Font fontPlain11;
@ObfuscatedName("aw") @ObfuscatedName("nr")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -60079109 intValue = -371192105
)
@Export("widgetDragDuration")
static int widgetDragDuration;
@ObfuscatedName("ad")
@ObfuscatedGetter(
intValue = -130212619
) )
@Export("x") @Export("x")
int x; int x;
@ObfuscatedName("at") @ObfuscatedName("ai")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1766175129 intValue = 1248597615
) )
@Export("y") @Export("y")
int y; int y;
@ObfuscatedName("av") @ObfuscatedName("ar")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 309307455 intValue = -1073291133
) )
@Export("rotation") @Export("rotation")
int rotation; int rotation;
@ObfuscatedName("al") @ObfuscatedName("ag")
@Export("isWalking") @Export("isWalking")
boolean isWalking; boolean isWalking;
@ObfuscatedName("ap") @ObfuscatedName("ax")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -508330989 intValue = 1868694145
) )
int field1211; int field1239;
@ObfuscatedName("am") @ObfuscatedName("as")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1856466777 intValue = -1698768263
) )
@Export("playerCycle") @Export("playerCycle")
int playerCycle; int playerCycle;
@ObfuscatedName("ax") @ObfuscatedName("aj")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1523832987 intValue = -932232515
) )
@Export("idleSequence") @Export("idleSequence")
int idleSequence; int idleSequence;
@ObfuscatedName("ak") @ObfuscatedName("am")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1651347451 intValue = 2010968993
) )
@Export("turnLeftSequence") @Export("turnLeftSequence")
int turnLeftSequence; int turnLeftSequence;
@ObfuscatedName("ay") @ObfuscatedName("az")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -894700151 intValue = -144191447
) )
@Export("turnRightSequence") @Export("turnRightSequence")
int turnRightSequence; int turnRightSequence;
@ObfuscatedName("ai") @ObfuscatedName("av")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -644124853 intValue = -152072953
) )
@Export("walkSequence") @Export("walkSequence")
int walkSequence; int walkSequence;
@ObfuscatedName("aa") @ObfuscatedName("ac")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -260839917 intValue = -1808202573
) )
@Export("walkBackSequence") @Export("walkBackSequence")
int walkBackSequence; int walkBackSequence;
@ObfuscatedName("au") @ObfuscatedName("at")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1673254867 intValue = 1341114765
) )
@Export("walkLeftSequence") @Export("walkLeftSequence")
int walkLeftSequence; int walkLeftSequence;
@ObfuscatedName("as") @ObfuscatedName("ah")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1777299595 intValue = -1993879825
) )
@Export("walkRightSequence") @Export("walkRightSequence")
int walkRightSequence; int walkRightSequence;
@ObfuscatedName("ad") @ObfuscatedName("ao")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 258726619 intValue = -1401897961
) )
@Export("runSequence") @Export("runSequence")
int runSequence; int runSequence;
@ObfuscatedName("ac") @ObfuscatedName("aq")
@Export("overheadText") @Export("overheadText")
String overheadText; String overheadText;
@ObfuscatedName("az") @ObfuscatedName("aw")
@Export("isAutoChatting") @Export("isAutoChatting")
boolean isAutoChatting; boolean isAutoChatting;
@ObfuscatedName("aq") @ObfuscatedName("af")
boolean field1223; boolean field1248;
@ObfuscatedName("ab") @ObfuscatedName("ak")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 441130155 intValue = -1654949393
) )
@Export("overheadTextCyclesRemaining") @Export("overheadTextCyclesRemaining")
int overheadTextCyclesRemaining; int overheadTextCyclesRemaining;
@ObfuscatedName("ar") @ObfuscatedName("ay")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -506528051 intValue = -275691641
) )
@Export("overheadTextColor") @Export("overheadTextColor")
int overheadTextColor; int overheadTextColor;
@ObfuscatedName("ah") @ObfuscatedName("aa")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1268134939 intValue = 1592365515
) )
@Export("overheadTextEffect") @Export("overheadTextEffect")
int overheadTextEffect; int overheadTextEffect;
@@ -125,205 +131,205 @@ public abstract class Actor extends Renderable {
@ObfuscatedName("bd") @ObfuscatedName("bd")
@Export("hitSplatTypes") @Export("hitSplatTypes")
int[] hitSplatTypes; int[] hitSplatTypes;
@ObfuscatedName("bw") @ObfuscatedName("bt")
@Export("hitSplatValues") @Export("hitSplatValues")
int[] hitSplatValues; int[] hitSplatValues;
@ObfuscatedName("bf") @ObfuscatedName("bq")
@Export("hitSplatCycles") @Export("hitSplatCycles")
int[] hitSplatCycles; int[] hitSplatCycles;
@ObfuscatedName("bu") @ObfuscatedName("bu")
@Export("hitSplatTypes2") @Export("hitSplatTypes2")
int[] hitSplatTypes2; int[] hitSplatTypes2;
@ObfuscatedName("bb") @ObfuscatedName("bl")
@Export("hitSplatValues2") @Export("hitSplatValues2")
int[] hitSplatValues2; int[] hitSplatValues2;
@ObfuscatedName("bk") @ObfuscatedName("bv")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lko;" descriptor = "Lki;"
) )
@Export("healthBars") @Export("healthBars")
IterableNodeDeque healthBars; IterableNodeDeque healthBars;
@ObfuscatedName("bt") @ObfuscatedName("bm")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2001939337 intValue = 637535539
) )
@Export("targetIndex") @Export("targetIndex")
int targetIndex; int targetIndex;
@ObfuscatedName("by") @ObfuscatedName("bz")
@Export("false0") @Export("false0")
boolean false0; boolean false0;
@ObfuscatedName("bz") @ObfuscatedName("bh")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 713159597 intValue = 800070667
) )
int field1247; int field1264;
@ObfuscatedName("br") @ObfuscatedName("bs")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1142077753 intValue = -330797761
) )
@Export("movementSequence") @Export("movementSequence")
int movementSequence; int movementSequence;
@ObfuscatedName("bm") @ObfuscatedName("br")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1571862761 intValue = 1832573289
) )
@Export("movementFrame") @Export("movementFrame")
int movementFrame; int movementFrame;
@ObfuscatedName("bn") @ObfuscatedName("bf")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 894074389 intValue = 572579455
) )
@Export("movementFrameCycle") @Export("movementFrameCycle")
int movementFrameCycle; int movementFrameCycle;
@ObfuscatedName("ba") @ObfuscatedName("ba")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -128111571 intValue = -1762760413
) )
@Export("sequence") @Export("sequence")
int sequence; int sequence;
@ObfuscatedName("bg") @ObfuscatedName("be")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1558553463 intValue = 2078717111
) )
@Export("sequenceFrame") @Export("sequenceFrame")
int sequenceFrame; int sequenceFrame;
@ObfuscatedName("bi") @ObfuscatedName("bj")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1657374705 intValue = 643131463
) )
@Export("sequenceFrameCycle") @Export("sequenceFrameCycle")
int sequenceFrameCycle; int sequenceFrameCycle;
@ObfuscatedName("bp") @ObfuscatedName("bx")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1057732107 intValue = -1848146093
) )
@Export("sequenceDelay") @Export("sequenceDelay")
int sequenceDelay; int sequenceDelay;
@ObfuscatedName("bj") @ObfuscatedName("bp")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1401992799 intValue = 272217185
) )
int field1244; int field1245;
@ObfuscatedName("be") @ObfuscatedName("bn")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1781887565 intValue = -1915525677
) )
@Export("spotAnimation") @Export("spotAnimation")
int spotAnimation; int spotAnimation;
@ObfuscatedName("bs") @ObfuscatedName("bo")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1474223197 intValue = 479634489
) )
@Export("spotAnimationFrame") @Export("spotAnimationFrame")
int spotAnimationFrame; int spotAnimationFrame;
@ObfuscatedName("bx") @ObfuscatedName("bw")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -481375045 intValue = -1084268575
) )
@Export("spotAnimationFrameCycle") @Export("spotAnimationFrameCycle")
int spotAnimationFrameCycle; int spotAnimationFrameCycle;
@ObfuscatedName("bv") @ObfuscatedName("bi")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 895533867 intValue = 58747199
) )
int field1243; int field1287;
@ObfuscatedName("bh") @ObfuscatedName("bb")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 724261779 intValue = -1377519793
) )
int field1224; int field1277;
@ObfuscatedName("bl") @ObfuscatedName("bk")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1356856001 intValue = 721291573
) )
int field1236; int field1278;
@ObfuscatedName("bg")
@ObfuscatedGetter(
intValue = 1049471373
)
int field1269;
@ObfuscatedName("by")
@ObfuscatedGetter(
intValue = 690610019
)
int field1280;
@ObfuscatedName("bc") @ObfuscatedName("bc")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 357124569 intValue = -1504119385
) )
int field1251; int field1238;
@ObfuscatedName("bo") @ObfuscatedName("cd")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 837192135 intValue = -611848265
) )
int field1252; int field1265;
@ObfuscatedName("bq")
@ObfuscatedGetter(
intValue = -832167709
)
int field1253;
@ObfuscatedName("cm") @ObfuscatedName("cm")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1244121347 intValue = -61946015
) )
int field1254; int field1283;
@ObfuscatedName("ch") @ObfuscatedName("cv")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1639074179 intValue = 165021719
) )
int field1237; int field1284;
@ObfuscatedName("cu") @ObfuscatedName("cp")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1718337881 intValue = 1280286129
)
int field1256;
@ObfuscatedName("ce")
@ObfuscatedGetter(
intValue = 1061708383
) )
@Export("npcCycle") @Export("npcCycle")
int npcCycle; int npcCycle;
@ObfuscatedName("cn") @ObfuscatedName("ci")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1167885103 intValue = -881485665
) )
@Export("defaultHeight") @Export("defaultHeight")
int defaultHeight; int defaultHeight;
@ObfuscatedName("cc") @ObfuscatedName("ct")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 108366915 intValue = -1173912475
) )
@Export("orientation") @Export("orientation")
int orientation; int orientation;
@ObfuscatedName("ck") @ObfuscatedName("cq")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1846500997 intValue = -906983361
) )
int field1248; int field1282;
@ObfuscatedName("cx") @ObfuscatedName("cr")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2042152507 intValue = -1889632377
) )
int field1261; int field1289;
@ObfuscatedName("ci") @ObfuscatedName("cf")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1984582191 intValue = -664818219
) )
@Export("pathLength") @Export("pathLength")
int pathLength; int pathLength;
@ObfuscatedName("cf") @ObfuscatedName("cn")
@Export("pathX") @Export("pathX")
int[] pathX; int[] pathX;
@ObfuscatedName("cq") @ObfuscatedName("cs")
@Export("pathY") @Export("pathY")
int[] pathY; int[] pathY;
@ObfuscatedName("cs") @ObfuscatedName("cg")
@Export("pathTraversed") @Export("pathTraversed")
byte[] pathTraversed; byte[] pathTraversed;
@ObfuscatedName("cd") @ObfuscatedName("co")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2122964403 intValue = 110165637
) )
int field1250; int field1294;
@ObfuscatedName("ct") @ObfuscatedName("ck")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -681332491 intValue = 313310131
) )
int field1215; int field1274;
Actor() { Actor() {
this.isWalking = false; // L: 13 this.isWalking = false; // L: 13
this.field1211 = 1; // L: 14 this.field1239 = 1; // L: 14
this.idleSequence = -1; // L: 16 this.idleSequence = -1; // L: 16
this.turnLeftSequence = -1; // L: 17 this.turnLeftSequence = -1; // L: 17
this.turnRightSequence = -1; // L: 18 this.turnRightSequence = -1; // L: 18
@@ -333,7 +339,7 @@ public abstract class Actor extends Renderable {
this.walkRightSequence = -1; // L: 22 this.walkRightSequence = -1; // L: 22
this.runSequence = -1; // L: 23 this.runSequence = -1; // L: 23
this.overheadText = null; // L: 24 this.overheadText = null; // L: 24
this.field1223 = false; // L: 26 this.field1248 = false; // L: 26
this.overheadTextCyclesRemaining = 100; // L: 27 this.overheadTextCyclesRemaining = 100; // L: 27
this.overheadTextColor = 0; // L: 28 this.overheadTextColor = 0; // L: 28
this.overheadTextEffect = 0; // L: 29 this.overheadTextEffect = 0; // L: 29
@@ -346,7 +352,7 @@ public abstract class Actor extends Renderable {
this.healthBars = new IterableNodeDeque(); // L: 37 this.healthBars = new IterableNodeDeque(); // L: 37
this.targetIndex = -1; // L: 38 this.targetIndex = -1; // L: 38
this.false0 = false; // L: 39 this.false0 = false; // L: 39
this.field1247 = -1; // L: 40 this.field1264 = -1; // L: 40
this.movementSequence = -1; // L: 41 this.movementSequence = -1; // L: 41
this.movementFrame = 0; // L: 42 this.movementFrame = 0; // L: 42
this.movementFrameCycle = 0; // L: 43 this.movementFrameCycle = 0; // L: 43
@@ -354,46 +360,46 @@ public abstract class Actor extends Renderable {
this.sequenceFrame = 0; // L: 45 this.sequenceFrame = 0; // L: 45
this.sequenceFrameCycle = 0; // L: 46 this.sequenceFrameCycle = 0; // L: 46
this.sequenceDelay = 0; // L: 47 this.sequenceDelay = 0; // L: 47
this.field1244 = 0; // L: 48 this.field1245 = 0; // L: 48
this.spotAnimation = -1; // L: 49 this.spotAnimation = -1; // L: 49
this.spotAnimationFrame = 0; // L: 50 this.spotAnimationFrame = 0; // L: 50
this.spotAnimationFrameCycle = 0; // L: 51 this.spotAnimationFrameCycle = 0; // L: 51
this.npcCycle = 0; // L: 61 this.npcCycle = 0; // L: 61
this.defaultHeight = 200; // L: 62 this.defaultHeight = 200; // L: 62
this.field1248 = 0; // L: 64 this.field1282 = 0; // L: 64
this.field1261 = 32; // L: 65 this.field1289 = 32; // L: 65
this.pathLength = 0; // L: 66 this.pathLength = 0; // L: 66
this.pathX = new int[10]; // L: 67 this.pathX = new int[10]; // L: 67
this.pathY = new int[10]; // L: 68 this.pathY = new int[10]; // L: 68
this.pathTraversed = new byte[10]; // L: 69 this.pathTraversed = new byte[10]; // L: 69
this.field1250 = 0; // L: 70 this.field1294 = 0; // L: 70
this.field1215 = 0; // L: 71 this.field1274 = 0; // L: 71
} // L: 73 } // L: 73
@ObfuscatedName("d") @ObfuscatedName("m")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)Z", descriptor = "(B)Z",
garbageValue = "-1701330496" garbageValue = "-6"
) )
@Export("isVisible") @Export("isVisible")
boolean isVisible() { boolean isVisible() {
return false; // L: 81 return false; // L: 81
} }
@ObfuscatedName("an") @ObfuscatedName("be")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)V", descriptor = "(I)V",
garbageValue = "580510883" garbageValue = "-1557316570"
) )
final void method2194() { final void method2171() {
this.pathLength = 0; // L: 76 this.pathLength = 0; // L: 76
this.field1215 = 0; // L: 77 this.field1274 = 0; // L: 77
} // L: 78 } // L: 78
@ObfuscatedName("bd") @ObfuscatedName("bj")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIIIIIB)V", descriptor = "(IIIIIIB)V",
garbageValue = "0" garbageValue = "31"
) )
@Export("addHitSplat") @Export("addHitSplat")
final void addHitSplat(int var1, int var2, int var3, int var4, int var5, int var6) { final void addHitSplat(int var1, int var2, int var3, int var4, int var5, int var6) {
@@ -413,287 +419,179 @@ public abstract class Actor extends Renderable {
int var10 = -1; // L: 92 int var10 = -1; // L: 92
int var11 = 0; // L: 93 int var11 = 0; // L: 93
if (var1 >= 0) { // L: 94 if (var1 >= 0) { // L: 94
HitSplatDefinition var13 = (HitSplatDefinition)HitSplatDefinition.HitSplatDefinition_cached.get((long)var1); // L: 97 HitSplatDefinition var12 = Projectile.method1966(var1); // L: 95
HitSplatDefinition var12; var10 = var12.field1743; // L: 96
if (var13 != null) { // L: 98 var11 = var12.field1731; // L: 97
var12 = var13; // L: 99
} else {
byte[] var14 = HitSplatDefinition.HitSplatDefinition_archive.takeFile(32, var1); // L: 102
var13 = new HitSplatDefinition(); // L: 103
if (var14 != null) { // L: 104
var13.decode(new Buffer(var14));
}
HitSplatDefinition.HitSplatDefinition_cached.put(var13, (long)var1); // L: 105
var12 = var13; // L: 106
}
var10 = var12.field1752; // L: 109
var11 = var12.field1735; // L: 110
} }
int var15; int var14;
if (var8) { // L: 112 if (var8) { // L: 99
if (var10 == -1) { // L: 113 if (var10 == -1) { // L: 100
return; return;
} }
var9 = 0; // L: 114 var9 = 0; // L: 101
var15 = 0; // L: 115 var14 = 0; // L: 102
if (var10 == 0) { // L: 116 if (var10 == 0) { // L: 103
var15 = this.hitSplatCycles[0]; var14 = this.hitSplatCycles[0];
} else if (var10 == 1) { } else if (var10 == 1) { // L: 104
var15 = this.hitSplatValues[0]; // L: 117 var14 = this.hitSplatValues[0];
} }
for (int var16 = 1; var16 < 4; ++var16) { // L: 118 for (int var13 = 1; var13 < 4; ++var13) { // L: 105
if (var10 == 0) { // L: 119 if (var10 == 0) { // L: 106
if (this.hitSplatCycles[var16] < var15) { // L: 120 if (this.hitSplatCycles[var13] < var14) { // L: 107
var9 = var16; // L: 121 var9 = var13;
var15 = this.hitSplatCycles[var16]; // L: 122 var14 = this.hitSplatCycles[var13];
} }
} else if (var10 == 1 && this.hitSplatValues[var16] < var15) { // L: 125 126 } else if (var10 == 1 && this.hitSplatValues[var13] < var14) { // L: 112 113
var9 = var16; // L: 127 var9 = var13; // L: 114
var15 = this.hitSplatValues[var16]; // L: 128 var14 = this.hitSplatValues[var13]; // L: 115
} }
} }
if (var10 == 1 && var15 >= var2) { // L: 132 if (var10 == 1 && var14 >= var2) { // L: 119
return; return;
} }
} else { } else {
if (var7) { // L: 135 if (var7) { // L: 122
this.hitSplatCount = 0; this.hitSplatCount = 0;
} }
for (var15 = 0; var15 < 4; ++var15) { // L: 136 for (var14 = 0; var14 < 4; ++var14) { // L: 123
byte var17 = this.hitSplatCount; // L: 137 byte var15 = this.hitSplatCount; // L: 124
this.hitSplatCount = (byte)((this.hitSplatCount + 1) % 4); // L: 138 this.hitSplatCount = (byte)((this.hitSplatCount + 1) % 4); // L: 125
if (this.hitSplatCycles[var17] <= var5) { // L: 139 if (this.hitSplatCycles[var15] <= var5) { // L: 126
var9 = var17; // L: 140 var9 = var15; // L: 127
break; // L: 141 break; // L: 128
} }
} }
} }
if (var9 >= 0) { // L: 145 if (var9 >= 0) { // L: 132
this.hitSplatTypes[var9] = var1; // L: 146 this.hitSplatTypes[var9] = var1; // L: 133
this.hitSplatValues[var9] = var2; // L: 147 this.hitSplatValues[var9] = var2; // L: 134
this.hitSplatTypes2[var9] = var3; // L: 148 this.hitSplatTypes2[var9] = var3; // L: 135
this.hitSplatValues2[var9] = var4; // L: 149 this.hitSplatValues2[var9] = var4; // L: 136
this.hitSplatCycles[var9] = var5 + var11 + var6; // L: 150 this.hitSplatCycles[var9] = var5 + var11 + var6; // L: 137
} }
} // L: 151 } // L: 138
@ObfuscatedName("bw") @ObfuscatedName("bx")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIIIIII)V", descriptor = "(IIIIIIB)V",
garbageValue = "-1818079351" garbageValue = "-127"
) )
@Export("addHealthBar") @Export("addHealthBar")
final void addHealthBar(int var1, int var2, int var3, int var4, int var5, int var6) { final void addHealthBar(int var1, int var2, int var3, int var4, int var5, int var6) {
HealthBarDefinition var8 = (HealthBarDefinition)HealthBarDefinition.HealthBarDefinition_cached.get((long)var1); // L: 156 HealthBarDefinition var7 = UserComparator6.method2492(var1); // L: 141
HealthBarDefinition var7; HealthBar var8 = null; // L: 142
if (var8 != null) { // L: 157 HealthBar var9 = null; // L: 143
var7 = var8; // L: 158 int var10 = var7.int2; // L: 144
} else { int var11 = 0; // L: 145
byte[] var9 = HealthBarDefinition.HealthBarDefinition_archive.takeFile(33, var1); // L: 161
var8 = new HealthBarDefinition(); // L: 162 HealthBar var12;
if (var9 != null) { // L: 163 for (var12 = (HealthBar)this.healthBars.last(); var12 != null; var12 = (HealthBar)this.healthBars.previous()) { // L: 146
var8.decode(new Buffer(var9)); ++var11; // L: 147
if (var12.definition.field1596 == var7.field1596) { // L: 148
var12.put(var2 + var4, var5, var6, var3); // L: 149
return; // L: 150
} }
HealthBarDefinition.HealthBarDefinition_cached.put(var8, (long)var1); // L: 164 if (var12.definition.int1 <= var7.int1) { // L: 152
var7 = var8; // L: 165 var8 = var12;
}
var8 = var7; // L: 167
HealthBar var14 = null; // L: 168
HealthBar var10 = null; // L: 169
int var11 = var7.int2; // L: 170
int var12 = 0; // L: 171
HealthBar var13;
for (var13 = (HealthBar)this.healthBars.last(); var13 != null; var13 = (HealthBar)this.healthBars.previous()) { // L: 172
++var12; // L: 173
if (var13.definition.field1597 == var8.field1597) { // L: 174
var13.put(var2 + var4, var5, var6, var3); // L: 175
return; // L: 176
} }
if (var13.definition.int1 <= var8.int1) { // L: 178 if (var12.definition.int2 > var10) { // L: 153
var14 = var13; var9 = var12; // L: 154
} var10 = var12.definition.int2; // L: 155
if (var13.definition.int2 > var11) { // L: 179
var10 = var13; // L: 180
var11 = var13.definition.int2; // L: 181
} }
} }
if (var10 != null || var12 < 4) { // L: 184 if (var9 != null || var11 < 4) { // L: 158
var13 = new HealthBar(var8); // L: 185 var12 = new HealthBar(var7); // L: 159
if (var14 == null) { // L: 186 if (var8 == null) { // L: 160
this.healthBars.addLast(var13); this.healthBars.addLast(var12);
} else { } else {
IterableNodeDeque.IterableNodeDeque_addBefore(var13, var14); // L: 187 IterableNodeDeque.IterableNodeDeque_addBefore(var12, var8); // L: 161
} }
var13.put(var2 + var4, var5, var6, var3); // L: 188 var12.put(var2 + var4, var5, var6, var3); // L: 162
if (var12 >= 4) { // L: 189 if (var11 >= 4) { // L: 163
var10.remove(); var9.remove();
} }
} }
} // L: 190 } // L: 164
@ObfuscatedName("bf") @ObfuscatedName("bp")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)V", descriptor = "(IB)V",
garbageValue = "-1438107880" garbageValue = "-36"
) )
@Export("removeHealthBar") @Export("removeHealthBar")
final void removeHealthBar(int var1) { final void removeHealthBar(int var1) {
HealthBarDefinition var3 = (HealthBarDefinition)HealthBarDefinition.HealthBarDefinition_cached.get((long)var1); // L: 195 HealthBarDefinition var2 = UserComparator6.method2492(var1); // L: 167
HealthBarDefinition var2;
if (var3 != null) { // L: 196
var2 = var3; // L: 197
} else {
byte[] var4 = HealthBarDefinition.HealthBarDefinition_archive.takeFile(33, var1); // L: 200
var3 = new HealthBarDefinition(); // L: 201
if (var4 != null) { // L: 202
var3.decode(new Buffer(var4));
}
HealthBarDefinition.HealthBarDefinition_cached.put(var3, (long)var1); // L: 203 for (HealthBar var3 = (HealthBar)this.healthBars.last(); var3 != null; var3 = (HealthBar)this.healthBars.previous()) { // L: 168
var2 = var3; // L: 204 if (var2 == var3.definition) { // L: 169
} var3.remove(); // L: 170
return; // L: 171
var3 = var2; // L: 206
for (HealthBar var5 = (HealthBar)this.healthBars.last(); var5 != null; var5 = (HealthBar)this.healthBars.previous()) { // L: 207
if (var3 == var5.definition) { // L: 208
var5.remove(); // L: 209
return; // L: 210
} }
} }
} // L: 213 } // L: 174
@ObfuscatedName("hg") @ObfuscatedName("o")
static final void method2191(long var0) {
ViewportMouse.ViewportMouse_entityTags[++ViewportMouse.ViewportMouse_entityCount - 1] = var0; // L: 108
} // L: 109
@ObfuscatedName("iz")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIZI)V", descriptor = "(ILjava/lang/String;I)V",
garbageValue = "-1704817926" garbageValue = "325868949"
) )
static final void method2199(int var0, int var1, boolean var2) { static void method2192(int var0, String var1) {
if (!var2 || var0 != MusicPatchNode2.field2827 || class11.field112 != var1) { // L: 5558 int var2 = Players.Players_count; // L: 8588
MusicPatchNode2.field2827 = var0; // L: 5561 int[] var3 = Players.Players_indices; // L: 8589
class11.field112 = var1; // L: 5562 boolean var4 = false; // L: 8590
Client.updateGameState(25); // L: 5563 Username var5 = new Username(var1, WorldMapSection0.loginType); // L: 8591
class7.drawLoadingMessage("Loading - please wait.", true); // L: 5564
int var3 = JagexCache.baseX; // L: 5565
int var4 = Messages.baseY; // L: 5566
JagexCache.baseX = (var0 - 6) * 8; // L: 5567
Messages.baseY = (var1 - 6) * 8; // L: 5568
int var5 = JagexCache.baseX - var3; // L: 5569
int var6 = Messages.baseY - var4; // L: 5570
var3 = JagexCache.baseX; // L: 5571
var4 = Messages.baseY; // L: 5572
int var7; for (int var6 = 0; var6 < var2; ++var6) { // L: 8592
int var9; Player var7 = Client.players[var3[var6]]; // L: 8593
int[] var10000; if (var7 != null && var7 != class93.localPlayer && var7.username != null && var7.username.equals(var5)) { // L: 8594
for (var7 = 0; var7 < 32768; ++var7) { // L: 5573 PacketBufferNode var8;
NPC var19 = Client.npcs[var7]; // L: 5574 if (var0 == 1) { // L: 8595
if (var19 != null) { // L: 5575 var8 = class21.getPacketBufferNode(ClientPacket.field2597, Client.packetWriter.isaacCipher); // L: 8597
for (var9 = 0; var9 < 10; ++var9) { // L: 5576 var8.packetBuffer.method6619(var3[var6]); // L: 8598
var10000 = var19.pathX; // L: 5577 var8.packetBuffer.method6584(0); // L: 8599
var10000[var9] -= var5; Client.packetWriter.addNode(var8); // L: 8600
var10000 = var19.pathY; // L: 5578 } else if (var0 == 4) { // L: 8602
var10000[var9] -= var6; var8 = class21.getPacketBufferNode(ClientPacket.field2605, Client.packetWriter.isaacCipher); // L: 8604
} var8.packetBuffer.method6619(var3[var6]); // L: 8605
var8.packetBuffer.method6584(0); // L: 8606
var19.x -= var5 * 128; // L: 5580 Client.packetWriter.addNode(var8); // L: 8607
var19.y -= var6 * 128; // L: 5581 } else if (var0 == 6) { // L: 8609
var8 = class21.getPacketBufferNode(ClientPacket.field2636, Client.packetWriter.isaacCipher); // L: 8611
var8.packetBuffer.method6581(0); // L: 8612
var8.packetBuffer.method6602(var3[var6]); // L: 8613
Client.packetWriter.addNode(var8); // L: 8614
} else if (var0 == 7) { // L: 8616
var8 = class21.getPacketBufferNode(ClientPacket.field2620, Client.packetWriter.isaacCipher); // L: 8618
var8.packetBuffer.writeByte(0); // L: 8619
var8.packetBuffer.method6602(var3[var6]); // L: 8620
Client.packetWriter.addNode(var8); // L: 8621
} }
var4 = true; // L: 8623
break;
} }
for (var7 = 0; var7 < 2048; ++var7) { // L: 5584
Player var22 = Client.players[var7]; // L: 5585
if (var22 != null) { // L: 5586
for (var9 = 0; var9 < 10; ++var9) { // L: 5587
var10000 = var22.pathX; // L: 5588
var10000[var9] -= var5;
var10000 = var22.pathY; // L: 5589
var10000[var9] -= var6;
}
var22.x -= var5 * 128; // L: 5591
var22.y -= var6 * 128; // L: 5592
}
}
byte var20 = 0; // L: 5595
byte var8 = 104; // L: 5596
byte var21 = 1; // L: 5597
if (var5 < 0) { // L: 5598
var20 = 103; // L: 5599
var8 = -1; // L: 5600
var21 = -1; // L: 5601
}
byte var10 = 0; // L: 5603
byte var11 = 104; // L: 5604
byte var12 = 1; // L: 5605
if (var6 < 0) { // L: 5606
var10 = 103; // L: 5607
var11 = -1; // L: 5608
var12 = -1; // L: 5609
}
int var14;
for (int var13 = var20; var13 != var8; var13 += var21) { // L: 5611
for (var14 = var10; var11 != var14; var14 += var12) { // L: 5612
int var15 = var13 + var5; // L: 5613
int var16 = var6 + var14; // L: 5614
for (int var17 = 0; var17 < 4; ++var17) { // L: 5615
if (var15 >= 0 && var16 >= 0 && var15 < 104 && var16 < 104) {
Client.groundItems[var17][var13][var14] = Client.groundItems[var17][var15][var16]; // L: 5616
} else {
Client.groundItems[var17][var13][var14] = null; // L: 5617
}
}
}
}
for (PendingSpawn var18 = (PendingSpawn)Client.pendingSpawns.last(); var18 != null; var18 = (PendingSpawn)Client.pendingSpawns.previous()) { // L: 5621 5622 5626
var18.x -= var5; // L: 5623
var18.y -= var6; // L: 5624
if (var18.x < 0 || var18.y < 0 || var18.x >= 104 || var18.y >= 104) { // L: 5625
var18.remove();
}
}
if (Client.destinationX != 0) { // L: 5628
Client.destinationX -= var5; // L: 5629
Client.destinationY -= var6; // L: 5630
}
Client.soundEffectCount = 0; // L: 5632
Client.isCameraLocked = false; // L: 5633
class20.cameraX -= var5 << 7; // L: 5634
WorldMapDecoration.cameraZ -= var6 << 7; // L: 5635
HorizontalAlignment.oculusOrbFocalPointX -= var5 << 7; // L: 5636
class280.oculusOrbFocalPointY -= var6 << 7; // L: 5637
Client.field848 = -1; // L: 5638
Client.graphicsObjects.clear(); // L: 5639
Client.projectiles.clear(); // L: 5640
for (var14 = 0; var14 < 4; ++var14) { // L: 5641
Client.collisionMaps[var14].clear();
}
} }
} // L: 5559 5642
if (!var4) { // L: 8627
World.addGameMessage(4, "", "Unable to find " + var1);
}
} // L: 8628
} }

View File

@@ -3,51 +3,51 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("gx") @ObfuscatedName("gu")
@Implements("Animation") @Implements("Animation")
public class Animation { public class Animation {
@ObfuscatedName("h") @ObfuscatedName("v")
static int[] field2217; static int[] field2229;
@ObfuscatedName("c") @ObfuscatedName("n")
static int[] field2222; static int[] field2225;
@ObfuscatedName("o") @ObfuscatedName("f")
static int[] field2223; static int[] field2226;
@ObfuscatedName("g") @ObfuscatedName("y")
static int[] field2219; static int[] field2224;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lgn;" descriptor = "Lge;"
) )
@Export("skeleton") @Export("skeleton")
Skeleton skeleton; Skeleton skeleton;
@ObfuscatedName("z") @ObfuscatedName("j")
@Export("transformCount") @Export("transformCount")
int transformCount; int transformCount;
@ObfuscatedName("t") @ObfuscatedName("r")
@Export("transformSkeletonLabels") @Export("transformSkeletonLabels")
int[] transformSkeletonLabels; int[] transformSkeletonLabels;
@ObfuscatedName("v") @ObfuscatedName("b")
@Export("transformXs") @Export("transformXs")
int[] transformXs; int[] transformXs;
@ObfuscatedName("b") @ObfuscatedName("d")
@Export("transformYs") @Export("transformYs")
int[] transformYs; int[] transformYs;
@ObfuscatedName("q") @ObfuscatedName("s")
@Export("transformZs") @Export("transformZs")
int[] transformZs; int[] transformZs;
@ObfuscatedName("i") @ObfuscatedName("u")
@Export("hasAlphaTransform") @Export("hasAlphaTransform")
boolean hasAlphaTransform; boolean hasAlphaTransform;
static { static {
field2217 = new int[500]; // L: 8 field2229 = new int[500]; // L: 8
field2222 = new int[500]; // L: 9 field2225 = new int[500]; // L: 9
field2223 = new int[500]; // L: 10 field2226 = new int[500]; // L: 10
field2219 = new int[500]; // L: 11 field2224 = new int[500]; // L: 11
} }
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "([BLgn;)V" descriptor = "([BLge;)V"
) )
Animation(byte[] var1, Skeleton var2) { Animation(byte[] var1, Skeleton var2) {
this.skeleton = null; // L: 12 this.skeleton = null; // L: 12
@@ -69,38 +69,38 @@ public class Animation {
if (this.skeleton.transformTypes[var8] != 0) { // L: 32 if (this.skeleton.transformTypes[var8] != 0) { // L: 32
for (int var10 = var8 - 1; var10 > var6; --var10) { // L: 33 for (int var10 = var8 - 1; var10 > var6; --var10) { // L: 33
if (this.skeleton.transformTypes[var10] == 0) { // L: 34 if (this.skeleton.transformTypes[var10] == 0) { // L: 34
field2217[var7] = var10; // L: 35 field2229[var7] = var10; // L: 35
field2222[var7] = 0; // L: 36 field2225[var7] = 0; // L: 36
field2223[var7] = 0; // L: 37 field2226[var7] = 0; // L: 37
field2219[var7] = 0; // L: 38 field2224[var7] = 0; // L: 38
++var7; // L: 39 ++var7; // L: 39
break; break;
} }
} }
} }
field2217[var7] = var8; // L: 44 field2229[var7] = var8; // L: 44
short var11 = 0; // L: 45 short var11 = 0; // L: 45
if (this.skeleton.transformTypes[var8] == 3) { // L: 46 if (this.skeleton.transformTypes[var8] == 3) { // L: 46
var11 = 128; var11 = 128;
} }
if ((var9 & 1) != 0) { // L: 47 if ((var9 & 1) != 0) { // L: 47
field2222[var7] = var4.readShortSmart(); field2225[var7] = var4.readShortSmart();
} else { } else {
field2222[var7] = var11; // L: 48 field2225[var7] = var11; // L: 48
} }
if ((var9 & 2) != 0) { // L: 49 if ((var9 & 2) != 0) { // L: 49
field2223[var7] = var4.readShortSmart(); field2226[var7] = var4.readShortSmart();
} else { } else {
field2223[var7] = var11; // L: 50 field2226[var7] = var11; // L: 50
} }
if ((var9 & 4) != 0) { // L: 51 if ((var9 & 4) != 0) { // L: 51
field2219[var7] = var4.readShortSmart(); field2224[var7] = var4.readShortSmart();
} else { } else {
field2219[var7] = var11; // L: 52 field2224[var7] = var11; // L: 52
} }
var6 = var8; // L: 53 var6 = var8; // L: 53
@@ -121,10 +121,10 @@ public class Animation {
this.transformZs = new int[var7]; // L: 65 this.transformZs = new int[var7]; // L: 65
for (var8 = 0; var8 < var7; ++var8) { // L: 66 for (var8 = 0; var8 < var7; ++var8) { // L: 66
this.transformSkeletonLabels[var8] = field2217[var8]; // L: 67 this.transformSkeletonLabels[var8] = field2229[var8]; // L: 67
this.transformXs[var8] = field2222[var8]; // L: 68 this.transformXs[var8] = field2225[var8]; // L: 68
this.transformYs[var8] = field2223[var8]; // L: 69 this.transformYs[var8] = field2226[var8]; // L: 69
this.transformZs[var8] = field2219[var8]; // L: 70 this.transformZs[var8] = field2224[var8]; // L: 70
} }
} }

View File

@@ -1,127 +1,196 @@
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("bh") @ObfuscatedName("bb")
@Implements("ApproximateRouteStrategy") @Implements("ApproximateRouteStrategy")
public class ApproximateRouteStrategy extends RouteStrategy { public class ApproximateRouteStrategy extends RouteStrategy {
@ObfuscatedName("z") @ObfuscatedName("qx")
@Export("PcmPlayer_stereo") @ObfuscatedSignature(
protected static boolean PcmPlayer_stereo; descriptor = "Ly;"
)
@Export("guestClanChannel")
static ClanChannel guestClanChannel;
@ObfuscatedName("o")
@ObfuscatedGetter(
intValue = -344685783
)
static int field629;
ApproximateRouteStrategy() { ApproximateRouteStrategy() {
} // L: 11841 } // L: 11604
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIILfa;B)Z", descriptor = "(IIILfz;I)Z",
garbageValue = "2" garbageValue = "496202097"
) )
@Export("hasArrived") @Export("hasArrived")
public boolean hasArrived(int var1, int var2, int var3, CollisionMap var4) { protected boolean hasArrived(int var1, int var2, int var3, CollisionMap var4) {
return var2 == super.approxDestinationX && var3 == super.approxDestinationY; // L: 11844 return var2 == super.approxDestinationX && var3 == super.approxDestinationY; // L: 11607
} }
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Ljp;I)V", descriptor = "(II)Lcf;",
garbageValue = "450286187" garbageValue = "-26460885"
) )
public static void method1203(AbstractArchive var0) { @Export("getScript")
ParamComposition.ParamDefinition_archive = var0; // L: 21 static Script getScript(int var0) {
} // L: 22 Script var1 = (Script)Script.Script_cached.get((long)var0); // L: 26
if (var1 != null) { // L: 27
@ObfuscatedName("t") return var1;
@ObfuscatedSignature(
descriptor = "(Lbc;Lbc;IZI)I",
garbageValue = "-205185455"
)
@Export("compareWorlds")
static int compareWorlds(World var0, World var1, int var2, boolean var3) {
if (var2 == 1) { // L: 211
int var4 = var0.population; // L: 212
int var5 = var1.population; // L: 213
if (!var3) { // L: 214
if (var4 == -1) { // L: 215
var4 = 2001;
}
if (var5 == -1) { // L: 216
var5 = 2001;
}
}
return var4 - var5; // L: 218
} else if (var2 == 2) { // L: 220
return var0.location - var1.location;
} else if (var2 == 3) { // L: 221
if (var0.activity.equals("-")) { // L: 222
if (var1.activity.equals("-")) { // L: 223
return 0;
} else {
return var3 ? -1 : 1; // L: 224
}
} else if (var1.activity.equals("-")) { // L: 226
return var3 ? 1 : -1;
} else {
return var0.activity.compareTo(var1.activity); // L: 227
}
} else if (var2 == 4) { // L: 229
return var0.method1686() ? (var1.method1686() ? 0 : 1) : (var1.method1686() ? -1 : 0);
} else if (var2 == 5) { // L: 230
return var0.method1722() ? (var1.method1722() ? 0 : 1) : (var1.method1722() ? -1 : 0);
} else if (var2 == 6) { // L: 231
return var0.isPvp() ? (var1.isPvp() ? 0 : 1) : (var1.isPvp() ? -1 : 0);
} else if (var2 == 7) { // L: 232
return var0.isMembersOnly() ? (var1.isMembersOnly() ? 0 : 1) : (var1.isMembersOnly() ? -1 : 0);
} else { } else {
return var0.id - var1.id; // L: 233 byte[] var2 = UserComparator5.archive12.takeFile(var0, 0); // L: 28
if (var2 == null) { // L: 29
return null; // L: 30
} else {
var1 = UserList.newScript(var2); // L: 32
Script.Script_cached.put(var1, (long)var0); // L: 33
return var1; // L: 34
}
} }
} }
@ObfuscatedName("jb") @ObfuscatedName("kk")
@ObfuscatedSignature(
descriptor = "([Liv;Liv;ZI)V",
garbageValue = "1379988095"
)
@Export("revalidateWidgetScroll")
static void revalidateWidgetScroll(Widget[] var0, Widget var1, boolean var2) {
int var3 = var1.scrollWidth != 0 ? var1.scrollWidth * -734718787 * 1765836437 : var1.width * 1953969927 * -1078557001; // L: 10041
int var4 = var1.scrollHeight != 0 ? var1.scrollHeight * -58177491 * -1965471835 : var1.height * 962798585 * 761540169; // L: 10042
Login.resizeInterface(var0, var1.id, var3, var4, var2); // L: 10043
if (var1.children != null) { // L: 10044
Login.resizeInterface(var1.children, var1.id, var3, var4, var2);
}
InterfaceParent var5 = (InterfaceParent)Client.interfaceParents.get((long)var1.id); // L: 10045
if (var5 != null) {
Strings.method4801(var5.group, var3, var4, var2); // L: 10046
}
if (var1.contentType == 1337) { // L: 10047
}
} // L: 10048
@ObfuscatedName("kz")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)V", descriptor = "(II)V",
garbageValue = "436780499" garbageValue = "-1598600139"
) )
@Export("Widget_resetModelFrames") @Export("changeGameOptions")
static final void Widget_resetModelFrames(int var0) { static final void changeGameOptions(int var0) {
if (UserComparator8.loadInterface(var0)) { // L: 11110 class170.method3554(); // L: 10932
Widget[] var1 = Widget.Widget_interfaceComponents[var0]; // L: 11111 ClientPacket.method4354(); // L: 10933
int var1 = ClanSettings.VarpDefinition_get(var0).type; // L: 10934
if (var1 != 0) { // L: 10935
int var2 = Varps.Varps_main[var0]; // L: 10936
if (var1 == 1) { // L: 10937
if (var2 == 1) { // L: 10938
InterfaceParent.method2082(0.9D);
}
for (int var2 = 0; var2 < var1.length; ++var2) { // L: 11112 if (var2 == 2) { // L: 10939
Widget var3 = var1[var2]; // L: 11113 InterfaceParent.method2082(0.8D);
if (var3 != null) { // L: 11114 }
var3.modelFrame = 0; // L: 11115
var3.modelFrameCycle = 0; // L: 11116 if (var2 == 3) { // L: 10940
InterfaceParent.method2082(0.7D);
}
if (var2 == 4) { // L: 10941
InterfaceParent.method2082(0.6D);
}
}
if (var1 == 3) { // L: 10943
if (var2 == 0) { // L: 10944
PacketWriter.method2402(255);
}
if (var2 == 1) { // L: 10945
PacketWriter.method2402(192);
}
if (var2 == 2) { // L: 10946
PacketWriter.method2402(128);
}
if (var2 == 3) { // L: 10947
PacketWriter.method2402(64);
}
if (var2 == 4) { // L: 10948
PacketWriter.method2402(0);
}
}
if (var1 == 4) { // L: 10950
if (var2 == 0) { // L: 10951
WorldMapLabelSize.updateSoundEffectVolume(127);
}
if (var2 == 1) { // L: 10952
WorldMapLabelSize.updateSoundEffectVolume(96);
}
if (var2 == 2) { // L: 10953
WorldMapLabelSize.updateSoundEffectVolume(64);
}
if (var2 == 3) { // L: 10954
WorldMapLabelSize.updateSoundEffectVolume(32);
}
if (var2 == 4) { // L: 10955
WorldMapLabelSize.updateSoundEffectVolume(0);
}
}
if (var1 == 5) { // L: 10957
Client.leftClickOpensMenu = var2;
}
if (var1 == 6) { // L: 10958
Client.chatEffects = var2;
}
if (var1 == 9) { // L: 10959
Client.field912 = var2;
}
if (var1 == 10) { // L: 10960
if (var2 == 0) { // L: 10961
LoginPacket.method4373(127);
}
if (var2 == 1) { // L: 10962
LoginPacket.method4373(96);
}
if (var2 == 2) { // L: 10963
LoginPacket.method4373(64);
}
if (var2 == 3) { // L: 10964
LoginPacket.method4373(32);
}
if (var2 == 4) { // L: 10965
LoginPacket.method4373(0);
}
}
if (var1 == 17) { // L: 10967
Client.followerIndex = var2 & 65535; // L: 10968
}
AttackOption[] var3;
if (var1 == 18) { // L: 10970
var3 = new AttackOption[]{AttackOption.AttackOption_leftClickWhereAvailable, AttackOption.AttackOption_alwaysRightClick, AttackOption.AttackOption_dependsOnCombatLevels, AttackOption.AttackOption_hidden}; // L: 10973
Client.playerAttackOption = (AttackOption)Messages.findEnumerated(var3, var2); // L: 10975
if (Client.playerAttackOption == null) { // L: 10976
Client.playerAttackOption = AttackOption.AttackOption_dependsOnCombatLevels;
}
}
if (var1 == 19) { // L: 10978
if (var2 == -1) { // L: 10979
Client.combatTargetPlayerIndex = -1;
} else {
Client.combatTargetPlayerIndex = var2 & 2047; // L: 10980
}
}
if (var1 == 22) { // L: 10982
var3 = new AttackOption[]{AttackOption.AttackOption_leftClickWhereAvailable, AttackOption.AttackOption_alwaysRightClick, AttackOption.AttackOption_dependsOnCombatLevels, AttackOption.AttackOption_hidden}; // L: 10985
Client.npcAttackOption = (AttackOption)Messages.findEnumerated(var3, var2); // L: 10987
if (Client.npcAttackOption == null) { // L: 10988
Client.npcAttackOption = AttackOption.AttackOption_dependsOnCombatLevels;
} }
} }
} }
} // L: 11118 } // L: 10990
} }

View File

@@ -5,458 +5,432 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ji") @ObfuscatedName("jp")
@Implements("Archive") @Implements("Archive")
public class Archive extends AbstractArchive { public class Archive extends AbstractArchive {
@ObfuscatedName("b") @ObfuscatedName("d")
@Export("Archive_crc") @Export("Archive_crc")
static CRC32 Archive_crc; static CRC32 Archive_crc;
@ObfuscatedName("fs") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lek;" descriptor = "Llh;"
)
@Export("socketTask")
static Task socketTask;
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "Llw;"
) )
@Export("archiveDisk") @Export("archiveDisk")
ArchiveDisk archiveDisk; ArchiveDisk archiveDisk;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Llw;" descriptor = "Llh;"
) )
@Export("masterDisk") @Export("masterDisk")
ArchiveDisk masterDisk; ArchiveDisk masterDisk;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 549068495 intValue = 1695957245
) )
@Export("index") @Export("index")
int index; int index;
@ObfuscatedName("z") @ObfuscatedName("j")
volatile boolean field3586; volatile boolean field3571;
@ObfuscatedName("t") @ObfuscatedName("r")
boolean field3583; boolean field3572;
@ObfuscatedName("v") @ObfuscatedName("b")
@Export("validGroups") @Export("validGroups")
volatile boolean[] validGroups; volatile boolean[] validGroups;
@ObfuscatedName("q") @ObfuscatedName("s")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -780107283 intValue = -1472783963
) )
@Export("indexCrc") @Export("indexCrc")
int indexCrc; int indexCrc;
@ObfuscatedName("i") @ObfuscatedName("u")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 519027849 intValue = -2140198139
) )
@Export("indexVersion") @Export("indexVersion")
int indexVersion; int indexVersion;
@ObfuscatedName("x") @ObfuscatedName("l")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -228949089 intValue = 1353605799
) )
int field3588; int field3566;
static { static {
Archive_crc = new CRC32(); // L: 17 Archive_crc = new CRC32(); // L: 17
} }
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Llw;Llw;IZZZ)V" descriptor = "(Llh;Llh;IZZZ)V"
) )
public Archive(ArchiveDisk var1, ArchiveDisk var2, int var3, boolean var4, boolean var5, boolean var6) { public Archive(ArchiveDisk var1, ArchiveDisk var2, int var3, boolean var4, boolean var5, boolean var6) {
super(var4, var5); // L: 23 super(var4, var5); // L: 23
this.field3586 = false; this.field3571 = false; // L: 14
this.field3583 = false; this.field3572 = false; // L: 15
this.field3588 = -1; // L: 20 this.field3566 = -1; // L: 20
this.archiveDisk = var1; // L: 24 this.archiveDisk = var1; // L: 24
this.masterDisk = var2; // L: 25 this.masterDisk = var2; // L: 25
this.index = var3; // L: 26 this.index = var3; // L: 26
this.field3583 = var6; // L: 27 this.field3572 = var6; // L: 27
int var8 = this.index; // L: 29 class179.method3633(this, this.index); // L: 28
if (SecureRandomCallable.NetCache_reference != null) { // L: 31 } // L: 29
SecureRandomCallable.NetCache_reference.offset = var8 * 8 + 5; // L: 32
int var9 = SecureRandomCallable.NetCache_reference.readInt(); // L: 33
int var10 = SecureRandomCallable.NetCache_reference.readInt(); // L: 34
this.loadIndex(var9, var10); // L: 35
} else {
class25.requestNetFile((Archive)null, 255, 255, 0, (byte)0, true); // L: 38
NetCache.NetCache_archives[var8] = this; // L: 39
}
} // L: 41 @ObfuscatedName("v")
@ObfuscatedName("h")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)Z", descriptor = "(I)Z",
garbageValue = "1381527767" garbageValue = "212573310"
) )
public boolean method4822() { public boolean method4869() {
return this.field3586; // L: 44 return this.field3571; // L: 32
} }
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(B)I",
garbageValue = "475592211" garbageValue = "53"
) )
@Export("percentage") @Export("percentage")
public int percentage() { public int percentage() {
if (this.field3586) { // L: 48 if (this.field3571) { // L: 36
return 100; return 100;
} else if (super.groups != null) { // L: 49 } else if (super.groups != null) { // L: 37
return 99; return 99;
} else { } else {
int var2 = this.index; // L: 51 int var1 = class125.method2502(255, this.index); // L: 38
long var3 = (long)(var2 + 16711680); // L: 53 if (var1 >= 100) { // L: 39
int var1; var1 = 99;
if (class7.NetCache_currentResponse != null && var3 == class7.NetCache_currentResponse.key) { // L: 54
var1 = NetCache.NetCache_responseArchiveBuffer.offset * 99 / (NetCache.NetCache_responseArchiveBuffer.array.length - class7.NetCache_currentResponse.padding) + 1; // L: 58
} else {
var1 = 0; // L: 55
} }
int var5 = var1; // L: 60 return var1; // L: 40
if (var1 >= 100) { // L: 61
var5 = 99;
}
return var5; // L: 62
} }
} }
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)V", descriptor = "(IB)V",
garbageValue = "-1103942204" garbageValue = "108"
) )
@Export("loadRegionFromGroup") @Export("loadRegionFromGroup")
void loadRegionFromGroup(int var1) { void loadRegionFromGroup(int var1) {
int var2 = this.index; // L: 66 class280.method5071(this.index, var1); // L: 44
long var3 = (long)((var2 << 16) + var1); // L: 68 } // L: 45
NetFileRequest var5 = (NetFileRequest)NetCache.NetCache_pendingWrites.get(var3); // L: 69
if (var5 != null) { // L: 70
NetCache.NetCache_pendingWritesQueue.addLast(var5); // L: 71
}
} // L: 73 @ObfuscatedName("y")
@ObfuscatedName("g")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)V", descriptor = "(IB)V",
garbageValue = "1184960922" garbageValue = "0"
) )
@Export("loadGroup") @Export("loadGroup")
void loadGroup(int var1) { void loadGroup(int var1) {
if (this.archiveDisk != null && this.validGroups != null && this.validGroups[var1]) { // L: 76 if (this.archiveDisk != null && this.validGroups != null && this.validGroups[var1]) { // L: 48
ArchiveDisk var2 = this.archiveDisk; // L: 77 ArchiveDisk var2 = this.archiveDisk; // L: 49
byte[] var4 = null; // L: 80 byte[] var4 = null; // L: 52
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 53
for (ArchiveDiskAction var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var6 != null; var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) { // L: 54
if (var6.key == (long)var1 && var2 == var6.archiveDisk && var6.type == 0) { // L: 55
var4 = var6.data; // L: 56
break; // L: 57
}
}
}
if (var4 != null) { // L: 61
this.load(var2, var1, var4, true); // L: 62
} else {
byte[] var5 = var2.read(var1); // L: 65
this.load(var2, var1, var5, true); // L: 66
}
} else {
DirectByteArrayCopier.requestNetFile(this, this.index, var1, super.groupCrcs[var1], (byte)2, true); // L: 69
}
} // L: 70
@ObfuscatedName("p")
@ObfuscatedSignature(
descriptor = "(III)V",
garbageValue = "-887756709"
)
@Export("loadIndex")
public void loadIndex(int var1, int var2) {
this.indexCrc = var1; // L: 73
this.indexVersion = var2; // L: 74
if (this.masterDisk != null) { // L: 75
int var3 = this.index; // L: 76
ArchiveDisk var4 = this.masterDisk; // L: 77
byte[] var6 = null; // L: 80
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 81 synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 81
for (ArchiveDiskAction var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var6 != null; var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) { // L: 82 for (ArchiveDiskAction var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var8 != null; var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) { // L: 82
if (var6.key == (long)var1 && var2 == var6.archiveDisk && var6.type == 0) { // L: 83 if ((long)var3 == var8.key && var4 == var8.archiveDisk && var8.type == 0) { // L: 83
var4 = var6.data; // L: 84 var6 = var8.data; // L: 84
break; // L: 85 break; // L: 85
} }
} }
} }
if (var4 != null) { // L: 89 if (var6 != null) { // L: 89
this.load(var2, var1, var4, true); // L: 90 this.load(var4, var3, var6, true); // L: 90
} else { } else {
byte[] var5 = var2.read(var1); // L: 93 byte[] var7 = var4.read(var3); // L: 93
this.load(var2, var1, var5, true); // L: 94 this.load(var4, var3, var7, true); // L: 94
} }
} else { } else {
class25.requestNetFile(this, this.index, var1, super.groupCrcs[var1], (byte)2, true); // L: 97 DirectByteArrayCopier.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 97
} }
} // L: 98 } // L: 98
@ObfuscatedName("l") @ObfuscatedName("j")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIB)V", descriptor = "(I[BZZI)V",
garbageValue = "-29" garbageValue = "525734565"
) )
@Export("loadIndex") @Export("write")
void loadIndex(int var1, int var2) { public void write(int var1, byte[] var2, boolean var3, boolean var4) {
this.indexCrc = var1; // L: 101 if (var3) { // L: 101
this.indexVersion = var2; // L: 102 if (this.field3571) { // L: 102
if (this.masterDisk != null) { // L: 103 throw new RuntimeException(); // L: 103
int var3 = this.index; // L: 104 }
ArchiveDisk var4 = this.masterDisk; // L: 105
byte[] var6 = null; // L: 108 if (this.masterDisk != null) { // L: 105
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 109 int var5 = this.index; // L: 106
for (ArchiveDiskAction var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var8 != null; var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) { // L: 110 ArchiveDisk var6 = this.masterDisk; // L: 107
if ((long)var3 == var8.key && var4 == var8.archiveDisk && var8.type == 0) { // L: 111 ArchiveDiskAction var7 = new ArchiveDiskAction(); // L: 109
var6 = var8.data; // L: 112 var7.type = 0; // L: 110
break; // L: 113 var7.key = (long)var5; // L: 111
var7.data = var2; // L: 112
var7.archiveDisk = var6; // L: 113
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 114
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var7); // L: 115
} // L: 116
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_lock) { // L: 118
if (ArchiveDiskActionHandler.field3562 == 0) { // L: 119
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread = new Thread(new ArchiveDiskActionHandler()); // L: 120
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setDaemon(true); // L: 121
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.start(); // L: 122
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setPriority(5); // L: 123
}
ArchiveDiskActionHandler.field3562 = 600; // L: 125
}
}
this.decodeIndex(var2); // L: 130
this.loadAllLocal(); // L: 131
} else {
var2[var2.length - 2] = (byte)(super.groupVersions[var1] >> 8); // L: 134
var2[var2.length - 1] = (byte)super.groupVersions[var1]; // L: 135
if (this.archiveDisk != null) { // L: 136
ArchiveDisk var13 = this.archiveDisk; // L: 137
ArchiveDiskAction var18 = new ArchiveDiskAction(); // L: 139
var18.type = 0; // L: 140
var18.key = (long)var1; // L: 141
var18.data = var2; // L: 142
var18.archiveDisk = var13; // L: 143
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 144
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var18); // L: 145
} // L: 146
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_lock) { // L: 148
if (ArchiveDiskActionHandler.field3562 == 0) { // L: 149
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread = new Thread(new ArchiveDiskActionHandler()); // L: 150
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setDaemon(true); // L: 151
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.start(); // L: 152
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setPriority(5); // L: 153
}
ArchiveDiskActionHandler.field3562 = 600; // L: 155
}
this.validGroups[var1] = true; // L: 159
}
if (var4) { // L: 161
super.groups[var1] = GrandExchangeOfferWorldComparator.method5079(var2, false);
}
}
} // L: 163
@ObfuscatedName("r")
@ObfuscatedSignature(
descriptor = "(Llh;I[BZB)V",
garbageValue = "-59"
)
@Export("load")
public void load(ArchiveDisk var1, int var2, byte[] var3, boolean var4) {
int var5;
if (var1 == this.masterDisk) { // L: 166
if (this.field3571) { // L: 167
throw new RuntimeException(); // L: 168
} else if (var3 == null) { // L: 170
DirectByteArrayCopier.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 171
} else {
Archive_crc.reset(); // L: 174
Archive_crc.update(var3, 0, var3.length); // L: 175
var5 = (int)Archive_crc.getValue(); // L: 176
if (var5 != this.indexCrc) { // L: 177
DirectByteArrayCopier.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 178
} else {
Buffer var9 = new Buffer(UserComparator6.decompressBytes(var3)); // L: 181
int var7 = var9.readUnsignedByte(); // L: 182
if (var7 != 5 && var7 != 6) { // L: 183
throw new RuntimeException(var7 + "," + this.index + "," + var2);
} else {
int var8 = 0; // L: 184
if (var7 >= 6) { // L: 185
var8 = var9.readInt();
}
if (var8 != this.indexVersion) { // L: 186
DirectByteArrayCopier.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 187
} else {
this.decodeIndex(var3); // L: 190
this.loadAllLocal(); // L: 191
}
} }
} }
} }
} else {
if (!var4 && var2 == this.field3566) { // L: 194
this.field3571 = true; // L: 195
}
if (var6 != null) { // L: 117 if (var3 != null && var3.length > 2) { // L: 197
this.load(var4, var3, var6, true); // L: 118 Archive_crc.reset(); // L: 202
Archive_crc.update(var3, 0, var3.length - 2); // L: 203
var5 = (int)Archive_crc.getValue(); // L: 204
int var6 = ((var3[var3.length - 2] & 255) << 8) + (var3[var3.length - 1] & 255); // L: 205
if (var5 == super.groupCrcs[var2] && var6 == super.groupVersions[var2]) { // L: 206
this.validGroups[var2] = true; // L: 211
if (var4) { // L: 212
super.groups[var2] = GrandExchangeOfferWorldComparator.method5079(var3, false);
}
} else {
this.validGroups[var2] = false; // L: 207
if (this.field3572 || var4) { // L: 208
DirectByteArrayCopier.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4);
}
}
} else { } else {
byte[] var7 = var4.read(var3); // L: 121 this.validGroups[var2] = false; // L: 198
this.load(var4, var3, var7, true); // L: 122 if (this.field3572 || var4) { // L: 199
} DirectByteArrayCopier.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4);
} else {
class25.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 125
}
} // L: 126
@ObfuscatedName("z")
@ObfuscatedSignature(
descriptor = "(I[BZZS)V",
garbageValue = "-32096"
)
@Export("write")
void write(int var1, byte[] var2, boolean var3, boolean var4) {
if (var3) { // L: 129
if (this.field3586) { // L: 130
throw new RuntimeException(); // L: 131
}
if (this.masterDisk != null) { // L: 133
int var5 = this.index; // L: 134
ArchiveDisk var6 = this.masterDisk; // L: 135
ArchiveDiskAction var7 = new ArchiveDiskAction(); // L: 137
var7.type = 0; // L: 138
var7.key = (long)var5; // L: 139
var7.data = var2; // L: 140
var7.archiveDisk = var6; // L: 141
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 142
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var7); // L: 143
} // L: 144
class43.method486(); // L: 145
}
this.decodeIndex(var2); // L: 148
this.loadAllLocal(); // L: 149
} else {
var2[var2.length - 2] = (byte)(super.groupVersions[var1] >> 8); // L: 152
var2[var2.length - 1] = (byte)super.groupVersions[var1]; // L: 153
if (this.archiveDisk != null) { // L: 154
ArchiveDisk var11 = this.archiveDisk; // L: 155
ArchiveDiskAction var14 = new ArchiveDiskAction(); // L: 157
var14.type = 0; // L: 158
var14.key = (long)var1; // L: 159
var14.data = var2; // L: 160
var14.archiveDisk = var11; // L: 161
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 162
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var14); // L: 163
} // L: 164
class43.method486(); // L: 165
this.validGroups[var1] = true; // L: 167
}
if (var4) {
super.groups[var1] = class34.method388(var2, false); // L: 169
}
}
} // L: 171
@ObfuscatedName("t")
@ObfuscatedSignature(
descriptor = "(Llw;I[BZI)V",
garbageValue = "-1720270185"
)
@Export("load")
void load(ArchiveDisk var1, int var2, byte[] var3, boolean var4) {
int var5;
if (var1 == this.masterDisk) { // L: 174
if (this.field3586) { // L: 175
throw new RuntimeException(); // L: 176
}
if (var3 == null) { // L: 178
class25.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 179
return; // L: 180
}
Archive_crc.reset(); // L: 182
Archive_crc.update(var3, 0, var3.length); // L: 183
var5 = (int)Archive_crc.getValue(); // L: 184
if (var5 != this.indexCrc) { // L: 185
class25.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 186
return; // L: 187
}
Buffer var9 = new Buffer(ObjectSound.decompressBytes(var3)); // L: 189
int var7 = var9.readUnsignedByte(); // L: 190
if (var7 != 5 && var7 != 6) { // L: 191
throw new RuntimeException(var7 + "," + this.index + "," + var2);
}
int var8 = 0; // L: 192
if (var7 >= 6) { // L: 193
var8 = var9.readInt();
}
if (var8 != this.indexVersion) { // L: 194
class25.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 195
return; // L: 196
}
this.decodeIndex(var3); // L: 198
this.loadAllLocal(); // L: 199
} else {
if (!var4 && var2 == this.field3588) { // L: 202
this.field3586 = true; // L: 203
}
if (var3 == null || var3.length <= 2) { // L: 205
this.validGroups[var2] = false; // L: 206
if (this.field3583 || var4) { // L: 207
class25.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4);
} }
return; // L: 208
}
Archive_crc.reset(); // L: 210
Archive_crc.update(var3, 0, var3.length - 2); // L: 211
var5 = (int)Archive_crc.getValue(); // L: 212
int var6 = ((var3[var3.length - 2] & 255) << 8) + (var3[var3.length - 1] & 255); // L: 213
if (var5 != super.groupCrcs[var2] || var6 != super.groupVersions[var2]) { // L: 214
this.validGroups[var2] = false; // L: 215
if (this.field3583 || var4) { // L: 216
class25.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4);
}
return; // L: 217
}
this.validGroups[var2] = true; // L: 219
if (var4) { // L: 220
super.groups[var2] = class34.method388(var3, false);
} }
} }
} // L: 172 179 188 200 209 214
} // L: 222
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-117239087"
)
@Export("loadAllLocal")
void loadAllLocal() {
this.validGroups = new boolean[super.groups.length]; // L: 225
int var1;
for (var1 = 0; var1 < this.validGroups.length; ++var1) { // L: 226
this.validGroups[var1] = false;
}
if (this.archiveDisk == null) { // L: 227
this.field3586 = true; // L: 228
} else {
this.field3588 = -1; // L: 231
for (var1 = 0; var1 < this.validGroups.length; ++var1) { // L: 232
if (super.fileCounts[var1] > 0) { // L: 233
GrandExchangeOfferNameComparator.method4987(var1, this.archiveDisk, this); // L: 234
this.field3588 = var1; // L: 235
}
}
if (this.field3588 == -1) { // L: 238
this.field3586 = true;
}
}
} // L: 229 239
@ObfuscatedName("b") @ObfuscatedName("b")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-2113858228"
)
@Export("loadAllLocal")
void loadAllLocal() {
this.validGroups = new boolean[super.groups.length]; // L: 217
int var1;
for (var1 = 0; var1 < this.validGroups.length; ++var1) { // L: 218
this.validGroups[var1] = false;
}
if (this.archiveDisk == null) { // L: 219
this.field3571 = true; // L: 220
} else {
this.field3566 = -1; // L: 223
for (var1 = 0; var1 < this.validGroups.length; ++var1) { // L: 224
if (super.fileCounts[var1] > 0) { // L: 225
ArchiveDisk var2 = this.archiveDisk; // L: 226
ArchiveDiskAction var4 = new ArchiveDiskAction(); // L: 229
var4.type = 1; // L: 230
var4.key = (long)var1; // L: 231
var4.archiveDisk = var2; // L: 232
var4.archive = this; // L: 233
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 234
ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var4); // L: 235
} // L: 236
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_lock) { // L: 238
if (ArchiveDiskActionHandler.field3562 == 0) { // L: 239
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread = new Thread(new ArchiveDiskActionHandler()); // L: 240
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setDaemon(true); // L: 241
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.start(); // L: 242
ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setPriority(5); // L: 243
}
ArchiveDiskActionHandler.field3562 = 600; // L: 245
}
this.field3566 = var1; // L: 249
}
}
if (this.field3566 == -1) { // L: 252
this.field3571 = true;
}
}
} // L: 221 253
@ObfuscatedName("d")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)I", descriptor = "(II)I",
garbageValue = "-1290183138" garbageValue = "-1767586109"
) )
@Export("groupLoadPercent") @Export("groupLoadPercent")
int groupLoadPercent(int var1) { int groupLoadPercent(int var1) {
if (super.groups[var1] != null) { // L: 242 if (super.groups[var1] != null) { // L: 256
return 100;
} else if (this.validGroups[var1]) { // L: 243
return 100; return 100;
} else { } else {
int var3 = this.index; // L: 245 return this.validGroups[var1] ? 100 : class125.method2502(this.index, var1); // L: 257 258
long var4 = (long)((var3 << 16) + var1); // L: 247
int var2;
if (class7.NetCache_currentResponse != null && var4 == class7.NetCache_currentResponse.key) { // L: 248
var2 = NetCache.NetCache_responseArchiveBuffer.offset * 99 / (NetCache.NetCache_responseArchiveBuffer.array.length - class7.NetCache_currentResponse.padding) + 1; // L: 252
} else {
var2 = 0; // L: 249
}
return var2; // L: 254
} }
} }
@ObfuscatedName("q") @ObfuscatedName("s")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)Z", descriptor = "(II)Z",
garbageValue = "1085562127" garbageValue = "510058915"
) )
public boolean method4831(int var1) { public boolean method4884(int var1) {
return this.validGroups[var1]; // L: 258 return this.validGroups[var1]; // L: 262
} }
@ObfuscatedName("i") @ObfuscatedName("u")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IB)Z", descriptor = "(II)Z",
garbageValue = "123" garbageValue = "-1677083054"
) )
public boolean method4842(int var1) { public boolean method4887(int var1) {
return this.getGroupFileIds(var1) != null; // L: 262 return this.getGroupFileIds(var1) != null; // L: 266
} }
@ObfuscatedName("x") @ObfuscatedName("l")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)I", descriptor = "(I)I",
garbageValue = "-55" garbageValue = "-1371864603"
) )
@Export("loadPercent") @Export("loadPercent")
public int loadPercent() { public int loadPercent() {
int var1 = 0; // L: 266 int var1 = 0; // L: 270
int var2 = 0; // L: 267 int var2 = 0; // L: 271
int var3; int var3;
for (var3 = 0; var3 < super.groups.length; ++var3) { // L: 268 for (var3 = 0; var3 < super.groups.length; ++var3) { // L: 272
if (super.fileCounts[var3] > 0) { // L: 269 if (super.fileCounts[var3] > 0) { // L: 273
var1 += 100; // L: 270 var1 += 100; // L: 274
var2 += this.groupLoadPercent(var3); // L: 271 var2 += this.groupLoadPercent(var3); // L: 275
} }
} }
if (var1 == 0) { // L: 274 if (var1 == 0) { // L: 278
return 100; return 100;
} else { } else {
var3 = var2 * 100 / var1; // L: 275 var3 = var2 * 100 / var1; // L: 279
return var3; // L: 276 return var3; // L: 280
} }
} }
@ObfuscatedName("h")
@ObfuscatedSignature(
descriptor = "(S)J",
garbageValue = "6233"
)
@Export("currentTimeMillis")
public static final synchronized long currentTimeMillis() {
long var0 = System.currentTimeMillis(); // L: 14
if (var0 < class379.field4152) { // L: 15
class379.field4153 += class379.field4152 - var0; // L: 16
}
class379.field4152 = var0; // L: 18
return var0 + class379.field4153; // L: 19
}
} }

View File

@@ -6,33 +6,38 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("lw") @ObfuscatedName("lh")
@Implements("ArchiveDisk") @Implements("ArchiveDisk")
public final class ArchiveDisk { public final class ArchiveDisk {
@ObfuscatedName("h") @ObfuscatedName("ru")
@ObfuscatedGetter(
intValue = 1117053017
)
static int field3886;
@ObfuscatedName("v")
@Export("ArchiveDisk_buffer") @Export("ArchiveDisk_buffer")
static byte[] ArchiveDisk_buffer; static byte[] ArchiveDisk_buffer;
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lne;" descriptor = "Lnf;"
) )
@Export("datFile") @Export("datFile")
BufferedFile datFile; BufferedFile datFile;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lne;" descriptor = "Lnf;"
) )
@Export("idxFile") @Export("idxFile")
BufferedFile idxFile; BufferedFile idxFile;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 827560813 intValue = 1496779987
) )
@Export("archive") @Export("archive")
int archive; int archive;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -780130401 intValue = 322921177
) )
@Export("maxEntrySize") @Export("maxEntrySize")
int maxEntrySize; int maxEntrySize;
@@ -42,7 +47,7 @@ public final class ArchiveDisk {
} }
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(ILne;Lne;I)V" descriptor = "(ILnf;Lnf;I)V"
) )
public ArchiveDisk(int var1, BufferedFile var2, BufferedFile var3, int var4) { public ArchiveDisk(int var1, BufferedFile var2, BufferedFile var3, int var4) {
this.datFile = null; // L: 8 this.datFile = null; // L: 8
@@ -54,10 +59,10 @@ public final class ArchiveDisk {
this.maxEntrySize = var4; // L: 17 this.maxEntrySize = var4; // L: 17
} // L: 18 } // L: 18
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)[B", descriptor = "(IB)[B",
garbageValue = "1429073742" garbageValue = "1"
) )
@Export("read") @Export("read")
public byte[] read(int var1) { public byte[] read(int var1) {
@@ -112,14 +117,14 @@ public final class ArchiveDisk {
} }
var13 = 8; // L: 53 var13 = 8; // L: 53
this.datFile.read(ArchiveDisk_buffer, 0, var13 + var8); // L: 54 this.datFile.read(ArchiveDisk_buffer, 0, var8 + var13); // L: 54
var9 = (ArchiveDisk_buffer[1] & 255) + ((ArchiveDisk_buffer[0] & 255) << 8); // L: 55 var9 = (ArchiveDisk_buffer[1] & 255) + ((ArchiveDisk_buffer[0] & 255) << 8); // L: 55
var10 = (ArchiveDisk_buffer[3] & 255) + ((ArchiveDisk_buffer[2] & 255) << 8); // L: 56 var10 = (ArchiveDisk_buffer[3] & 255) + ((ArchiveDisk_buffer[2] & 255) << 8); // L: 56
var11 = ((ArchiveDisk_buffer[5] & 255) << 8) + ((ArchiveDisk_buffer[4] & 255) << 16) + (ArchiveDisk_buffer[6] & 255); // L: 57 var11 = ((ArchiveDisk_buffer[5] & 255) << 8) + ((ArchiveDisk_buffer[4] & 255) << 16) + (ArchiveDisk_buffer[6] & 255); // L: 57
var12 = ArchiveDisk_buffer[7] & 255; // L: 58 var12 = ArchiveDisk_buffer[7] & 255; // L: 58
} }
if (var9 != var1 || var7 != var10 || var12 != this.archive) { // L: 60 if (var9 != var1 || var10 != var7 || var12 != this.archive) { // L: 60
var10000 = null; var10000 = null;
return (byte[])var10000; return (byte[])var10000;
} }
@@ -148,10 +153,10 @@ public final class ArchiveDisk {
} }
} }
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I[BII)Z", descriptor = "(I[BIB)Z",
garbageValue = "475877997" garbageValue = "77"
) )
@Export("write") @Export("write")
public boolean write(int var1, byte[] var2, int var3) { public boolean write(int var1, byte[] var2, int var3) {
@@ -169,10 +174,10 @@ public final class ArchiveDisk {
} }
} }
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I[BIZI)Z", descriptor = "(I[BIZI)Z",
garbageValue = "1891795807" garbageValue = "-1453784211"
) )
@Export("write0") @Export("write0")
boolean write0(int var1, byte[] var2, int var3, boolean var4) { boolean write0(int var1, byte[] var2, int var3, boolean var4) {
@@ -217,7 +222,7 @@ public final class ArchiveDisk {
int var9 = 0; // L: 112 int var9 = 0; // L: 112
int var10; int var10;
if (var4) { // L: 113 if (var4) { // L: 113
this.datFile.seek(520L * (long)var6); // L: 114 this.datFile.seek((long)var6 * 520L); // L: 114
int var11; int var11;
int var12; int var12;
if (var1 > 65535) { // L: 118 if (var1 > 65535) { // L: 118
@@ -262,7 +267,7 @@ public final class ArchiveDisk {
++var9; ++var9;
} }
if (var9 == var6) { // L: 149 if (var6 == var9) { // L: 149
++var9; ++var9;
} }
} }

View File

@@ -4,36 +4,35 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("jj") @ObfuscatedName("jy")
@Implements("ArchiveDiskAction") @Implements("ArchiveDiskAction")
public class ArchiveDiskAction extends Node { public class ArchiveDiskAction extends Node {
@ObfuscatedName("dz") @ObfuscatedName("dy")
@ObfuscatedSignature(
descriptor = "Llc;"
)
@Export("js5Socket")
static AbstractSocket js5Socket;
@ObfuscatedName("h")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1113782185 longValue = -6353355391446000035L
)
static long field3556;
@ObfuscatedName("v")
@ObfuscatedGetter(
intValue = -1287454433
) )
@Export("type") @Export("type")
int type; int type;
@ObfuscatedName("c") @ObfuscatedName("n")
@Export("data") @Export("data")
byte[] data; public byte[] data;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Llw;" descriptor = "Llh;"
) )
@Export("archiveDisk") @Export("archiveDisk")
ArchiveDisk archiveDisk; public ArchiveDisk archiveDisk;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lji;" descriptor = "Ljp;"
) )
@Export("archive") @Export("archive")
Archive archive; public Archive archive;
ArchiveDiskAction() { ArchiveDiskAction() {
} // L: 12 } // L: 12

View File

@@ -7,42 +7,34 @@ import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("jg") @ObfuscatedName("jg")
@Implements("ArchiveDiskActionHandler") @Implements("ArchiveDiskActionHandler")
public class ArchiveDiskActionHandler implements Runnable { public class ArchiveDiskActionHandler implements Runnable {
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lka;" descriptor = "Lkx;"
) )
@Export("ArchiveDiskActionHandler_requestQueue") @Export("ArchiveDiskActionHandler_requestQueue")
static NodeDeque ArchiveDiskActionHandler_requestQueue; public static NodeDeque ArchiveDiskActionHandler_requestQueue;
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lka;" descriptor = "Lkx;"
) )
@Export("ArchiveDiskActionHandler_responseQueue") @Export("ArchiveDiskActionHandler_responseQueue")
static NodeDeque ArchiveDiskActionHandler_responseQueue; public static NodeDeque ArchiveDiskActionHandler_responseQueue;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1281764183 intValue = 2106150539
) )
public static int field3574; static int field3562;
@ObfuscatedName("g") @ObfuscatedName("y")
@Export("ArchiveDiskActionHandler_lock") @Export("ArchiveDiskActionHandler_lock")
public static Object ArchiveDiskActionHandler_lock; static Object ArchiveDiskActionHandler_lock;
@ObfuscatedName("l") @ObfuscatedName("p")
@Export("ArchiveDiskActionHandler_thread") @Export("ArchiveDiskActionHandler_thread")
static Thread ArchiveDiskActionHandler_thread; static Thread ArchiveDiskActionHandler_thread;
@ObfuscatedName("z")
@Export("SpriteBuffer_spriteWidths")
public static int[] SpriteBuffer_spriteWidths;
@ObfuscatedName("d")
@ObfuscatedSignature(
descriptor = "Lx;"
)
static class11 field3575;
static { static {
ArchiveDiskActionHandler_requestQueue = new NodeDeque(); // L: 9 ArchiveDiskActionHandler_requestQueue = new NodeDeque(); // L: 9
ArchiveDiskActionHandler_responseQueue = new NodeDeque(); // L: 10 ArchiveDiskActionHandler_responseQueue = new NodeDeque(); // L: 10
field3574 = 0; // L: 11 field3562 = 0; // L: 11
ArchiveDiskActionHandler_lock = new Object(); ArchiveDiskActionHandler_lock = new Object();
} // L: 12 } // L: 12
@@ -53,47 +45,67 @@ public class ArchiveDiskActionHandler implements Runnable {
try { try {
while (true) { while (true) {
ArchiveDiskAction var1; ArchiveDiskAction var1;
synchronized(ArchiveDiskActionHandler_requestQueue) { // L: 56 synchronized(ArchiveDiskActionHandler_requestQueue) { // L: 21
var1 = (ArchiveDiskAction)ArchiveDiskActionHandler_requestQueue.last(); // L: 57 var1 = (ArchiveDiskAction)ArchiveDiskActionHandler_requestQueue.last(); // L: 22
} // L: 58 } // L: 23
if (var1 != null) { // L: 59 if (var1 != null) { // L: 24
if (var1.type == 0) { // L: 60 if (var1.type == 0) { // L: 25
var1.archiveDisk.write((int)var1.key, var1.data, var1.data.length); // L: 61 var1.archiveDisk.write((int)var1.key, var1.data, var1.data.length); // L: 26
synchronized(ArchiveDiskActionHandler_requestQueue) { // L: 62 synchronized(ArchiveDiskActionHandler_requestQueue) { // L: 27
var1.remove(); // L: 63 var1.remove(); // L: 28
} // L: 64 } // L: 29
} else if (var1.type == 1) { // L: 66 } else if (var1.type == 1) { // L: 31
var1.data = var1.archiveDisk.read((int)var1.key); // L: 67 var1.data = var1.archiveDisk.read((int)var1.key); // L: 32
synchronized(ArchiveDiskActionHandler_requestQueue) { // L: 68 synchronized(ArchiveDiskActionHandler_requestQueue) { // L: 33
ArchiveDiskActionHandler_responseQueue.addFirst(var1); // L: 69 ArchiveDiskActionHandler_responseQueue.addFirst(var1); // L: 34
} // L: 70 } // L: 35
} }
synchronized(ArchiveDiskActionHandler_lock) { // L: 72 synchronized(ArchiveDiskActionHandler_lock) { // L: 37
if (field3574 <= 1) { // L: 73 if (field3562 <= 1) { // L: 38
field3574 = 0; // L: 74 field3562 = 0; // L: 39
ArchiveDiskActionHandler_lock.notifyAll(); // L: 75 ArchiveDiskActionHandler_lock.notifyAll(); // L: 40
return; // L: 76 return; // L: 41
} }
field3574 = 600; // L: 78 field3562 = 600; // L: 43
} }
} else { } else {
UrlRequest.sleepExact(100L); // L: 82 long var8 = 99L; // L: 50
synchronized(ArchiveDiskActionHandler_lock) { // L: 83
if (field3574 <= 1) { // L: 84 try {
field3574 = 0; // L: 85 Thread.sleep(var8); // L: 53
ArchiveDiskActionHandler_lock.notifyAll(); // L: 86 } catch (InterruptedException var15) { // L: 55
return; // L: 87 }
try {
Thread.sleep(1L); // L: 59
} catch (InterruptedException var14) { // L: 61
}
synchronized(ArchiveDiskActionHandler_lock) { // L: 71
if (field3562 <= 1) { // L: 72
field3562 = 0; // L: 73
ArchiveDiskActionHandler_lock.notifyAll(); // L: 74
return; // L: 75
} }
--field3574; // L: 89 --field3562; // L: 77
} }
} }
} }
} catch (Exception var13) { // L: 94 } catch (Exception var17) { // L: 82
class27.RunException_sendStackTrace((String)null, var13); // L: 95 class266.RunException_sendStackTrace((String)null, var17); // L: 83
} }
} // L: 97 } // L: 85
@ObfuscatedName("n")
@ObfuscatedSignature(
descriptor = "(IB)V",
garbageValue = "13"
)
public static void method4867(int var0) {
MouseHandler.MouseHandler_idleCycles = var0; // L: 51
} // L: 52
} }

View File

@@ -4,30 +4,41 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ct") @ObfuscatedName("ck")
@Implements("ArchiveLoader") @Implements("ArchiveLoader")
public class ArchiveLoader { public class ArchiveLoader {
@ObfuscatedName("c") @ObfuscatedName("m")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lji;" descriptor = "Ly;"
)
static ClanChannel field1147;
@ObfuscatedName("ho")
@ObfuscatedSignature(
descriptor = "[Loh;"
)
@Export("crossSprites")
static SpritePixels[] crossSprites;
@ObfuscatedName("n")
@ObfuscatedSignature(
descriptor = "Ljp;"
) )
@Export("archive") @Export("archive")
final Archive archive; final Archive archive;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -907537521 intValue = 605141689
) )
@Export("groupCount") @Export("groupCount")
final int groupCount; final int groupCount;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1059334553 intValue = -1897441913
) )
@Export("loadedCount") @Export("loadedCount")
int loadedCount; int loadedCount;
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lji;Ljava/lang/String;)V" descriptor = "(Ljp;Ljava/lang/String;)V"
) )
ArchiveLoader(Archive var1, String var2) { ArchiveLoader(Archive var1, String var2) {
this.loadedCount = 0; // L: 9 this.loadedCount = 0; // L: 9
@@ -35,21 +46,69 @@ public class ArchiveLoader {
this.groupCount = var1.getGroupCount(); // L: 13 this.groupCount = var1.getGroupCount(); // L: 13
} // L: 14 } // L: 14
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(S)Z", descriptor = "(B)Z",
garbageValue = "256" garbageValue = "14"
) )
@Export("isLoaded") @Export("isLoaded")
boolean isLoaded() { boolean isLoaded() {
this.loadedCount = 0; // L: 17 this.loadedCount = 0; // L: 17
for (int var1 = 0; var1 < this.groupCount; ++var1) { // L: 18 for (int var1 = 0; var1 < this.groupCount; ++var1) { // L: 18
if (!this.archive.method4842(var1) || this.archive.method4831(var1)) { // L: 19 if (!this.archive.method4887(var1) || this.archive.method4884(var1)) {
++this.loadedCount; ++this.loadedCount; // L: 19
} }
} }
return this.loadedCount >= this.groupCount; // L: 21 return this.loadedCount >= this.groupCount; // L: 21
} }
@ObfuscatedName("n")
@ObfuscatedSignature(
descriptor = "(II)Lei;",
garbageValue = "598444391"
)
@Export("StructDefinition_getStructDefinition")
public static StructComposition StructDefinition_getStructDefinition(int var0) {
StructComposition var1 = (StructComposition)StructComposition.StructDefinition_cached.get((long)var0); // L: 23
if (var1 != null) { // L: 24
return var1;
} else {
byte[] var2 = StructComposition.StructDefinition_archive.takeFile(34, var0); // L: 25
var1 = new StructComposition(); // L: 26
if (var2 != null) { // L: 27
var1.decode(new Buffer(var2));
}
var1.postDecode(); // L: 28
StructComposition.StructDefinition_cached.put(var1, (long)var0); // L: 29
return var1; // L: 30
}
}
@ObfuscatedName("a")
@ObfuscatedSignature(
descriptor = "(IIIIIIII)Z",
garbageValue = "1961168244"
)
static final boolean method2059(int var0, int var1, int var2, int var3, int var4, int var5, int var6) {
int var7 = ViewportMouse.ViewportMouse_y + var6; // L: 156
if (var7 < var0 && var7 < var1 && var7 < var2) { // L: 157
return false;
} else {
var7 = ViewportMouse.ViewportMouse_y - var6; // L: 158
if (var7 > var0 && var7 > var1 && var7 > var2) {
return false; // L: 159
} else {
var7 = ViewportMouse.ViewportMouse_x + var6; // L: 160
if (var7 < var3 && var7 < var4 && var7 < var5) { // L: 161
return false;
} else {
var7 = ViewportMouse.ViewportMouse_x - var6; // L: 162
return var7 <= var3 || var7 <= var4 || var7 <= var5; // L: 163
}
}
}
}
} }

View File

@@ -7,25 +7,25 @@ import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("dj") @ObfuscatedName("dj")
@Implements("AttackOption") @Implements("AttackOption")
public enum AttackOption implements Enumerated { public enum AttackOption implements Enumerated {
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Ldj;" descriptor = "Ldj;"
) )
@Export("AttackOption_dependsOnCombatLevels") @Export("AttackOption_dependsOnCombatLevels")
AttackOption_dependsOnCombatLevels(0), AttackOption_dependsOnCombatLevels(0),
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Ldj;" descriptor = "Ldj;"
) )
@Export("AttackOption_alwaysRightClick") @Export("AttackOption_alwaysRightClick")
AttackOption_alwaysRightClick(1), AttackOption_alwaysRightClick(1),
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Ldj;" descriptor = "Ldj;"
) )
@Export("AttackOption_leftClickWhereAvailable") @Export("AttackOption_leftClickWhereAvailable")
AttackOption_leftClickWhereAvailable(2), AttackOption_leftClickWhereAvailable(2),
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Ldj;" descriptor = "Ldj;"
) )
@@ -33,89 +33,33 @@ public enum AttackOption implements Enumerated {
AttackOption_hidden(3); AttackOption_hidden(3);
@ObfuscatedName("p") @ObfuscatedName("p")
@ObfuscatedSignature(
descriptor = "Lcb;"
)
@Export("loginScreenRunesAnimation")
static LoginScreenAnimation loginScreenRunesAnimation;
@ObfuscatedName("l")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1870134493 intValue = 198709193
) )
@Export("id") @Export("id")
final int id; final int id;
AttackOption(int var3) { AttackOption(int var3) {
this.id = var3; // L: 11799 this.id = var3; // L: 11562
} // L: 11800 } // L: 11563
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(I)I",
garbageValue = "-708237537" garbageValue = "-907662946"
) )
@Export("rsOrdinal") @Export("rsOrdinal")
public int rsOrdinal() { public int rsOrdinal() {
return this.id; // L: 11803 return this.id; // L: 11566
} }
@ObfuscatedName("h") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(II)Lem;", descriptor = "(IB)I",
garbageValue = "-1875014155" garbageValue = "-114"
)
@Export("getObjectDefinition")
public static ObjectComposition getObjectDefinition(int var0) {
ObjectComposition var1 = (ObjectComposition)ObjectComposition.ObjectDefinition_cached.get((long)var0); // L: 73
if (var1 != null) { // L: 74
return var1;
} else {
byte[] var2 = ObjectComposition.ObjectDefinition_archive.takeFile(6, var0); // L: 75
var1 = new ObjectComposition(); // L: 76
var1.id = var0; // L: 77
if (var2 != null) { // L: 78
var1.decode(new Buffer(var2));
}
var1.postDecode(); // L: 79
if (var1.isSolid) { // L: 80
var1.interactType = 0; // L: 81
var1.boolean1 = false; // L: 82
}
ObjectComposition.ObjectDefinition_cached.put(var1, (long)var0); // L: 84
return var1; // L: 85
}
}
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "(II)I",
garbageValue = "1497706067"
) )
@Export("Widget_unpackTargetMask") @Export("Widget_unpackTargetMask")
public static int Widget_unpackTargetMask(int var0) { public static int Widget_unpackTargetMask(int var0) {
return var0 >> 11 & 63; // L: 17 return var0 >> 11 & 63; // L: 13
}
@ObfuscatedName("z")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-1033303884"
)
static void method2286() {
Messages.Messages_channels.clear(); // L: 50
Messages.Messages_hashTable.clear(); // L: 51
Messages.Messages_queue.clear(); // L: 52
Messages.Messages_count = 0; // L: 53
} // L: 54
@ObfuscatedName("ie")
@ObfuscatedSignature(
descriptor = "(I)I",
garbageValue = "-918339029"
)
static final int method2285() {
return Client.menuOptionsCount - 1; // L: 9101
} }
} }

View File

@@ -3,154 +3,154 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("bi") @ObfuscatedName("bj")
@Implements("AudioFilter") @Implements("AudioFilter")
public class AudioFilter { public class AudioFilter {
@ObfuscatedName("z") @ObfuscatedName("j")
static float[][] field536; static float[][] field562;
@ObfuscatedName("t") @ObfuscatedName("r")
@Export("coefficients") @Export("coefficients")
static int[][] coefficients; static int[][] coefficients;
@ObfuscatedName("v")
static float field533;
@ObfuscatedName("b") @ObfuscatedName("b")
static float field561;
@ObfuscatedName("d")
@Export("forwardMultiplier") @Export("forwardMultiplier")
static int forwardMultiplier; static int forwardMultiplier;
@ObfuscatedName("h") @ObfuscatedName("v")
@Export("pairs") @Export("pairs")
int[] pairs; int[] pairs;
@ObfuscatedName("o") @ObfuscatedName("f")
int[][][] field529; int[][][] field556;
@ObfuscatedName("g") @ObfuscatedName("y")
int[][][] field528; int[][][] field565;
@ObfuscatedName("l") @ObfuscatedName("p")
int[] field525; int[] field558;
static { static {
field536 = new float[2][8]; // L: 13 field562 = new float[2][8]; // L: 13
coefficients = new int[2][8]; // L: 14 coefficients = new int[2][8]; // L: 14
} }
AudioFilter() { AudioFilter() {
this.pairs = new int[2]; // L: 8 this.pairs = new int[2]; // L: 8
this.field529 = new int[2][2][4]; // L: 10 this.field556 = new int[2][2][4]; // L: 10
this.field528 = new int[2][2][4]; // L: 11 this.field565 = new int[2][2][4]; // L: 11
this.field525 = new int[2]; // L: 12 this.field558 = new int[2]; // L: 12
} // L: 21 } // L: 21
@ObfuscatedName("h") @ObfuscatedName("v")
float method1113(int var1, int var2, float var3) { float method1087(int var1, int var2, float var3) {
float var4 = (float)this.field528[var1][0][var2] + var3 * (float)(this.field528[var1][1][var2] - this.field528[var1][0][var2]); // L: 24 float var4 = (float)this.field565[var1][0][var2] + var3 * (float)(this.field565[var1][1][var2] - this.field565[var1][0][var2]); // L: 24
var4 *= 0.0015258789F; // L: 25 var4 *= 0.0015258789F; // L: 25
return 1.0F - (float)Math.pow(10.0D, (double)(-var4 / 20.0F)); // L: 26 return 1.0F - (float)Math.pow(10.0D, (double)(-var4 / 20.0F)); // L: 26
} }
@ObfuscatedName("o") @ObfuscatedName("f")
float method1112(int var1, int var2, float var3) { float method1078(int var1, int var2, float var3) {
float var4 = (float)this.field529[var1][0][var2] + var3 * (float)(this.field529[var1][1][var2] - this.field529[var1][0][var2]); // L: 35 float var4 = (float)this.field556[var1][0][var2] + var3 * (float)(this.field556[var1][1][var2] - this.field556[var1][0][var2]); // L: 35
var4 *= 1.2207031E-4F; // L: 36 var4 *= 1.2207031E-4F; // L: 36
return normalize(var4); // L: 37 return normalize(var4); // L: 37
} }
@ObfuscatedName("g") @ObfuscatedName("y")
@Export("compute") @Export("compute")
int compute(int var1, float var2) { int compute(int var1, float var2) {
float var3; float var3;
if (var1 == 0) { // L: 41 if (var1 == 0) { // L: 41
var3 = (float)this.field525[0] + (float)(this.field525[1] - this.field525[0]) * var2; // L: 42 var3 = (float)this.field558[0] + (float)(this.field558[1] - this.field558[0]) * var2; // L: 42
var3 *= 0.0030517578F; // L: 43 var3 *= 0.0030517578F; // L: 43
field533 = (float)Math.pow(0.1D, (double)(var3 / 20.0F)); // L: 44 field561 = (float)Math.pow(0.1D, (double)(var3 / 20.0F)); // L: 44
forwardMultiplier = (int)(field533 * 65536.0F); // L: 45 forwardMultiplier = (int)(field561 * 65536.0F); // L: 45
} }
if (this.pairs[var1] == 0) { // L: 47 if (this.pairs[var1] == 0) { // L: 47
return 0; return 0;
} else { } else {
var3 = this.method1113(var1, 0, var2); // L: 48 var3 = this.method1087(var1, 0, var2); // L: 48
field536[var1][0] = -2.0F * var3 * (float)Math.cos((double)this.method1112(var1, 0, var2)); // L: 49 field562[var1][0] = -2.0F * var3 * (float)Math.cos((double)this.method1078(var1, 0, var2)); // L: 49
field536[var1][1] = var3 * var3; // L: 50 field562[var1][1] = var3 * var3; // L: 50
float[] var10000; float[] var10000;
int var4; int var4;
for (var4 = 1; var4 < this.pairs[var1]; ++var4) { // L: 51 for (var4 = 1; var4 < this.pairs[var1]; ++var4) { // L: 51
var3 = this.method1113(var1, var4, var2); // L: 52 var3 = this.method1087(var1, var4, var2); // L: 52
float var5 = -2.0F * var3 * (float)Math.cos((double)this.method1112(var1, var4, var2)); // L: 53 float var5 = -2.0F * var3 * (float)Math.cos((double)this.method1078(var1, var4, var2)); // L: 53
float var6 = var3 * var3; // L: 54 float var6 = var3 * var3; // L: 54
field536[var1][var4 * 2 + 1] = field536[var1][var4 * 2 - 1] * var6; // L: 55 field562[var1][var4 * 2 + 1] = field562[var1][var4 * 2 - 1] * var6; // L: 55
field536[var1][var4 * 2] = field536[var1][var4 * 2 - 1] * var5 + field536[var1][var4 * 2 - 2] * var6; // L: 56 field562[var1][var4 * 2] = field562[var1][var4 * 2 - 1] * var5 + field562[var1][var4 * 2 - 2] * var6; // L: 56
for (int var7 = var4 * 2 - 1; var7 >= 2; --var7) { // L: 57 for (int var7 = var4 * 2 - 1; var7 >= 2; --var7) { // L: 57
var10000 = field536[var1]; var10000 = field562[var1];
var10000[var7] += field536[var1][var7 - 1] * var5 + field536[var1][var7 - 2] * var6; var10000[var7] += field562[var1][var7 - 1] * var5 + field562[var1][var7 - 2] * var6;
} }
var10000 = field536[var1]; // L: 58 var10000 = field562[var1]; // L: 58
var10000[1] += field536[var1][0] * var5 + var6; var10000[1] += field562[var1][0] * var5 + var6;
var10000 = field536[var1]; // L: 59 var10000 = field562[var1]; // L: 59
var10000[0] += var5; var10000[0] += var5;
} }
if (var1 == 0) { // L: 61 if (var1 == 0) { // L: 61
for (var4 = 0; var4 < this.pairs[0] * 2; ++var4) { for (var4 = 0; var4 < this.pairs[0] * 2; ++var4) {
var10000 = field536[0]; var10000 = field562[0];
var10000[var4] *= field533; var10000[var4] *= field561;
} }
} }
for (var4 = 0; var4 < this.pairs[var1] * 2; ++var4) { // L: 62 for (var4 = 0; var4 < this.pairs[var1] * 2; ++var4) { // L: 62
coefficients[var1][var4] = (int)(field536[var1][var4] * 65536.0F); coefficients[var1][var4] = (int)(field562[var1][var4] * 65536.0F);
} }
return this.pairs[var1] * 2; // L: 63 return this.pairs[var1] * 2; // L: 63
} }
} }
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lnk;Lbw;)V" descriptor = "(Lnd;Lbt;)V"
) )
final void method1124(Buffer var1, SoundEnvelope var2) { final void method1080(Buffer var1, SoundEnvelope var2) {
int var3 = var1.readUnsignedByte(); // L: 67 int var3 = var1.readUnsignedByte(); // L: 67
this.pairs[0] = var3 >> 4; // L: 68 this.pairs[0] = var3 >> 4; // L: 68
this.pairs[1] = var3 & 15; // L: 69 this.pairs[1] = var3 & 15; // L: 69
if (var3 != 0) { // L: 70 if (var3 != 0) { // L: 70
this.field525[0] = var1.readUnsignedShort(); // L: 71 this.field558[0] = var1.readUnsignedShort(); // L: 71
this.field525[1] = var1.readUnsignedShort(); // L: 72 this.field558[1] = var1.readUnsignedShort(); // L: 72
int var7 = var1.readUnsignedByte(); // L: 73 int var7 = var1.readUnsignedByte(); // L: 73
int var5; int var5;
int var6; int var6;
for (var5 = 0; var5 < 2; ++var5) { // L: 74 for (var5 = 0; var5 < 2; ++var5) { // L: 74
for (var6 = 0; var6 < this.pairs[var5]; ++var6) { // L: 75 for (var6 = 0; var6 < this.pairs[var5]; ++var6) { // L: 75
this.field529[var5][0][var6] = var1.readUnsignedShort(); // L: 76 this.field556[var5][0][var6] = var1.readUnsignedShort(); // L: 76
this.field528[var5][0][var6] = var1.readUnsignedShort(); // L: 77 this.field565[var5][0][var6] = var1.readUnsignedShort(); // L: 77
} }
} }
for (var5 = 0; var5 < 2; ++var5) { // L: 80 for (var5 = 0; var5 < 2; ++var5) { // L: 80
for (var6 = 0; var6 < this.pairs[var5]; ++var6) { // L: 81 for (var6 = 0; var6 < this.pairs[var5]; ++var6) { // L: 81
if ((var7 & 1 << var5 * 4 << var6) != 0) { // L: 82 if ((var7 & 1 << var5 * 4 << var6) != 0) { // L: 82
this.field529[var5][1][var6] = var1.readUnsignedShort(); // L: 83 this.field556[var5][1][var6] = var1.readUnsignedShort(); // L: 83
this.field528[var5][1][var6] = var1.readUnsignedShort(); // L: 84 this.field565[var5][1][var6] = var1.readUnsignedShort(); // L: 84
} else { } else {
this.field529[var5][1][var6] = this.field529[var5][0][var6]; // L: 87 this.field556[var5][1][var6] = this.field556[var5][0][var6]; // L: 87
this.field528[var5][1][var6] = this.field528[var5][0][var6]; // L: 88 this.field565[var5][1][var6] = this.field565[var5][0][var6]; // L: 88
} }
} }
} }
if (var7 != 0 || this.field525[1] != this.field525[0]) { // L: 92 if (var7 != 0 || this.field558[1] != this.field558[0]) { // L: 92
var2.decodeSegments(var1); var2.decodeSegments(var1);
} }
} else { } else {
int[] var4 = this.field525; // L: 95 int[] var4 = this.field558; // L: 95
this.field525[1] = 0; // L: 96 this.field558[1] = 0; // L: 96
var4[0] = 0; // L: 97 var4[0] = 0; // L: 97
} }
} // L: 99 } // L: 99
@ObfuscatedName("c") @ObfuscatedName("n")
@Export("normalize") @Export("normalize")
static float normalize(float var0) { static float normalize(float var0) {
float var1 = 32.703197F * (float)Math.pow(2.0D, (double)var0); // L: 30 float var1 = 32.703197F * (float)Math.pow(2.0D, (double)var0); // L: 30

View File

@@ -3,12 +3,12 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("nq") @ObfuscatedName("nt")
@Implements("BZip2Decompressor") @Implements("BZip2Decompressor")
public final class BZip2Decompressor { public final class BZip2Decompressor {
@ObfuscatedName("v") @ObfuscatedName("b")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lnc;" descriptor = "Lnh;"
) )
@Export("BZip2Decompressor_state") @Export("BZip2Decompressor_state")
static BZip2State BZip2Decompressor_state; static BZip2State BZip2Decompressor_state;
@@ -17,7 +17,7 @@ public final class BZip2Decompressor {
BZip2Decompressor_state = new BZip2State(); // L: 13 BZip2Decompressor_state = new BZip2State(); // L: 13
} }
@ObfuscatedName("h") @ObfuscatedName("v")
@Export("BZip2Decompressor_decompress") @Export("BZip2Decompressor_decompress")
public static int BZip2Decompressor_decompress(byte[] var0, int var1, byte[] var2, int var3, int var4) { public static int BZip2Decompressor_decompress(byte[] var0, int var1, byte[] var2, int var3, int var4) {
synchronized(BZip2Decompressor_state) { // L: 20 synchronized(BZip2Decompressor_state) { // L: 20
@@ -29,7 +29,7 @@ public final class BZip2Decompressor {
BZip2Decompressor_state.bsLive = 0; // L: 26 BZip2Decompressor_state.bsLive = 0; // L: 26
BZip2Decompressor_state.bsBuff = 0; // L: 27 BZip2Decompressor_state.bsBuff = 0; // L: 27
BZip2Decompressor_state.nextBit_unused = 0; // L: 28 BZip2Decompressor_state.nextBit_unused = 0; // L: 28
BZip2Decompressor_state.field4172 = 0; // L: 29 BZip2Decompressor_state.field4177 = 0; // L: 29
BZip2Decompressor_decompress(BZip2Decompressor_state); // L: 30 BZip2Decompressor_decompress(BZip2Decompressor_state); // L: 30
var1 -= BZip2Decompressor_state.outputLength; // L: 31 var1 -= BZip2Decompressor_state.outputLength; // L: 31
BZip2Decompressor_state.inputArray = null; // L: 32 BZip2Decompressor_state.inputArray = null; // L: 32
@@ -38,21 +38,21 @@ public final class BZip2Decompressor {
} }
} }
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lnc;)V" descriptor = "(Lnh;)V"
) )
static void method6696(BZip2State var0) { static void method6788(BZip2State var0) {
byte var2 = var0.out_char; // L: 40 byte var2 = var0.out_char; // L: 40
int var3 = var0.su_rNToGo; // L: 41 int var3 = var0.su_rNToGo; // L: 41
int var4 = var0.nblocks_used; // L: 42 int var4 = var0.nblocks_used; // L: 42
int var5 = var0.su_ch2; // L: 43 int var5 = var0.su_ch2; // L: 43
int[] var6 = class313.BZip2Decompressor_block; // L: 44 int[] var6 = class375.BZip2Decompressor_block; // L: 44
int var7 = var0.field4188; // L: 45 int var7 = var0.field4195; // L: 45
byte[] var8 = var0.outputArray; // L: 46 byte[] var8 = var0.outputArray; // L: 46
int var9 = var0.next_out; // L: 47 int var9 = var0.next_out; // L: 47
int var10 = var0.outputLength; // L: 48 int var10 = var0.outputLength; // L: 48
int var12 = var0.field4200 + 1; // L: 50 int var12 = var0.field4174 + 1; // L: 50
label70: label70:
while (true) { while (true) {
@@ -148,25 +148,25 @@ public final class BZip2Decompressor {
break; // L: 73 break; // L: 73
} }
int var13 = var0.field4172; // L: 133 int var13 = var0.field4177; // L: 133
var0.field4172 += var10 - var10; // L: 134 var0.field4177 += var10 - var10; // L: 134
if (var0.field4172 < var13) { // L: 135 if (var0.field4177 < var13) { // L: 135
} }
var0.out_char = var2; // L: 136 var0.out_char = var2; // L: 136
var0.su_rNToGo = var3; // L: 137 var0.su_rNToGo = var3; // L: 137
var0.nblocks_used = var4; // L: 138 var0.nblocks_used = var4; // L: 138
var0.su_ch2 = var5; // L: 139 var0.su_ch2 = var5; // L: 139
class313.BZip2Decompressor_block = var6; // L: 140 class375.BZip2Decompressor_block = var6; // L: 140
var0.field4188 = var7; // L: 141 var0.field4195 = var7; // L: 141
var0.outputArray = var8; // L: 142 var0.outputArray = var8; // L: 142
var0.next_out = var9; // L: 143 var0.next_out = var9; // L: 143
var0.outputLength = var10; // L: 144 var0.outputLength = var10; // L: 144
} // L: 145 } // L: 145
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lnc;)V" descriptor = "(Lnh;)V"
) )
@Export("BZip2Decompressor_decompress") @Export("BZip2Decompressor_decompress")
static void BZip2Decompressor_decompress(BZip2State var0) { static void BZip2Decompressor_decompress(BZip2State var0) {
@@ -192,9 +192,9 @@ public final class BZip2Decompressor {
int[] var23 = null; // L: 170 int[] var23 = null; // L: 170
int[] var24 = null; // L: 171 int[] var24 = null; // L: 171
int[] var25 = null; // L: 172 int[] var25 = null; // L: 172
var0.blockSize100k = 880335031; // L: 173 var0.blockSize100k = -1565112471; // L: 173
if (class313.BZip2Decompressor_block == null) { // L: 174 if (class375.BZip2Decompressor_block == null) { // L: 174
class313.BZip2Decompressor_block = new int[var0.blockSize100k * -1894003104]; class375.BZip2Decompressor_block = new int[var0.blockSize100k * -162652768];
} }
boolean var26 = true; // L: 175 boolean var26 = true; // L: 175
@@ -430,7 +430,7 @@ public final class BZip2Decompressor {
} }
var10002 = var0.unzftab[var0.seqToUnseq[var1 & 255] & 255]++; // L: 396 var10002 = var0.unzftab[var0.seqToUnseq[var1 & 255] & 255]++; // L: 396
class313.BZip2Decompressor_block[var47] = var0.seqToUnseq[var1 & 255] & 255; // L: 397 class375.BZip2Decompressor_block[var47] = var0.seqToUnseq[var1 & 255] & 255; // L: 397
++var47; // L: 398 ++var47; // L: 398
if (var45 == 0) { // L: 399 if (var45 == 0) { // L: 399
++var43; // L: 400 ++var43; // L: 400
@@ -489,7 +489,7 @@ public final class BZip2Decompressor {
var10000 = var0.unzftab; // L: 332 var10000 = var0.unzftab; // L: 332
for (var10000[var1 & 255] += var48; var48 > 0; --var48) { // L: 333 336 for (var10000[var1 & 255] += var48; var48 > 0; --var48) { // L: 333 336
class313.BZip2Decompressor_block[var47] = var1 & 255; // L: 334 class375.BZip2Decompressor_block[var47] = var1 & 255; // L: 334
++var47; // L: 335 ++var47; // L: 335
} }
} }
@@ -509,22 +509,22 @@ public final class BZip2Decompressor {
} }
for (var36 = 0; var36 < var47; ++var36) { // L: 426 for (var36 = 0; var36 < var47; ++var36) { // L: 426
var1 = (byte)(class313.BZip2Decompressor_block[var36] & 255); // L: 427 var1 = (byte)(class375.BZip2Decompressor_block[var36] & 255); // L: 427
var10000 = class313.BZip2Decompressor_block; // L: 428 var10000 = class375.BZip2Decompressor_block; // L: 428
int var10001 = var0.cftab[var1 & 255]; int var10001 = var0.cftab[var1 & 255];
var10000[var10001] |= var36 << 8; var10000[var10001] |= var36 << 8;
var10002 = var0.cftab[var1 & 255]++; // L: 429 var10002 = var0.cftab[var1 & 255]++; // L: 429
} }
var0.field4188 = class313.BZip2Decompressor_block[var0.originalPointer] >> 8; // L: 431 var0.field4195 = class375.BZip2Decompressor_block[var0.originalPointer] >> 8; // L: 431
var0.nblocks_used = 0; // L: 432 var0.nblocks_used = 0; // L: 432
var0.field4188 = class313.BZip2Decompressor_block[var0.field4188]; // L: 433 var0.field4195 = class375.BZip2Decompressor_block[var0.field4195]; // L: 433
var0.su_ch2 = (byte)(var0.field4188 & 255); // L: 434 var0.su_ch2 = (byte)(var0.field4195 & 255); // L: 434
var0.field4188 >>= 8; // L: 436 var0.field4195 >>= 8; // L: 436
++var0.nblocks_used; // L: 437 ++var0.nblocks_used; // L: 437
var0.field4200 = var47; // L: 438 var0.field4174 = var47; // L: 438
method6696(var0); // L: 439 method6788(var0); // L: 439
if (var0.field4200 + 1 == var0.nblocks_used && var0.su_rNToGo == 0) { // L: 440 if (var0.field4174 + 1 == var0.nblocks_used && var0.su_rNToGo == 0) { // L: 440
var26 = true; var26 = true;
break; break;
} }
@@ -538,27 +538,27 @@ public final class BZip2Decompressor {
} }
} }
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lnc;)B" descriptor = "(Lnh;)B"
) )
@Export("BZip2Decompressor_readNextByte") @Export("BZip2Decompressor_readNextByte")
static byte BZip2Decompressor_readNextByte(BZip2State var0) { static byte BZip2Decompressor_readNextByte(BZip2State var0) {
return (byte)BZip2Decompressor_readBits(8, var0); // L: 447 return (byte)BZip2Decompressor_readBits(8, var0); // L: 447
} }
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lnc;)B" descriptor = "(Lnh;)B"
) )
@Export("BZip2Decompressor_readNextBit") @Export("BZip2Decompressor_readNextBit")
static byte BZip2Decompressor_readNextBit(BZip2State var0) { static byte BZip2Decompressor_readNextBit(BZip2State var0) {
return (byte)BZip2Decompressor_readBits(1, var0); // L: 451 return (byte)BZip2Decompressor_readBits(1, var0); // L: 451
} }
@ObfuscatedName("z") @ObfuscatedName("j")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(ILnc;)I" descriptor = "(ILnh;)I"
) )
@Export("BZip2Decompressor_readBits") @Export("BZip2Decompressor_readBits")
static int BZip2Decompressor_readBits(int var0, BZip2State var1) { static int BZip2Decompressor_readBits(int var0, BZip2State var1) {
@@ -576,9 +576,9 @@ public final class BZip2Decompressor {
return var2; // L: 460 return var2; // L: 460
} }
@ObfuscatedName("t") @ObfuscatedName("r")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lnc;)V" descriptor = "(Lnh;)V"
) )
@Export("makeMaps") @Export("makeMaps")
static void makeMaps(BZip2State var0) { static void makeMaps(BZip2State var0) {
@@ -593,7 +593,7 @@ public final class BZip2Decompressor {
} // L: 479 } // L: 479
@ObfuscatedName("v") @ObfuscatedName("b")
@Export("BZip2Decompressor_createHuffmanTables") @Export("BZip2Decompressor_createHuffmanTables")
static void BZip2Decompressor_createHuffmanTables(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) { static void BZip2Decompressor_createHuffmanTables(int[] var0, int[] var1, int[] var2, byte[] var3, int var4, int var5, int var6) {
int var7 = 0; // L: 486 int var7 = 0; // L: 486

View File

@@ -3,164 +3,164 @@ import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
@ObfuscatedName("nc") @ObfuscatedName("nh")
@Implements("BZip2State") @Implements("BZip2State")
public final class BZip2State { public final class BZip2State {
@ObfuscatedName("h") @ObfuscatedName("v")
final int field4182; final int field4171;
@ObfuscatedName("c") @ObfuscatedName("n")
final int field4197; final int field4161;
@ObfuscatedName("o") @ObfuscatedName("f")
final int field4162;
@ObfuscatedName("y")
final int field4186;
@ObfuscatedName("p")
final int field4164;
@ObfuscatedName("j")
final int field4165; final int field4165;
@ObfuscatedName("g") @ObfuscatedName("r")
final int field4166;
@ObfuscatedName("l")
final int field4167;
@ObfuscatedName("z")
final int field4192;
@ObfuscatedName("t")
@Export("inputArray") @Export("inputArray")
byte[] inputArray; byte[] inputArray;
@ObfuscatedName("v") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 121849623 intValue = 1851391215
) )
@Export("nextByte") @Export("nextByte")
int nextByte; int nextByte;
@ObfuscatedName("b") @ObfuscatedName("d")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1991745759 intValue = -1612509485
) )
@Export("nextBit_unused") @Export("nextBit_unused")
int nextBit_unused; int nextBit_unused;
@ObfuscatedName("q") @ObfuscatedName("s")
@Export("outputArray") @Export("outputArray")
byte[] outputArray; byte[] outputArray;
@ObfuscatedName("i") @ObfuscatedName("u")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 326697693 intValue = -1856584985
) )
@Export("next_out") @Export("next_out")
int next_out; int next_out;
@ObfuscatedName("x") @ObfuscatedName("l")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -262176685 intValue = -795709793
) )
@Export("outputLength") @Export("outputLength")
int outputLength; int outputLength;
@ObfuscatedName("k") @ObfuscatedName("o")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 226319063 intValue = -743824809
) )
int field4172; int field4177;
@ObfuscatedName("r") @ObfuscatedName("c")
@Export("out_char") @Export("out_char")
byte out_char; byte out_char;
@ObfuscatedName("p") @ObfuscatedName("e")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 2065877891 intValue = -1772899085
) )
@Export("su_rNToGo") @Export("su_rNToGo")
int su_rNToGo; int su_rNToGo;
@ObfuscatedName("a") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -899182977 intValue = -492240629
) )
@Export("bsBuff") @Export("bsBuff")
int bsBuff; int bsBuff;
@ObfuscatedName("e") @ObfuscatedName("a")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 772528539 intValue = -1723069525
) )
@Export("bsLive") @Export("bsLive")
int bsLive; int bsLive;
@ObfuscatedName("d") @ObfuscatedName("k")
@Export("blockSize100k") @Export("blockSize100k")
int blockSize100k; int blockSize100k;
@ObfuscatedName("u") @ObfuscatedName("m")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1960680631 intValue = -1146975777
) )
@Export("originalPointer") @Export("originalPointer")
int originalPointer; int originalPointer;
@ObfuscatedName("m") @ObfuscatedName("x")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1501531237 intValue = -1768365777
) )
int field4188; int field4195;
@ObfuscatedName("j") @ObfuscatedName("z")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1394480725 intValue = -2146251751
) )
@Export("su_ch2") @Export("su_ch2")
int su_ch2; int su_ch2;
@ObfuscatedName("f") @ObfuscatedName("w")
@Export("unzftab") @Export("unzftab")
int[] unzftab; int[] unzftab;
@ObfuscatedName("s") @ObfuscatedName("t")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -444065165 intValue = -985271003
) )
@Export("nblocks_used") @Export("nblocks_used")
int nblocks_used; int nblocks_used;
@ObfuscatedName("y") @ObfuscatedName("h")
@Export("cftab") @Export("cftab")
int[] cftab; int[] cftab;
@ObfuscatedName("n") @ObfuscatedName("i")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -243440813 intValue = -846985049
) )
@Export("nInUse") @Export("nInUse")
int nInUse; int nInUse;
@ObfuscatedName("ag") @ObfuscatedName("ae")
@Export("inUse") @Export("inUse")
boolean[] inUse; boolean[] inUse;
@ObfuscatedName("ae") @ObfuscatedName("ap")
@Export("inUse16") @Export("inUse16")
boolean[] inUse16; boolean[] inUse16;
@ObfuscatedName("ao") @ObfuscatedName("ab")
@Export("seqToUnseq") @Export("seqToUnseq")
byte[] seqToUnseq; byte[] seqToUnseq;
@ObfuscatedName("aj") @ObfuscatedName("al")
@Export("ll8") @Export("ll8")
byte[] ll8; byte[] ll8;
@ObfuscatedName("aw") @ObfuscatedName("ad")
@Export("getAndMoveToFrontDecode_yy") @Export("getAndMoveToFrontDecode_yy")
int[] getAndMoveToFrontDecode_yy; int[] getAndMoveToFrontDecode_yy;
@ObfuscatedName("at") @ObfuscatedName("ai")
@Export("selector") @Export("selector")
byte[] selector; byte[] selector;
@ObfuscatedName("av") @ObfuscatedName("ar")
@Export("selectorMtf") @Export("selectorMtf")
byte[] selectorMtf; byte[] selectorMtf;
@ObfuscatedName("al") @ObfuscatedName("ag")
@Export("temp_charArray2d") @Export("temp_charArray2d")
byte[][] temp_charArray2d; byte[][] temp_charArray2d;
@ObfuscatedName("ap") @ObfuscatedName("ax")
@Export("limit") @Export("limit")
int[][] limit; int[][] limit;
@ObfuscatedName("am") @ObfuscatedName("as")
@Export("base") @Export("base")
int[][] base; int[][] base;
@ObfuscatedName("ax") @ObfuscatedName("aj")
@Export("perm") @Export("perm")
int[][] perm; int[][] perm;
@ObfuscatedName("ak") @ObfuscatedName("am")
@Export("minLens") @Export("minLens")
int[] minLens; int[] minLens;
@ObfuscatedName("ay") @ObfuscatedName("az")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1956200463 intValue = 375128139
) )
int field4200; int field4174;
BZip2State() { BZip2State() {
this.field4182 = 4096; // L: 4 this.field4171 = 4096; // L: 4
this.field4197 = 16; // L: 5 this.field4161 = 16; // L: 5
this.field4165 = 258; // L: 6 this.field4162 = 258; // L: 6
this.field4166 = 6; // L: 7 this.field4186 = 6; // L: 7
this.field4167 = 50; // L: 8 this.field4164 = 50; // L: 8
this.field4192 = 18002; // L: 9 this.field4165 = 18002; // L: 9
this.nextByte = 0; // L: 11 this.nextByte = 0; // L: 11
this.next_out = 0; // L: 14 this.next_out = 0; // L: 14
this.unzftab = new int[256]; // L: 25 this.unzftab = new int[256]; // L: 25

View File

@@ -4,66 +4,60 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("hf") @ObfuscatedName("hw")
@Implements("BoundaryObject") @Implements("BoundaryObject")
public final class BoundaryObject { public final class BoundaryObject {
@ObfuscatedName("ex") @ObfuscatedName("v")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 156821715 intValue = -727989945
)
@Export("currentPort")
static int currentPort;
@ObfuscatedName("h")
@ObfuscatedGetter(
intValue = 81410901
) )
@Export("tileHeight") @Export("tileHeight")
int tileHeight; int tileHeight;
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1731477927 intValue = 662711357
) )
@Export("x") @Export("x")
int x; int x;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 828570099 intValue = -1127510877
) )
@Export("y") @Export("y")
int y; int y;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -2004551277 intValue = 643320237
) )
@Export("orientationA") @Export("orientationA")
int orientationA; int orientationA;
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1692741097 intValue = 1924609359
) )
@Export("orientationB") @Export("orientationB")
int orientationB; int orientationB;
@ObfuscatedName("z") @ObfuscatedName("j")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lge;" descriptor = "Lgl;"
) )
@Export("renderable1") @Export("renderable1")
public Renderable renderable1; public Renderable renderable1;
@ObfuscatedName("t") @ObfuscatedName("r")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "Lge;" descriptor = "Lgl;"
) )
@Export("renderable2") @Export("renderable2")
public Renderable renderable2; public Renderable renderable2;
@ObfuscatedName("v") @ObfuscatedName("b")
@ObfuscatedGetter( @ObfuscatedGetter(
longValue = -5701861202645263443L longValue = 1374506562499121997L
) )
@Export("tag") @Export("tag")
public long tag; public long tag;
@ObfuscatedName("b") @ObfuscatedName("d")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1847127539 intValue = -1331667357
) )
@Export("flags") @Export("flags")
int flags; int flags;
@@ -72,4 +66,40 @@ public final class BoundaryObject {
this.tag = 0L; // L: 11 this.tag = 0L; // L: 11
this.flags = 0; // L: 12 this.flags = 0; // L: 12
} // L: 14 } // L: 14
@ObfuscatedName("io")
@ObfuscatedSignature(
descriptor = "(Ljava/lang/String;Ljava/lang/String;IIIIZI)V",
garbageValue = "-2076246411"
)
@Export("insertMenuItem")
static final void insertMenuItem(String var0, String var1, int var2, int var3, int var4, int var5, boolean var6) {
if (!Client.isMenuOpen) { // L: 8805
if (Client.menuOptionsCount < 500) { // L: 8806
Client.menuActions[Client.menuOptionsCount] = var0; // L: 8807
Client.menuTargets[Client.menuOptionsCount] = var1; // L: 8808
Client.menuOpcodes[Client.menuOptionsCount] = var2; // L: 8809
Client.menuIdentifiers[Client.menuOptionsCount] = var3; // L: 8810
Client.menuArguments1[Client.menuOptionsCount] = var4; // L: 8811
Client.menuArguments2[Client.menuOptionsCount] = var5; // L: 8812
Client.menuShiftClick[Client.menuOptionsCount] = var6; // L: 8813
++Client.menuOptionsCount; // L: 8814
}
}
} // L: 8816
@ObfuscatedName("lo")
@ObfuscatedSignature(
descriptor = "(Lio;I)Ljava/lang/String;",
garbageValue = "-502869844"
)
@Export("Widget_getSpellActionName")
static String Widget_getSpellActionName(Widget var0) {
if (AttackOption.Widget_unpackTargetMask(class21.getWidgetFlags(var0)) == 0) { // L: 11377
return null;
} else {
return var0.spellActionName != null && var0.spellActionName.trim().length() != 0 ? var0.spellActionName : null; // L: 11378 11379 11381
}
}
} }

View File

@@ -4,30 +4,30 @@ import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("le") @ObfuscatedName("li")
@Implements("Bounds") @Implements("Bounds")
public class Bounds { public class Bounds {
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1148660607 intValue = -1774637825
) )
@Export("lowX") @Export("lowX")
public int lowX; public int lowX;
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1798540523 intValue = 47432047
) )
@Export("lowY") @Export("lowY")
public int lowY; public int lowY;
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -806999089 intValue = -250215195
) )
@Export("highX") @Export("highX")
public int highX; public int highX;
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1354432091 intValue = 1839374135
) )
@Export("highY") @Export("highY")
public int highY; public int highY;
@@ -41,10 +41,10 @@ public class Bounds {
this(0, 0, var1, var2); // L: 10 this(0, 0, var1, var2); // L: 10
} // L: 11 } // L: 11
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(III)V", descriptor = "(III)V",
garbageValue = "-1883564042" garbageValue = "1379140744"
) )
@Export("setLow") @Export("setLow")
public void setLow(int var1, int var2) { public void setLow(int var1, int var2) {
@@ -52,10 +52,10 @@ public class Bounds {
this.lowY = var2; // L: 20 this.lowY = var2; // L: 20
} // L: 21 } // L: 21
@ObfuscatedName("c") @ObfuscatedName("n")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIB)V", descriptor = "(III)V",
garbageValue = "-102" garbageValue = "1063534704"
) )
@Export("setHigh") @Export("setHigh")
public void setHigh(int var1, int var2) { public void setHigh(int var1, int var2) {
@@ -63,31 +63,31 @@ public class Bounds {
this.highY = var2; // L: 25 this.highY = var2; // L: 25
} // L: 26 } // L: 26
@ObfuscatedName("o") @ObfuscatedName("f")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lle;Lle;B)V", descriptor = "(Lli;Lli;B)V",
garbageValue = "77" garbageValue = "-80"
) )
public void method5849(Bounds var1, Bounds var2) { public void method5977(Bounds var1, Bounds var2) {
this.method5830(var1, var2); // L: 33 this.method5981(var1, var2); // L: 33
this.method5831(var1, var2); // L: 34 this.method5982(var1, var2); // L: 34
} // L: 35 } // L: 35
@ObfuscatedName("g") @ObfuscatedName("y")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lle;Lle;I)V", descriptor = "(Lli;Lli;I)V",
garbageValue = "2013781151" garbageValue = "-1616583168"
) )
void method5830(Bounds var1, Bounds var2) { void method5981(Bounds var1, Bounds var2) {
var2.lowX = this.lowX; // L: 38 var2.lowX = this.lowX; // L: 38
var2.highX = this.highX; // L: 39 var2.highX = this.highX; // L: 39
if (this.lowX < var1.lowX) { // L: 40 if (this.lowX < var1.lowX) { // L: 40
var2.highX = (var2.highX * 1545009967 - (var1.lowX * 1545009967 - this.lowX * 1545009967)) * -806999089; // L: 41 var2.highX = (var2.highX * -888661779 - (var1.lowX * -888661779 - this.lowX * -888661779)) * -250215195; // L: 41
var2.lowX = var1.lowX; // L: 42 var2.lowX = var1.lowX; // L: 42
} }
if (var2.method5832() > var1.method5832()) { // L: 44 if (var2.method5983() > var1.method5983()) { // L: 44
var2.highX -= var2.method5832() - var1.method5832(); // L: 45 var2.highX -= var2.method5983() - var1.method5983(); // L: 45
} }
if (var2.highX < 0) { // L: 47 if (var2.highX < 0) { // L: 47
@@ -96,21 +96,21 @@ public class Bounds {
} // L: 48 } // L: 48
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Lle;Lle;I)V", descriptor = "(Lli;Lli;S)V",
garbageValue = "-1814937047" garbageValue = "11660"
) )
void method5831(Bounds var1, Bounds var2) { void method5982(Bounds var1, Bounds var2) {
var2.lowY = this.lowY; // L: 51 var2.lowY = this.lowY; // L: 51
var2.highY = this.highY; // L: 52 var2.highY = this.highY; // L: 52
if (this.lowY < var1.lowY) { // L: 53 if (this.lowY < var1.lowY) { // L: 53
var2.highY = (var2.highY * 364510765 - (var1.lowY * 364510765 - this.lowY * 364510765)) * -1354432091; // L: 54 var2.highY = (var2.highY * 1584612999 - (var1.lowY * 1584612999 - this.lowY * 1584612999)) * 1839374135; // L: 54
var2.lowY = var1.lowY; // L: 55 var2.lowY = var1.lowY; // L: 55
} }
if (var2.method5834() > var1.method5834()) { // L: 57 if (var2.method5984() > var1.method5984()) { // L: 57
var2.highY -= var2.method5834() - var1.method5834(); // L: 58 var2.highY -= var2.method5984() - var1.method5984(); // L: 58
} }
if (var2.highY < 0) { // L: 60 if (var2.highY < 0) { // L: 60
@@ -119,22 +119,22 @@ public class Bounds {
} // L: 61 } // L: 61
@ObfuscatedName("z") @ObfuscatedName("j")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(B)I",
garbageValue = "1788216788" garbageValue = "-67"
) )
int method5832() { int method5983() {
return this.highX + this.lowX; // L: 64 return this.highX + this.lowX; // L: 64
} }
@ObfuscatedName("t") @ObfuscatedName("r")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(B)I", descriptor = "(B)I",
garbageValue = "111" garbageValue = "8"
) )
int method5834() { int method5984() {
return this.lowY + this.highY; // L: 68 return this.highY + this.lowY; // L: 68
} }
public String toString() { public String toString() {

View File

@@ -1,29 +1,27 @@
import java.io.File;
import java.io.IOException;
import net.runelite.mapping.Export; import net.runelite.mapping.Export;
import net.runelite.mapping.Implements; import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature; import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("lq") @ObfuscatedName("lv")
@Implements("Buddy") @Implements("Buddy")
public class Buddy extends User { public class Buddy extends User {
@ObfuscatedName("l") @ObfuscatedName("p")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1876506073 intValue = 1693720149
) )
@Export("world") @Export("world")
public int world; public int world;
@ObfuscatedName("z") @ObfuscatedName("j")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1660852993 intValue = -1023710905
) )
@Export("int2") @Export("int2")
public int int2; public int int2;
@ObfuscatedName("t") @ObfuscatedName("r")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 278975133 intValue = -523203081
) )
@Export("rank") @Export("rank")
public int rank; public int rank;
@@ -32,10 +30,10 @@ public class Buddy extends User {
this.world = -1; // L: 4 this.world = -1; // L: 4
} // L: 8 } // L: 8
@ObfuscatedName("ap") @ObfuscatedName("ao")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(IIB)V", descriptor = "(III)V",
garbageValue = "45" garbageValue = "-1819363744"
) )
@Export("set") @Export("set")
void set(int var1, int var2) { void set(int var1, int var2) {
@@ -43,64 +41,23 @@ public class Buddy extends User {
this.int2 = var2; // L: 12 this.int2 = var2; // L: 12
} // L: 13 } // L: 13
@ObfuscatedName("am") @ObfuscatedName("aq")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)I", descriptor = "(I)I",
garbageValue = "-1247009443" garbageValue = "1872799310"
) )
@Export("getWorld") @Export("getWorld")
public int getWorld() { public int getWorld() {
return this.world; // L: 16 return this.world; // L: 16
} }
@ObfuscatedName("ax") @ObfuscatedName("aw")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(I)Z", descriptor = "(I)Z",
garbageValue = "731832682" garbageValue = "2092193613"
) )
@Export("hasWorld") @Export("hasWorld")
public boolean hasWorld() { public boolean hasWorld() {
return this.world > 0; // L: 20 return this.world > 0; // L: 20
} }
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "(Ljava/lang/String;Ljava/lang/String;ZI)Lng;",
garbageValue = "2145866234"
)
@Export("getPreferencesFile")
public static AccessFile getPreferencesFile(String var0, String var1, boolean var2) {
File var3 = new File(JagexCache.cacheDir, "preferences" + var0 + ".dat"); // L: 254
if (var3.exists()) { // L: 255
try {
AccessFile var10 = new AccessFile(var3, "rw", 10000L); // L: 257
return var10; // L: 258
} catch (IOException var9) { // L: 260
}
}
String var4 = ""; // L: 262
if (class310.cacheGamebuild == 33) { // L: 263
var4 = "_rc";
} else if (class310.cacheGamebuild == 34) { // L: 264
var4 = "_wip";
}
File var5 = new File(AccessFile.userHomeDirectory, "jagex_" + var1 + "_preferences" + var0 + var4 + ".dat"); // L: 265
AccessFile var6;
if (!var2 && var5.exists()) { // L: 266
try {
var6 = new AccessFile(var5, "rw", 10000L); // L: 268
return var6; // L: 269
} catch (IOException var8) { // L: 271
}
}
try {
var6 = new AccessFile(var3, "rw", 10000L); // L: 274
return var6; // L: 275
} catch (IOException var7) { // L: 277
throw new RuntimeException(); // L: 278
}
}
} }

View File

@@ -6,45 +6,80 @@ import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("dt") @ObfuscatedName("dt")
@Implements("BuddyRankComparator") @Implements("BuddyRankComparator")
public class BuddyRankComparator extends AbstractUserComparator { public class BuddyRankComparator extends AbstractUserComparator {
@ObfuscatedName("h") @ObfuscatedName("sq")
@ObfuscatedSignature(
descriptor = "Ljm;"
)
@Export("grandExchangeEvents")
static GrandExchangeEvents grandExchangeEvents;
@ObfuscatedName("c")
@ObfuscatedSignature(
descriptor = "Ljf;"
)
@Export("NetCache_currentResponse")
public static NetFileRequest NetCache_currentResponse;
@ObfuscatedName("v")
@Export("reversed") @Export("reversed")
final boolean reversed; final boolean reversed;
public BuddyRankComparator(boolean var1) { public BuddyRankComparator(boolean var1) {
this.reversed = var1; // L: 10 this.reversed = var1; // L: 10
} // L: 11 }
@ObfuscatedName("h") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(Llq;Llq;I)I", descriptor = "(Llv;Llv;B)I",
garbageValue = "2091372703" garbageValue = "17"
) )
@Export("compareBuddy") @Export("compareBuddy")
int compareBuddy(Buddy var1, Buddy var2) { int compareBuddy(Buddy var1, Buddy var2) {
if (var2.rank != var1.rank) { // L: 14 if (var2.rank != var1.rank) {
return this.reversed ? var1.rank - var2.rank : var2.rank - var1.rank; // L: 15 return this.reversed ? var1.rank - var2.rank : var2.rank - var1.rank;
} else { } else {
return this.compareUser(var1, var2); // L: 17 return this.compareUser(var1, var2);
} }
} }
public int compare(Object var1, Object var2) { public int compare(Object var1, Object var2) {
return this.compareBuddy((Buddy)var1, (Buddy)var2); // L: 21 return this.compareBuddy((Buddy)var1, (Buddy)var2);
} }
@ObfuscatedName("fv") @ObfuscatedName("v")
@ObfuscatedSignature( @ObfuscatedSignature(
descriptor = "(S)V", descriptor = "([Ljava/lang/CharSequence;III)Ljava/lang/String;",
garbageValue = "30955" garbageValue = "2136518609"
) )
static final void method2492() { public static String method2484(CharSequence[] var0, int var1, int var2) {
if (Client.logoutTimer > 0) { // L: 3099 if (var2 == 0) { // L: 11
FileSystem.logOut(); // L: 3100 return "";
} else if (var2 == 1) { // L: 12
CharSequence var10 = var0[var1]; // L: 13
return var10 == null ? "null" : var10.toString(); // L: 14 15
} else { } else {
Client.timer.method5464(); // L: 3103 int var3 = var2 + var1; // L: 17
Client.updateGameState(40); // L: 3104 int var4 = 0; // L: 18
TriBool.field3866 = Client.packetWriter.getSocket(); // L: 3105
Client.packetWriter.removeSocket(); // L: 3106 for (int var5 = var1; var5 < var3; ++var5) { // L: 19
CharSequence var9 = var0[var5]; // L: 20
if (var9 == null) { // L: 21
var4 += 4;
} else {
var4 += var9.length(); // L: 22
}
}
StringBuilder var8 = new StringBuilder(var4); // L: 24
for (int var6 = var1; var6 < var3; ++var6) { // L: 25
CharSequence var7 = var0[var6]; // L: 26
if (var7 == null) { // L: 27
var8.append("null");
} else {
var8.append(var7); // L: 28
}
}
return var8.toString(); // L: 30
} }
} // L: 3101 3107 }
} }

Some files were not shown because too many files have changed in this diff Show More